Я использую proxmox 2.3
Поскольку я установил proxmox на новый сервер, я определенно не могу использовать скрипт монтирования и размонтирования в контейнере, и я не знаю почему. Proxmox просто не читает эти сценарии.
Вот 2 скрипта с правами + x:
[root@prox /etc/vz/conf]$ l total 16K
-rwxr-xr-x 1 root root 180 May 6 03:03 100.mount
-rwxr-xr-x 1 root root 145 May 6 02:44 100.umount
-rwxr-xr-x 1 root root 97 May 11 19:00 103.mount
-rwxr-xr-x 1 root root 89 May 11 18:52 103.umount
Я максимально упростил скрипты.
103. крепление:
#!/bin/bash
. /etc/vz/vz.conf
. ${VE_CONFFILE}
mount --bind /mnt/share /var/lib/vz/root/103/mnt
103. количество:
#!/bin/bash
. /etc/vz/vz.conf
. ${VE_CONFFILE}
umount /var/lib/vz/root/103/mnt/
exit 0
Если я перезапущу Contener 103:
[root@prox /etc/vz/conf]$ vzctl --verbose restart 103
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Running container script: /etc/vz/dists/scripts/debian-add_ip.sh
Setting CPU units: 1000
Setting CPUs: 1
Running container script: /etc/vz/dists/scripts/debian-set_hostname.sh
Running container script: /etc/vz/dists/scripts/set_dns.sh
Running container script: /etc/vz/dists/scripts/set_ugid_quota.sh
Configure veth devices: veth103.0
Adding interface veth103.0 to bridge vmbr2 on CT0 for CT103
Container start in progress...
[root@prox /etc/vz/conf]$
Здесь мы видим, что proxmox не читал 103.mount .. Если я вхожу в conterner, каталог «share» не монтируется.
Итак, я попробовал командную строку прямо в своей оболочке:
mount --bind /mnt/share /var/lib/vz/root/103/mnt
... и это работает. Я также пробовал "mount -n --bind" и другие вещи ... Идеи кончились.
Итак, если у вас есть предложения, как я могу это исправить. Спасибо!
Поскольку тот же вопрос задавали и на форумах Proxmox, Я вмешался туда, но чтобы помочь другим здесь, я также хотел упомянуть здесь свой ответ.
Суть сообщения в том, что ваша система может быть неправильно настроена для поиска скриптов, а тем более вызываемых. В частности, /etc/vz/conf
каталог должен быть символической ссылкой на /etc/pve/openvz
- что, поскольку именно здесь Proxmox также хранит ваши файлы конфигурации виртуальной машины, похоже, не так (на основе вывода ls
приведено выше ...). Перемещение скриптов в /etc/pve/openvz
должен сделать свое дело, и удаление /etc/vz/conf
и заменив его символической ссылкой на /etc/pve/openvz
может помочь вам держать все в своей голове.
Это то, что я использую, и, похоже, это работает:
В 146. крепление:
#! /bin/bash
VEID=146
SRC=/mnt/nfs
VE_ROOT=/var/lib/vz/root/${VEID}
MPS="/u/tools /u/homes /u/releases /f"
for mp in $MPS; do
if [ ! -e ${VE_ROOT}${mp} ]; then mkdir -p ${VE_ROOT}${mp}; fi
mount -n --bind ${SRC}${mp} ${VE_ROOT}${mp} -o ${SRC}
done
MPS перечисляет точки монтирования, которые смонтированы в / mnt / nfs (SRC), они будут привязаны к корню контейнера. Я добавил их непосредственно в / etc / fstab, чтобы они всегда монтировались на хосте виртуальной машины.
Я планировал обобщить это, вычислив VEID из базового имени файла, но перед завершением этой работы отказался от использования OpenVZ в пользу KVM. Что-то вроде этого, вероятно, сработает:
VEID=`basename $0 .mount`
и позволил бы использовать один и тот же файл монтирования для всех VZ, но я не тестировал его.
Возможно, также можно было бы поместить SRC и MPS в /etc/vz/vz.conf или какой-либо другой файл конфигурации, который вряд ли будет перезаписан обновлениями и источником, которые, как и вы, для дополнительного упрощения.