注意
本文档适用于 Ceph 开发版本。
使用内核驱动程序挂载 CephFS
CephFS 内核驱动器是 Linux 内核的一部分。它使得 CephFS 可以作为一个常规文件系统以原生内核性能进行挂载。它是大多数用例的首选客户端。
Note
CephFS 挂载设备字符串现在使用新的语法(“v2”)。挂载辅助程序与旧语法向后兼容。内核与旧语法向后兼容。这意味着旧语法仍然可以用于使用新的挂载辅助程序和内核进行挂载。
前提条件
完成通用先决条件
遍历内核和 FUSE 挂载所需的先决条件,如上所述挂载 CephFS:前提条件页面。
挂载辅助程序是否存在?
The mount.ceph
辅助程序由 Ceph 软件包安装。辅助程序传递监控地址(monitor address(es))和 CephX 用户密钥环,节省了 Ceph 管理员在挂载 CephFS 时显式传递这些详细信息的工作量。如果辅助程序在客户端机器上不存在,则仍然可以使用内核驱动器挂载 CephFS,但只能将详细信息显式传递给mount
命令。mount.ceph
,请运行以下命令:
stat /sbin/mount.ceph
哪个内核版本?
由于内核客户端作为 Linux 内核的一部分分发(而不是作为打包的 Ceph 发布的一部分),您需要考虑在客户端节点上使用哪个内核版本。已知旧内核包含有错误的 Ceph 客户端,可能不支持较新的 Ceph 集群支持的功能。
请记住,在稳定的 Linux 发行版中的“最新”内核可能落后于 Ceph 开发发生的最新上游 Linux 内核(包括错误修复)多年。
作为粗略的指南,从 Ceph 10.x(Jewel)开始,您应该至少使用 4.x 内核。如果您绝对必须使用旧内核,您应该使用 FUSE 客户端而不是内核客户端。
如果您使用的是包含 CephFS 支持的 Linux 发行版,则此建议不适用。在这种情况下,发行商负责将修复程序回滚到他们的稳定内核。请联系您的供应商。
概要
这是通过内核驱动器挂载 CephFS 的命令的一般形式:
mount -t ceph {device-string}={path-to-mounted} {mount-point} -o {key-value-args} {other-args}
挂载 CephFS
Ceph 集群中默认启用 CephX 身份验证。使用mount
命令使用内核驱动器挂载 CephFS:
mkdir /mnt/mycephfs
mount -t ceph <name>@<fsid>.<fs_name>=/ /mnt/mycephfs
name
是我们用来挂载 CephFS 的 CephX 用户的用户名。fsid
是 Ceph 集群的 FSID,可以使用ceph fsid
command.fs_name
挂载的文件系统。内核驱动器需要一个 ceph 监控器(Monitor)的地址和 CephX 用户的密钥。例如:mount -t ceph cephuser@b3acfc0d-575f-41d3-9c91-0e7ed3dbb3fa.cephfs=/ /mnt/mycephfs -o mon_addr=192.168.0.1:6789,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
当使用挂载辅助程序时,监控主机和 FSID 是可选的。挂载辅助程序通过查找并读取 ceph 配置文件来发现这些详细信息。例如:mount.ceph
helper discovers these details by finding and reading the ceph
conf file. For example:
mount -t ceph cephuser@.cephfs=/ -o secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
Note
注意,点(.
)在字符串cephuser@.cephfs
)必须是设备字符串的一部分。
这种方法的缺点是它会在您的 shell 的命令历史记录中留下密钥。为了避免这种情况,请将密钥复制到文件中,并使用选项secretfile
instead of secret
从仓库中删除它。例如:
mount -t ceph cephuser@.cephfs=/ /mnt/mycephfs -o secretfile=/etc/ceph/cephuser.secret
确保密钥文件的权限适当(最好,600
).
可以通过用分隔地址来传递多个监控主机。/
:
mount -t ceph cephuser@.cephfs=/ /mnt/mycephfs -o
mon_addr=192.168.0.1:6789/192.168.0.2:6789,secretfile=/etc/ceph/cephuser.secret
如果禁用了 CephX,请省略任何与凭证相关的选项。例如:
mount -t ceph cephuser@.cephfs=/ /mnt/mycephfs
Note
Ceph 用户名必须作为设备字符串的一部分传递。
要挂载 CephFS 根目录的子树,请将路径附加到设备字符串:
mount -t ceph cephuser@.cephfs=/subvolume/dir1/dir2 /mnt/mycephfs -o secretfile=/etc/ceph/cephuser.secret
向后兼容性
旧语法向后兼容。
要使用内核驱动器挂载 CephFS,请运行以下命令:
mkdir /mnt/mycephfs
mount -t ceph :/ /mnt/mycephfs -o name=admin
选项-o
后面的键值参数是 CephX 凭证。name
是挂载 CephFS 的 CephX 用户的用户名。
要挂载非默认 FS(在本例中,cephfs2
),请运行以下形式的命令。这些命令用于集群具有多个文件系统的情况:
mount -t ceph :/ /mnt/mycephfs -o name=admin,fs=cephfs2
或
mount -t ceph :/ /mnt/mycephfs -o name=admin,mds_namespace=cephfs2
Note
选项mds_namespace
已弃用。在使用旧语法挂载时,请使用fs=
代替。
卸载CephFS
要卸载 Ceph 文件系统,请使用umount
命令,例如:
umount /mnt/mycephfs
提示
确保在执行此命令之前您不在文件系统目录中。
持久挂载
要将 CephFS 作为内核驱动器挂载到您的文件系统表中,请将以下内容添加到/etc/fstab
:
{name}@.{fs_name}=/ {mount}/{mountpoint} ceph [mon_addr={ipaddress},secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}] {fs_freq} {fs_passno}
例如:
cephuser@.cephfs=/ /mnt/ceph ceph mon_addr=192.168.0.1:6789,noatime,_netdev 0 0
如果未设置secret
或secretfile
如果未指定选项,挂载辅助程序将尝试在配置的密钥环之一中为给定的name
找到一个密钥。
请参阅User Management关于 CephX 用户管理和mount.ceph手册,其中列出了它识别的选项。有关故障排除信息,请参阅内核挂载调试.
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.