Opennebula VM 不保留网络配置

Opennebula VM not persisting network config

我在 Opennebula 上创建了一个带有 VNET 的 VM,过了一会儿我更改了 VNET 的参数,但这些更改在我的(物理)主机重新启动后不会在 VM 上持续存在。

我已经更改了 /var/lib/one/vms/{$VM_ID}/context.sh 文件,但仍然无法坚持更改。

你知道它可能是什么吗?

我在 Debian8 主机上使用 OpenNebula 和 KVM。

是的,问题是当前版本的 OpenNebula 不支持此功能。即将推出的5.0版本将支持此功能。

一段时间后,我自己弄明白了如何做到这一点。

似乎在启动 VM 时,文件 /var/lib/one/datastores/0/$VM_ID/disk.1 附加为 /dev/sr0

在启动过程中 /usr/sbin/one-contextd 安装这个单元并使用其中的变量,它们通常如下所示:

DISK_ID='1'
ETH0_IP='192.168.168.217'
ETH0_MAC='02:00:c0:a8:a8:d9'
ETH0_DNS='192.168.168.217'
ETH0_GATEWAY='192.168.168.254'

此信息用于导出 ENV 变量(导出的变量可以在 /tmp/one_env 上找到),脚本 /etc/one-context.d/00-network 使用这些变量来设置网络配置。

OpenNebula 不提供在创建 VM 后替换此配置的简单方法,但您可以执行以下操作:

  • 编辑 /var/lib/one/datastores/0/$VM_ID/disk.1 并制作所需的 变化
  • 重启opennebula服务
  • 重启虚拟机

希望这对某人有用:)

您可以关闭 VM 并在 VM 的 conf 选项卡中更改大部分参数(不是网络参数,因为它们链接到 vnet)。

仅对于特定于网络的更改,您只需登录到 VM 并将文件 /etc/one-context.d/00-network 移动到其他某个地方以及您对 VM 的网络配置所做的更改不会被网络上下文脚本覆盖。