Как я монтирую rbd устройства с драйвером предохранителя?

Это - последующий вопрос от: Как я монтирую rbd устройство от fstab, Который я спросил некоторое время назад.

Как я монтирую rbd устройства с драйвером предохранителя? (Я не могу использовать драйвер ядра от докера, не открывая много полномочий),

Насколько я могу сказать, что создаю запись в fstab файл с чем-то как:

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

Однако я не вижу, как указать rbd блочное устройство. Если я выполняю это монтирование, я вижу, файл в/mnt/mariadb1 (mariadb1 название моего rbd устройства, созданного с rbd, создают - размер 250 000 mariadb1),

Как я на самом деле монтирую его как файловую систему?

Примечание: Да я действительно хотел бы использовать ядро rbd драйвер и смонтировать его от хоста и затем выставить его моему контейнеру докера, но.... Я использую CoreOS.

Если бы возможно смонтировать, что файловая система в хосте монтирует пространство имен, я согласился бы на это, но вперед еще не вижу путь. Лучшее, которым я управлял, должно смонтировать его от контейнера, который имеет много полномочий. Но я не могу совместно использовать тот контейнер с - объемы - от. Я действительно не представляю себе иметь этот конкретный контейнер с полным доступом к хосту.

1
задан 13 April 2017 в 15:14
2 ответа

Я должен предположить, что вы имеете в виду RBD-fuse когда говорите об этом, потому что ceph-fuse - это утилита cephfs и не имеет ничего общего с RBD.

Однако предпосылка вашего вопроса нарушается еще больше, потому что ваше понимание того, что на самом деле делает rbd-fuse , является неполным.

librbd предоставляет вам файл образа, который хранится в Ceph. Большинство людей (через rbd map ) используют этот образ для создания псевдоблочного устройства в форме /dev/rbd*.

. Единственное отличие от rbd-fuse в том, что он предоставляет свою собственную псевдо-файловую систему и предоставляет изображения в виде простых файлов, совместимых с POSIX, в отличие от блочных устройств.

Следовательно, rbd-fuse знает о фактическом содержимом файла изображения не больше, чем rbd map делает.

При вызове rbd-fuse mountpoint любые образы RBD внутри пула будут видны в пределах mountpoint . Он принимает параметры команды, особенно -p , если вы используете другой пул в ceph, кроме rbd и -c , если вы используете другой файл конфигурации, отличный от / etc / ceph / ceph . Вы также можете экспонировать отдельные изображения с помощью -r .

Что делать с этими файлами, зависит от вас. Им может быть записана файловая система (имейте в виду, что Linux будет ворчать, поскольку они не являются специализированными блочными устройствами). Вы можете монтировать их как устройства петли, если присутствует файловая система.

$ 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

Должен представлять что-то вроде следующего:

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

Является ли это правильным способом (для вашего использования), это другой вопрос. Однако он может предоставить вам доступ к изображениям RBD, которые в противном случае не поддерживались бы вашей системой версия krbd .

3
ответ дан 3 December 2019 в 18:38

Тип файловой системы ceph.fuse (и его ручной эквивалент ceph-fuse) используется для монтирования томов cephfs. Они принципиально отличаются от блочных устройств RADOS (RBD).

С одной стороны, RBD представляет собой блочное устройство, на котором хост-система может запускать файловую систему, как это было бы с физическим блочным устройством. Ceph ничего не знает о структуре файловой системы внутри RBD. С другой стороны, cephfs - это самостоятельная файловая система, то есть ceph управляет отдельными файлами и метаданными. Одним из последствий является то, что вы обычно можете смонтировать RBD только один раз, потому что два хоста, обращающиеся к одному и тому же блочному устройству, не имеют никаких условий для синхронизации доступа к нему, тогда как вы можете смонтировать cephfs много раз, как сетевая файловая система.

0
ответ дан 3 December 2019 в 18:38

Теги

Похожие вопросы