科技时代新浪首页 > 科技时代 > 技术 > 正文

实现SQL故障转移群集


http://www.sina.com.cn 2005年03月21日 16:22 赛迪网-网管员世界
科技时代_实现SQL故障转移群集
图1
点击此处查看全部科技图片

  作者:孙高峰

在实际环境中,假设一个域有三个服务器,一台作为域控制器,另两台加入到域中作为群集的两个节点,每台服务器均有两块网卡,其中一块网卡作为群集内部通信接口(俗称“心跳”),连接到一个内部交换机上,另一块网卡作为群集外部通信接口,连接到一个外部交换机上。每台服务器的内部驱动器用于安装操作系统和应用软件,内部驱动器可以是IDE硬盘也
可以是SCSI硬盘。

  每台服务器通过SCSI卡连接到群集外部共享磁盘阵列,这必须是SCSI硬盘。共享磁盘阵列分为两种类型:一种是仲裁磁盘(也叫日志磁盘,英文:quorum),用于存储群集的日志,另一种是共享磁盘(英文:shared disk),用于存储群集的两个节点所共享的数据,如SQL Server中的数据库文件。

  Windows 2000的群集模型是“零共享”模型(Share Noting),即群集外部共享磁盘阵列这类的公用设备一次只能被一个节点所存取或管理,但可以由这个节点转移到另一个节点。

  在Vmware GSX中创建Windows群集

  内存需求:256MB以上,虚拟内存在400MB以上。

  软件需求:Vmware GSX Server 2.5 For Windows,大家可以到www.vmware.com下载30天试用版。

  Vmware中的网络环境

  有三台服务器,每台都有两块虚拟网卡:Vmnet3,Vmnet4。主计算机DC01,作为域控制器,另两台虚拟机名为node1,node2,它们作为群集的两个节点。DC01,node1,node2的网卡Vmnet3都在一个网段(192.168.80.0),作为群集公用网络。

  DC01,node1,node2的网卡Vmnet4都在一个网段(192.168.100.0),该网段为群集私用网络。其中主计算机DC01的两块网卡使用静态IP:192.168.80.1,192.168.100.1。两个节点的网卡使用与上述IP在同一网段的静态IP。

  在主计算机上安装活动目录,域名contoso.com,创建一个群集管理账户clust并添加到“Domain Admins”组中。在主计算机上安装两块新网卡:Vmnet3,Vmnet4。

  方法是:添加删除硬件→网卡→制造商:Vmware Inc→选择Vmnet3,用同样方法添加Vmnet4网卡。在Vmnet3,Vmnet4网卡的TCP/IP中将IP设为“192.168.80.1”,“192.168.100.1”,并“禁用TCP/IP上的NetBIOS”。

  创建第一个节点的虚拟机配置

  在Vmware中,点击File→New VirtualMachine→内存100MB,虚拟机目录存在“C:w2kadv1”,虚拟机硬盘使用.vmdk,即IDE硬盘。

  在“Configuration Editor”中,将第一块网卡Network Adapter改为Vmnet3,并添加第二块网卡:点击Add→网卡→Custom→Vmnet4。

  同理创建第二个节点的虚拟机配置,虚拟机目录存在“C:w2kadv2”,虚拟机硬盘使用.vmdk,即IDE硬盘。

  创建群集外部共享磁盘阵列

  (1)将Vmware GSX安装目录中的plainmaker.exe拷到第一个虚拟机的目录下,如"C:vmwin2k1Windows 2000 Advanced Server"

  执行以下命令将创建50MB和100MB的日志磁盘和共享磁盘:

  plainmaker quorum.pln 50

  plainmaker shareddisk.pln 100

  确认"C:vmwin2k1Windows 2000 Advanced Server "目录下生成了四个文件quorum.pln,shareddisk.pln,quorum1.dat,shareddisk1.dat。

  (2)在第一台虚拟机的"configuration Editor"中,添加创建的日志磁盘和共享磁盘:Add→HardDisk→use an exciting disk→brower→选中第一台虚拟机目录中quorum.pln,shareddisk.pln。

  在“Virtual Device Mode”中确认选中了“SCSI 0:0”。

  在第二台虚拟机的"configuration Editor"中,添加创建的日志磁盘和共享磁盘:Add→HardDisk→use an exciting disk→brower→选中第一台虚拟机目录中quorum.pln,shareddisk.pln。

  在“Virtual Device Mode”中确认选中了“SCSI 1:0”。

  (3)分别打开两台虚拟机目录中的“.vmx”文件,在最后添加以下几行:

  disk.locking="FALSE"

  scsi0.SharedBus="Virtual"

  scsi1.SharedBus="Virtual"

  以上几步将创建的日志磁盘和共享磁盘做成了共享磁盘阵列(两台虚拟机同时使用第一台虚拟机目录中的quorum.pln,shareddisk.pln)。虚拟机的最终配置如图1所示:

  安装Windows 2000 Advanced Server

  在第一台虚拟机安装Windows 2000 Advanced Server,安装在“1300MB Disk 0 at Id 0 on Bus 0 on atapi”,即IDE硬盘,计算机名:node1,设置第一块网卡(Vmnet3 AMD Adapter)使用静态IP:192.168.80.20。设置第二块网卡(Vmnet4 AMD Adapter#2)使用静态IP:192.168.100.20。 在每个网卡上关闭NetBIOS,并加入到域contoso.com。

  在第一台虚拟机安装完Windows 2000后,打开这个虚拟机,运行计算机管理→磁盘管理→取消"欢迎使用写入签名和升级磁盘向导"→右击磁盘1→签名→选择磁盘1和磁盘2。签名后对磁盘1和磁盘2进行分区格式化,盘符分别为E:,F:,并格式化成NTFS分区。

  在第一台虚拟机配置Windows群集服务

  (1)添加删除程序→配置Windows组件→配置Windows群集服务:

  群集名:CLUSTSQL

  账户:clust(先前在活动目录中创建的群集管理账户)

  被管理的磁盘:磁盘1 E:,磁盘2 F:

  选择仲裁磁盘:磁盘1 E:

  (2)配置群集网络:

  网络名:本地连接2,设备:AMD Adapter#2 ,IP:192.168.100.20,专用网络

  网络名:本地连接,设备:AMD Adapter ,IP:192.168.80.20,所有通讯(混合网络)

  群集IP:192.168.80.102(与公用网络在同一网段),选择网卡:" 本地连接"

  (3)打开命令提示符,运行comclust

  (4)打开管理工具→群集管理器,可以看到第一个节点已被添加到群集中,如图2所示:

实现SQL故障转移群集

  图2

  关闭第一个节点。在第二台虚拟机安装Windows 2000 Advanced Server,安装在“1300MB Disk 0 at Id 0 on Bus 0 on atapi”,即IDE硬盘,计算机名:node2,设置第一块网卡(Vmnet3 AMD Adapter)使用静态IP:192.168.80.30

  设置第二块网卡(Vmnet4 AMD Adapter#2)使用静态IP:192.168.100.30。 在每个网卡上关闭NetBIOS,并加入到域contoso.com。

  同时打开两台虚拟机,在第二台虚拟机配置Windows群集服务,在群集的第二个节点键入要加入的群集名称:CLUSTSQL,用clust账户连接到群集,打开命令提示符,运行comclust。打开管理工具→群集管理器,可以看到两个节点都已被添加到群集中,如图3所示。

实现SQL故障转移群集

  图3

  模拟群集故障转移

  在node1中打开资源管理器,可以看到仲裁磁盘和共享磁盘磁盘1和磁盘2,但在node2中打开资源管理器,将看不到磁盘1和磁盘2,这是因为Windows 2000的群集模型是“零共享”模型(Share Noting),即群集外部共享磁盘阵列这类的公用设备一次只能被一个节点所存取或管理,但可以由这个节点转移到另一个节点。所以做如下实验(此时磁盘F:属于资源组“Disk Group1”):

  在群集管理器中,点击node1节点→活动组→在右边窗格中右击“Disk Group1”→点击移动组:过一会儿“Disk Group1”就移到了node2节点中的活动组中了,再在node2节点打开资源管理器,就可以看到node2节点已经接管了对磁盘2的访问权,这说明模拟群集故障转移成功。

  创建SQL Server故障转移群集

  虚拟服务器

  虚拟服务器是一个资源组,就如同“cluster group”和“Disk Group1”组,是一个包含多个资源(包括网络名称资源,IP地址资源)的组,客户端能通过虚拟服务器名代替真实服务器名来访问特定的应用程序(如SQL Server,Exchange)。

  主动/主动(A/A)和主动/被动(A/P)群集模型的区别

  在主动/被动(A/ P)模型中,在node1上运行SQL Server安装程序,指定虚拟服务器名为“sqlvs01”,指定一个虚拟服务器IP(如192.168.80.116,与公用网络在同一网段),数据库文件存在磁盘2(F盘),并安装sql的默认实例,此实例可在node1,node2上运行。并将虚拟服务器名sqlvs01作为连接字符串。

  在主动/主动(A/A)模型中,在node1上运行SQL Server安装程序,指定虚拟服务器名为“sqlvs01”,指定一个虚拟服务器IP(如192.168.80.116,与公用网络在同一网段),数据库文件存在磁盘2(F盘),并安装sql的默认实例,此实例可在node1,node2上运行。并将虚拟服务器名sqlvs01作为连接字符串。在node2上运行SQL Server安装程序,指定虚拟服务器名为“sqlvs02”,指定一个虚拟服务器IP(如192.168.80.117,与公用网络在同一网段),数据库文件存在磁盘3(G盘),并指定一个sql的实例名(如instance2),此实例可在node1,node2上运行。并将“虚拟服务器名指定实例名”(如sqlvs02 instance2)作为连接字符串。

  两个虚拟服务器同时独立运行,各自有一组不同的 IP 地址、惟一的网络名称和驻留在不同的共享磁盘上的数据库文件。

实现SQL故障转移群集 

  图4

  图4是一个A/P模型的截图:安装完后,出现了几个新的资源,SQL IP Address(SQLVS01),SQL network name(SQLVS01),SQL Server,SQL Server Agent,SQL Server Fulltext。

  在SQL 企业管理器中,出现的是虚拟服务器的名称,而不是真实服务器的名称,模拟群集故障转移时,只需右击“SQL Server”→起始故障,过一会儿“SQL Server”服务就移到了node2节点中了。这样就在一台机器上模拟出了SQL Server的群集转移。



评论】【推荐】【 】【打印】【下载点点通】【关闭
 

 
新 闻 查 询
关键词

05年老百姓干啥最赚钱


彩 信 专 题
双响炮
诠释爱情经典漫画
水蓝幸福
海螺爱情精彩图片
请输入歌曲/歌手名:
更多专题 缤纷俱乐部
 
 



科技时代意见反馈留言板 电话:010-82628888-5828   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2005 SINA Inc. All Rights Reserved

版权所有 新浪网