对于当代的企业IT部门来说,宕机是不允许发生的。所以IT部门努力提升单独x86服务器的高可用性来避免宕机的发生。虚拟化平台通过提高虚拟机容错性和可用性来扩展其可靠性。同时,应用程序自身包含了容错机制。并且应用层高可用性可以节约开支。
实现传统的企业级高可用性
为了实现企业级的高可靠性,IT部门必须将虚拟机存储在价格昂贵的共享存储中。事实上,许多客户已经为虚拟机单独架设了存储区域网络(SAN)。将虚拟机存储在SAN上能够在主机出错的时候自动重启,让虚拟机比物理机具有更高的可靠性。
实现企业级的高可靠性还需要考虑在物理主机维护期间,如何避免虚拟机产生宕机。实时迁移能够让你在维护物理主机期间,将虚拟机从一台主机迁移到另一台上,避免宕机。实时迁移和自动重启都需要共享存储,它占据了虚拟化实施开销中重要的一部分。除此之外,虚拟化平台中一些特性可能会花费更加昂贵的认证费用。许多企业IT都将其视为关键需求,但是自身具备高可用性的应用程序将会改变他们的现有观念。
应用程序为虚拟桌面带来高可用性
现在许多厂商在设计应用程序时,会更多地考虑将其运行在多个小型虚拟机上,而不是一个或者两个大型虚拟机上。Web服务器和终端服务器群就是典型的示例:没有任何一个虚拟机包含持久性数据,只要有足够多的小型虚拟机来分担负载,用户就可以随时访问应用程序。一些NoSQL数据库和Hadoop集群也可以很灵活地运行在包含多个小型虚拟机的容器下。在这些示例中,应用程序管理实效的结点并且将工作负载重新分配,这样可以完成卸载单个结点。
既然可以卸载单个结点,共享存储就不再是必需的了。你可以将虚拟机存储在虚拟化主机的磁盘当中。本地主机的磁盘没有共享存储那样昂贵,甚至可以节约一半的存储开销。不再需要虚拟机自动重启,因为这些应用程序可以自动进行负载均衡和管理虚拟机减少了对虚拟化管理软件的需求。你还可以使用一些没那么昂贵的虚拟化平台管理软件构建一个免费版本的虚拟化平台,有利于减少以后在实施高可用性方面的开支。
应用层高可用性产品中包含了一些具有持久性数据的虚拟机,这样的组成使得虚拟机必须具备高可用性。比如,Hadoop中的NameNode和JobTracker功能仍然需要共享存储以及在主机宕机后自动重启的特性。
并非所有的应用程序都具备高可用性,意味着你仍然需要一个企业级虚拟化平台来存储虚拟机,但是并不需要为每个虚拟机都提供企业级高可用性。当具有高可用性的应用程序部署还没有被广泛部署的时候,虚拟化平台的高可用性也许更加实用一些。