CEPH中使用cephfs方式共享存储相比rbd方式稍微复杂一些,但各有优势,不在此讨论。
另外,需要注意多点同时挂载目录时,容易发生莫名奇妙的错误,建议单点挂载后使用nfs方式共享目录。
1、创建rados池
###根据磁盘多少来设置,后期可调整。
###每个cephfs文件系统需要一个data和一个metadata pool。
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
########################顺路知识-osd分组##########################
#新建ssd和hdd磁盘对应分类规则
ceph osd crush rule create-replicated rule-ssd default host ssd
ceph osd crush rule create-replicated rule-hdd default host hdd
#创建存储池并应用相应规则
ceph osd pool create ssdpool 64 64 rule-ssd
ceph osd pool create hddpool 64 64 rule-hdd
#修改pool绑定的rule
ceph osd pool set cephfs_data crush_rule rule-ssd
ceph osd pool set cephfs_metadata crush_rule rule-ssd
2、创建文件系统fs
###使用前面创建的meta和data两个pool创建文件系统,meta主要存储文件系统meta信息,data为数据主要存储地,后期需要恢复时各负其责。
##meta在前,data在后
ceph fs new cephfs cephfs_metadata cephfs_data
## 查看创建的fs
ceph fs ls
############################顺带话题############################
###删除fs,需要输入两遍fs名称,并带--yes-i-really-really-mean-it,部分版本只有一个really,请参考错误提示,或使用help查看。
ceph fs rm cfs4ech cfs4ech --yes-i-really-really-mean-it
##删除pool,与删除fs基本一致
ceph osd pool rm gtscfs_metadata gtscfs_metadata --yes-i-really-really-mean-it
3、部署mds,每个文件系统需要一个mds
###进入计划启用mds的节点
mkdir /var/lib/ceph/mds/ceph-ceph1
chown ceph:ceph /var/lib/ceph/mds/ceph-ceph1
#ceph auth get-or-create mds.${id} mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-${id}/keyring
ceph auth get-or-create mds.ceph1 mon 'profile mds' mgr 'profile mds' mds 'allow *' osd 'allow *' > /var/lib/ceph/mds/ceph-ceph1/keyring
systemctl start ceph-mds@ceph1
#######################mds节点个数需要大于cephfs文件系统个数###################
否则会报错:
1 filesystem is online with fewer MDS than max_mds
#########查看已创建的cephfs#####################
ceph fs volume ls
ceph fs dump
4、cephfs挂载
###获取client的keyring,或者直接cp到挂载节点,挂在时使用密钥文件挂载
cat /etc/ceph/ceph.client.admin.keyring
###创建挂载点,本地挂载
mkdir /cephfs
###默认可不带端口,但配置自定义端口的必须要指定
mount -t ceph 192.168.100.2:6789:/ /cephfs -o name=admin,secret=password
#或
mount -t ceph 192.168.100.2:6789:/ /cephfs -o name=admin,secretfile=/etc/ceph/admin.secret
###写入fstab,开机自动挂载:
192.168.100.2:6789:/ /cephfs ceph name=admin,secretfile=/etc/ceph/admin.secret,noatime,_netdev 0 2
#####使用ceph-fuse挂载#########
yum install ceph-fuse
###命令行挂载,-r可不指定,默认cephfs的根路径/;
ceph-fuse -m 192.168.100.2:6789 --no-mon-config -n client.admin -o /etc/ceph/ceph.client.admin.keyring -r / /cephfs
vim /etc/fstab
id=admin,conf=/etc/ceph/ceph.conf /cephfs fuse.ceph defaults 0 0
#或,mon_host可指定全部的mon节点hostname或者host_ip.
none /cephfs fuse.ceph ceph.name=client.admin,ceph.keyring=/etc/ceph/ceph.client.admin.keyring,ceph.client_mountpoint=/,ceph.mon_host=192.168.100.2:6789,_netdev,defaults 0 0