前置条件
在客户机挂载CephFS之前,请确保客户端主机(挂载CephFS的主机)具有Ceph配置文件的副本(即 ceph.conf)和有权访问MDS的CephX用户的密钥环。这两个文件都必须已经存在于Ceph MON所在的主机上。
1、为客户端主机生成一个最小的conf文件,并将其放置在标准位置:
# on client host
mkdir -p -m 755 /etc/ceph
ssh {user}@{mon-host} "sudo ceph config generate-minimal-conf" | sudo tee /etc/ceph/ceph.conf
#确保conf具有适当的权限:
chmod 644 /etc/ceph/ceph.conf
///客户端主机我这里选择的是ceph04,因为ceph04上已经安装了ceph和同步了ceph.conf文件,上面的操作步骤我就省略了
2、创建一个CephX用户并获取其密钥
[ceph@ceph04 ~]$ ssh ceph@ceph01 "sudo ceph fs authorize cephfs client.foo / rw" | sudo tee /etc/ceph/ceph.client.foo.keyring
[client.foo]
key = AQB3ibJec7gDABAAXWma/pEcOX/huQ1vlJQ67g==
#确保密钥环具有适当的权限:
[ceph@ceph04 ~]$ sudo chmod 600 /etc/ceph/ceph.client.foo.keyring
使用内核驱动程序挂载
安装助手:mount.ceph helper由Ceph软件包安装。帮助程序传递监视器地址和CephX用户密钥环,从而自动保存Ceph管理员在挂载CephFS时显式传递这些详细信息的工作。如果客户端计算机上没有该帮助程序,则仍可以使用内核挂载CephFS,但可以通过将这些详细信息显式传递给mount 命令来安装。要检查系统上是否存在它,请执行以下操作:
[ceph@ceph04 ~]$ stat /sbin/mount.ceph
内核版本:从Ceph 10.x(Jewel)开始,您应该至少使用4.x内核。如果绝对必须使用旧的内核,则应使用fuse客户端而不是内核客户端。
在Ceph集群上,默认情况下启用CephX。使用mount命令通过内核驱动程序挂载CephFS:
[ceph@ceph04 ~]$ sudo mkdir /mnt/mycephfs
[ceph@ceph04 ~]$ sudo mount -t ceph :/ /mnt/mycephfs -o name=foo
# :/是cephfs的根目录, -o 的是CephX凭据; name是我们用来挂载CephFS的CephX用户的用户名。
#对于上述命令,mount.ceph帮助程序通过查找和读取Ceph conf文件和密钥环自动找出这些详细信息。如果您在运行mount命令的主机上没有这些文件,也可以自己传递以下详细信息
[ceph@ceph04 ~]$ mount -t ceph ceph01:6789,ceph02:6789,ceph03:6789:/ /mnt/mycephfs -o name=foo,secret=AQB3ibJec7gDABAAXWma/pEcOX/huQ1vlJQ67g==
#要挂载CephFS根目录的子树,请将路径附加到/后面,例:
mount -t ceph :/subvolume/dir1/dir2 /mnt/mycephfs -o name=fs
#卸载CEPHFS
umount /mnt/mycephfs
使用FUSE挂载cephfs
FUSE的性能相对内核挂载可能较低,但是FUSE客户端可以更易于管理,尤其是在升级CephFS时。
#查看一下客户端主机上fuse有没有安装了,没有安装的看下可安装的软件包
[ceph@ceph04 ~]$ yum info ceph-fuse
#安装
[ceph@ceph04 ~]$ sudo yum install ceph-fuse -y
#如果不是以root用户使用FUSE来安装Ceph,则需要在/etc/fuse.conf把user_allow_other注释去掉
[ceph@ceph04 ~]$ cat /etc/fuse.conf
# mount_max = 1000
user_allow_other
要通过FUSE挂载Ceph文件系统,请使用以下ceph-fuse命令:
#Option -id传递了我们打算用于安装CephFS的密钥环的CephX用户的名称
[ceph@ceph04 ~]$ sudo ceph-fuse --id foo /mnt/mycephfs/
#当然也可以使用 -n 来挂载
[ceph@ceph04 ~]$ sudo ceph-fuse -n client.foo /mnt/mycephfs/
#如果在标准位置没有密钥环,可以通过-k指定密钥环所在的位置
[ceph@ceph04 ~]$ sudo ceph-fuse --id foo -k /etc/ceph/ceph.client.foo.keyring /mnt/mycephfs/
#也可以通过MON的套接字
[ceph@ceph04 ~]$ sudo ceph-fuse --id foo -m ceph01:6789 /mnt/mycephfs
#还可以在CephFS中挂载特定目录,而不是在本地FS上挂载CephFS的根目录:
sudo ceph-fuse --id foo -r /path/to/dir /mnt/mycephfs
#如果Ceph集群上有多个FS,请使用该选项 --client_fs来安装非默认FS:
sudo ceph-fuse --id foo --client_fs mycephfs2 /mnt/mycephfs2
#卸载cephfs
[ceph@ceph04 ~]$ sudo umount /mnt/mycephfs/
文档更新时间: 2020-05-12 16:13 作者:子木