Como eu monto dispositivos rbd com o driver de fusível?

1

Esta é uma pergunta de acompanhamento de: Como Eu montei um dispositivo rbd de fstab que eu pedi algum tempo atrás.

Como faço para montar dispositivos rbd com o driver de fusível? (Eu não posso usar o driver do kernel do docker sem abrir muitos privilégios)

Até onde eu sei, eu crio uma entrada no arquivo fstab com algo como:

id=client.admin /mnt fuse.ceph 0 0

No entanto, não consigo ver como especificar o dispositivo de bloco rbd. Se eu rodar essa montagem, vejo um arquivo em / mnt / mariadb1 (mariadb1 é o nome do meu dispositivo rbd criado com rbd create --size 250000 mariadb1)

Como faço para montá-lo como um sistema de arquivos?

Nota: Sim, eu realmente gostaria de usar o driver rbd do kernel e montá-lo a partir do host e expô-lo ao meu contêiner docker, mas .... Estou usando o CoreOS.

Se for possível montar o sistema de arquivos no namespace de montagem do host, eu decidirei isso, mas ainda não vejo um caminho. O melhor que eu consegui é montá-lo a partir de um contêiner que tem muitos privilégios. Mas não posso compartilhar esse contêiner com --volumes-from. Eu realmente não gosto de ter este contêiner em particular com acesso total ao host.

    
por Matt 09.07.2015 / 05:38

2 respostas

3

Eu tenho que assumir que você está se referindo ao RBD-fusível ao falar sobre isso porque o ceph-fuse é um utilitário cephfs e nada a ver com o RBD.

No entanto, a premissa de sua pergunta é ainda mais quebrada porque sua compreensão do que o rbd-fuse realmente faz está incompleta.

librbd fornece um arquivo de imagem que é armazenado no Ceph. A maioria das pessoas (através de rbd map ) usa essa imagem para fornecer um dispositivo de pseudo-bloco na forma de / dev / rbd *.

A única diferença com rbd-fuse é que ele expõe seu próprio pseudo sistema de arquivos e fornece as imagens como arquivos compatíveis com POSIX, em vez de bloquear dispositivos.

Por isso, rbd-fuse não tem mais conhecimento sobre o conteúdo real do arquivo de imagem do que rbd map .

Ao invocar rbd-fuse mountpoint , todas as imagens RBD dentro do pool ficarão visíveis em mountpoint . Ele toma as opções de comando, principalmente -p se você usar um pool diferente no ceph diferente de rbd e -c se você usar um arquivo de configuração diferente de /etc/ceph/ceph . Você também pode expor imagens individuais usando -r .

O que você faz com esses arquivos é com você. Eles podem ter um sistema de arquivos escrito para eles (cuidado, pois o Linux resmunga, pois não são dispositivos de bloqueio especializados). Você pode montá-los como dispositivos de loop se um sistema de arquivos estiver presente.

$ rbd create test
# mkdir -p /rbd_images
# rbd-fuse /rbd_images
# mkfs /rbd_images/test
# mkdir -p /mnt/rbd_test
# mount /rbd_images/test /mnt/rbd_test

Deve apresentar algo ao longo das linhas da seguinte forma:

$ mount
rbd-fuse on /rbd_images type fuse.rbd-fuse (rw,nosuid,nodev)
/rbd_images/rbd_test on /mnt/rbd_test type ext4 (rw)

Se esta é a maneira correta (para o seu uso) para fazer isso, porém, é um assunto diferente. No entanto, ele pode permitir o acesso a imagens RBD que não seriam suportadas pelos sistemas krbd version.

    
por 01.11.2016 / 16:34
0

O tipo de sistema de arquivos ceph.fuse (e seu equivalente ceph-fuse manual) é usado para montar volumes cephfs. Esses são fundamentalmente diferentes dos dispositivos de bloco RADOS (RDBD).

Por um lado, uma RBD representa um dispositivo de bloco no qual um sistema host pode executar um sistema de arquivos, de maneira muito parecida com um dispositivo de bloco físico. Ceph não sabe nada sobre a estrutura do sistema de arquivos dentro do RBD. Por outro lado, o cephfs é um sistema de arquivos por si só, ou seja, o ceph gerencia arquivos e metadados individuais. Uma das conseqüências é que geralmente é possível montar uma RBD apenas uma vez, porque dois hosts que acessam o mesmo dispositivo de bloco não possuem disposições para sincronizar acessos a ela, enquanto você pode montar um cephfs muitas vezes, como um sistema de arquivos de rede.

    
por 06.08.2015 / 17:16

Tags