标题：服务器集群
服务器集群
一旦在服务器上安装并运行了群集服务，该服务器即可加入群集。群集化操作可以减少单点故障数量，并且实现了群集化资源的高可用性。下述各节简要介绍了群集创建和群集操作中的节点行为。[1]
注意：有关安装群集服务器的信息，请参阅 Windows server 2003 产品家族的帮助和部署指南。
创建群集
在服务器群集产品中含有用来在服务器上安装群集软件和创建新群集的群集安装实用工具。创建新群集时，首先在选择作为群集的第一个成员的计算机上运行该实用工具。第一步是确定群集名称并创建群集数据库和初始的群集成员列表来定义新群集。 Windows server 2003 群集新增了一个群集管理设置向导以及使用 cluster.exe 命令行界面创建（ 包括从远程创建 ）群集的功能。 
创建群集的第二步是，添加可供所有群集成员使用的共用数据存储设备。这样，创建的新群集将带有一个节点、自己的本地数据存储设备以及群集共用资源 —— 通常是磁盘或数据存储和连接介质资源。 
创建群集的最后一步是，在另外将要成为群集成员的每一台计算机上运行安装实用工具。每当将新节点添加到群集中时，新节点都会自动从群集的原始成员获得现有群集数据库的副本。当节点加入或形成群集时，群集服务会更新该节点私有的配置数据库副本。
形成群集
如果服务器运行了群集服务并且无法找到群集中的其它节点，它自己可以形成一个群集。要形成群集，节点必须能够获得对仲裁资源的独占权。 
当最初形成群集时，群集中的第一个节点将包括群集配置数据库。每当有新节点加入群集时，新节点都会在本地获得并保持群集配置数据库的副本。仲裁资源用恢复日志（其中含有同节点无关的群集配置和状态数据）的形式存储配置数据库的最新版本。 
在群集运行中，群集服务使用仲裁恢复日志执行以下操作 ： 
保证只有一组活动、可相互通讯的节点才能形成群集 
仅当某个节点可以获得对仲裁资源的控制权时 ， 才允许它形成群集 
仅当某个节点可以同控制仲裁资源的节点通讯时 ， 才允许它加入或留在现有群集中 
从群集中的其它节点和群集服务管理接口的角度看，当形成群集时，群集中的每个节点可能处于三种不同状态中的一种。事件处理器会记录这些状态，而事件日志管理器会将这些状态复制到群集的其它节点。群集服务状态包括： 
脱机。此时的节点不是完全有效的群集成员。该节点及其群集服务器可能在运行，也可能未运行。 
联机。此时的节点是完全有效的群集成员。它遵从群集数据库的更新、对仲裁算法施加自己的影响、维护心跳通讯，并可以拥有和运行资源组。 
暂停。此时的节点是完全有效的群集成员。它遵从群集数据库的更新、对仲裁算法施加自己的影响、维护心跳通讯，但它无法接受资源组。它只能支持它当前已拥有的那些资源组。之所以提供暂停状态，是为了允许执行某些维护。大多数服务器群集组件会将联机和暂停视为等价的状态。
优势
一、集群系统可解决所有的服务器硬件故障，当某一台服务器出现任何故障，如：硬盘、内存、CPU、主板、I/O板以及电源故障，运行在这台服务器上的应用就会切换到其它的服务器上。
二、集群系统可解决软件系统问题，我们知道，在计算机系统中，用户所使用的是应用程序和数据，而应用系统运行在操作系统之上，操作系统又运行在服务器上。这样，只要应用系统、操作系统、服务器三者中的任何一个出现故障，系统实际上就停止了向客户端提供服务，比如我们常见的软件死机，就是这种情况之一，尽管服务器硬件完好，但服务器仍旧不能向客户端提供服务。而集群的最大优势在于对故障服务器的监控是基于应用的，也就是说，只要服务器的应用停止运行，其它的相关服务器就会接管这个应用，而不必理会应用停止运行的原因是什么。
三、集群系统可以解决人为失误造成的应用系统停止工作的情况，例如，当管理员对某台服务器操作不当导致该服务器停机，因此运行在这台服务器上的应用系统也就停止了运行。由于集群是对应用进行监控，因此其它的相关服务器就会接管这个应用。
缺点
我们知道集群中的应用只在一台服务器上运行，如果这个应用出现故障，其它的某台服务器会重新启动这个应用，接管位于共享磁盘柜上的数据区，进而使应用重新正常运转。我们知道整个应用的接管过程大体需要三个步骤：侦测并确认故障、后备服务器重新启动该应用、接管共享的数据区。因此在切换的过程中需要花费一定的时间，原则上根据应用的大小不同切换的时间也会不同，越大的应用切换的时间越长。
加入群集
如果一个服务器要加入现有群集 ， 则它必须运行群集服务并且必须成功找到群集中的其它节点。在找到其它节点后，加入的服务器必须接受群集成员资格验证，并获得群集配置数据库的副本。 
加入现有群集的过程开始于 Windows Server 2003 或 Windows 2000 Service Control Manager 在节点上启动群集服务之时。在启动过程中，群集服务会配置并装入该节点的本地数据设备。它并不会试图将共用的群集数据设备作为节点联机，因为现有群集可能正在使用这些设备。 
为了查找其它节点 ， 会启动一个发现过程。当节点发现任何群集成员时，它将执行身份验证序列。第一个群集成员会对新加入者进行身份验证，并且在新服务器得到成功验证后返回成功状态。如果验证不成功（未能识别待加入节点的群集成员身份，或者它使用了无效的帐户密码），则加入群集的请求会被拒绝。 
进行成功验证后，首先联机的群集节点会检查加入节点上的配置数据库副本。如果该副本已过时，对加入服务器进行验证的群集节点会为加入的服务器发送该数据库的更新副本。刚加入群集的节点在收到复制的数据库后，可以用它查找共享资源并根据需要将它们联机。
脱离群集
当节点关闭或群集服务被停止时，节点可能脱离群集。但当节点不执行群集操作（比如不向群集配置数据库提交更新）时，节点也可能被迫脱离（被逐出）群集。 
如果节点根据预先的计划脱离群集，它会向其它所有节点成员发送 ClusterExit 消息，通知它们它将脱离群集。该节点不等待任何响应就会立即进行关闭资源和所有群集连接的操作。由于其余节点收到了退出消息，因此它们不会执行在节点意外失效或网络通讯停止时发生的重新分组过程以重新确立群集成员身份。
方法
有两种常用的服务器集群方法，一种是将备份服务器连接在主服务器上,当主服务器发生故障时,备份服务器才投入运行,把主服务器上所有任务接管过来。另一种方法是将多台服务器连接,这些服务器一起分担同样的应用和数据库计算任务,改善关键大型应用的响应时间。同时,每台服务器还承担一些容错任务,一旦某台服务器出现故障时,系统可以在系统软件的支持下,将这台服务器与系统隔离,并通过各服务器的负载转嫁机制完成新的负载分配。PC服务器中较为常见的是两台服务器的集群,UNIX系统可支持8台服务器的集群系统,康柏的专用系统OpenVMS可支持多达96台服务器的集群系统。
在集群系统中，所有的计算机拥有一个共同的名称，集群内任一系统上运行的服务可被所有的网络客户所使用。集群必须可以协调管理各分离组件的错误和失败，并可透明的向集群中加入组件。用户的公共数据被放置到了共享的磁盘柜中，应用程序被安装到了所有的服务器上，也就是说，在集群上运行的应用需要在所有的服务器上安装一遍。当集群系统在正常运转时，应用只在一台服务器上运行，并且只有这台服务器才能操纵该应用在共享磁盘柜上的数据区，其它的服务器监控这台服务器，只要这台服务器上的应用停止运行（无论是硬件损坏、操作系统死机、应用软件故障，还是人为误操作造成的应用停止运行），其它的服务器就会接管这台服务器所运行的应用，并将共享磁盘柜上的相应数据区接管过来。其接管过程如下图所示（以应用A为例）：
1.应用A正常工作时；
2.应用A停止工作后，其它的备用服务器将该应用接管过来。 具体接管过程分三部执行： a.系统接管 b.加载应用 c.客户端连接