创建文件系统
部署一个 CephFS, 步骤如下:
- 在一个 Mon 节点上创建 Ceph 文件系统.
- 若使用 CephX 认证,需要创建一个访问 CephFS 的客户端
- 挂载 CephFS 到一个专用的节点.
- 以 kernel client 形式挂载 CephFS
- 以 FUSE client 形式挂载 CephFS
创建一个 Ceph 文件系统
1、CephFS 需要两个 Pools – cephfs-data 和 cephfs-metadata, 分别存储文件数据和文件元数据
ceph osd pool create cephfs-data 16 16
ceph osd pool create cephfs-metadata 16 16
注:一般 metadata pool 可以从相对较少的 PGs 启动, 之后可以根据需要增加 PGs. 因为 metadata pool 存储着 CephFS 文件的元数据, 为了保证安全, 最好有较多的副本数. 为了能有较低的延迟, 可以考虑将 metadata 存储在 SSDs 上.
2、创建一个 CephFS, 名字为 cephfs:
ceph fs new cephfs cephfs-metadata cephfs-data
3、验证至少有一个 MDS 已经进入 Active 状态
ceph fs status cephfs
4、在 Monitor 上, 创建一个用户,用于访问CephFs
ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs-data, allow rw pool=cephfs-metadata'
key要保存好,如下图
5、验证key是否生效
ceph auth get client.cephfs
6、检查CephFs和mds状态
ceph mds stat
ceph fs ls
ceph fs status
kernel client 形式挂载 CephFS
1、创建挂载目录 cephfs
mkdir /cephfs
2、挂载目录(注意key和IP)
mount -t ceph 10.0.0.170:6789,10.0.0.171:6789,10.0.0.172:6789:/ /cephfs/ -o name=cephfs,secret=AQDW2gNgsnNEOhAAivEfmyMuE447qwrQT9B56A==
3、自动挂载
echo "cephnode01:6789,cephnode02:6789,cephnode03:6789:/ /cephfs ceph name=cephfs,secretfile=/etc/ceph/cephfs.key,_netdev,noatime 0 0" | sudo tee -a /etc/fstab
4、验证是否挂载成功
stat -f /cephfs
FUSE client 形式挂载 CephFS
性能要好一些
1、安装ceph-common
yum install -y ceph-common
2、安装ceph-fuse
yum install -y ceph-fuse
3、将集群的ceph.conf拷贝到客户端
scp root@10.0.0.170:/etc/ceph/ceph.conf /etc/ceph/
chmod 644 /etc/ceph/ceph.conf
4、使用 ceph-fuse 挂载 CephFS
ceph-fuse --keyring /etc/ceph/ceph.client.cephfs.keyring --name client.cephfs -m 10.0.0.170:6789,10.0.0.171:6789,10.0.0.172:6789 /cephfs/
5、验证 CephFS 已经成功挂载
stat -f /cephfs
6、自动挂载
echo "none /cephfs fuse.ceph ceph.id=cephfs,ceph.conf=/etc/ceph/ceph.conf,_netdev,defaults 0 0"| sudo tee -a /etc/fstab
或
echo "id=cephfs,conf=/etc/ceph/ceph.conf /cephfs fuse.ceph _netdev,defaults 0 0"| sudo tee -a /etc/fstab
7、卸载
fusermount -u /cephfs