建立高可用性的数据库群集
摘要:本文探讨群集化技术以在大数据量,7*24小时环境下的安装,部署,管理。
目录
简介
2000 中的故障转移群集化
SQL Server 2000 中的故障转移群集化
系统结构概述
安装和配置硬件
安装 2000 群集服务
安装 SQL Server 2000 群集化
群集中的操作管理
总结
简介
请考虑这种情况:您浏览过联机商店的品目,并将一些项目放入购物车。在您正要录入您的信用卡细节时,网站停止响应,您因此决定另寻一家竞争者的网站。
对于一个电子商业机构,这种应用程序故障(或可用性中断),是服务质量低下的一种形式,需要加以避免。“不间断的可用性”对于联机商业保持成功至关重要。
用于确保 Web 站点免于故障和数据丢失的办法就是实施冗余,从而单一组件的故障并不会导致应用程序失败。提供应用程序服务的中的冗余,是通过使用“群集化”来设计进网站的。
本文涉及基于 Microsoft® Windows® 2000 群集服务和 Microsoft SQL Server™ 2000 设计和实施数据库群集。
不同类型的群集
本文重点讨论故障转移群集,此类群集不同于负载平衡群集。在实施负载平衡的服务器群集中,处理请求分布于各服务器。负载平衡群集中的各个不同的服务器分担处理负载,但不共享磁盘阵列或内存等资源。如果其中一个服务器发生故障,处理负载可以被简单地重新分布于群集中幸存的各个节点。
相形之下,故障转移群集是一组两个或更多的共享资源的独立计算机,从而,如果其中一个服务器发生故障,则群集中的另一个服务器会接管资源并处理负载。由群集节点对资源进行管理,是在要害应用程序(例如提供数据库和消息收发服务的应用程序)中实施冗余所必需的。
可以说资源是在故障转移群集中的各个计算机之间共享的。此类逻辑共享的实际实施,可以划分为两种解决方案,即任何时候均不共享任何资源(零共享),以及在某个时间点才实际共享资源。因为所共享的资源通常为磁盘阵列,大多数的群集化解决方案或是基于零共享模型,或是基于共享磁盘模型。
在“零共享”模型中,群集中的每个服务器分别控制一组资源,诸如共享磁盘阵列中的一个不同的磁盘分区。在一个时间,仅有一个服务器能够拥有和访问某一具体的资源或分区。一旦出现故障,群集中的另一个幸存的服务器就接管发生故障的服务器的资源,且后续的客户机请求被导到该服务器。Windows 2000 操作系统实施群集服务,正是基于这种零共享模型的。我们使用的就是这一技术,而这正是本文的重点。
在“共享磁盘”模型中,群集中的多个服务器可以同时访问共享磁盘。维护数据完整性所必需的同步逻辑使得该模型更加复杂,因此 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 实例,所以主动到主动适用于经过分区的数据库,或使用实例之间进行复制的数据库。分区具有负载分布和冗余的优势,但复杂性较高。
本文将仅论述建立主动到被动配置所需的各个步骤。
安装和配置硬件
下列过程描述为数据库群集建立这两种群集化技术所必需的步骤。安装和配置进程以 Microsoft 产品信息为依据。
确定系统要求
根据我们使用各种硬件配置得出的性能测试结果,我们决定将两个双处理器的服务器用作我们的后端数据库群集。
图 2. 用于后端数据库群集的硬件配置
每个数据库服务器均安装有一个专用的独立磁盘冗余阵列 (RAID) SCSI 控制卡,而这又连接到所共享的外部 SCSI 设备。
每个服务器均拥有两个网络接口卡 (NIC)。其中一个 NIC 用于两个服务器之间的私有群集通讯。该 NIC 提供群集“检测机制”,并通过一条以太网跨接电缆连接到另一个群集服务器。另一个 NIC与HUB或机相连,供客户端访问。
配置共享的 RAID 存储
本示例中的外部存储设备配置有四个 SCSI 磁盘驱动器,每个容量为 73吉比特 (G。与其它昂贵的高端智能 RAID 解决方案不同的是,该系统依赖各个服务器上的 RAID SCSI 控制卡来控制和管理 RAID 5 磁盘阵列。关于详细配置请看具体的SCSI 磁盘安装说明。
注意:1. 把一个SCSI设备分成两个逻辑磁盘,并分别与主机通道相连。以便一个磁盘给仲裁资源,一个给SQL SERVER 2000。
2. 不得让两个节点同时访问所共享的存储设备,一直到在至少一个节点上安装了群集服务且该节点已联机。未能如此操作可能会导致所共享的设备中的数据发生丢失或毁坏。
安装前步骤
正如前面所提及的,Windows 2000 Advanced Server 和 Windows 2000 Datacenter Server 两者均提供群集服务,其中 Advanced Server 支持一个双节点的群集,而 Datacenter Server 支持多达四个节点。我们为数据库群级选择了 Advanced Server,因为我们确定双节点的群集能够为我们的可用性要求提供最佳的匹配。
配置网络适配器
关掉所共享的存储设备,然后再为进行网络配置重新引导两个数据库服务器。
每个数据库服务器均配有三个 NIC,如图 2 中所示。
下面是配置数据库服务器 1 的每个 NIC 所必需的各个步骤。摸索网络电缆或拔除连接,以确定哪个网络段连接到哪个网络连接。依照相应的网络段对网络连接进行重命名。在我们的情形中,我们将其分别命名为“private”、和“public”。(注意:命名中不能有空格和无效字符。)
1. 对于私有群集连接,用数据库服务器 1 的各个参数对传输控制/Internet (TCP/IP) 属性进行设置,如表 1 中所列。
2. 另外,对于私有群集连接,禁用 TCP/IP 上的网络基本输入/输出系统 (NetBIOS),并为该网络适配器显式指定网络的实际速度和/或介质类型。
3. 对于后端连接,用数据库服务器 1 的各个参数对 TCP/IP 属性进行设置,如表 1 中所列。
4. 对于关联连接,用数
【责编:admin】
--------------------next---------------------