群集由通过输入/输出系统互联的若干服务器构成。这些服务器连接到存储介质中,由分布资源管理软件(DRM) 进行管理。其组成部分处在不断的改进之中:刀片式服务器,快速InfiniBand I/O技术和更为复杂的DRM软件,这些部分组合在一起,使得群集成为IT经理们的实用工具。
主要应用
服务器
群集技术最主要的应用即在于
网络负载平衡的功能。
网络负载平衡使用两台或更多台一起工作的
主机计算机组成的群集,为服务器提供了高可用性和高伸缩性。Internet
客户端使用一个 IP 地址或一组地址访问群集。客户端无法区别群集和单一服务器。服务器应用程序并不表明它们是在群集上运行的。但是,
网络负载平衡群集与运行单个服务器应用程序的单个
主机有很大的区别,因为即使在某个群集
主机发生故障的情况下,它也可以提供不间断服务。群集对
客户端请求的响应也比单个
主机快。
如果某个
主机发生故障或脱机,则
网络负载平衡通过将传入的
网络通信重定向到工作的群集主机,从而带来了高可用性。连到脱机
主机的现有连接将丢失,但是 Internet 服务仍然是可用的。在多数情况下(例如,就 Web 服务器而言),客户端软件可以自动重试失败的连接,而且客户端在接收响应时,只有数秒钟的延迟。
网络负载平衡通过在分配给
网络负载平衡群集的一个或多个虚拟 IP 地址(群集 IP 地址)间分配传入的
网络通信,从而带来了可变化的性能。然后,群集中的
主机同时对不同的客户端请求甚至来自同一客户端的多个请求做出响应。例如,Web
浏览器可以从网络负载平衡群集中的不同
主机获得所有单张网页中的多幅图像。这就提高了处理速度,并缩短了对
客户端做出响应的时间。
网络负载平衡使得单个子网上的所有群集
主机可以同时检测群集 IP 地址的传入网络通信。在每个群集主机上,
网络负载平衡驱动程序充当群集适配器驱动程序和 TCP/IP
堆栈间的过滤器,以便在主机间分配通信。
群集算法
网络负载平衡采用一种完全分布式的算法,根据传入
客户端的 IP 地址和端口,以统计方式将其映射到群集
主机。此进程的发生不需要
主机间进行任何通信。当发现到达的数据包时,所有
主机同时执行这种映射,以快速确定哪个主机应当处理这个程序包。这种映射一直保持不变,直到群集
主机数发生更改时为止。与集中式
负载平衡应用程序相比,
网络负载平衡筛选算法处理数据包的效率更高,因为前者必须修改和重新传送数据包。
网络负载平衡通过以下方式,控制从 Internet 客户端到群集中选定
主机的 TCP 和 UDP 通信的分配:配置好
网络负载平衡后,群集中的所有主机都接收传到群集 IP 地址的传入客户端请求。
网络负载平衡筛选传到指定 TCP 和 UDP 端口的传入数据报,之后这些数据报才会到达 TCP/IP 协议软件。
网络负载平衡在 TCP/IP 内管理 TCP 和 UDP 协议,从而逐个端口地控制其操作。
在
多播模式下,
网络负载平衡可以提供 Internet 组管理协议 (IGMP) 支持,限制交换流。除了指定端口的 TCP 和 UDP 通信以及
多播模式中的 IGMP 通信,
网络负载平衡不控制任何传入 IP 通信。它并不筛选其他 IP 协议(例如,ICMP 或 ARP),但是下述情况除外。请注意,当使用群集 IP 地址时,应当会看到来自特定点对点 TCP/IP 应用程序(例如 ping)的重复响应。如果需要,这些应用程序可以将专用 IP 地址用于每个
主机,以避免这种操作。
为了协调其操作,
网络负载平衡主机在群集内周期性地交换检测信号(详细信息,请参阅Internet 组管理协议 (IGMP))。IP
多播允许
主机监控群集状态。当群集状态更改时(例如当
主机发生故障、离开或加入群集时),
网络负载平衡将调用称作“聚合”的过程,在该过程中,主机交换数量有限的消息,以确定群集的新的一致状态,并为主机指定最高主机优先级,即作为新的默认主机。当所有群集
主机在正确的新群集状态下取得一致后,它们将在 Windows 事件日志中记录聚合的完成。完成这个过程一般用不了 10 秒种。
在聚合过程中,其余
主机继续处理传入的
网络通信。对工作
主机的客户端请求不受影响。完成聚合后,将以故障
主机为目标的通信重新分发给仍在工作的主机。经过
负载平衡后的通信将在仍在工作的
主机间得到重新划分,以便尽可能好地实现特定 TCP 或 UDP 端口的新的负载平衡。
如果向群集添加了一个
主机,则聚合允许该主机接收自己那份经过
负载平衡的通信。群集的扩展不影响正在进行的群集操作,而且其实现过程对 Internet 客户端和服务器应用程序都是透明的。但是,当选择了“客户端相似性”时,它可能影响跨多个 TCP 连接的客户端会话,因为可能会将客户端重映射到连接间的不同群集
主机。有关相似性的详细信息,请参阅
网络负载平衡和状态可控的连接。
网络负载平衡假定,
主机在群集内正常工作的时间与它同其他群集主机交换检测信号的时间一样长。如果在多次检测信号交换中,其他
主机都没有接收到来自任何成员的响应,则它们将启动聚合,重新分发本来应由失败主机处理的负载。
群集功能
WIN 2003中的服务器群集功能
服务器群集功能最早是为 Microsoft Windows NT® Server 4.0 操作系统设计的,这一功能在 Microsoft Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 操作系统中又得到重大改进。您可以借助服务器群集功能将多台服务器连接在一起,从而为在该群集中运行的数据和程序提供高可用性和易管理性。服务器群集提供了以下三种主要的
群集技术优点:
更高的可用性。允许服务器群集中的服务和应用在硬件或
软件组件故障下或在计划维护期间仍能不间断地提供服务。
更高的可扩展性。支持通过增加多个处理器(在 Windows Server 2003 Enterprise Edition 中最多可达 8 个,在 Windows Server 2003 Datacenter Edition 中最多可达 32 个)和额外内存(在企业版中,
随机存取内存[RAM] 最多可达 8 GB,在 Windows Server 2003 Datacenter Edition 中最多可达 64 GB)来扩展服务器。
更高的可管理性。允许管理员如同管理单台计算机那样管理整个群集内的设备和资源。
该群集服务是两种互为补充的 Windows
群集技术(为了扩展 Windows Server 2003 和 Windows 2000 基础操作系统而提供的)中的一种。另一个
群集技术是
网络负载均衡(Network Load Balancing,NLB)。该技术作为服务器群集的互补,可面向前端应用和服务(如 Internet 或 Intranet 站点、基于 Web 的应用、媒体流以及 Microsoft
终端服务)来支持高度可用和可伸缩的群集。
计算机群集的出现和使用已经有十几年的历史。作为最早的
群集技术设计师之一,G. Pfister 对群集的定义是,“一种并行或分布式的系统,由全面互连的计算机集合组成,可作为一个统一的计算资源使用”。
将数台服务器计算机组合成一个统一的群集,多台服务器将可以在用户或管理员不必了解细节的情况下分担计算负载。例如,如果服务器群集中的任何资源发生了
故障,则不论发生故障的组件是硬件还是软件资源,作为一个整体的群集都可以使用群集中其它服务器上的资源来继续向用户提供服务。
换言之,当资源发生故障时,同服务器群集连接的用户可能经历短暂的性能下降现象,但不会完全失去对服务的访问能力。当需要更高的处理能力时,管理员可以通过滚动升级过程来添加新资源。该过程中,群集在整体上将保持联机状态,它不仅可供用户使用,而且在升级后,其性能也将得到改善。
Windows Server 2003 Enterprise Edition 和 Windows Server 2003 Datacenter Edition 操作系统是完全针对用户和业务对
群集技术的要求而设计开发的。主要目标是:开发一种能满足大多数商业机构和组织的群集需求的操作系统服务,而不是仅针对小型和特定的市场段。
Microsoft 市场调查显示,随着中小型商业机构的日常运作已越来越离不开数据库和电子邮件,因此它们对高可用系统的需求很大,而且这种需求日趋旺盛。易于安装和管理,被认为是这种规模的机构最关键的要求。Microsoft 的调查同时显示,那些对高性能和高可用性具有很高要求的大企业对基于 Windows 的服务器也日益感兴趣。
作为 Windows NT、Windows 2000 和 Windows Server 2003 基础操作系统的
集成化扩展而开发的服务器群集服务,正是源于此次市场调查。该服务同其设计目标保持了一致,通过它可将多台服务器和
数据存储组件连接成一个易于管理的单元,即服务器群集。对于大型和小型企业中运行基于 Windows Server 2003 和 Windows 2000 的应用程序的系统,服务器群集功能将可以赋予它们高可用性和易管理性。服务器群集功能还提供了开发可利用服务器群集的高可用功能并且具有群集意识的新应用程序所必需的
应用程序接口和工具。
安装配置
以在Windows Server 2003系统中安装配置群集服务为例介绍方法:
第1步,依次单击“开始”→“所有程序”→“管理工具”→“群集管理器”
菜单,打开“群集管理器”窗口,并自动打开“打开到群集的连接”对话框。这个对话框为用户提供了创建新群集、添加节点到群集和打开到群集的连接三个选项。在“操作”下拉菜单中选择“创建新群集”命令并单击“确定”按钮。
第2步,打开“新建服务器群集向导”,在欢迎向导页中单击“下一步”按钮。在打开的“群集名称和域”向导页中输入一个群集名称,且该名称必须是有效的计算机名称。另外需要选择一个域名,新的群集将创建在这个域中。采用默认域名,单击“下一步”按钮。
第3步,在打开的“请选择计算机”向导页中提示用户输入将要安装新群集的第一个节点计算机,默认情况下将自动选择本地服务器。单击“下一步”按钮。
单击“高级”按钮并选中“高级(最小)配置”
复选框后,则在“新建服务器群集向导”完成最后的步骤后需要手动添加共享设备。
第4步,接着“新建服务器群集向导”将使用用户提供的信息来分析所有为了成功创建群集所必需的因素。向导主要通过以下五个方面进行分析:
(1)检验现有群集:验证网络上不存在具有相同名称的群集;
(2)建立节点连接:连接到目标服务器并初始化群集创建过程;
(3)检验节点可行性:确定目标服务器是否满足所有的先决条件;
(4)查找节点上的公共资源:确定共享资源的可用性,包括列举共享磁盘资源(为了创建仲裁)和
网络适配器(为了安装群集网络);
(5)检验群集可行性:验证群集的创建是可能的并为仲裁指定资源。
向导将用对勾表示成功,用叉号表示失败,而带有叹号的黄色三角形表示警告,其中警告标识可以忽略。如果分析中任何一个方面存在问题,则必须清除故障后才能继续操作。通过分析验证后单击“下一步”按钮。
第5步,打开“IP地址”向导页,这时需要设置群集的IP地址。该地址将作为DNS解析群集名称时的目标地址,且该地址应该跟“公用连接”的IP地址处于
同一个网段。本例中输入该
网段中一个空闲的IP地址10.115.1.168。设置完毕单击“下一步”按钮。
第6步,在打开的“群集服务账户”向导页中需要提供一个
域用户账户,以便对群集进行管理。这个账户将被放在本地
管理员组(Administrators)中,并被赋予在目标服务器上的适当权限。这里输入前面创建的群集
用户账户Cluster和其密码,并单击“下一步”按钮。
第7步,打开“建议的群集配置”向导页,在该向导页中列出了到目前为止用户设置的所有信息。确认无误后单击“下一步”按钮。
第8步,向导开始创建并启动服务器群集,这个过程被分成了4个主要部分:
(1)重新分析群集:重复原先在检验群集可行性时选择的步骤。一旦这种可行性被验证,群集配置就已经初始化了;
(2)配置群集服务:将群集服务账户分配到合适的组,并赋予其合适的用户权利。然后创建并启动与群集有关的服务、创建并配置群集数据库以及创建并启动Cluster Service(群集服务);
(3)配置资源类型:配置Generic Script和Majority Node Set资源类型;
(4)配置资源:创建、配置并启动群集组中的资源(包括
仲裁资源)。
创建完毕单击“下一步”按钮。
群集服务安装完毕以后会自动连接到群集。
如果由于配置错误导致无法连接到群集而需要取消群集配置时,可以在“
命令提示符”窗口中输入命令行“cluster node 节点名称 /forcecleanup”并按
回车键来实现。