如何在 Ceph 集群中挂载多个文件系统之一?

如何在 Ceph 集群中挂载多个文件系统之一?

Ceph 现在包括(实验性的)对单个存储集群中的多个文件系统的支持;但挂载选项似乎不允许指定要挂载哪个文件系统。

我已经配置了两个测试文件系统,每个文件系统都有自己的 mds 和支持池;但无法让客户端节点同时挂载它们两个;因为挂载选项只指定了一个监视器,而对于这两个监视器来说,监视器是相同的。

root@ws:~# ceph status
cluster 92ed87a5-559c-4b79-90c7-6b381374d431
 health HEALTH_OK
 monmap e7: 1 mons at {mon-jacopo=10.0.1.22:6789/0}
        election epoch 17, quorum 0 mon-jacopo
  fsmap e59: burninatorfs-1/1/1 up mediafs-1/1/1 up {[burninatorfs:0]=mds-jacopo=up:active,[mediafs:0]=mds-media=up:active}
 osdmap e404: 2 osds: 2 up, 2 in
        flags sortbitwise
  pgmap v36088: 288 pgs, 5 pools, 48411 bytes data, 40 objects
        10315 MB used, 5540 GB / 5554 GB avail
             288 active+clean

我找不到任何允许我挂载一个 ceph fs 或另一个 ceph fs 的 fstab 选项。我尝试过的任何挂载路径和选项组合的结果都是在两个点上挂载两个文件系统的未知选择。

root@jacopo:/media# cat /etc/fstab | grep ceph
mon-jacopo.burninator.net:/ /media/burninator   ceph        noshare,noatime,_netdev,name=burninator,secret=XXXX==   0 0
mon-jacopo.burninator.net:/ /media/media    ceph        noshare,noatime,_netdev,name=media,secret=YYYY==    0 0

奇怪的是,即使我通过不同的身份和秘密隔离两个文件系统的权限,它们的安装方式仍然像相同的一样。

client.burninator
    key: XXXX==
    caps: [mds] allow rw
    caps: [mon] allow r
    caps: [osd] allow rw pool=burninatorfs-data,allow rw pool=burninatorfs-metadata
client.media
    key: YYYY==
    caps: [mds] allow rw
    caps: [mon] allow r
    caps: [osd] allow rw pool=mediafs-data,allow rw pool=mediafs-metadata

允许对实际挂载的任何文件系统进行更改(尚未找到确定这一点的方法) - 并且两个挂载点都反映了结果,就像它是绑定挂载一样。我非常确定最后一部分是一个错误,因为客户端连接不应共享(noshare挂载选项),并且挂载凭据最多只能被允许修改指向“正确”文件系统的挂载。

root@jacopo:~# mount | grep ceph
mon-jacopo.burninator.net:/ on /media/burninator type ceph (rw,noatime,name=burninator,secret=<hidden>,noshare,acl,_netdev)
mon-jacopo.burninator.net:/ on /media/media type ceph (rw,noatime,name=media,secret=<hidden>,noshare,acl,_netdev)
root@jacopo:~# cd /media
root@jacopo:/media# find burninator/
burninator/
burninator/foo
root@jacopo:/media# find media/
media/
media/foo
root@jacopo:/media# mkdir media/newdir
root@jacopo:/media# touch media/newdir/1
root@jacopo:/media# touch media/newdir/2
root@jacopo:/media# rm burninator/newdir/1
root@jacopo:/media# find burninator/
burninator/
burninator/newdir
burninator/newdir/2
burninator/foo
root@jacopo:/media# find media/
media/
media/newdir
media/newdir/2
media/foo
root@jacopo:/media# 

所有节点均运行 Ubuntu 16.04 LTS,内核为 4.4.0-45-generic 或接近该版本,ceph 版本为 10.2.2(45107e21c568dd033c2f0a3107dec8f0b0e58374),由 ceph-deploy 1.5.32 安装。

答案1

读这个犯罪,您可以使用 mount 选项mds_namespace

# mount -t ceph -o mds_namespace=burninatorfs 10.0.0.1:/ /mnt/burninatorfs
# mount -t ceph -o mds_namespace=mediafs 10.0.0.1:/ /mnt/mediafs

相关内容