Proxmox 2.3不使用装载脚本

我正在运行proxmox 2.3

由于我在新服务器上安装了proxmox,所以我绝对不能在容器上使用mount和unmount脚本,我不知道为什么。 Proxmox只是不读这些脚本。

以下是两个具有+ 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.mount:

 #!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} mount --bind /mnt/share /var/lib/vz/root/103/mnt 

103.umount:

 #!/bin/bash . /etc/vz/vz.conf . ${VE_CONFFILE} umount /var/lib/vz/root/103/mnt/ exit 0 

如果我重新启动竞争者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 ..如果我input的是conterner,目录“共享”没有安装。

所以我直接在我的shell中尝试命令行:

 mount --bind /mnt/share /var/lib/vz/root/103/mnt 

它工作。 我也试过“mount -n -bind”等等东西…我用完了想法。

所以,如果你有什么build议,我可以解决这个问题。 谢谢!

由于在Proxmox论坛上也提出了同样的问题, 所以我在那里插话 ,但为了帮助这里的其他人,我想在这里提到我的回答。

这篇文章的要点是你的系统可能没有正确设置脚本被发现,更不用说了。 具体来说, /etc/vz/conf目录应该是/etc/pve/openvz一个符号链接,因为Proxmox也存储了你的虚拟机configuration文件,所以似乎并不是这样(基于ls的输出上面给出…)。 将脚本移动到/etc/pve/openvz应该可以解决问题,删除/etc/vz/conf并将其replace为/etc/pve/openvz的符号链接可以帮助您将事情保持在自己的头上。

这是我使用,它似乎工作:

在146.mount:

 #! /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,以便它们始终安装在VM主机上。

我计划通过从文件的基本名称计算VEID来泛化,但在完成该工作之前,已经从使用OpenVZ转移到了KVM。 像这样的东西可能会工作:

 VEID=`basename $0 .mount` 

并允许使用完全相同的挂载文件的所有VZ,但还没有经过我的testing。

也许也可以把SRC和MPS放在/etc/vz/vz.conf或其他一些configuration文件中,不会被更新和源代码覆盖,就像你在做额外的简化一样。