CephFS挂载与使用详解:Rocky 9.6 + Ceph 17.2.9环境实践
在完成CephFS存储池、文件系统和MDS的部署后,接下来就需要将CephFS挂载到客户端进行使用。本文将详细介绍在Rocky Linux 9.6环境下使用Ceph 17.2.9 (Quincy)版本时,多种挂载和使用CephFS的方法,包括内核客户端、FUSE客户端以及在Kubernetes中的使用。
挂载CephFS前的准备工作
在挂载CephFS之前,我们需要进行一些准备工作,包括创建文件系统、客户端用户和获取认证密钥。
1. 创建CephFS文件系统
# 创建两个CephFS文件系统
ceph fs volume create howlaisi_k8s_12317_cephfs
ceph fs volume create howlaisi_k8s_13010_cephfs
# 调整数据池的PG数量
ceph osd pool get cephfs.howlaisi_k8s_12317_cephfs.data pg_num
ceph osd pool set cephfs.howlaisi_k8s_12317_cephfs.data pg_num 128
ceph fs volume create howlaisi_k8s_12317_cephfs会创建一个名为howlaisi_k8s_12317_cephfs的文件系统,会创建两个存储池:cephfs.howlaisi_k8s_12317_cephfs.meta 和cephfs.howlaisi_k8s_12317_cephfs.data,会创建一个mds服务:mds.howlaisi_k8s_12317_cephfs
直接通过ceph fs volume create howlaisi_k8s_12317_cephfs创建的存储池,其pg_num可能很大,因此可以使用ceph osd pool set cephfs.howlaisi_k8s_12317_cephfs.data pg_num 128进行调整,命令执行后pg内部会复制数据,耗时较长。可通过ceph osd pool get cephfs.howlaisi_k8s_12317_cephfs.data pg_num查看pg_num。
2. 创建CephFS客户端用户
# 为每个文件系统创建客户端用户
ceph fs authorize howlaisi_k8s_12317_cephfs client.howlaisi_k8s_12317_cephfs / rw
ceph fs authorize howlaisi_k8s_13010_cephfs client.howlaisi_k8s_13010_cephfs / rw
创建客户端用户,后续挂载文件系统时,可以使用用户挂载根目录。
3. 获取用户密钥
# 获取指定用户的密钥并保存到文件
ceph auth get client.howlaisi_k8s_12317_cephfs -o /etc/ceph/ceph.client.howlaisi_k8s_12317_cephfs.keyring
ceph auth get client.howlaisi_k8s_13010_cephfs -o /etc/ceph/ceph.client.howlaisi_k8s_13010_cephfs.keyring
4. 设置密钥文件权限
# 设置密钥文件权限,防止安全问题
chmod 600 /etc/ceph/ceph.client.howlaisi_k8s_12317_cephfs.keyring
chown root:root /etc/ceph/ceph.client.howlaisi_k8s_12317_cephfs.keyring
chmod 600 /etc/ceph/ceph.client.howlaisi_k8s_13010_cephfs.keyring
chown root:root /etc/ceph/ceph.client.howlaisi_k8s_13010_cephfs.keyring
5. 验证文件系统状态
# 确认文件系统处于活动状态
ceph fs status howlaisi_k8s_12317_cephfs
ceph fs status howlaisi_k8s_13010_cephfs
# 查看MDS状态
ceph mds stat
使用内核驱动挂载CephFS
内核客户端方式通常提供更好的性能,是推荐的挂载方式。
1. 安装必要的软件包
# 在Rocky Linux/CentOS上安装ceph-common
sudo dnf install -y ceph-common
2. 创建挂载点
# 创建挂载点目录
sudo mkdir -p /mnt/howlaisi_k8s_12317_cephfs
sudo mkdir -p /mnt/howlaisi_k8s_13010_cephfs
3. 挂载CephFS
# 挂载第一个文件系统
sudo mount -t ceph 192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789:/ /mnt/howlaisi_k8s_12317_cephfs -o name=howlaisi_k8s_12317_cephfs,mds_namespace=howlaisi_k8s_12317_cephfs
# 挂载第二个文件系统
sudo mount -t ceph 192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789:/ /mnt/howlaisi_k8s_13010_cephfs -o name=howlaisi_k8s_13010_cephfs,mds_namespace=howlaisi_k8s_13010_cephfs
# 使用以上的命令,k8s挂载时,有点问题,可以用以下命令
ceph-fuse \
-m 192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789 \
--client_mds_namespace=howlaisi_k8s_12317_cephfs \
--name=client.howlaisi_k8s_12317_cephfs \
--conf=/etc/ceph/ceph.conf \
/mnt/test1
-o name=howlaisi_k8s_12317_cephfs,mds_namespace=howlaisi_k8s_12317_cephfs 是挂载选项,用于指定客户端用户名和MDS命名空间。
以上操作,相当于是创建两个挂载点,并挂载两个文件系统的根目录到挂载点。
4. 验证挂载
# 查看挂载点
df -h /mnt/howlaisi_k8s_12317_cephfs
df -h /mnt/howlaisi_k8s_13010_cephfs
# 测试读写
echo "Hello CephFS 1" > /mnt/howlaisi_k8s_12317_cephfs/test.txt
cat /mnt/howlaisi_k8s_12317_cephfs/test.txt
echo "Hello CephFS 2" > /mnt/howlaisi_k8s_13010_cephfs/test.txt
cat /mnt/howlaisi_k8s_13010_cephfs/test.txt
5. 配置开机自动挂载
编辑 /etc/fstab 文件:
# 添加以下行到 /etc/fstab
192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789:/ /mnt/howlaisi_k8s_12317_cephfs ceph name=howlaisi_k8s_12317_cephfs,mds_namespace=howlaisi_k8s_12317_cephfs,conf=/etc/ceph/ceph.conf,_netdev,noatime 0 2
192.168.3.41:6789,192.168.4.33:6789,192.168.4.34:6789:/ /mnt/howlaisi_k8s_13010_cephfs ceph name=howlaisi_k8s_13010_cephfs,mds_namespace=howlaisi_k8s_13010_cephfs,conf=/etc/ceph/ceph.conf,_netdev,noatime 0 2
评论区