我想将一个目录从一个 OpenVZ 容器共享到另一个容器,我该怎么做?
- 建立从 /vz/private/109/common-stuff 到 /vz/private/108/common-stuff 的符号链接?
- 将 /vz/private/109/common-stuff 绑定到 /vz/root/108/common-stuff?
- 从容器与 samba 共享目录,在主机上挂载,然后将挂载绑定到 /vz/root/108/common-stuff?
答案1
OpenVZ 的优点在于让您共享目录而无需 Samba 或 NFS 开销。
要了解其工作原理,请在容器运行时绑定挂载到根目录(非私有):
mount --bind /vz/private/109/common-stuff /vz/root/108/common-stuff
为了使共享在容器重启后持久化:
- 放脚本A进入 /etc/vz/conf/108.mount
- 跑步
chmod +x /etc/vz/conf/108.mount
脚本A
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
mount -n --bind /vz/private/109/common-stuff /vz/root/108/common-stuff
答案2
Aleksandr Levchuk 提供的页面提供了以下脚本
CTID=777
echo '#!/bin/bash
. /etc/vz/vz.conf
. ${VE_CONFFILE}
SRC=/mnt/disk
DST=/mnt/disk
if [ ! -e ${VE_ROOT}${DST} ]; then mkdir -p ${VE_ROOT}${DST}; fi
mount -n -t simfs ${SRC} ${VE_ROOT}${DST} -o ${SRC}
' > /etc/vz/conf/${CTID}.mount
chmod +x /etc/vz/conf/${CTID}.mount
(http://wiki.openvz.org/Bind_mounts)
所以它和他的解决方案中的 mount --bind 不同。我已经测试了上述脚本,它工作正常。
据我所知,“SIMFS 就像是为虚拟容器预留的单独驱动器空间。它专为机器使用而设置,并防止一个容器虚拟服务器使其他容器虚拟服务器崩溃。”
因此,出于安全原因,这应该更好(再加上它在官方 openvz 文档中)。然而,评估这种隔离的性能成本可能会很有趣。