架构深渊

慢慢走进程序的深渊……关注领域驱动设计、测试驱动开发、设计模式、企业应用架构模式……积累技术细节,以设计架构为宗。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Microsoft Windows 2003集群攻略(上)

Posted on 2008-09-15 13:28  chen eric  阅读(325)  评论(0编辑  收藏  举报
Microsoft Windows 2003集群攻略(上)
1、Microsoft Windows 2003集群介绍

    服务器群集是一组协同工作并运行Microsoft群集服务(Microsoft Cluster Service,MSCS)的独立服务器。服务器群集为资源和应用程序提供高可用性、故障恢复、可伸缩性和可管理性。

    服务器群集允许客户端在出现故障和计划中的暂停时,依然能够访问应用程序和资源。如果群集中的某一台服务器由于故障或维护需要而无法使用,资源和应用程序将转移到可用的群集节点上。

    Windows群集(Windows Clustering)解决方案使用了名词“高可用性”而非“容错”。容错技术提供更高层次的弹性和恢复能力。容错服务器通常使用深层硬件冗余,加上专门的软件,几乎可以即时地恢复任何单一的硬件或软件错误。这些解决方案要比Windows群集(Windows Clustering)解决方案昂贵得多,因为组织必须为处于空闲状态等待错误的冗余硬件支付费用。

    服务器群集无法保证无间断运作,但是确实能够为多数关键任务应用程序提供足够的可用性。群集服务可以对应用程序和资源进行监控,并能够自动识别和恢复众多故障状况。这为在群集中管理工作负荷提供了灵活性。另外,还提高了整个系统的可用性。

群集服务(Cluster service)的优点包括:

    • 高可用性:通过服务器群集,资源(例如:磁盘驱动器和Internet协议(IP)地址)的所有权会自动从故障服务器转移到可用的服务器。当群集中的某个系统或应用程序发生故障时,群集软件会在可用的服务器上重新启动故障应用程序,或者将工作从故障节点分散到剩下的节点上。由此,用户只在瞬间感觉到服务的暂停。
    • 故障恢复:当故障服务器重新回到其预定的首选所有者的联机状态时,群集服务将自动在群集中重新分配工作负荷。该特性可配置,但默认禁用。
    • 可管理性:您可以使用“群集管理器”工具(CluAdmin.exe),将群集作为一个单一的系统进行管理,并对犹如运行于一个单一服务器的应用程序实施管理。您可以将应用程序转移到群集中的其它服务器。“群集管理器”可用于手动平衡服务器的工作负荷,并针对计划维护释放服务器。您还可以监控群集的状态、所有节点以及来自网络任何地方的资源。
    • 可伸缩性:群集服务可扩展以满足需求的增长。当群集监督应用程序的总体负荷超出了群集的能力范围时,可以添加附加的节点。

    本文档提供有关针对连接到共享群集存储设备并运行Server 2003 Enterprise Edition或Windows Server 2003的服务器创建和配置服务器群集的指导。本文档的目的是为了指引您完成安装典型群集的步骤,并未解释如何安装群集应用程序。而对于实施非传统仲裁模型,如:多数节点集(Majority Node Set,MNS),的Windows群集(Windows Clustering)解决方案和地理位置分散的群集也不予以讨论。关于服务器群集概念以及安装和配置步骤的附加信息,请参见“Windows Server 2003在线帮助”。

服务器群集配置清单:

    本清单帮助您进行安装准备,其后接具体的步骤指导。

软件要求

    • 群集中的所有计算机均安装了Microsoft Windows Server 2003 Enterprise Edition或Windows Server 2003 Datacenter Edition。
    • 一个名称解析法,比如:域名系统(Domain Name System,DNS)、DNS动态更新协议、Windows Internet名称服务(Windows Internet Name Service,WINS)、HOSTS等等。
    • 一个现有的域模型。
    • 所有的节点必须是同一个域的成员。
    • 一个域级帐户,必须是每个节点上的本地管理员组的成员。建议采用专用帐户。

硬件要求

    • 群集硬件必须属于群集服务硬件兼容性列表(Hardware Compatibility List,HCL)。要查找最新的群集服务硬件兼容性列表,请登陆位于http://www.microsoft.com/hcl/的Windows硬件兼容性列表(Windows Hardware Compatibility List),然后搜索“cluster”(群集)。整个解决方案必须得到HCL认证,而不仅仅是个别组件。附件信息,请在Microsoft知识库(Microsoft Knowledge Base)中参阅下方文章:
309395 Microsoft对于服务器群集和硬件的支持策略(The Microsoft Support Policy for Server Clusters and the Hardware)

    注意:如果您正在存储区域网络(SAN)上安装该群集,并计划让多个设备和群集与之共享SAN,那么该解决方案也必须服从“群级/多群集设备(Cluster/Multi-Cluster Device)”硬件兼容性列表。附加信息,请在Microsoft知识库中参阅下方文章:

    304415 针对附加到相同SAN设备的多群集的支持(Support for Multiple Clusters Attached to the Same SAN Device)

    • 两个超大存储设备控制器——小型计算机系统接口(Small Computer System Interface,SCSI)或光纤通道(Fibre Channel);一个用于在其中一个域控制器上安装操作系统(OS)的本地系统磁盘;一个面向共享磁盘的独立的外围组件互连( PCI)存储控制器。

    • 群集中的每个节点拥有两个PCI网络适配器。

    • 将共享存储设备附加到所有计算机的存储电缆。参考关于配置存储设备的制造商指南。参见本文后面的附录,了解有关使用SCSI或光纤通道(Fibre Channel)所需的特定配置。

    • 对于所有的节点,一切硬件都必须是可识别的,对应正确的插槽、设备卡、BIOS、固件修订版等等。这将使配置变得更加简单,同时消除兼容性问题。

网络要求

    • 一个唯一的NetBIOS名称。
    • 每个节点上的所有网络界面均拥有静态IP地址。 注意:服务器群集(Server Clustering)不支持使用由动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)服务器分配的地址。
    • 接入一个域控制器。如果群集服务无法验证用于启动服务的用户帐户,可能导致群集发生故障。建议您在群集所在的相同的局域网(LAN)上拥有一个域控制器,以便确保其可用性。
    • 每个节点至少必须拥有两个网络适配器——一个用于连接客户端公用网络,另一个用于连接节点对节点专用群集网络。HCL认证要求一个专用网络适配器。
    • 所有节点都必须拥有两个面向公用和专用通信的物理独立的局域网(LAN)或虚拟局域网(LAN)。
    • 如果您正在使用容错网卡或网络适配器组合,确认您正在使用最新的固件和驱动程序。向您的网络适配器制造商核实群集兼容性。
共享磁盘要求
    • 一个经HCL认可的连接到所有计算机的外部磁盘存储单元。其将用作群集共享磁盘。建议采用某种类型的硬件独立磁盘冗余阵列( RAID)。
    • 所有共享磁盘,包括仲裁磁盘,必须在物理上附加到一个共享总线。
注意:以上要求并不适用于多数节点集( Majority Node Set,MNS)群集。这类群集本指南不予讨论。
    • 共享磁盘必须位于系统驱动器所用的控制器以外的另一个控制器上。
    • 建议在RAID配置中创建多个硬件级别的逻辑驱动器,而不是使用一个单一的逻辑磁盘,然后将其分成多个操作系统级别的分区。这不同于独立服务器通常所采用的配置。但是,它使您可以在群集中拥有多个磁盘资源,并跨节点执行“活动/活动(Active/Active)”配置和手动负载平衡。
    • 最小50兆字节(MB)的专用磁盘用作仲裁设备。为了得到最佳的NTFS文件系统性能,建议采用最小500 MB的磁盘分区。
• 确认可以从所有的节点看到附加到共享总线的磁盘。这可以在主适配器安装中进行查看。请参考制造商的文档,了解适配器指定的指导说明。
• 必须根据制造商的指导说明,对SCSI设备分配唯一的SCSI标识号,并正确地将其端接。参见本文附录,了解有关安装和端接SCSI设备的信息。
    • 所有共享磁盘必须配置为基本磁盘。附加信息,请在Microsoft知识库中参阅下方文章:

237853 服务器群集磁盘资源不可用的动态磁盘配置(Dynamic Disk Configuration Unavailable for Server Cluster Disk Resources)
    • 群集共享磁盘不支持软件容错。
    • 在运行64位版本的Windows Server 2003的系统上,所有共享磁盘必须配置为主引导记录(MBR)。
    • 群集磁盘上的所有分区必须格式化为NTFS。
    • 建议所有磁盘均采用硬件容错RAID配置。
    • 建议最少采用两个逻辑共享驱动器。
群集安装(安装概述)

    在安装过程中,安装某些节点时将关闭其它节点。这个步骤有助于保证附加到共享总线的磁盘上的数据不会丢失或遭到破坏。当多个节点同时尝试写入一个未受到群集软件保护的磁盘时,可以出现数据丢失或遭到破坏的情况。与 Microsoft® Windows® 2000系统不同,Windows 2003 Server中新磁盘的默认装载方式有所变化。在Windows 2003中,将不会对与引导分区不在同一总线的逻辑磁盘进行自动装载和分配驱动器号。这有助于确保在复杂的SAN环境中,服务器不会装载可能属于另一台服务器的驱动器。尽管驱动器不会被自动装载,但是仍然建议您按照下列步骤,确认共享磁盘不会遭到破坏。

    使用下表确定在每一个步骤必须关闭的节点和存储设备。

    本指南中的步骤面向双节点群集。而如果您正在安装拥有两个以上节点的群集,那么“节点2”一栏将列出其它所有节点所要求的状态。

在配置群集(Cluster)服务软件前,必须先执行几个步骤。这些步骤是:

    • 在每个节点上安装Windows Server 2003 Enterprise Edition或Windows Server 2003 Datacenter Edition操作系统。
    • 设置网络。
    • 设置磁盘。

    在第一个节点上开始安装群集服务前,在每一个群集节点上执行这些步骤。要配置群集服务,您必须登录一个拥有所有节点管理许可的帐户。每个节点都必须是同一个域的成员。如果您选择将其中一个节点作为域控制器,那么在相同的子网上再设置一个域控制器,以便消除单点故障,并对该节点进行维护。

安装Windows Server 2003操作系统

    参考您从Windows Server 2003操作系统软件包中得到的文档,以便在群集中的每个节点上安装该系统。配置群集服务之前,您必须在本地登录一个属于本地管理员组成员的域帐户。

    注意:如果您试图将一个节点加入一个具有空白的本地管理员帐户密码的群集,安装将会失败。基于安全原因,Windows Server 2003禁止使用空白的管理员密码。

    设置网络:每个群集节点至少需要包含两个网络适配器的两个或两个以上的独立网络,以便避免单点故障。其中一个网络适配器用于连接到公用网络,而另一个则用于连接到仅由群集节点组成的专用网络。拥有多个网络适配器的服务器被称为“多宿主”。由于多宿主服务器可能存在问题,因此遵照本文档中所描述的网络配置建议,对您来说至关重要。

    Microsoft要求您在每个节点上拥有两个经硬件兼容性列表(Hardware Compatibility List,HCL)许可并得到Microsoft产品支持服务(Microsoft Product Support Services)支持的PCI(Peripheral Component Interconnect,外围组件互连)网络适配器。通过一个静态IP地址,在您的生产网络上配置其中一个网络适配器,并在另一个用于进行专用群集通信的子网上,通过另一个静态IP地址,在一个独立的网络上配置另一个网络适配器。

    服务器群集节点间的通信对于群集的顺畅运转至关重要。因此,您必须对用于群集通信的网络执行最佳配置,并遵照硬件兼容性列表上的所有要求。

    专用网络适配器用于执行节点对节点的通信、群集状态信息和群集管理。每个节点的公用网络适配器都将群集连接到客户端所在的公用网络,并应配置为内部群集通信的后备路由。要实现这些操作,应该将群集服务的这些网络角色配置为“只用于内部群集通信”或“所有通信”。

    此外,每个群集网络必须独立于其它所有群集网络之外发生故障。这意味着,两个群集网络不能拥有可能同时导致其出现故障的组件。例如:在多数情况中,使用多端口网络适配器将一个节点附加到两个群集网络,将无法满足该要求,因为其端口不是独立的。

    要消除可能的通信问题,从网络适配器删除所有不必要网络流量,即设置为“只用于内部群集通信”(该适配器也被称为心跳或专用网络适配器)。

    要验证所有的网络连接均准确无误,专用网络适配器必须位于另一个来自公用网络适配器的逻辑网络上的网络。这可以通过在双节点配置中使用跨接电缆,或者在两个以上的节点配置中使用专门的哑集线器来实现。不要针对核心网络使用交换机、智能集线器或其它任何路由选择设备。

    注意:群集心跳不能通过路由选择设备进行转移,因为它们的生存时间(Time to Live,TTL)被设定为1。公共网络适配器只能连接到公用网络。如果您拥有一个虚拟局域网(LAN),那么节点间的等待时间必须少于500毫秒(ms)。另外,在Windows Server 2003中,服务器群集(Server Clustering)中的心跳被改为多播的形式;所以,您可能需要提供一台Madcap服务器,以便分配多播地址。下方的图 1简要描绘了一个四节点群集的配置。


图1. 四节点群集的连接。

    常规网络配置:注意:本指南假定您正在运行默认的“开始”菜单。如果您使用传统的“开始”菜单,那么具体步骤可能稍有不同。在本白皮书中,第一个网络适配器(本地连接)被连接到公用网络,而第二个网络适配器(本地连接2)则被连接到专用群集网络。您的网络可能有所不同。

    重命名局域网图标:建议您更改网络连接的名称,以便清楚地进行识别。例如:您可能想把“本地连接2”的名称更改为“Private”(专用网络)。重命名将有助于您识别网络并对其正确地分配角色。

    1. 单击“开始”,指向“控制面板”,右击“网络连接”,然后单击“打开”。
    2. 右击“本地连接2”图标。
    3. 单击“重命名”。
    4. 在文本框中键入“ Private”(专用网络),然后按“ENTER”键。
    5. 重复步骤1至3,然后将公用网络适配器重命名为“Public”(公用网络)。


图 2. “网络连接”窗口中被重新命名的图标。


    6. 重命名的图标如上方图2所示。关闭“网络连接”窗口。新的连接名称将出现在“群集管理器”中,并将在联机时自动复制到其它所有的群集节点。

在所有节点上配置绑定顺序网络

    1. 单击“开始”,指向“控制面板”,右击“网络连接”,然后单击“打开”。
    2. 在“高级”菜单上,单击“高级设置”。
    3. 在“连接”窗口中,确认您的绑定顺序如下所示,然后单击“确定”:
    a) 公用网络
    b) 专用网络
    c) 远程访问连接

配置专用网络适配器

    1. 右击您的心跳适配器对应的网络连接,然后单击“属性”。
    2. 在“常规”选项卡上,确认仅选定了“Internet协议(TCP/IP)”复选框,如下方图2所示。点击清除所有其它客户端、服务和协议的复选框。


图 3. 在“专用网络属性”对话框中,仅点击选定“Internet协议”复选框。

    3. 如果您拥有一个能够以不同速度进行传输的网络适配器,那么您应该手动指定一个速度及双工模式。不要对传输速度应用自动选择设置,因为某些适配器在确定速度时可能丢掉一些数据包。必须根据设备卡制造商的规格说明,将所有节点上的网络适配器的速度硬性设定(手动设定)为相同的值。如果您不能确定您的设备卡和连接设备所支持的速度,Microsoft建议您将同一路径上的所有设备设定为“10兆字节每秒”(Mbps)和“半双工”,如下方图4所示。虽然通过心跳网络的信息量较小,但是等待时间对于通信至关重要。该配置将为可靠的通信提供充足的带宽。群集中附加到相同网络的所有网络适配器必须统一设定为使用相同的“双工模式”、“连接速度”、“流控制”等等。联系您的适配器制造商,了解有关您的网络适配器的正确的速度和双工设置的特定信息。


图 4. 为所有适配器设置速度和双工。


    注意:Microsoft不推荐您针对心跳使用任何类型的容错适配器或“Teaming”(组合)。如果您需要冗余的心跳连接,可以使用多个设定为“只用于内部通信”的网络适配器,并在“群集”配置中定义它们网络优先级。早期多端口网络适配器常常存在问题,如果您使用该技术,请确认您的固件和驱动程序都属于最新的版本。

    4. 单击“Internet协议(TCP/IP)”,然后单击“属性”。

    5. 在“常规”选项卡上,确认您所选择的静态IP地址与其它任何公用网络适配器不在相同的子网或网络上。建议您将专用网络适配器放置在以下任何一个专用网络地址域内:
        • 10.0.0.0到10.255.255.255 (A类)
        • 172.16.0.0到172.31.255.255 (B类)
        • 192.168.0.0到192.168.255.255 (C类)

    对专用适配器应用一个较好的IP地址的范例是:将节点1的地址设为10.10.10.10,将节点2的地址设为10.10.10.11,同时将子网掩码设为255.0.0.0,如下方图5所示。确认该IP地址方案与应用于公用网络的IP地址方案完全不同。


图 5.应用于专用适配器的IP地址示例。

    6. 确认未在“默认网关”方框中,或者在“使用下列DNS服务器地址”下方,定义了任何值。
    7. 单击“高级”按钮。
    8. 在“ DNS”选项卡上,确认未定义任何值。同时确认清除了“在DNS中注册此连接的地址”和“在DNS注册中使用此连接的DNS后缀”复选框。
    9. 在“WINS”选项卡上,确认未定义任何值。单击“禁用TCP/IP上的NetBIOS”,如下方图6所示。


图 6. 确认未在“WINS”选项卡上定义任何值。

    10. 当关闭了该对话框,您可能接收到如下提示:“此连接拥有一个空白的主WINS地址。您想继续吗?”如果您收到了该提示,单击“是”。

    11. 在群集中的所有其它节点上,通过不同静态IP地址完成步骤1至10。

配置公用网络适配器

    注意:如果IP地址是通过DHCP获取的,那么如果不能访问DHCP服务器,则可能无法接入群集节点。由于这个原因,服务器群集上的所有接口均要求静态IP地址。记住:群集服务只能识别每个子网上的一个网络接口。

验证连通性和名称解析

    要验证专用和公用网络正确地进行通信,查验来自每个节点的所有IP地址。您必须可以在本地和远程节点上查验所有的IP地址。
要验证名称解析,使用节点的机器名称而非IP地址,从客户端查验每一个节点。应该仅对公用网络返回IP地址。您也许还想尝试通过“PING –a”命令,反向查找IP地址。

验证域成员

    群集中的所有节点必须是同一个域的成员,并可以访问域控制器和DNS服务器。不能将其设定为成员服务器或域控制器。与群集一样,您至少应该在相同的网络区域拥有一个域控制器。基于高可用性,另一个域控制器也应该可用于消除单点故障。在本指南中,所有的节点都被设定为成员服务器。

    在某些实例中,节点可能部署于并未预先存在Microsoft® Windows NT® 4.0域控制器或Windows Server 2003域控制器的环境中。这种情景至少要求其中有一个群集节点被设定为域控制器。但是,在双节点服务器群集中,如果其中有一个节点是域控制器,那么另一个节点也必须是一个域控制器。在四节点群集实施过程中,没有必要将全部四个节点都设定为域控制器。然而,当遵照一个“最佳实践”模型并至少拥有一个后备域控制器时,余下的三个节点中至少应该有一个被设定为域控制器。在设定群集服务之前,必须使用DCPromo工具将其中一个节点提升为域控制器。

    在Windows Server 2003中位于DNS上的依赖性进一步要求,如果另一个支持动态更新和/或SRV记录的DNS服务器不可用,每一个是域控制器的节点也必须是DNS服务器(建议采用活动目录集成区域)。
在将群集节点部署为域控制器时,应该考虑以下问题:

    • 如果双节点群集中有一个群集节点是域控制器,另一个节点也必须是域控制器。
    • 运行域控制器需要一定的开销。一个空闲的域控制器在任何地方都会使用130到140 MB的RAM,包括维持群集服务运行所需的内存。复制也会增加网络流量,因为这些域控制器必须在域中和域间同其它域控制器进行复制。
    • 如果群集节点是唯一的域控制器,那么每个节点必须同时是DNS服务器。对于主DNS解析,它们必须相互指向对方,而对于备用解析,则必须指向自身。
    • 森林/域中的第一个域控制器将承担所有的操作主控角色(Operations Master Roles)。您可以将这些角色重新分配给任何节点。但是,如果有一个节点出了故障,该节点所承担的操作主控角色(Operations Master Roles)将不可用。因此,建议您不要在任何群集节点上运行操作主控角色(Operations Master Roles),其中包括架构主控(Scheme Master)、域命名主控(Domain Naming Master)、相关 ID主控(Relative ID Master)、 PDC仿真主控(PDC Emulator)和基础结构主控(Infrastructure Master)。这些功能不能进行群集以便通过故障转移实现高可用性。
    • 由于资源限制,在节点同时是域控制器的情况下,对Microsoft® SQL Server ™或Microsoft® Exchange Server等其它应用程序进行群集处理可能无法达到最佳效果。在部署前,该配置必须在实验室环境中进行全面的测试。由于制作群集节点域控制器所涉及的复杂性和开销,建议所有节点都应该是成员服务器。

设置群集用户帐户

    群集服务需要一个属于可运行群集服务的每个节点上的本地管理员(Local Administrators)组成员的域用户帐户。因为安装需要用户名和密码,所以该用户帐户必须在配置群集服务前予以创建。该用户帐户只能专门用于运行群集服务,而不能属于个人。

    注意:群集服务帐户不需要一定是域管理员(Domain Administrators)组的成员。基于安全原因,建议不要授予群集服务帐户域管理员权利。

    群集服务帐户需要下列权利以便在群集的所有节点上正确地发挥作用。“群集配置向导”(Cluster Configuration Wizard)自动授予以下权利:
    • 充当操作系统的一部分
    • 调整某个过程的内存配额
    • 备份文件和目录
    • 增加计划优先级
    • 作为服务登录
    • 还原文件和目录

    设置群集用户帐户
    1. 单击“开始”,指向“所有程序”,指向“管理工具”,然后单击“活动目录用户和计算机”。
    2. 如果域还未展开,单击加号(+)将其展开。
    3. 右击“用户”,指向“新建”,然后单击“用户”。
    4. 键入群集名称,如下方图7所示,然后单击“下一步”。


图7设置群集用户帐户