Это - последующий вопрос от: Как я монтирую rbd устройство от fstab, Который я спросил некоторое время назад.
Как я монтирую rbd устройства с драйвером предохранителя? (Я не могу использовать драйвер ядра от докера, не открывая много полномочий),
Насколько я могу сказать, что создаю запись в fstab файл с чем-то как:
id=client.admin /mnt fuse.ceph 0 0
Однако я не вижу, как указать rbd блочное устройство. Если я выполняю это монтирование, я вижу, файл в/mnt/mariadb1 (mariadb1 название моего rbd устройства, созданного с rbd, создают - размер 250 000 mariadb1),
Как я на самом деле монтирую его как файловую систему?
Примечание: Да я действительно хотел бы использовать ядро rbd драйвер и смонтировать его от хоста и затем выставить его моему контейнеру докера, но.... Я использую CoreOS.
Если бы возможно смонтировать, что файловая система в хосте монтирует пространство имен, я согласился бы на это, но вперед еще не вижу путь. Лучшее, которым я управлял, должно смонтировать его от контейнера, который имеет много полномочий. Но я не могу совместно использовать тот контейнер с - объемы - от. Я действительно не представляю себе иметь этот конкретный контейнер с полным доступом к хосту.
Я должен предположить, что вы имеете в виду 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
.
Тип файловой системы ceph.fuse (и его ручной эквивалент ceph-fuse) используется для монтирования томов cephfs. Они принципиально отличаются от блочных устройств RADOS (RBD).
С одной стороны, RBD представляет собой блочное устройство, на котором хост-система может запускать файловую систему, как это было бы с физическим блочным устройством. Ceph ничего не знает о структуре файловой системы внутри RBD. С другой стороны, cephfs - это самостоятельная файловая система, то есть ceph управляет отдельными файлами и метаданными. Одним из последствий является то, что вы обычно можете смонтировать RBD только один раз, потому что два хоста, обращающиеся к одному и тому же блочному устройству, не имеют никаких условий для синхронизации доступа к нему, тогда как вы можете смонтировать cephfs много раз, как сетевая файловая система.