OpenVZ:在容器之间共享文件夹

OpenVZ:在容器之间共享文件夹

我想将一个目录从一个 OpenVZ 容器共享到另一个容器,我该怎么做?

  1. 建立从 /vz/private/109/common-stuff 到 /vz/private/108/common-stuff 的符号链接?
  2. 将 /vz/private/109/common-stuff 绑定到 /vz/root/108/common-stuff?
  3. 从容器与 samba 共享目录,在主机上挂载,然后将挂载绑定到 /vz/root/108/common-stuff?

答案1

OpenVZ 的优点在于让您共享目录而无需 Samba 或 NFS 开销。

要了解其工作原理,请在容器运行时绑定挂载到根目录(非私有):

mount --bind /vz/private/109/common-stuff /vz/root/108/common-stuff

为了使共享在容器重启后持久化:

  1. 脚本A进入 /etc/vz/conf/108.mount
  2. 跑步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

参考:http://wiki.openvz.org/Bind_mounts

答案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 文档中)。然而,评估这种隔离的性能成本可能会很有趣。

相关内容