Проблема с монтированием устройств (каталогов) в OpenVZ 7

С выходом новой версии OpenVZ 7 появилась проблема с монтирование устройств (или каталогов) в контейнеры (и возможно виртуальные машины).

При попытке смонтировать устройство на физическом сервере в контейнер, выдавалась сообщение:

mount: /dev/md0 is already mounted or /data busy

Изначально я искал проблему совсем не в том месте и не в том направлении — https://unix-garage.tk/?p=396, но потом я стал умнее и начал гуглить правильно, и проблему решил.

Для начала. О «проблеме» было известно ранее и это не проблема, а фишка такая. Если я верно понял, то механизм монтирования чего-либо с хост машины в контейнер — это функиция Shared Folders. Об этом я узнал их материала — https://habr.com/ru/post/309758/. В этом же материала я взял скрипт и положил его в /etc/vz/conf/vps.mount. Содержание:

#!/bin/bash
. /etc/vz/vz.conf
. ${VE_CONFFILE}
SRC=/dev/md123
DST=/stg
if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi
mount -n -t ext4 ${SRC} ${VE_ROOT}${DST} -o ${SRC}
В оригинале в скрипте было simfs, я заменил на ext4, потому что иначе у меня не работало.

Если не ознакомились с ссылкой выше, то поясню, что данный скрипт монтирует SRC в DST во все контейнеры при их старте без исключения. Важный момент, что скрипт должен иметь название именно vps.mount и никак иначе, потому что иначе не работает. Об этом есть подтверждение в официальной доке к Virtuozzo.

Этот скрипт я испытал на openvz-iso-7.0.10-252.iso с контейнерами simfs и ploop, с ОС debian 8 и 9. На виртуальных машинах не пробовал.

Из документации к openvz можно взять информацию о скрипте, которым производится монтирование — https://wiki.openvz.org/Bind_mounts. Обращу внимание bind. Не совсем разобрался связано это или нет, но нашёл вариант монтирование на форуме — https://forum.openvz.org/index.php?t=msg&goto=52632&S=ebba623b6803642842aa8e6ea0a15d80. Этот вариант выглядит вот так:

mount --bind /backup/openvz/vmbackup/ /vz/root/c507428f-75d1-4ba6-b0ae-15424855b765/backup/

Таким способом можно смонтировать только один каталог и только в один контейнер. Неудобно, непрактично, отваливается при перезагрузке, но если вдруг вариант со скриптом не прокатывает, а очень надо, то это вариант. Только с этим вариантом у меня возникли некоторые непонятки, были проблемы с остановкой и запуском контейнера, но решилось всё поиском pid-в занятых в монтирование каталога к контейнеру и мочилове их kill -9

Добавить комментарий