Ao ler este commit , você pode usar a opção 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
O Ceph agora inclui suporte (experimental) para vários sistemas de arquivos em um único cluster de armazenamento; mas as opções de montagem parecem não permitir a especificação de qual sistema de arquivos montar.
Eu configurei dois sistemas de arquivos de teste, cada um com seus próprios mds e backing pools; mas não pode obter um nó cliente para montar os dois; como as opções de montagem especificam apenas um monitor, que é o mesmo para ambos.
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
Não consigo encontrar nenhuma opção para fstab que me permita montar um ceph ou outro. O resultado de qualquer combinação de caminhos de montagem e opções que eu tentei foi uma seleção desconhecida dos dois sistemas de arquivos sendo montados em ambos os pontos.
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
Estranhamente, mesmo quando isolo as permissões para ambos os sistemas de arquivos por diferentes identidades e segredos, elas são montadas como se fossem as mesmas.
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
As alterações são permitidas para qualquer sistema de arquivos que esteja realmente montado (não foi possível determinar isso) - e ambos os pontos de montagem refletem o resultado como se fosse uma montagem de ligação. Tenho certeza que a última parte é um bug, como a conexão do cliente não deve ser compartilhada ( noshare
mount option) e as credenciais de montagem só devem ser permitidas para modificar no máximo a montagem que está apontando para o sistema de arquivos 'correto' .
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#
Todos os nós estão executando o Ubuntu 16.04 LTS, no ou próximo ao kernel 4.4.0-45-genérico, ceph versão 10.2.2 (45107e21c568dd033c2f0a3107dec8f0b0e58374) instalado pelo ceph-deploy 1.5.32.
Ao ler este commit , você pode usar a opção 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
Tags ceph