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

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

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

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

到目前为止,一切都很好?

那么当物理机器发生故障时会发生什么?这是否会导致许多应用程序都因一台机器而发生故障?

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

答案1

具体情况取决于您使用的虚拟化解决方案,但其理念是您拥有一个虚拟农场,其中有许多物理主机,每个主机都有多个虚拟机。然后您可以使用一些通过不再需要为每个虚拟机配备一个物理主机,您可以获得更高的效率,以便在物理机器发生故障时您有足够的开销来弥补。

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

这就是为什么你有时会看到一台服务器被虚拟化为一个场中的一台物理主机。你可能不会获得任何硬件效率(甚至可能失去虽然这可能会影响一些性能),但您可以通过管理一致性和内置高可用性来弥补这一点。

答案2

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

尽管如此,大多数平台都为单个虚拟机提供高可用性解决方案。有时,系统会构建多个节点,以防止某个节点发生故障时服务中断。

如果两个 VM 节点组成高可用性服务,则可以配置虚拟机管理程序以确保两个节点不依赖于相同的物理基础架构(容错)。这可能不仅仅是物理服务器容错,还包括不同的网络路径,直至地理位置分散。

答案3

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

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

你应该读一下openstack HA 文档了解更多信息。

答案4

关于您的问题 - 是的,您将失去对此物理主机内所有机器的访问权限。当然,这取决于哪个组件发生故障。如果是磁盘 - 这是一种问题,如果是主板 - 那就容易多了。一般来说,硬件恢复更容易,因为虚拟机管理程序与硬件无关。目前,您可以使用许多特定于供应商的技术来获得高可用性服务。

资源池(vmware)-是不是能够聚合多个物理主机资源(cpu、内存等),正如上面有人提到的那样,所以如果你有 2 个物理主机(比如说 1CPU 四核,没有超线程 - 每个 8GBRAM),它将不是那里可以有 5vCPU-12Gb VM。资源池是逻辑上的,它们不能创建超级计算系统。目前,这是一种控制资源利用率的方法。

可用性(vmware)-可以使用以下技术高可用性(HA)它允许你进行自动恢复(根据我的经验1-2分钟) 自动备份集群中所有虚拟机,如果您使用存储阵列 (NAS、iSCSI、FC) 并将所有虚拟机文件保存在那里。此外,HA 仅在 CPU、RAM、主板发生故障时才起作用,很明显,如果存储阵列发生故障,它将无法工作。为了防止 RAID/控制器故障,人们使用复制、存储 LUN 镜像等。

如果无法在 1-2 分钟内恢复,可以使用以下技术容错(FT)通过保留已配置虚拟机的影子(运行)副本,允许在发生故障时实现虚拟机零停机。但这项技术也有很多限制 - 具有多个 vCPU 的虚拟机的容错问题尚未完全解决。

总的来说,每个解决方案都取决于您的目标。

相关内容