我在 3 台物理服务器上运行了 9 个 openvz VE。我想在每台物理服务器上添加另一个 VE。这样,每台物理服务器就会运行 4 个 VE。
我使用 vzsplit -n 4 生成新参数,以使 VE 适合物理服务器的资源。我的问题是我必须进入并手动更新每个 VE conf 文件。
有没有更好的方法可以将新参数放入每个配置文件中,而无需手动编辑每个文件?甚至更好的是,是否有办法让所有配置文件都包含来自单个文件的参数?
答案1
我解决了自己的问题。我的解决方案是在集群中的所有 openvz 节点上执行以下 bash 脚本:
for VEID in
vzlist | awk'{打印$1}'| grep -v VEID; do vzctl set $VEID --applyconfig shared --save; done
该脚本从 vzlist 获取 VEID,并为每个 VEID 执行 --applyconfig
我使用 puppet 分发我的自定义 ve-shared.conf-sample,其中包含我希望在 VE 中相同的所有内容。我设置了一个 puppet Exec,每当我对 ve-shared.conf-sample 进行更改时,它都会自动执行 bash 脚本
通过这种方式,我可以通过编辑单个文件来更新在我的 openvz 集群上运行的所有 VE。
答案2
我已经有一段时间没有使用 OpenVZ 了,但您可能可以完成您想要的操作vzctl --save
并快速完成所有更改。
值得一提的是,我们从 OpenVZ 迁移到了 VMware(ESX,而不是 Server);虽然 OpenVZ 更轻量,但 VMware 更易于日常管理,并且让我们能够灵活地使用不同的内核和操作系统。如果我想在一台机器上运行 100 个简单的网络托管“VPS”帐户,OpenVZ 感觉是完美的,但对于大多数其他用途来说,它相当尴尬。
答案3
vzsplit 只是一个建议,你不需要在每次添加新虚拟机时调整所有虚拟机的所有参数
大多数障碍永远不会被触及,甚至不会接近。根据我的经验,大多数时候 privvmpages 和 oomguarpages 是唯一真正重要的参数。