服务器虚拟化最显著的功能之一就是可以在集群内瞬间迁移虚拟机(VM)、减少服务器或应用系统的停机时间。虽然每个主要的hypervisor都具有这个功能,但每个厂商实现集群方式却有差异。
在使用微软Hyper-V搭建的测试环境中,通过构建主机集群环境,可以节省了无数的服务器停机时间。虚拟主机集群环境最重要的三个优缺点。
优点一:主动的风险回避
服务器集群的最大优点是它可以主动将VM从一个主机迁移到另外一个主机。这样的话,就可以提高服务器和应用系统的运行时间。
当内存不足、CPU负载偏高或者虚拟主机遇到较高的I/O压力时,管理员会收到警报。如果不能确定真正的原因或者系统需要重启,就可以主动将VM迁移到集群内的其他主机。
如果这是一个单机,或者说,在主机重启期间,VM不可以关闭;如果重启之后,问题依然存在,就不得不延长VM的停机时间直到找到了问题的起因。但是,在虚拟主机集群中,VM就可以被迁移到其他的主机直到问题解决。
优点二:反应性容错
因为集群中的主机监控着所有VM的活动,因此,当一个节点失效时,失效节点的负载就会被指派到另外一个替代的主机。如果需要较长时间解决失效主机的故障,只要替代它的健康主机有足够的资源,VM就会正常工作。
如果一个主机失效,VM会自动迁移到另外一个节点。虽然迁移的过程并不平滑,但工作负载自动变化几乎没有停顿。
优点三:主动的管理
在一个7*24的组织中工作,打补丁和升级工作就必须采取非常严格的管理。正常情况下,协调1—2台物理主机的停机时间已经比较困难,而要关闭位于同一个物理主机的30多个VM的复杂性就会呈指数增长。
利用虚拟主机集群,当某个主机打补丁和重启的时候,其上的VM迁移到替代的主机。打完补丁,VM再迁移到原来的主机。这样,就允许用户在早上极短的时间内,不用停掉整个系统,完成集群的升级。
集群式主机环境的缺点
虽然主机集群环境有令人瞩目的优点,但它同样存在一些实施和管理上的缺点。
缺点一:实施和配置的复杂性
配置复杂可能是集群的最大缺点。建立集群框架、管理主机间的连通性、配置共享存储都不是简单的任务,可能涉及到组织内部多个团队。你可能不害怕增加的复杂度,然而,很大程度上,都是技术性的工作;但是,随着复杂度的增加,你可能会遗漏某些东西从而影响系统的稳定性。
缺点二:更新和升级的不利因素
升级到更新版本的产品和硬件组件也可能引起困难。因为,虚拟主机集群连接多个系统,各组件间发生着大量的、复杂的交互。
以更新主机上的多路径I/O(MPIO)驱动为例,该操作会影响整个集群。首先,它影响节点转移逻辑单元号(LUN)到其他节点的效率。同时,在更新MPIO驱动之前,集群中所有主机的HBA卡的Firmware都需要升级。如果FW不用升级,那也必须首先安装HBA卡的驱动。
如果是单机,这可以通过1-2次重启解决。在集群环境中,协调多个虚拟主机服务器则较为困难。升级实际的虚拟主机软件一定是一个具有挑战性的任务,因为集群节点的交互以及不同软件版本支持(比如,SCVMM、Protection Manager等)。
一般情况下,厂商会为这些复杂升级提供详细的、一步一步的操作操作指南;同时,大多数情况下,都会比较顺利。
缺点三:集群成本因素
成本是另外一个主要的考虑因素。要实现一个虚拟主机集群环境,你需要复制部分基础架构并同时保持虚拟机与主机的比例。此外,大部分厂商的实现需要一个SAN或者独立的磁盘子系统。开源iSCSI或者廉价的磁盘阵列可能是个精明的选择,但这些选项可能存在性能和稳定性的问题。
在重要的基础架构组件上选择廉价的路线会产生问题,造成绊脚石。就因为选择了一个特殊的配置能够工作并不意味着就满足了项目目标。如果管理部门对成本感到担忧,你可以解释给他们虚拟主机集群环境可以提高正常运行时间、提供更好的服务。依我看,如果正确实施,这种配置就完全对得起付出的成本。
最后,每个组织不得不判断虚拟主机集群环境是否适合自己业务系统模式。虽然虚拟主机集群环境引入配置的复杂度、升级问题和潜在的额外成本,但是,你的环境可以从加强的服务器或者应用系统可用性和更好的管理上获益。尽管有潜在的困难或不利因素,但是,我相信实施虚拟主机集群所付出的努力和成本是值得的。