现代数据中心大多数基于虚拟化技术,以至于高可用性往往指的是虚拟机在虚拟化环境下的高可用性。很多数据中心管理者使用vSphere High Availability或者Citrix XenServer的高可用性功能来帮助虚拟机提升可用性。但是为虚拟环境提升高可用性不是万能的,例如Web服务器和Oracle数据库,不能保证这类重要服务什么时候都能在虚拟化操作系统下运转完美。本文是数据中心高可用性系列的第一篇文章,将教你如何通过虚拟化平台以外的方法,来提升重要服务的可用性。
数据中心高可用性是把双刃剑
很多数据中心把虚拟化或私有云作为IT架构的基础。很多服务器被当成设备来使用:提供一项服务,偶尔支持其它服务,而不是在同一服务器运行多种应用和进程。这种方法缺点在于——如果该服务停止,同时虚拟服务器仍在运转,那么虚拟化软硬件提供的高可用性将检查不到任何问题。虚拟化平台的高可用性功能监视虚拟机的可用性,但不检查服务的可用性。但数据中心的关键是服务的可用性,不是虚拟机。所以最好考虑一下操作系统级别(OS-level)的高可用性。
一个典型的高可用性群集,在操作系统级别对提供的服务负责。这意味着群集(而不是独立的服务器)同样负责启动该服务。该群集还决定哪个节点提供服务。当群集做这些工作的时候可以考虑其他因素,比如说不同服务之间特定的加载顺序和时间限制,还有决定哪些节点提供哪些服务的规则。
在你的虚拟环境下使用高可用性,不能为数据中心带来最佳的保护,因为它缺乏独立掌握特定服务的能力。在操作系统级别使用高可用性,有助于确保在受监视的设备或系统停止运转时,服务能在高可用性群集的另一个节点启动,或者在同一个节点,如果从群集的角度来说有意义的话。
操作系统高可用性带来的另一个重要功能是服务相关性(service dependency),这也是虚拟机高可用性节点没有的。举一个简单的例子,就是在高可用性环境下配置的Web服务器。典型来讲,有的相关性在与Web服务器工作时引入,例如存储的可用性主导了Web服务器的根目录,或者有记录的数据库得由Web服务器提供。在一个操作系统高可用性解决方案中,定义这些相关性很简单。当使用虚拟化平台的高可用性功能时,你没有同等的观察力,没法控制操作系统和服务。
在大企业环境中,操作系统级别的高可用性从没有真正消失。这些环境是复杂但又可扩展的Unix环境,对于它们,虚拟化软硬件提供的高可用性并不够用。最近许多公司开始意识到这一点,于是增加操作系统级别的高可用性来保护业务关键的服务。高可用性软件对于所有主要的操作系统都通用,不管是Unix、Linux还是Windows平台。其中最常用的解决方案是用于Linux的Pacemaker(一款常用资源管理器,专为操作系统级别的高可用性服务。)和用于Unix的Veritas。
在下一期的技术文章里,我们将告诉你如何通过配置高可用性解决方案,提升数据中心重要服务的可用性。