我正在使用 libvirt 和 kvm 来虚拟化我的服务器。我将 libvirt 配置为在 bridge-network-interface 上启动 dhcp-server 以提供 vm 的 ips。每个 VM 总是根据其 mac 获得相同的 ip,配置如下:
<dhcp>
<range start='10.1.1.2' end='10.1.1.254' />
<host mac='54:52:00:21:01:ba' name='virstvm' ip='10.1.1.10' />
<host mac='00:16:36:2d:71:f9' name='secvm' ip='10.1.1.20' />
</dhcp>
问题:每当我向 dhcp 部分添加新主机时,我都必须重新启动 libvirt-bin,它会重新启动我所有的 vm。这不能成为解决方案,因为这意味着每次我添加新服务器时都会停机。有解决办法吗?
virsh 中添加的net-update命令应该允许 dhcp-host 更新而无需重新启动虚拟网络(我还没有测试过)。
男人 virsh:
以下过程适用于我的 libvirt 版本:Ubuntu 10.04.4 LTS 主机上的 0.7.5-5ubuntu27:
这也适用于默认网络之外的其他网络。只需将示例中的单词 default 替换为网络名称即可。
@pefu 的解决方案也适用于 CentOS 6.4!
使用
net-edit
invirsh
不会更新 XML 文件,/var/lib/libvirt/network/default.xml
也不会更改正在运行的网络配置的状态。即使在重新启动后重新运行
net-edit
也会显示编辑后的版本,但它只是没有加载!将其导出为真正的 XML 文件,编辑和重新加载它就可以了!
我认为 libvirt 使用 dnsmaq 作为其 dhcp 服务器。也许你可以重新启动 dnsmasq 一切都会好起来的?
在邮件列表上讨论后,我发现:目前这根本不可能!