首页 > 代码库 > Windows 2008 故障转移群集介绍

Windows 2008 故障转移群集介绍

转载:http://dufei.blog.51cto.com/382644/902026

 今天有客户问起Windows 群集的相关内容,毕竟Windows Server2008所支持的群集技术和Windows Server2003还是有点不同的,就收集了以下知识供参考。以下内容均来自互联网。

Windows Server 2008提供两种群集技术:故障转移群集和网络负责平衡群集。故障转移群集主要提供高可用性;网络负载平衡群集主要提供可伸缩性,在实现可伸缩性的同时,提高基于WEB服务的可用性。有的资料上说还有一种支持高性能计算的组件负载平衡群集。

在应用中到底是选择故障转移群集还是网络负载平衡群集,主要取决于所运行的应用程序是否具有长期运行的内存中状态:
故障转移群集是针对具有长期运行在内存中的状态或具有大型的、频繁更新的数据状态的应用程序而设计。这些应用程序称为状态应用程序,并且它们包括数据库应用程序和消息应用程序。故障转移群集的典型使用包括文件服务器、打印服务器、数据库服务器和消息服务器。
网络负载平衡适用于没有长期运行在内存中的状态的应用程序。这些应用程序为无状态应用程序。无状态应用程序将每个客户端请求视为独立的操作,因此它可以独立地对每个请求进行负载平衡。无状态应用程序通常具有只读数据或不常更改的数据。前端Web服务器、FTP服务器以及代理服务器通常使用网络负载平衡。NLB还可以支持其他基于TCP或UDP的服务和应用程序。
我们今天主要介绍故障转移群集的配置。
故障转移群集可以配置使用多种不同的配置。组成群集的服务器可以是活跃状态或不活跃状态,而不同服务器可以被配置为在活跃服务器故障后立刻接管相应的资源。一般故障转移的过程只需要几分钟的时间,至于时间的长短主要取决于群集的配置和具体应用,当节点处于活跃状态时,该节点上可以使用所有资源。当服务器故障后,在这台服务器上配置了故障转移群集的资源组就会被其他服务器所接管。当故障服务器重新上线后,群集服务可以配置为允许让原服务器进行故障回复,或者是让当前服务器继续处理新的客户端请求。
Windows Server 2008支持三种基本类型的故障转移群集: 单节点群集、单仲裁多节点群集、过半数节点群集。
单节点群集:
单节点群集并不能用来实现故障转移,一般用来实现更为简单的共享资源和网络存储管理。主要优势是,在故障或停止响应时监控和自动重启应用和依存的资源。单节点群集可用作文件、打印或WEB共享,而这种群集主要考虑的是让和户更方便的访问相应的资源,而不需要提供其他复杂的功能。这种实际应用的应该比较少。
多节点群集:
一般使用较多的是多节点群集:多节点群集模式包括“活跃、活跃”和“活跃、非活跃”方式。在“活跃、非活跃”方式中,有一台或多台服务器是活跃的,可处理客户端的请求,另外一些服务器是空闲的。在“活跃、活跃”方式中,所有的节点都是活跃的,都可以处理客户端的请求,其中一个活跃节点发生故障,其他节点会接管此节点的工作,直到此节点恢复正常。
在多节点的群集配置中会存在一台仲裁设备,所有节点共享群集配置信息数据都存储在仲裁设备的存储设备上。
过半数节点群集:
还有一种故障转移群集类型是过半数节点数,在此类型中,节点可以不需要连接到共享的存储设备上,每个节点可以有自己的存储设备。群集配置数据可以保存在群集内的多个磁盘上,这样每个节点就可以有自己的仲裁设备。
过半数节点群集配置通常用于分散在不同位置的服务吕上。最主要的是,这是因为每个节点可以有自己的存储设备,以及群集配置数据的本地副本。
 
故障转移群集资源:
资源是群集实现故障转移的基础,互相之间有有关系的或者是互相依赖的资源可以被看作是资源组,所有位于同一个组中的资源也必须位于同一个节点上。如果其中某个服务故障了,则所有服务都有可能出错。
在将应用添加为高可用性资源之间,需要判断该应用是否可以在群集环境内运行。而能够在群集环境中运行,并且支持群集事件的能力叫群集感知。群集感知应用可以在故障转移群集中注册,以获得状态和通知信息,例如:DFS、DHCP、exchange服务器、文件服务器、internet存储名称服务器、MSDTC、SQL服务器等。不支持群集事件的应用叫做群集不感知,有些群集不感知应用程序也可以配置为高可用性资源,并实现故障转移。
 
硬件需求:
硬件的配置应该被调节以能够最大化实现总体吞吐量,并为有高要求的应用和服务进行性能优化。不同服务器具有不同的优化需求,例如处理静态HTML页面的Web服务器可能需要更快的硬盘和更多的内存,以将页面缓存的内存中,但通常并不需要高速度的CPU。而典型的数据库服务器则可能需要高端CPU、快速的硬盘,以及更多的内存。
管理员应该仔细对群集节点中的每台服务器进行优化。在进行优化时,能够获得最大收益的关键内容则是分页文件。有关分页文件的重要规则如下:
为了防范过量,分页文件的大小应该是固定的,同时不应该位于共享的群集存储设备上。分页文件的大小都应该根据硬件设备制造商的建议设置。如果有多个本地硬盘,请考虑将分页文件放在独立硬盘上以提升性能。
同时还需要注意,同一群集中的服务器必须运行同样的硬件架构版本的Windows Servers 2008操作系统,例如应该都使用x64或Itanium版本。群集中的服务器必须是同一个Active Directory域的成员,并且需要使用DNS进行名称解析。
 
群集对象:
群集服务负责管理故障转移群集的所有功能,这中间包括群集中要用到的物理以及逻辑单元和对象。
群集对象包含属性,可定义对象在群集内的行为。群集API中包含了通过群集服务管理对象所需要的控制代码和管理功能,群集中的每个节点都需要运行群集服务Lussvc.exe、群集网络驱动clusnet.sys以及群集磁盘驱动clusdisk.sys的实例。
群集服务器通过专用网络适配器和其他节点传输检测信号,也就是说每个节点网络驱动会定期在节点间发送UDP数据包来检测网络及路由状态,如果某个节点没有响应,则说明出现问题,群集网络驱动就会通知群集服务,进行故障转移。
每个节点的群集磁盘驱动主要用来负责维护共享磁盘的独占所有权。只有拥有物理磁盘资源的节点才可以访问磁盘,所有其他节点都无法访问磁盘资源。
群集数据库:
群集正常工作中,传输的信息除了检测信号之外还需要传递管理数据,而这些数据基本保存在群集数据库中,这个数据库中包含了群集的配置和资源的使用信息,这些信息称为群集对象,群集服务会定期维护这些信息。
 
 
群集仲裁资源:
仲裁资源主要用于负责维护恢复日志,会将群集加的所有变动写入到恢复日志中,以确保群集的配置和状态中以被恢复。仲裁资源一般在发生故障的时候发挥作用。群集完整功能取决于仲裁,配置群集的时候,群集服务会自动为群集设置必要的仲裁设置,而仲裁设置决定了群集可以承受的故障的最大数量。如果在该数量外发生了额外的故障。群集就会停止工作。例如:如果有四个节点的群集,如果有两个节点发生故障,达到了半数,则无法继续运行,但如果是五个节点,有两个发生故障,还可以故障转移,继续工作。
 
群集接口和网络状态:
群集节点间为了判断对方是否发生故障,群集服务会监控专用网络的适配器接口以及群集网络的状态。
用户可以使用Cluster netinterface或故障转移群集管理工具查看网络接口的当前状态。一般状态如下:
Up: 正常的工作状态,可以和网络上的其他接口通讯。
Unknown:目前无法判断其状态。
Unavailable:接口被禁止用于群集,或连接节点的网络接口故障。
Unreachable:节点无法通过该接口通讯。
Failed: 关联给该接口的节点是活跃的,但无法通过该接口通讯。
 
用户还可以使用cluster network命令或工具查看网络的状态。
Up: 正常的工作状态。
Unknown:目前无法判断其状态。
Unavailable: 网络被禁止用于群集,或连接到该网络的所有节点都不活跃。
Partitioned: 网络功能故障,有些活跃群集无法通过网络通讯。
Down:网络出现故障,所有活跃群集都无法通过网络通讯。
 
如果某个网络接口为failed状态,群集服务会对使用该网络接口的所有IP地址资源发起故障转移。但如果网络接口的状态是unreachable,群集服务则不会进行转移,如果接口状态是unavailable,则群集服务会认为节点down了。
通常群集网络都应该是Up状态,在这种状态下,群集网络的工作完全正常,所有活跃群集都可以通讯。如果网络变为Partitioned状态,这意味着一个或多个节点的通讯有问题,或者最近故障了。Down状态代表了当前网络已经故障,无法正常工作。在Down状态下,群集之间无法通过网络通讯。

Windows 2008 故障转移群集介绍