多个虚拟化主机通常用于故障转移集群,但这并非总是可行的。有时候使用一个独立的主机也能达到目的。
相比物理服务器,服务器虚拟化有数不清的好处,但它也至少存在一个显著的缺点。
相比在一个物理服务器环境中,一个虚拟环境中产生的硬件故障会导致更加严重的后果。如果一台服务器在物理环境中出现了故障,它通常只会影响单个的工作负载。然而,如果一个虚拟化主机产生了故障,那么所有运行在该主机上的虚拟机也会出现故障。而这可能会造成重大的宕机事故。
防止虚拟化主机故障
使用故障转移集群来实现虚拟机的高可用性可以解决这个问题。顾名思义,在主机服务器出现故障时,故障转移集群可以允许运行在故障主机上的虚拟机转移到集群中的另一台主机上,从而保证这些虚拟机的正常运行。
因为主机服务器故障可能会产生严重的后果,所以故障转移集群已经成为操作一个虚拟化环境通用的标准做法。但是实施故障转移集群是昂贵的,因为它既包括虚拟化软件许可成本,同时涵盖服务器和共享存储阵列的硬件成本。这甚至还没有算上故障转移集群的支持和维护费用。所以,事先考虑是否可以使用一个独立的、非集群虚拟化的主机是可取的,因为在某些情况下,这可以帮助企业避免建立和维护一个集群虚拟机管理环境所涉及到的昂贵支出和复杂的操作过程。
通常,IT部门中的研发或测试实验室都会有预算限制,所以在实验室环境中,企业使用非集群虚拟化主机的做法是相当普遍的。 除此之外,在实验室环境中发生的一个故障,或许不会产生可怕的后果,但是在生产环境中情况就不是这样了。
表面上,在生产环境中使用一个独立的虚拟化主机似乎明显与长久以来建立的最佳实践相违背,但是在下列情况下它却是可以被接受的。
什么时候可以使用一个独立的主机?
在生产环境中使用一个独立的主机最常发生在小微企业中。只有几个员工的小公司通常拥有一台可以运行少数虚拟机的虚拟化主机。尽管这种做法十分普遍,但是它仍然是危险和不明智的,因为主机服务器故障会导致整个系统的崩溃。对于可能因缺乏预算或专业知识而不能部署一个故障转移集群的企业,最好选择将生产工作负载迁移到公有云上,而不是依赖于一个独立的虚拟化主机。
拥有一些冗余形式的企业也可以使用一个独立的主机。例如,在没有建立一个故障集群情况下,Hyper-V可以复制虚拟机到一个二级或三级主机上。这意味着使用一个独立的主机比建立一个故障转移集群更简单、更廉价。
然而,虚拟机管理级复制没有实时故障转移功能。在Hyper-V这个例子中,将故障转移到一个VM复制品上是可能的。但这个过程需要手动操作,因此会产生短时间的宕机。尽管如此,对于一些发生短暂故障的工作负载,企业还是可以处理的。
最后,当冗余存在于VM级时,使用独立的虚拟化主机也是可以接受的。例如,试想这样一个环境,在这个环境中三个域控制器存在于三个独立的虚拟化主机上。在这种情况下,缺乏故障转移集群不会产生不合理的风险,因为域控制器是冗余的。访客集群也是如此;如果工作负载在客户端级别集群,那么主机级集群可以提供一个额外的安全保障。但这并不是防止中断的唯一防御。
如果可以,将虚拟主机尽可能地连接到故障转移集群总是最好的。但现实是,技术或预算限制会阻止故障转移集群的使用。在这种情况下,需要寻求其他一些方法来保护主机故障下的工作负载。例如,IT团队可以配置免费的Hyper-V版本,作为故障转移集群;同时VM复制和访客集群也可以作为两个备选方案。重要的一点是:不要让一个主机服务器成为一个故障单点。