一:介绍
CephFS文件系统和管理
这些命令在你的Ceph集群中的CephFS文件系统上运,注意,默认情况下仅允许使用一个文件系统,要启用创建多个文件系统,请使用 ceph fs flag set enable_multiple true命令
默认情况下仅允许使用一个文件系统
一个文件系统对应不同目录,不同目录分配给不同用户访问
每个文件系统都有自己的一组MDS守护程序分配给等级,因此请确保你有足够的备用守护程序来容纳新文件系统
创建cephfs文件系统时需要在ceph集群中添加mds服务,该服务负责处理POSIX文件系统中的metadata部分,实际的数据部分交由ceph集群中的OSDs处理
cephfs支持以内核模块方式加载也支持fuse方式加载
二:应用案例
案例1:
在Mon节点创建一个用户,用于访问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'
ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs.dev_fs.data, allow rw pool=cephfs.dev_fs.meta'
#检查
ceph auth get client.cephfs
AQBBazdkl2PENhAANCsxt9tjj5BPMCLaAxXnDw==
#创建挂载点
mkdir /cephfs
#挂载目录
mount -t ceph 192.168.10.30:6789,192.168.10.31:6789,192.168.10.32:6789:/ /cephfs/ -o name=cephfs,secretfile=/etc/ceph/ceph.client.cephfs.keyring
#/etc/ceph/ceph.client.cephfs.keyring
AQBBazdkl2PENhAANCsxt9tjj5BPMCLaAxXnDw==
#自动挂载
echo "192.168.66.201:6789,192.168.66.202:6789,192.168.66.203:6789:/ /cephfs ceph name=cephfs,secretfile=/etc/ceph/cephfs.key,_netdev,noatime 0 0" | sudo tee -a /etc/fstab
#验证查看
stat -f /cephfs
#新节点挂载cephfs文件系统,可以同步看到文件内容
#挂载文件系统
mount -t ceph 192.168.10.25:/ /mnt -o name=admin,secret=AQC3Myxkz/DSEBAAflgPCwKo/XPDMD7/6KvT0w==
或者
mount -t ceph 192.168.10.21:6789:/ /mnt/test_cephfs -o name=admin,secretfile=admin.secret
mount -t ceph 192.168.10.21:6789:/ /mnt/test_cephfs -o name=admin,secretfile=/etc/ceph/admin.secret
#创建秘钥文件
mkdir /etc/ceph
vim /etc/ceph/admin.secret
AQC3Myxkz/DSEBAAflgPCwKo/XPDMD7/6KvT0w==
注:adminn.secret文件中的秘钥即管理节点上/etc/ceph/ceph.client.admin.keyring的key对应的值
#卸载文件系统
umount -l /mnt/test_cephfs/
lsof /data/aa kill -9 进程PID即可
案例2:
- ??部署 MDS 服务
- ??创建 CephFS metadata 和 data 存储池:
- ??创建 cephFS
#创建,会自动创建服务及meta data
ceph fs volume create
#如
ceph fs volume create dev_fs
ceph fs ls
ceph osd lspools
#查看mds状态
ceph mds stat
#查看文件系统状态
ceph fs status dev_fs
#查看
ceph fs ls
#给fs testfs 设置一下副本数量
ceph orch apply mds testfs --placement="2 ceph-02 ceph-03"
#在节点 ceph-01 上为 fs meng 添加 mds 服务
ceph orch daemon add mds meng ceph2
#注意:在实际的生产使用中,cephfs数据存储池存储了几十T的数据,那么元数据的存储池大约占用几个G空间
案例3:
#创建cephfs
ceph osd pool create cephfs_metadata
ceph osd pool create cephfs_data
ceph fs volume create public_data
ceph fs volume create meng
#查看
ceph fs ls
#设置一下副本数量
ceph orch apply mds dev_fs --placement="3 ceph1 ceph2 ceph3"
在节点 ceph-01 上添加 mds 服务
ceph orch daemon add mds dev_fs ceph2
#dev_fs 状态(1个)
给dev_fs调整3个
ceph orch apply mds dev_fs --placement="3 ceph1 ceph2 ceph3"
案例4:
cephfs挂载
通过fstab客户端挂载
在/etc/fstab文件内写下如面格式的内容即可
192.168.6.126:6789,192.168.6.127:6789,192.168.6.128:6789:/ /mnt ceph name=cephfs,secretfile=/etc/ceph/cephfs.key,_netdev,noatime 0 0
卸载
umount /mnt
一个 Ceph 文件系统至少需要两个 RADOS 池,一个用于数据,一个用于元数据。创建存储池
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
创建文件系统
ceph fs new cephfs cephfs_metadata cephfs_data #cephfs可自定义
#挂载
mount -t ceph 10.3.45.112:6789:/ /lijia -o name=admin,secret=AQBUlxxiSSHyCRAARXCvpSml2Eh5bj/eZvX5Kg==
- #10.3.45.112:6789:/ , MON 的套接字
- #/lijia,需要挂载的目录
- #name=admin,secret=AQBUlxxiSSHyCRAARXCvpSml2Eh5bj/eZvX5Kg==,CephX 用户的密钥
#设置持久挂载
vim /etc/fstab
10.3.45.112:6789:/ /lijia ceph name=admin,secret=AQBUlxxiSSHyCRAARXCvpSml2Eh5bj/eZvX5Kg==,noatime,_netdev 0 2
_netdev参数,表示当系统联网后再进行挂载操作,以免系统开机时间过长或开机失败
noatime 可以显著提高文件系统的性能。默认情况下,Linux ext2/ext3
文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、最近一次修改时间和最近一次访问时间。因为系统运行的时候要访
问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。Linux 提供了
noatime 这个参数来禁止记录最近一次访问时间戳。
案例5:
普通用户cephfs-挂载使用
####文件系统
1.查看
ceph fs ls
2.创建cephfs
#ceph osd pool create cephfs_metadata
#ceph osd pool create cephfs_data
#ceph fs volume create public_data
#ceph fs volume create meng
#创建,会自动创建fs服务及meta data
ceph fs volume create
#如
ceph fs volume create meta_fs
ceph fs ls
ceph osd lspools
#查看mds状态
ceph mds stat
#查看文件系统状态
ceph fs status meta_fs
#设置一下副本数量
#ceph orch apply mds meta_fs --placement="3 ceph01 ceph02 ceph03"
#在节点 ceph-01 上添加 mds 服务
#ceph orch daemon add mds meta_fs ceph2
3.在Mon节点创建一个用户,用于访问CephFS;且这个用户有读写的权限
#ceph auth get-or-create client.cephfs mon 'allow r' mds 'allow rw' osd 'allow rw pool=cephfs.meta_fs.data, allow rw pool=cephfs.meta_fs.meta'
#cephfs_dev,指定目录 /meta_dev
ceph auth get-or-create client.cephfs_dev mon 'allow r' mds 'allow r, allow rw path=/meta_dev' osd 'allow rw pool=cephfs.meta_fs.data, allow rw pool=cephfs.meta_fs.meta'
#检查
ceph auth get client.cephfs_dev
4.在ceph-client创建挂载点(需要安装部署好ceph客户端,查看节点初始化)
mkdir /cephfs_dev
#挂载目录
mount -t ceph 192.168.10.40:6789,192.168.10.41:6789,192.168.10.42:6789:/ /cephfs_dev/ -o name=cephfs_dev,secretfile=/etc/ceph/ceph.client.cephfs_dev.keyring
#/etc/ceph/ceph.client.cephfs_dev.keyring
AQCuCT1k14s9NBAAZBMU90wYyxLH+zmOG7B3zw==
#客户端查看
#在ceph管理节点之一以admin挂载节点并创建对应目录
#/etc/ceph/ceph.client.admin.keyring
[root@ceph02 /]# mount -t ceph 192.168.10.40:/ /mnt -o name=admin,secret=AQCfrzxkEQzCJxAArBXNUrzgRdGCtgsJOGsJOA==
#在客户端重新挂载目录,指定目录
mount -t ceph 192.168.10.40,192.168.10.41,192.168.10.42:/meta_dev /cephfs_dev/ -o name=cephfs_dev,secretfile=/etc/ceph/ceph.client.cephfs_dev.keyring
#自动挂载
#echo "192.168.66.201:6789,192.168.66.202:6789,192.168.66.203:6789:/ /cephfs ceph name=cephfs,secretfile=/etc/ceph/cephfs.key,_netdev,noatime 0 0" | sudo tee -a /etc/fstab
#验证查看
stat -f /cephfs
#卸载挂载
umount /cephfs_dev
本文暂时没有评论,来添加一个吧(●'◡'●)