一 Ceph 文件系统
1.1 概述
CephFS 也称 ceph 文件系统, 是一个 POSIX 兼容的分布式文件系统.
实现 ceph 文件系统的要求:
需要一个已经正常运行的 ceph 集群;
至少包含一个 ceph 元数据服务器(MDS).
1.2 相关名词
Ceph: 元数据服务器( MDS ), 为 Ceph 文件系统存储元数据. 元数据服务器使得 POSIX 文件系统的用户们, 可以在不对 Ceph 存储集群造成负担的前提下, 执行诸如 ls,find 等基本命令.
元数据: 可以简单的理解为它是描述数据的数据, 意思就是描述数据的信息. 如, 数据的大小, 位置, 属性等等信息. 使用 MDS 后, 在执行数据搜索和查看的时候, 首先查找的是元数据, 通过元数据中的描述信息准确且快速的找到数据, 而不用大费周章的在整个集群的 osd 上查找.
1.3 客户端 I/O 机制
客户端向 cephfs 发起 I/O 时, 过程大致为:
client 端与 mds 节点通讯, 获取 metadata 信息(metadata 也存在 osd 上)
client 直接写数据到 osd
1.4 挂载 ceph 文件系统的方式
使用本地系统内核驱动程序进行挂载
使用 ceph fuse 进行挂载
二 文件系统使用
2.1 查看集群
- [root@deploy ~]# su - manager
- [manager@deploy ~]$ cd my-cluster/
- [manager@deploy my-cluster]$ SSH node1 sudo ceph -s
2.2 创建 MDS
见《003.Ceph 扩展集群》步骤 2.2.
提示: 使用 ceph-deploy 部署 ceph mds 比较快捷, 但依赖于之前 ceph-deploy 时候生成的一些配置和 keyring 文件, 所以此文档承接之前文档, 并在部署 Ceph 集群目录.
- [root@deploy ~]# su - manager
- [manager@deploy ~]$ cd my-cluster/
- [manager@deploy my-cluster]$ SSH node1 sudo ceph mds stat # 查看 mds 信息
- , 1 up:standby
2.3 创建文件系统
- [manager@deploy my-cluster]$ SSH node1 sudo ceph osd pool create cephfs_data 16 16 #创建 data pool
- [manager@deploy my-cluster]$ SSH node1 sudo ceph osd pool create cephfs_metadata 16 16 # 创建 metadata pool
- [manager@deploy my-cluster]$ SSH node1 sudo ceph fs new cephfs cephfs_metadata cephfs_data # 创建 cephfs
- [manager@deploy my-cluster]$ SSH node1 sudo ceph fs ls #查看验证
- name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
- [manager@deploy my-cluster]$ SSH node1 sudo ceph mds stat
- cephfs-1/1/1 up {0=node1=up:active} #再次查看 mds 信息
注意: 一个 cephfs 至少要求两个 RADOS 存储池, 一个为 data, 一个为 metadata.
建议:
metadata pool 设置较高级别的副本级别, 因为 metadata 的损坏可能导致整个文件系统不用;
metadata pool 使用低延时存储, 比如 SSD, 因为 metadata 会直接影响客户端的响应速度.
2.4 创建认证密钥
- [root@node1 ~]# cat /etc/ceph/ceph.client.admin.keyring # 查看 key
- [client.admin]
- key = AQDs9D1cCanyJBAA/rj991xmzENsIgEesfe8KQ==
- [root@cephclient ~]# vi /root/admin.secret #客户端创建 key
- AQDs9D1cCanyJBAA/rj991xmzENsIgEesfe8KQ==
三 客户端使用文件系统(内核驱动)
3.1 客户端执行挂载
- [root@cephclient ~]# mkdir /mnt/mycephfs
- [root@cephclient ~]# mount -t ceph -o name=admin,secretfile=/root/admin.secret 3 172.24.8.72:6789:/ /mnt/mycephfs/ #执行挂载并附带 key 文件
提示: Ceph 存储集群默认情况下已启用身份验证的情况下运行, 挂载时需要指明相关密钥(非密钥环本身).
2.6 确认验证
- [root@cephclient ~]# df -hT
- Filesystem Type Size Used Avail Use% Mounted on
- ......
- 172.24.8.72:6789:/ ceph 18G 0 18G 0% /mnt/mycephfs
- [root@cephclient ~]# echo 'This is my test file!'>>/mnt/mycephfs/test.txt
四 客户端使用文件系统(FUSE)
4.1 安装 FUSE 相关包
- [root@cephclient ~]# yum -y install ceph-fuse
- [manager@deploy my-cluster]$ ceph-deploy --overwrite-conf mon add cephclient
提示: Ceph v0.55 及后续版本默认开启了 cephx 认证. 从用户空间 ( FUSE ) 挂载 Ceph 文件系统前, 确保客户端有一份 Ceph 配置副本, 和具备 Ceph 元数据服务器的密钥环, 本实验通过以上命令直接从 deploy 节点推送相关配置. 也可通过手动 scp 方式将 mon 节点的 ceph.conf 和 ceph.client.admin.keyring 复制至客户端节点.
4.2 客户端执行挂载
- [root@cephclient ~]# mkdir /mnt/mycephfs
- [root@cephclient ~]# ceph-fuse -k /etc/ceph/ceph.client.admin.keyring -m 172.24.8.72:6789 /mnt/mycephfs/ # 执行挂载并附带 key 文件
提示: Ceph 存储集群默认情况下已启用身份验证的情况下运行, 若 keyring 位于 / etc/ceph 目录可省略 - k 参数, ceph-fuse -m 172.24.8.72:6789 /mnt/mycephfs.
4.3 确认验证
- [root@cephclient ~]# df -hT
- Filesystem Type Size Used Avail Use% Mounted on
- ......
- ceph-fuse fuse.ceph-fuse 18G 0 18G 0% /mnt/mycephfs
- [root@cephclient ~]# echo 'This is my test file!'>>/mnt/mycephfs/test2.txt
参考: http://docs.ceph.com/docs/master/start/quick-rbd/
来源: http://www.bubuko.com/infodetail-2960163.html