我一直在阅读很多关于高可用性虚拟化的知识,无论是通过Hyper-V还是VMWare。 在这种情况下,基本上高可用性意味着虚拟机由一个物理服务器(节点)集群托pipe,所以如果其中一台物理服务器出现故障,虚拟机仍然可以由其他物理服务器提供服务。 到目前为止,物理集群和虚拟机本身都是高度可用的。
但是,如果提供的服务是SQL Server,MSDTC或其他服务,实际上是由VM镜像和虚拟化操作系统提供的。 所以我想像在虚拟层还有一个没有被说明的失败点。 虚拟机本身可能会发生物理集群无法解释的问题,对吗? 在这种情况下,物理故障转移群集(Hyper-V)或VMWare主机无法进行故障转移,因为问题不在于物理群集中的某个服务器 – 通过物理节点故障转移将无济于事。
这是否需要在物理上创build虚拟故障转移群集,或者这不是必要的?
或者,我想你可以跳过物理聚类,并在虚拟层集群(基于子故障转移集群),因为它应该仍然存在物理故障。
请参阅下面的图像,显示父母(左),基于孩子(右)和组合(中)。 只要你需要去基于父母,还是基于孩子更合适?

答案是视情况而定。
集群解决scheme通常比应用层做得更多。 传统上,集群依赖关系图将包括诸如
在虚拟机内运行一些这些检查是非常困难的。 例如,在Windows 2003群集中,它需要一个Quorum驱动器,它使用SCSI锁来确保它是资源的所有者。 如果失败,它还会发出“毒包”来获取该锁。 如果没有RDM到LUN,所有这些function几乎不可能实现。
所有这些“硬件检测”组件在虚拟机中都会有很大的开销(对于用户应用程序来说,虚拟机的性能总是很好,但是任何内核基础总是会产生不同程度的开销)。
所以对于Microsoft Windows 2003群集(我必须虚拟化,我会使用你的“孩子”方法)。
争取的理想场所是,
其次是,
最后
物理集群使您的虚拟硬件高度可用,即物理服务器的故障不会影响任何给定的虚拟机。 但是,虚拟机本身仍然可能会失败(例如,操作系统崩溃,有人closures虚拟服务器等),所以运行在虚拟机之上的服务在某些时候可能仍然会失败(尽pipe它不太可能适用于在独立物理硬件上运行的相同服务)。 为了降低这种风险,您可以创build群集服务,以便即使虚拟服务器发生故障,服务也不会受到影响。 当然,如果直接在物理服务器上构build群集服务,则可以获得或多或less的相同结果。
无论是在物理服务器上还是在群集虚拟化平台上运行群集服务,都取决于您的要求。 如果你不需要任何其他的虚拟化平台,或者集群服务需要大量的系统资源,那么我build议在物理硬件上构build集群。 但是如果你的物理硬件有足够的资源,或者你已经拥有一个虚拟化集群,那么我会在虚拟机上运行集群服务,因为这使得pipe理(虚拟)硬件变得更容易。
尽pipe如此,不要忘了一路上要吃一个现实的药片。
您需要了解您的应用程序所需的正常运行时间,更重要的是,应用程序在发生故障时可能无法使用的最长时间。 它会的。
第二点是至关重要的。 我看到一个由一个大型系统集成商pipe理的“五个九”应用程序,这个系统集成商已经离线了将近一天,因为这个技术的复杂性被用来保持它的高度可用性。 对于日常的操作可用性,这个技术在盒子里打了勾,但是当configuration发生问题时,上述公司的人员被困住了。
不要误解我的意思,群集,SAN快照,虚拟机快照,异地复制,HA锁步虚拟化等都有它们的位置,但只要确保select需要什么,而不是看起来不错又有光泽。
我现在就从我的肥皂箱里下来;-)
这是否需要在物理上创build虚拟故障转移群集,或者这不是必需的?
它是的。
您首先必须构build高可用性系统(用于SQL,用于操作系统等)。 这意味着您必须拥有多台物理或虚拟计算机,并且您必须使用能够支持高可用性的软件。
一旦完成,您可以使用高可用性虚拟化系统,该系统“仅”保护您免受硬件故障的影响。
第二级高可用性需要2台物理计算机(或更多)。
所以假设你的第一级高可用性是用2台电脑完成的:你现在不需要为第二级而烦恼,因为它不会给你更好的结果。
我认为你已经掌握了关于可用性的观点的精髓。 Hyper-v和VMware HAfunction都不为客户提供HA,而只是虚拟化服务的HA。 根据来宾服务的可用性要求,您还需要客人级别的HA(并且取决于涉及的技术可能意味着集群)。 您需要评估每个服务的详细信息,了解如何提供所需的正常运行时间。 SQL服务器可以使用事务镜像或服务器集群。 很多时候,虚拟服务集群上的额外开销和挑战超过了提供的好处,这可能意味着服务最终会在专用硬件上提供。 (在SQL服务器上挑选一点)由于高networking,IO,CPU和内存利用率以及对冗余的需求,SQL服务器通常是潜在的物理剩余物。
如果你真的想要HA,你也需要把你的HA-VM集群起来。
如果你想避免每一个SPOF你会很难。
我曾经参加过一个NAS系统的课程,他们告诉我们NASA就是这么做的 – 每个片断都有三种不同的口味。 只有至less有两个人有相同的结果,结果是好的。 除此之外,一切都必须是多余的(在三个部分中的每一个)。
在飞行前,所有三个人都必须提供相同的结果,当然。