【问题标题】:Opennebula VM not persisting network configOpennebula VM 没有持久化网络配置
【发布时间】:2016-05-16 16:16:20
【问题描述】:
我在 Opennebula 上创建了一个带有 VNET 的虚拟机,一段时间后我更改了 VNET 的参数,但在我的(物理)主机重新启动后,这些更改不会在虚拟机上持续存在。
我已经更改了 /var/lib/one/vms/{$VM_ID}/context.sh 文件,但仍然无法持久保存更改。
你知道它可能是什么吗?
我在 Debian8 主机上使用带有 KVM 的 OpenNebula。
【问题讨论】:
标签:
networking
kvm
opennebula
【解决方案1】:
是的,问题是当前版本的 OpenNebula 不支持此功能。这将在即将发布的 5.0 版本中得到支持。
【解决方案2】:
一段时间后,我自己想出了如何做到这一点。
好像在启动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服务
- 重启虚拟机
希望这对某人有用:)
【解决方案3】:
您可以关闭 VM 并在 VM 的 conf 选项卡中更改大部分参数(不是网络参数,因为它们链接到 vnet)。
仅对于特定于网络的更改,您只需登录到 VM 并将文件 /etc/one-context.d/00-network 移动到其他地方,您对 VM 网络配置的更改就会成功'不会被网络上下文脚本覆盖。