Назад | Перейти на главную страницу

Как смонтировать glusterfs внутри контейнера OpenVZ?

glusterfs использует fuse для монтирования тома glusterfsd, который отлично работает на любом аппаратном узле без виртуализации.

Но теперь я пытаюсь установить устройство внутри контейнера

glusterfs --debug -f /etc/glusterfs/glusterfs.vol /storage

и получите следующие ошибки:

fuse: failed to open /dev/fuse: Permission denied
[2009-06-20 18:36:29] D [fuse-bridge.c:2747:init] glusterfs-fuse: fuse_mount() failed with error Permission denied on mount point /storage

ls -al / dev / fuse - это

crw-rw-rw- 1 root fuse 10, 229 20. Jun 16:35 /dev/fuse

и ls -al / storage - это

drwxr-xr-x   2 root root 4096 20. Jun 17:14 storage

ядро этого HN имеет предохранитель ... uname is

2.6.18-14-fza-amd64 #1 SMP Mon Jan 5 17:36:46 UTC 2009 x86_64 GNU/Linux

Какие-либо предложения? Кто-нибудь пробовал смонтировать glusterfs внутри контейнера openvz и запустил его?

Заранее спасибо. Маркус

ну просто нашел решение самостоятельно (http://wiki.openvz.org/FUSE)

Мне просто нужно было настроить мой контейнер, выполнив в моем HN следующее:

# vzctl set $VEID --devices c:10:229:rw --save
# vzctl exec $VEID mknod /dev/fuse c 10 229

... и для завершения вам необходимо установить эти

# vzctl set $VEID --capability sys_admin:on

для экспорта тома glusterfs из контейнера OpenVZ.

в Азук инфраструктуру мы также используем OpenVZ и Glusterfs, но не даем VPS sys_admin привилегии.

Если вам неудобно отдавать sys_admin привилегии для каждого VPS, монтирующего Gluster - и, вероятно, большинство администраторов это делают - вы можете немного изменить исходный код GlusterFS, чтобы он хранил свои xattr в непривилегированном пространстве имен:

find . -regex '.*/[^/]*\.[ch]' -exec sed -i 's/"trusted\./"user./g' {} + \
    && ./configure && make

Я тестировал это с версией 1.4.0qa92, которую мы используем в производстве уже более полугода.

Другой способ надежно смонтировать его - смонтировать том GlusterFS на HN и затем связать монтирование каталога с контейнером VZ. Это можно контролировать с помощью сценариев монтирования контейнера (vps.mount или $ ctid.mount) в каталоге config.