建立高可用性的数据库群集
建立高可用性的数据库群集
Duwamish Online
Aaron Ching 和 Steve Kirk
Microsoft Developer Network
2000 年 12 月
摘要:本文探讨群集化技术以及为电子商业网站建立群集所涉及的步骤。本文还考察群集化是如何在 Duwamish Online 商店示例中实施的。
目录
简介
Windows 2000 中的故障转移群集化
SQL Server 2000 中的故障转移群集化
Duwamish Online 系统结构概述
安装和配置硬件
安装 Windows 2000 群集服务
安装 SQL Server 2000 群集化
服务器群集中的操作管理
总结
相关资源
简介
请考虑这种情况:您浏览过联机商店的品目,并将一些项目放入购物车。在您正要录入您的信用卡细节时,网站停止响应,您因此决定另寻一家竞争者的网站。
对于一个电子商业机构,这种应用程序故障(或可用性中断),是服务质量低下的一种形式,需要加以避免。“不间断的可用性”对于联机商业保持成功至关重要。
用于确保 Web 站点免于故障和数据丢失的办法就是实施冗余,从而单一组件的故障并不会导致应用程序失败。提供应用程序服务的服务器中的冗余,是通过使用“群集化”来设计进网站的。
本文涉及基于 Microsoft® Windows® 2000 群集服务和 Microsoft SQL Server™ 2000 设计和实施 Duwamish Online 数据库群集。
不同类型的群集
本文重点讨论故障转移群集,此类群集不同于负载平衡群集。在实施负载平衡的服务器群集中,处理请求分布于各服务器。负载平衡群集中的各个不同的服务器分担处理负载,但不共享磁盘阵列或内存等资源。如果其中一个服务器发生故障,处理负载可以被简单地重新分布于群集中幸存的各个节点。(请参阅我们的文章建立高可用性和可缩放的 Web 基地(英文),了解有关我们在 Duwamish Online 中使用 Windows 2000 网络负载平衡的更多信息。)
相形之下,故障转移群集是一组两个或更多的共享资源的独立计算机,从而,如果其中一个服务器发生故障,则群集中的另一个服务器会接管资源并处理负载。由群集节点对资源进行管理,是在要害应用程序(例如提供数据库和消息收发服务的应用程序)中实施冗余所必需的。
可以说资源是在故障转移群集中的各个计算机之间共享的。此类逻辑共享的实际实施,可以划分为两种解决方案,即任何时候均不共享任何资源(零共享),以及在某个时间点才实际共享资源。因为所共享的资源通常为磁盘阵列,大多数的群集化解决方案或是基于零共享模型,或是基于共享磁盘模型。
在“零共享”模型中,群集中的每个服务器分别控制一组资源,诸如共享磁盘阵列中的一个不同的磁盘分区。在一个时间,仅有一个服务器能够拥有和访问某一具体的资源或分区。一旦出现故障,群集中的另一个幸存的服务器就接管发生故障的服务器的资源,且后续的客户机请求被导到该服务器。Windows 2000 操作系统实施群集服务,正是基于这种零共享模型的。Duwamish Online 使用的就是这一技术,而这正是本文的重点。
在“共享磁盘”模型中,群集中的多个服务器可以同时访问共享磁盘。维护数据完整性所必需的同步逻辑使得该模型更加复杂,因此 Windows 2000 群集服务并不采用该模型。
Windows 2000 中的故障转移群集化
对于故障转移群集化,Microsoft Windows 2000 Advanced Server 和 Microsoft Windows 2000 Datacenter Server 均提供群集服务,这是 Microsoft Windows NT® 4.0, Enterprise Edition 中的 "Wolfpack" 群集化技术的后继产品。Windows 2000 的群集服务允许一组独立的服务器(节点)一同工作,以支持冗余。这主要用于为数据库、消息收发系统和文件/打印服务等等应用程序提供故障转移支持。Windows 2000 Advanced Server 支持双节点故障转移群集,而 Windows 2000 Datacenter Server 支持多达四个节点的配置。
在实施零共享群集模型的群集服务中,每个节点拥有其自己的磁盘资源,因此在逻辑上,任何时候均不共享任何资源。但是,各个节点确实共享对所有带有共用总线结构(诸如小型计算机系统接口 (SCSI) 和光纤通道)的磁盘资源的物理访问。如果在任一节点发生硬件或软件故障,则当前正在该节点上运行的应用程序(您可以运行一个以上的应用程序)均被群集迁移到一个幸存的节点上,并重新启动。除其原来的资源之外,幸存的节点现在还独占故障节点的磁盘资源,因此在故障转移过程中没有丢失任何数据。
群集服务可以在两种配置形式中操作:主动到主动和主动到被动。
在“主动到主动”配置中,所有的节点均同时主动地管理其自己的应用程序。当其中一个活跃节点发生故障时,故障节点的所有应用程序均被转移,并由剩余节点提供服务。
在“主动到被动”配置中,仅有一个节点在主动地运行所有的应用程序,而另一个节点只是用作热备用。一旦活跃节点出现故障,备用节点就会自动接管所有应用程序的操作。
SQL Server 2000 中的故障转移群集化
为提高数据服务的可用性,Microsoft SQL Server 已从版本 6.5 开始提供群集化支持。在 SQL Server 2000 中,故障转移群集化已得到增强,从而简化安装、配置和维护。
SQL Server 2000 中的故障转移群集化建立在 Windows 2000 操作系统的群集服务之上,依赖群集服务来提供对共享磁盘阵列系统的受控制访问(SQL Server 将其数据和日志文件存储在该系统上)。SQL Server 2000 支持零共享群集模型,其中每个节点管理其自己的资源和提供非共享数据服务。一旦发生节点故障,一个节点的磁盘和服务就可以故障转移到一个幸存的节点,但是在任一给定的瞬间,仅有一个节点在管理某一组磁盘和服务。
SQL Server 2000 中的故障转移群集化可以配置为两种模型:主动到主动和主动到被动。
在“主动到主动”配置中,群集中的每个节点均拥有其自己的 SQL Server 实例(进程),该实例由群集服务进行管理。所有的实例均可以为前端服务器所用,且每个实例负责其自己的数据集。一旦发生故障转移,一个幸存的节点就接管和启动当初由发生故障的节点拥有的服务资源和数据。每个服务器均拥有一个分开的主数据库 (master.dat) 和一组用户数据库。
在“主动到被动”配置中,群集运行 SQL Server 的单独一个实例,该实例由群集服务进行管理。在任一个时间,均仅有一个节点在积极地对客户机请求作出响应。如果活跃节点发生故障,则群集中的另一备用(被动)节点可以运行同一 SQL Server 实例(该实例由备用节点中的群集服务初始)并开始提供当初由发生故障的节点拥有的整套数据的服务。在该配置中,两个服务器共享一个主数据库和同一组用户数据库。
设计时要考虑的因素
我们决定将我们的数据库群集配置为较为简单的主动到被动的配置形式,因为这允许通过故障转移群集化提高可用性,且不提高应用程序复杂性。从应用程序的角度来讲,主动到被动故障转移群集和单独一个数据库服务器之间并无任何差别。
因为主动到主动群集中的每个节点均拥有其自己的 SQL Server 实例,所以主动到主动适用于经过分区的数据库,或使用实例之间进行复制的数据库。分区具有负载分布和冗余的优势,但复杂性较高。
本文将仅论述建立主动到被动配置所需的各个步骤。
Duwamish Online 系统结构概述
注意: 要了解更多有关我们网络结构的信息,请参见 Duwamish Online 配置概述,理解网络和系统配置。
图 1. Duwamish Online 网络结构
在后端网络中,两个同样的数据库服务器被连接到一个共享的外部 SCSI 存储设备。我们用 Windows 2000 安装和配置群集服务,并在这些服务器上用 SQL Server 2000 安装和配置故障转移群集化,从而组成一个数据库服务器群集。
尽管我们正使用这些解决方案来增强我们结构中的冗余功能,但单独的故障点依旧存在。我们当前配置中的网络交换机和所共享的磁盘阵列就是单独的故障点。但是,作为一家刚刚起步的电子商业企业,我们作出决定,这些是可以接受的风险。磁盘阵列是内部冗余的,因而十分可靠,而交换机通常比服务器硬件更可靠,因为其带有移动部件,这在出现故障时更换起来相对快捷。备用交换机借助手工故障转移实施冗余功能。
安装和配置硬件
下列过程描述为 Duwamish Online 数据库群集建立这两种群集化技术所必需的步骤。安装和配置进程以 Microsoft 产品信息为依据。针对群集服务的安装过程以“安装群集服务循序渐进指南” (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp) 为依据。本文不是要重复该指南的细节,而是意在对其进行补充。在开始在你的系统中实施群集化之前,您应当已准备好有关的底层信息。
确定系统要求
根据我们使用各种硬件配置得出的性能测试结果,我们决定将两个双处理器的服务器用作我们的后端数据库群集。(要了解更多有关我们如何得出该结论的信息,请参阅我们即将发表的有关容量规划的文章。)
图 2. 用于后端数据库群集的硬件配置
每个数据库服务器均安装有一个专用的独立磁盘冗余阵列 (RAID) SCSI 控制卡,而这又连接到所共享的外部 SCSI 存储设备。
每个服务器均拥有三个网络接口卡 (NIC)。其中一个 NIC 用于两个服务器之间的私有群集通讯。该 NIC 提供群集“检测机制”,并通过一条以太网跨接电缆连接到另一个群集服务器。其它 NIC 中的一个连接到后端网络,通过一个每秒 100 兆比特 (Mbps) 的网络交换机提供对前端 Web 服务器的访问。剩下的一个 NIC 连接到后端管理网络,服务器管理就是在这里进行的。这个 NIC 还用作私有群集通讯的冗余备份连接,以防第一个 NIC 没能提供检测机制。
配置共享的 RAID 存储
本示例中的外部存储设备配置有四个 SCSI 磁盘驱动器,每个容量为 9 吉比特 (GB)。与其它昂贵的高端智能 RAID 解决方案不同的是,该系统依赖各个服务器上的 RAID SCSI 控制卡来控制和管理 RAID 5 磁盘阵列。
在将 Dell PowerVault 外部 SCSI 存储单元配置为 RAID 5 磁盘阵列时,我们遵循供应商所提供的安装指示,从控制器的固件启动 RAID 配置实用程序,具体如下:
- 在引导过程中会出现一个对话框,其中的消息类似于下面的示例:
PowerEdge Expandable RAID Controller BIOS1.25 May 28, 1998 Copyright ?American Megatrends, Inc. Press <Ctrl><m> to run the BIOS Configuration Utility Firmware Initializing... [Scanning SCSI Device]
- 在对话框出现时立刻按下 CTRL+M,以便启动 RAID 配置实用程序。
通过使用 RAID 配置实用程序,我们能够将四个 9 GB 的 SCSI 硬盘驱动器合并为单独一个 25 GB 的 RAID 5 逻辑驱动器。(请参阅《Dell PowerEdge 可扩展 RAID 控制器 2/SC 用户指南》,了解有关 RAID 配置的信息。)
正如在“群集服务循序渐进安装指南”的附录中所指出的 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading6),同一共享 SCSI 总线上的所有 SCSI 设备(包括每个服务器上的 RAID SCSI 控制卡)均应赋予独特的 SCSI 标识号且得到妥善终接,这一点极其重要。
因为并非所有的服务器硬件均已预配置为针对群集的设置,两个数据库服务器的 RAID SCSI 控制卡在发运时,其 SCSI ID 默认为 7。我们无法借助所安装的软件修改 SCSI ID,且不得不更新固件(下载自 http://support.dell.com/),以便能够将其中一个控制卡的 SCSI ID 更改为 6。
安装前步骤
正如前面所提及的,Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 两者均提供群集服务,其中 Advanced Server 支持一个双节点的群集,而 Datacenter Server 支持多达四个节点。我们为 Duwamish Online 选择了 Advanced Server,因为我们确定双节点的群集能够为我们的可用性要求提供最佳的匹配。
在开始安装进程之间,强烈建议您通读“群集服务循序渐进安装指南”中的“群集安装概述”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3)。例如,依照这一部分中的指示,您“不得让两个节点同时访问所共享的存储设备,一直到在至少一个节点上安装了群集服务且该节点已联机。”未能如此操作可能会导致所共享的设备中的数据发生丢失或毁坏。
配置网络适配器
关掉所共享的存储设备,然后再为进行网络配置重新引导两个数据库服务器。
每个数据库服务器均配有三个 NIC,如图 2 中所示。
下面是配置数据库服务器 1 的每个 NIC 所必需的各个步骤。请参阅“群集服务循序渐进安装指南”中的“配置私用网络适配器”、“配置公用网络适配器”和“重命名局域网图标”等部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3),了解更多细节。请注意,我们已对这些步骤的次序稍加更改,以适应 Duwamish Online 的情形。
- 摸索网络电缆或拔除连接,以确定哪个网络段连接到哪个网络连接。依照相应的网络段对网络连接进行重命名。在我们的情形中,我们将其分别命名为“私有群集连接”、“后端连接”和“管理连接”。
- 对于私有群集连接,用数据库服务器 1 的各个参数对传输控制协议/Internet 协议 (TCP/IP) 属性进行设置,如表 1 中所列。
- 另外,对于私有群集连接,禁用 TCP/IP 上的网络基本输入/输出系统 (NetBIOS)(未显示;请参阅 http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3 处的“群集服务循序渐进安装指南”),并为该网络适配器显式指定网络的实际速度和/或介质类型。
- 对于后端连接,用数据库服务器 1 的各个参数对 TCP/IP 属性进行设置,如表 1 中所列。
- 对于关联连接,用数据库服务器 1 的各个参数对 TCP/IP 属性进行设置,如表 1 中所列。
- 用一组不同的 TCP/IP 属性,为数据库服务器 2 重复前面的步骤,如表 1 中所列。
表 1. 两个数据库服务器的 TCP/IP 属性小节
数据库服务器 1 | 数据库服务器 2 | |
私有群集连接
|
10.11.11.15 255.255.255.0 100BaseTx Full Duplex 已禁用 |
10.11.11.16 255.255.255.0 100BaseTx Full Duplex 已禁用 |
后端连接
|
10.10.10.15 255.255.255.0 10.10.10.18 |
10.10.10.16 255.255.255.0 10.10.10.18 |
管理连接
|
10.7.7.15 255.255.255.0 |
10.7.7.16 255.255.255.0 |
注意: 作为一项 Internet 约定,任意以 10 开始的 IP 地址均被视作仅用于内部网络。没有任何 Internet 业务会向这些 10.x.x.x 地址导入,或从其导出。因此,配制您自己的私有 10.x.x.x 网络会很安全,不会卷入任何可能的 IP 地址冲突。
验证网络连接
采取下列操作来对所有的网络连接进行验证。请参阅“群集服务循序渐进安装指南”中的“验证连接和名称解析” (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3),了解更多细节。
- 在每个数据库服务器上,从命令提示使用 ipconfig,查看网络适配器列表,其中带有其相应的 TCP/IP 设置,如表 1 中所列。
- 使用 ping 来证实所有网络连接是否均活跃。例如,从数据库服务器 1 ping 数据库服务器 2 的 10.11.11.16、10.10.10.16 和 10.7.7.16,以及进行反向操作。
验证域成员身份
假设已经在网络上设置了一个域控制器。要了解更多与如何进行此操作有关的信息,请参阅我们的文章设置 Active Directory 域。
群集中的所有节点均必须是同一域的成员,且能够访问域控制器。例如,要加入一个称作 "TESTLAB.COM" 的现有的域,您可以用鼠标右键单击“我的电脑”图标,选择“属性”,然后单击“网络标识”选项卡,在这里您可以指定域的名称。请参阅“群集服务循序渐进安装指南”中的“验证域成员身份”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3),了解更多细节。
设置群集用户帐户
群集服务要求有一个服务可以在其下运行的域用户帐户。必须在安装群集服务之前创建该用户帐户,因为安装程序要求有用户名和口令。另外,用户帐户必须是管理员组的一个成员。请参阅“群集服务循序渐进安装指南”中的“设置群集用户帐户”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3),了解更多细节。
设置共享磁盘
在继续进行共享磁盘安装之前,请关闭所有节点并仅启动第一个节点和所共享的存储设备。如果在该进程中两个节点均在运行,则所共享的磁盘上的数据可能会丢失或毁坏。
为共享磁盘分区
使用 Windows 2000 操作系统的磁盘管理工具,在 25 GB 的共享磁盘上创建四个逻辑分区。图 3 展示我们的共享磁盘进行的最终设置。请参阅“群集服务循序渐进安装指南”中的“关于仲裁磁盘”、“配置共享磁盘”和“指定驱动器盘符”各部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3),了解更多细节。
图 3. 所共享的磁盘的分区设置
下面是一些针对建立共享磁盘的准则:
- 使用一个分开的磁盘或分区(称作仲裁磁盘)来存储用于管理群集的群集配置和日志文件。
- 将所有的共享磁盘格式化为 NTFS 文件系统,并将其指定为“基本”类型。
- 向每个分区指定一个驱动器盘符。
验证磁盘访问
通过向每个分区写入和从其读出简单的文本文档,对新创建的共享分区进行测试,具体解释见“群集服务循序渐进安装指南”中的“验证磁盘访问和功能”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading3)。
在所共享的设备开启的情况下,关闭第一个群集节点并启动第二个群集节点。以与第一个节点相同的方式,对从第二个节点到四个新分区的访问进行验证。
关闭第二个节点并再次启动第一个节点,然后配置群集服务的第一个节点。
安装 Windows 2000 群集服务
配置第一个节点
安装 Windows 2000 群集服务涉及下列步骤。请参阅“群集服务循序渐进安装指南”中的“配置第一个节点”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading4),了解更多细节。请注意,群集化技术仅随 Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 一起提供。
- 从控制面板,单击“添加/删除程序”,然后单击“添加/删除 Windows 组件”。选择“群集服务”复选框,开始安装。
- 在完成群集服务配置向导中的一些自我解释的对话框之后,您会来到“创建或加入群集”对话框,在这里您可以单击选项按钮来指定为第一个节点进行群集安装,然后继续。
- 在“群集名”对话框中,为群集指定一个公用名称。例如,我们为我们的生产基地使用 "D5DBCLUSTER"。
- 在“选择帐户”对话框中,录入早些时候设置的群集用户帐户信息。
- 如果群集用户帐户并未设置为管理员组的一个成员,则会显示下面的对话框(图 4)。请单击“是”。
图 4. 将群集用户帐户添加进管理员组
- 在“添加或删除被管理的磁盘”对话框中,所有没有与系统磁盘一起驻在同一总线上的 SCSI 磁盘会出现在被管理的磁盘列表中,如图 5 中所示。其中包括所共享的磁盘阵列系统中的所有磁盘分区。请单击“下一步”,继续。
图 5. 配置群集磁盘
- 在“群集文件存储”对话框中,您会被要求为仲裁资源指定一个磁盘。在我们的情形中,我们从磁盘下拉菜单选择了驱动器 E。
- 在“后端连接”的“网络连接”对话框中,您会被要求指定网络要被用作什么群集角色.。请单击“只用于客户访问(公用网络)”选项按钮。
- 在“管理连接”的“网络连接”对话框中,您会被要求指定网络要被用作什么群集角色。请单击“只用于内部群集通讯”选项按钮。该网络连接用作内部群集通讯的一个备份冗余连接,这是对后面要设置的私用群集连接的补充。
注意: “群集服务循序渐进安装指南”中的“配置第一个节点”部分中的步骤 18 一直到步骤 22 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading4) 可能不是在所有网络配置都适用。这些步骤只会在您正在为私用群集连接网络使用集线器或交换机的情况下有效。如果将以太网电缆用于网络(正如我们的网络配置情形),则您应当遵循本文中所列出的各个步骤。
- 在“群集 IP 地址”对话框中,您会被要求指定群集 IP 地址。我们录入 10.10.10.51,掩码为 255.255.255.0。另外,我们将后端连接选择为数据库群集的“公用”网络。
注意: IP 地址应当是后端连接的一个未使用的 IP 号码,其格式为 10.10.10.x。
- 最后,单击“完成”来完成对第一个节点的群集配置。
启动群集管理器,如“群集服务循序渐进安装指南”中的“证实群集安装”部分 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading4) 中所指示的,您会看到一个窗口,该窗口类似于图 6 中的显示。
图 6. 配置第一个节点之后的群集管理器
请注意,此刻只有两个网络可以为第一个节点所用,因为我们正在为第三个网络使用跨接以太网电缆。一旦我们完成第二个节点的群集安装,我们就配置私用群集连接。
配置第二个节点
让第一个节点和所共享的磁盘设备继续运行,并为群集安装启动第二个节点。
在第二个节点上安装群集服务比在第一个节点上进行安装简单得多。实际上,请遵循与在第一个节点上安装群集服务相同的步骤,并注意下列例外情形:
- 在“创建或加入群集”对话框中,单击相应的选项按钮,安装“群集中的第二个或下一个节点”。
- 在“群集名”对话框中,录入为第一个节点定义的 "D5DBCLUSTER"。不要选择“用下面帐户连接到群集”选项的复选框。
- 从这一点往后,剩余的步骤是自我解释的。请遵循这些步骤来完成双节点群集服务的安装。
- 现在当您打开群集管理器时,您会在左窗格中看到两个数据库服务器节点的名称 (D5PRODB1 和 D5PRODB2),如图 7 中所示。此刻,所有的群集资源,诸如共享磁盘、群集 IP 地址和群集名,均为第一个节点 (D5PRODB1) 所有。也就是说,您现在可以通过第一个节点访问共享磁盘文件,但是无法通过第二个节点进行访问。(请记住这是一个零共享群集化模型。)
图 7. 带有两个节点的群集管理器
- 私有群集连接现在会出现在“群集配置”文件夹的“网络”子文件夹中。用鼠标右键单击“私有群集连接”图标并选择“属性”。在“属性”对话框中,单击选项按钮,以指定“只用于内部群集通讯”。
注意: 如果您为私用群集连接网络使用的是集线器或交换机,则您不必遵循这一步。“群集服务循序渐进安装指南”中的“配置第一个节点”部分中的步骤 18 一直到 22 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp#heading4) 已经论述过设置此类私有群集连接的步骤。
- 另外,从“群集管理器”的左窗格用鼠标右键单击群集名 D5DBCLUSTER 并选择“属性”。请单击“网络优先级”选项卡,如果“私有群集连接”不在列表的顶部,就将其高亮显示并移到列表的顶部。
这会将私用群集连接指定为内部群集通讯的主网络,并在主网络发生故障时,故障转移到管理连接。
我们现在已借助主动到被动模式,完成了对双节点服务器群集的设置,其中仅有一个节点完全控制着所有的共享磁盘资源。另一节点用作热备用,以便在第一个节点操作失败时自动恢复对共享资源的控制。
验证安装
正如“群集服务循序渐进安装指南”中所阐述的那样 (http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp),用于验证群集服务是否安装成功的一个简单的方法就是将群集的资源组从一个节点移到另一节点。要做到这一点,可以有若干方法:
- 用鼠标右键单击“群集管理器”对话框中的“群集组”图标并选择“移动”。在大约 15 到 30 秒钟内,您会观察到所有共享资源(诸如所共享的磁盘)会被移到另一节点的所有权控制下。
- 验证群集的另一方法就是将一个网络驱动器从其中一个前端服务器进行映射。例如,从生产基地中的一个 Web 服务器,将一个网络驱动器映射到 \\10.10.10.51\E$,其中 10.10.10.51 是服务器群集的群集 IP 地址。
在该网络驱动器中创建一个简单的记事本文档并确保以后您可以访问和读取它。
通过将群集资源从一个节点移到另一节点,手工对服务器群集进行故障转移,正如前面的各个验证方法所提及的那样。在所有资源均已被切换到另一节点之后,再次从 Web 服务器访问和读取同一记事本文档,以验证为服务器群集进行的故障转移操作已成功。
- 为服务器群集的故障转移进行测试的第三个方法就是突然从控制节点拔除网络电缆。履行刚才所描述的第一个或第二个验证方法来验证幸存的节点是否正控制着所共享的资源。
- 最后,最终的故障转移测试就是突然关掉控制节点的电源并检查幸存的节点是否自动接管操作。
在为 Duwamish Online 设置完成了所有这些测试之后,我们确认服务器群集操作完全正常。下一步,我们会在群集上安装 SQL Server 2000,并启用故障转移群集化。
安装 SQL Server 2000 群集化
对于初次部署 Duwamish Online,我们实施主动到被动配置,以便将数据库管理的复杂性降至最低。
配置 DTC
根据 SQL Server Books Online 文档“使用 Windows 2000 进行安装”(可以在安装 SQL Server 2000 时提供),我们的服务器群集需要能够识别分布式事务协调器 (DTC) 群集。要做到这一点:
- 从命令提示启动 Comclust.exe。
- 当命令结束时,转到“群集管理器”对话框,您会看到 MSDTC 已被添到群集组,成为其中一个共享资源,如图 8 中所示。
图 8. MSDTC 被添加为一个群集资源
- 在另一数据库服务器节点中重复同一步骤。
创建一个新的 SQL Server 群集
一旦我们将 Windows 2000 群集服务配置妥当,在 SQL Server 2000 中安装故障转移群集化就相对容易。在当前正控制着共享磁盘的活跃服务器节点中完成下列步骤。SQL Server 安装向导可以在两个服务器节点的本机硬盘驱动器上以及所共享的磁盘上安装必需的软件。请参阅 SQL Server Books Online,了解更多的详细信息。
创建一个新的 SQL Server 群集
- 从 CD 安装 SQL Server, Enterprise Edition。Standard 或 Desktop 版本中不提供故障转移群集支持。
- 在“计算机名”对话框中,您会被问到数据库群集的虚拟服务器名。(我们将 "D5Data" 用作 Duwamish Online 的数据库服务器名。)让“虚拟服务器”选项按钮保持选定。
- 在完成了几个与许可协议有关的对话框之后,在“故障转移群集化”对话框中,您会被问到虚拟服务器的 IP 地址。在我们的情形中,我们使用 10.10.10.50 作为虚拟数据库服务器的 IP 地址。正如前面所述,您可以为任意的内部私有网络使用任意以 10 开始的 IP 地址(在此处,业务无法被直接导入或导出 Internet)。另外,IP 地址需要在后端连接网络的地址范围中,例如我们的情形为 10.10.10.x。
- 在“群集管理”对话框中,群集的两个服务器均被添加为配置节点。请单击“下一步”,确认默认设置。
- 在“远程信息”对话框中,提供管理员口令,该口在两个服务器节点中均有效。(我们为 Duwamish Online 使用 "TESTLAB" 域的管理员帐户。)您也可以在安装时创建和使用一个具有管理员权利的新的域帐户。
- 在“实例名”对话框中,选择复选框,以使用“默认”实例名,然后单击“下一步”。
- 在“安装类型”对话框中,更改数据文件的目标位置。将驱动器 F 而不是默认的驱动器 E 用作仲裁资源。
- 在“服务帐户”对话框中,我们使用您在步骤 5 中为与数据库相关的服务录入的同一管理员帐户。请单击“为每个服务使用同一帐户”选项按钮。
- 安装向导会开始将 SQL Server 程序文件复制到两个服务器节点的两个本机硬盘驱动器,并将数据文件复制到共享磁盘。
- 您然后会被要求录入一些授权信息。请单击“完成”,以完成故障转移群集化安装。
验证安装
使用下列步骤来验证 SQL Server 2000 中故障转移群集化是否安装成功:
- 启动群集管理器,验证与 SQL Server 相关的资源已被添加到群集组,如图 9 中所示。
图 9. 安装有 SQL Server 故障转移群集化的群集管理器
- 通过用鼠标右键单击“群集组”图标并选择“移动”,手工初始故障转移。在大约 30 到 60 秒钟之内,您应当能够观察到所有群集资源的所有权(包括所共享的磁盘和 SQL Server)均被从一个服务器节点切换到另一个节点。初始该步骤多次,以确保故障转移在两个服务器节点之间反复发生。
- 通过突然从活跃服务器节点拔除网络电缆或通过将其电源关掉,模拟网络和硬件故障。验证故障转移发生且幸存的节点正全面控制着所有的群集资源。
- 最后,从另外第三个计算机到虚拟数据库服务器建立一个“开发数据库连接”(ODBC) 连接。例如,借助服务器名 "D5Data" 和样例数据库名 "NorthWind",从其中一个前端 Web 服务器创建一个数据库连接。使用 Microsoft Query 或一个类似的工具,借助这个新的 ODBC 连接来打开一个表。通过所检索的表返回的数据记录,对连接进行验证。通过将群集组从一个节点移到另一节点,手工对服务器群集进行故障转移。完成之后,验证 ODBC 连接依旧活跃且正返回正确的数据集。
服务器群集中的操作管理
在安装了一个后端服务器群集之后,您需要对其进行管理。您在管理服务器群集的过程中需要进行的某些管理和维护任务包括:
- 进行硬件或软件升级。
- 将群集中的一个服务器从主节点移到备份节点。
- 在群集中添加或删除一个 SQL Server。
- 更换共享磁盘子系统。
- 创建紧急修复磁盘。
- 进行系统备份和恢复。
- 监视和改善服务器性能。
下面,我们会更详细地为一个数据库服务器群集探讨上述的某些共同任务。
管理群集 SQL Server
要管理群集中的一个 SQL Server,您使用 SQL Server Enterprise Manager 就象在管理一个非群集服务器一样。但是,SQL Server 会永远被认为是一个远程服务器。另外,您需要使用群集服务管理器,启动一个群集 SQL Server。群集服务监视群集中的各个 SQL Server 的所有启动和关闭,且无法区分服务器故障和用户初始的关机。结果是,其将未受群集服务管理的关机视作故障,并重新启动群集中的备份节点上的服务器。使用 Windows NT 服务控制管理器来启动或关闭群集中的服务器,也是这样。
升级群集中的服务器
当您实施一个群集时,您可以对群集中的各服务器进行滚动式升级。您随时可以进行日常的维护任务和例行升级,而不必等候一段没有任何用户访问服务器的时间。升级群集中的服务器并使用户依旧可以使用所有应用程序和服务,这称作“进行滚动式升级”。
要为一个双节点的主动到被动群集 SQL Server 进行硬件或软件滚动式升级,您将需要通过使用群集服务管理器,手工将所有的群集服务从主节点移到备份节点。然后您就可以使主节点脱机并进行所需的升级或系统更改。在升级主节点之后,您可以使其重新联机并对群集中的备份节点重复这一过程。
请记住,在您将一个服务器从主节点移到备份节点时,就不再可以从主服务器使用客户机实用程序(诸如 SQL Enterprise Manager)了。您需要在群集中的备份节点启动客户机实用程序。您还可能需要从群集删除一个服务器。出于此目的,您需要通过使用群集管理器,为所安装的 SQL Server 撤销群集化。这会使服务器成为一个平常的 SQL Server。您然后就可以通过运行 Uninstall SQL Server 程序,将 SQL Server 从计算机删除。
更换共享磁盘
群集服务需要使用共享磁盘阵列系统,该系统内置有冗余机制,从而提供高水平容错。在一个 RAID 5 磁盘阵列中,如果其中一个硬盘发生故障,您可以简单地将磁盘单元从系统中取出,并插入一个正常的更换单元,且不影响磁盘阵列系统的正常操作。系统会自动将新的硬盘重建为磁盘阵列的一部分。
但是,如果多个硬盘单元同时发生故障,或磁盘阵列系统的其它某些非冗余组件发生崩溃,则您必须在整个更换期间将群集关闭。这种情形很少见,但对大多数的机构来讲却是灾难性的。您应当已为所有最坏的情形编制了规划和步骤。您的队伍也应当借助另一个备用磁盘阵列系统来排练这些步骤,以将停机时间降至最低,从而提高您的网站的可靠性。
创建紧急修复磁盘
高可用性系统的一个特征就是可以备份数据,并在一旦发生系统故障时进行恢复。紧急修复磁盘中包含关于系统的信息,该信息用来恢复不启动系统或重贮一个备份。与其它系统一样,您需要在系统配置更改时对磁盘进行更新。
进行系统备份
紧急修复磁盘并不包含群集配置。该信息存储在一个分开的注册表配置单元中,且可以从一个系统备份进行重贮。您必须确保包含群集化配置细节的配置单元已包含在系统备份中。
更多针对设置群集的窍门
下面是您在为您的机构实施群集时需要记住的一些准则:
- 在至少一个节点上安装群集服务,加以运行,然后再在另一个节点上进行安装。不要在多个节点正在运行且同时连接到所共享的存储设备而任何一个节点上又均没有群集服务在运行时安装群集服务。
- 在您安装了群集服务之后,您就无法更改群集中的任一节点的计算机名了。
- 您不应为群集节点或群集地址使用 WINS 数据库静态条目。
- 您不得将群集资源配置为使用不支持的网络协议或相关的网络服务,诸如网间包交换 (IPX)、NetBIOS 增强型用户接口 (NETBEUI)、数据链路控制 (DLC)、Appletalk 或针对 Macintosh 的各项服务。Microsoft 群集服务器软件只适用于 TCP/IP 协议。
- 在群集正在运行或您正在使用本机软件容错的过程中,您不得删除 HKEY_LOCAL_MACHINE \System \Disk 注册表键。
总结
安装 Windows 2000 群集服务和 SQL Server 故障转移群集化确实是一个涉及诸多乏味任务的进程。您开始时要有足够的硬件和网络配置规划。然后您就需要以一个特定的次序安装各种软件组件。本文的目的就是为您开始这一冗长的进程开一个头。
您在安装过程中可能会遇到各种困难,因此在各个安装阶段点,均应为所有的本机硬盘和所共享的磁盘进行映象。例如,我们已为下列阶段创建了磁盘映象:
- 带有联网功能的基本 Windows 2000 Advanced Server 安装
- 上述,外加 Windows 2000 群集服务
- 所有上述,外加 SQL Server 故障转移群集化
借助这些映象,我们总是可以将我们的系统逆转回到最后的安装阶段并重复此后任意的后续步骤。
相关资源
与 Windows 2000 中的群集服务相关的链接
- “介绍 Windows 2000 群集化技术”
http://www.microsoft.com/windows2000/library/howitworks/cluster/introcluster.asp
- “Windows 群集化技术:群集服务结构”
http://www.microsoft.com/windows2000/library/howitworks/cluster/clusterarch.asp
- “群集服务循序渐进安装指南”
http://www.microsoft.com/windows2000/library/planning/server/clustersteps.asp
与 SQL Server 2000 中的故障转移群集化相关的链接
- “如何在 Microsoft 群集服务器上安装 SQL Server 7.0, Enterprise Edition:循序渐进指示”
http://support.microsoft.com/support/sql/content/70papers/70clstr.asp
- “借助 Windows 群集化进行安装”
尽管本文旨在用于 Microsoft Exchange Server,但也可以使您深入了解主动到主动群集的工作原理。
http://www.microsoft.com/technet/exchange/manuals/planning/c20clust.asp