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.