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

Proxmox 2.3 не использует скрипт монтирования

Я использую 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 или какой-либо другой файл конфигурации, который вряд ли будет перезаписан обновлениями и источником, которые, как и вы, для дополнительного упрощения.