3.6. 将 Ceph 文件系统挂载为内核客户端
您可以将 Ceph 文件系统 (CephFS) 挂载为内核客户端,也可以手动挂载或在系统引导时自动挂载。
除了 Red Hat Enterprise Linux 外,还允许在其他 Linux 发行版上运行的客户端,但不受支持。如果在 CephFS 元数据服务器或存储群集的其他部分使用这些客户端,红帽会解决这些问题。如果发现原因在客户端,则该问题必须由 Linux 发行版的内核供应商解决。
先决条件
- 对基于 Linux 的客户端节点的根级别访问权限.
- Ceph 监控节点的根级别访问权限.
- 现有的 Ceph 文件系统.
流程
配置客户端节点,以使用 Ceph 存储群集。
启用 Red Hat Ceph Storage Tools 存储库:
Red Hat Enterprise Linux 8
[root@client ~]# subscription-manager repos --enable=rhceph-5-tools-for-rhel-8-x86_64-rpms
Red Hat Enterprise Linux 9
[root@client ~]# subscription-manager repos --enable=rhceph-5-tools-for-rhel-9-x86_64-rpms
安装
ceph-common
软件包:[root@client01 ~]# dnf install ceph-common
在监控节点上登录到 Cephadm shell:
示例
[root@host01 ~]# cephadm shell
将 Ceph 客户端密钥环从 Ceph 监控节点复制到客户端节点:
语法
scp /ceph.client.ID.keyring root@CLIENT_NODE_NAME:/etc/ceph/ceph.client.ID.keyring
将 CLIENT_NODE_NAME 替换为 Ceph 客户端主机名或 IP 地址。
示例
[ceph: root@host01 /]# scp /ceph.client.1.keyring root@client01:/etc/ceph/ceph.client.1.keyring
将 Ceph 配置文件从 Ceph 监控节点复制到客户端节点:
语法
scp /etc/ceph/ceph.conf root@CLIENT_NODE_NAME:/etc/ceph/ceph.conf
将 CLIENT_NODE_NAME 替换为 Ceph 客户端主机名或 IP 地址。
示例
[ceph: root@host01 /]# scp /etc/ceph/ceph.conf root@client01:/etc/ceph/ceph.conf
在客户端节点中,为配置文件设置适当的权限:
[root@client01 ~]# chmod 644 /etc/ceph/ceph.conf
- 选择 自动 或 手动 挂载.
手动挂载
在客户端节点上创建挂载目录:
语法
mkdir -p MOUNT_POINT
示例
[root@client01 ~]# mkdir -p /mnt/cephfs
挂载 Ceph 文件系统.要指定多个 Ceph 监控地址,在
mount
命令中使用逗号将它们分隔,指定挂载点,并设置客户端名称:注意自 Red Hat Ceph Storage 4.1 起,
mount.ceph
可以直接读取密钥环文件。因此,不再需要一个 secret 文件。只需使用name=CLIENT_ID
指定客户端 ID,mount.ceph
将找到正确的密钥环文件。语法
mount -t ceph MONITOR-1_NAME:6789,MONITOR-2_NAME:6789,MONITOR-3_NAME:6789:/ MOUNT_POINT -o name=CLIENT_ID,fs=FILE_SYSTEM_NAME
示例
[root@client01 ~]# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/cephfs -o name=1,fs=cephfs01
注意您可以配置 DNS 服务器,以便单个主机名解析为多个 IP 地址。然后,您可以将该单一主机名与
mount
命令配合使用,而不必提供逗号分隔的列表。注意您还可以将 monitor 主机名替换为字符串
:/
和mount.ceph
将读取 Ceph 配置文件,以确定要连接的 monitor。注意您可以将
nowsync
选项设置为在 Red Hat Ceph Storage 集群上异步执行文件创建和删除。通过避免这些系统调用的往返延迟而不会影响一致性,这提高了某些工作负载的性能。nowsync
选项需要带有 Red Hat Enterprise Linux 8.4 或更高版本的内核客户端。示例
[root@client01 ~]# mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/cephfs -o nowsync,name=1,fs=cephfs01
验证文件系统是否已成功挂载:
语法
stat -f MOUNT_POINT
示例
[root@client01 ~]# stat -f /mnt/cephfs
自动挂载
在客户端主机上,创建用于挂载 Ceph 文件系统的新目录。
语法
mkdir -p MOUNT_POINT
示例
[root@client01 ~]# mkdir -p /mnt/cephfs
编辑
/etc/fstab
文件,如下所示:语法
#DEVICE PATH TYPE OPTIONS MON_0_HOST:PORT, MOUNT_POINT ceph name=CLIENT_ID, MON_1_HOST:PORT, ceph.client_mountpoint=/VOL/SUB_VOL_GROUP/SUB_VOL/UID_SUB_VOL, fs=FILE_SYSTEM_NAME, MON_2_HOST:PORT:/q[_VOL_]/SUB_VOL/UID_SUB_VOL, [ADDITIONAL_OPTIONS]
第一列 设置 Ceph monitor 主机名和端口号。
第二列 设置挂载点
第三列为 CephFS 设置文件系统类型,本例中为
ceph
。第四列 设置各种选项,如分别使用
name
和secretfile
选项的用户名和机密文件。您还可以使用ceph.client_mountpoint
选项设置特定的卷、子卷组和子卷。设置
_netdev
选项,以确保在网络子系统启动后挂载文件系统,以防止挂起和网络问题。如果您不需要访问时间信息,则设置noatime
选项可提高性能。将第五个和第六个列设为零。
示例
#DEVICE PATH TYPE OPTIONS DUMP FSCK mon1:6789, /mnt/cephfs ceph name=1, 0 0 mon2:6789, ceph.client_mountpoint=/my_vol/my_sub_vol_group/my_sub_vol/0, mon3:6789:/ fs=cephfs01, _netdev,noatime
Ceph 文件系统将挂载到下一次系统启动时。
注意自 Red Hat Ceph Storage 4.1 起,
mount.ceph
可以直接读取密钥环文件。因此,不再需要一个 secret 文件。只需使用name=CLIENT_ID
指定客户端 ID,mount.ceph
将找到正确的密钥环文件。注意您还可以将 monitor 主机名替换为字符串
:/
和mount.ceph
将读取 Ceph 配置文件,以确定要连接的 monitor。
其它资源
-
请参阅
mount(8)手册页
。 - 如需了解有关创建 Ceph 用户的更多详细信息,请参见 Red Hat Ceph Storage Administration Guide 中的 Ceph user management 部分。
- 详情请参阅 Red Hat Ceph Storage File System Guide 中的 Creating a Ceph File System 部分。