![强制服务器从服务器外部执行 DHCPDISCOVERY?](https://linux22.com/image/608757/%E5%BC%BA%E5%88%B6%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BB%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%A4%96%E9%83%A8%E6%89%A7%E8%A1%8C%20DHCPDISCOVERY%EF%BC%9F.png)
当我迁移虚拟机 (VM) 时,必须重新配置 VM 的网关才能与外界通信。因此,我决定重新配置 VM 的网关。如果迁移后DHCP
VM 发送了,服务器可以指示 VM 的有效网关 IP。然后,我将在迁移之前更改服务器的配置。DHCPDISCOVERY
DHCP
DHCP
如果我可以使用dhclient
或在虚拟机内运行的任何其他工具,解决方案将显而易见。但有一些限制,我无法在虚拟机下运行任何命令。我必须在外部处理虚拟机。是否有任何类型的工具可以强制虚拟机执行DHCPDISCOVERY
?还有其他潜在的解决方案吗?
附言:‘迁移’是‘实时迁移’。我想要实现的是无缝服务。
添加:我为什么会想到这个问题。也许这可以显示隐藏的要求或限制,而这些要求或限制未在我的池问题中显示。我的第一种方法是使用中央机器的 NAT。所有主机都连接到这台中央机器。通过这种方法,我可以实现我想要的。在集群中的任何机器上自由迁移。它不是真正的无缝,但在我的要求中,它已经足够了。但是使用这种方法,我无法扩展集群,并且中央机器上可能会出现严重的单点故障。所以我最近的方法是将 NAT 功能划分到每个主机。在这种方法中,我必须将每个主机的网关设置为每台机器的虚拟桥。我的服务故障问题源于此环境。如果我必须进行主机到主机的迁移怎么办?实时迁移后,我必须为虚拟机设置新的网关。因为网关信息因主机而异。接下来是我的服务器故障问题。虽然我目前正在使用 KVM 完全虚拟化(用于窗口支持)。但我也在寻找 xen 或半虚拟化解决方案。我不确定,但目前看来半虚拟化或 ovs、flud-light 可以解决这个问题。(写完这篇文章后,我意识到我应该写一个新问题。也许它更适合我的源问题)
答案1
这实际上是不可能的。也许你可以将 dhcp 租约时间设置得短一些,这样盒子就会非常频繁地执行 dhcpdiscover/request,从而最大限度地减少停机时间。
答案2
一种方法是使用 KVM 覆盖设置。您可以使用命令更改 KVM VM virsh
。要进行这些更改,请通过 virsh 编辑虚拟机的 XML 文件:
% virsh edit <domain>
以下是相关行,将 IP 替换为您的设置
<os>
<type arch='x86_64' machine='rhel6.0.0'>hvm</type>
<kernel>/var/lib/libvirt/images/vmlinuz</kernel>
<initrd>/var/lib/libvirt/images/initrd.img</initrd>
<cmdline>linux ip=192.168.1.2 netmask=255.255.255.0 gateway=192.168.1.1 dns=192.168.1.1</cmdline>
<boot dev='hd'/>
</os>