当物理机在虚拟环境中出现故障时会发生什么?

She*_*rif 12 virtualization cloud cloud-computing virtual-machines hypervisor

我刚开始使用虚拟化,所以请耐心等待。

在虚拟环境中,应用程序在管理程序层中运行。因此,一台物理机上可以有许多运行多个应用程序的虚拟机。

到现在为止还挺好?

那么当物理机出现故障时会发生什么?这不会使许多应用程序全部从一台机器上失败吗?

我正在寻找使用OpenStack开发私有云,但我想首先完全了解虚拟化。

Joe*_*oel 14

具体取决于您使用的确切虚拟化解决方案,但其想法是您有一个虚拟场,其中有许多物理主机,每个主机都有多个虚拟机。然后,您可以利用不需要为每个 VM 配备一个物理主机而获得的一些效率,这样您就有足够的开销来应对物理机出现故障的情况。

此外,您可以在公共(冗余)SAN 上为每个 VM 定位 VHD。每个物理主机上的管理程序可以设置为相互通信并共享来自不同 VM 的内存。存在一些延迟,大部分内存将由磁盘支持,但如果其中一台物理主机出现故障,您甚至不需要等待来自该主机的 VM 重新启动。相反,这些 VM 将自动分布在其余主机之间。最终目标是这些机器将从几乎停止的地方恢复,几乎没有停机时间。从某种意义上说,您的所有 VM 已经在至少两个物理主机上运行。在实践中,现在虚拟机管理程序一次只能在一台机器上进行这种迁移,当他们知道它会在主机出现故障之前发生时……但请不要误会:硬件故障时的即时迁移是所有主要管理程序。

这就是为什么您有时会看到服务器虚拟化为场中的单个物理主机的原因。您可能不会获得任何硬件效率(您甚至可能会损失一些性能),但您可以在管理一致性和内置高可用性方面进行弥补。


bla*_*ghw 13

如果主机出现任何故障,在物理主机上运行的所有虚拟服务器都将脱机。

也就是说,大多数平台都为单个 VM 提供了高可用性解决方案。有时,系统由多个节点构建,以防止在一个节点出现故障时服务中断。

如果两个 VM 节点组成一个高可用服务,则可以配置管理程序以确保两个节点不依赖于相同的物理基础设施(容错)。这可能不仅仅是物理服务器容错,包括不同的网络路径,一直到地理上不同的位置。

  • 例如,AWS 会根据服务跨可用区(物理区域)复制服务,以防该区域发生自然灾害而导致物理机中断。 (2认同)

Hen*_*gel 5

您的假设是正确的,即如果物理机出现故障,虚拟机也会不可用。

但是 openstack 可以解决这个问题,并在另一台服务器上启动发生故障的物理服务器的虚拟机,或者您可以使用已经分发的管理程序系统,我认为 vsphere 可以做到这一点。

您应该阅读有关 HAopenstack 文档以获取更多信息。