强制服务器从服务器外部执行 DHCPDISCOVERY?

强制服务器从服务器外部执行 DHCPDISCOVERY?

当我迁移虚拟机 (VM) 时,必须重新配置 VM 的网关才能与外界通信。因此,我决定重新配置 VM 的网关。如果迁移后DHCPVM 发送了,服务器可以指示 VM 的有效网关 IP。然后,我将在迁移之前更改服务器的配置。DHCPDISCOVERYDHCPDHCP

如果我可以使用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>

相关内容