【IT168 专稿】在该系列的第一篇文章中给出了针对嵌入在Windows 2003服务器操作系统平台的两种主要的高可用性技术——服务器集群和网络负载平衡——的简要概述。我们集中论述了服务器集群的一些基本术语和基本设计原理。
如前所述,其中最重要的一点在于为每个集群资源只保持一个实例(确保它的容错性和防止“首脑分裂”的发生)。这是通过源虚拟化和节点间通信两种基本机制来实现的。
源虚拟化技术需要将每个集群服务或应用需要在一定数量的相关软件和硬件部件中实现,比如说磁盘、IP地址、网络名和文件共享,这些部件可以被分配给任何加入该集群的服务器,且必要时易于在这些服务器中进行交换,这使得采用非常具体的方法来搭建这些服务器成为可能。这样他们可以访问相同的共享存储设备、位于同一个子网或属于同一个域。比如说,要建立一个高可用性网络文件共享,你将会使用文件名和访问许可来确定一个运行该共享的磁盘驱动、一个用于远程访问的共享文件IP地址(对应网络名)和目标文件共享。
尽管这听起来似乎很复杂且耗费时间,但是所有必要的源都预先定义好了,使得该过程相当的直截了当。一旦源被确定和配置好(通过指定磁盘驱动器号,分配唯一的IP地址、网络名及文件共享特性来实现),它们将被指派给加入到该集群的任何一个服务器中(只要服务器支持它们)。一旦当前运行源的服务器失效,源可以在节点间很容易的转移。
Win2003高可用之道1:服务器集群
http://publish.it168.com/2007/0629/20070629009101.shtml
Win2003高可用之道2:服务器集群
http://publish.it168.com/2007/0629/20070629010801.shtml
单共享仲裁
通过在集群成员间的冗余网络连接上传递心跳信号,以及决定源的拥有方式的仲裁,内部节点的通信变的很容易。正如我们所指出的,仲裁的另一个重要功能就是存储最新节点配置,随即将其复制到每个节点的专用registry hive中。当节点在启动阶段加入集群时,本地拷贝被引用。因其在集群体系中的重要性,仲裁被用作三种主要服务器集群模式的分类依据:
单共享仲裁集群是服务器集群应用中迄今为止最流行的。它最接近于传统集群设计(起源于在Windows NT 4.0服务器企业版引入微软集群服务器后对该模式的持续支持),为丰富多样的应用和服务提供高可用性源和简便的安装配置。
正如它们的名字所表示的,单共享仲裁集群使用存储设计,使得每个集群成员能够访问同一组磁盘。尽管底层硬件实现相差很大(比如采用我们后续文章将详细介绍的技术:SCSI, SANs, NAS, or iSCSI),它们的基本前提是一致的。
在群中,任一给定的时间只允许有一个特定源的实例。对于位于高可用性磁盘卷并通过SCSI总线、光纤信道连接或网络基础设施连接到集群内的所有服务器的仲裁源,这一要求同样适用。共享卷的使用权要通过裁定来获取,以保证它仅授予给一个节点,这样就防止了其他节点的同时访问的情况(这很容易导致数据讹误)。
该种裁定是通过内部SCSI命令(比如SCSI预定和SCSI释放)和总线、对象或逻辑单元数(LUN)的重置来处理的。具体情况取决于所应用的存储技术类型。注意,是否支持集群安装要根据对硬件兼容性列表(Windows Server目录的一部分,包含微软认证的所有集群解决方案)的严格依从而定,因此,确定你所准备购买和配置的系统的类型是很关键的。在这里,仲裁以物理磁盘资源的方式实现,需要有一个对于所有集群节点都能够访问的独立卷(集群设置会自动判断所选择的卷是否符合必要的标准)。
不幸的是,搭建集群服务器所需的大多数硬件相对而言非常昂贵(尽管现在这种系统的价格要比几年前要便宜很多),特别是你想要保证包括光纤信道、网络设备(比如适配器和交换机)或磁盘阵列以及它们的控制器在内的每个构件的冗余性的话。尤其对于那些只想开发能具有集群意识的软件或探索将现有应用嵌入到集群环境的可能性的程序员来说,硬件系统的价格还是太昂贵了。