编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

ceph分布式存储系统中的cephfs介绍及应用实例

wxchong 2024-06-13 22:38:46 开源技术 13 ℃ 0 评论

一:介绍

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表