热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

VMwareWorkstation6.0中Cluster配置指南

VMwareWorkstation6.0中Cluster配置指南目录一、群集介绍...3二、群集专业术语...3三、实验环境介绍及要求...41、拓扑图...42、软件配置说明...4(1)DC软件配置信息...4(2)ClusterNodeA软件配置信息...4(3)ClusterNodeB软件配置信

VMware Workstation 6.0 中Cluster配置指南

目录

一、群集介绍... 3

二、群集专业术语... 3

三、实验环境介绍及要求... 4

1、拓扑图... 4

2、软件配置说明... 4

(1) DC软件配置信息... 4

(2) Cluster Node A软件配置信息... 4

(3) Cluster Node B软件配置信息... 5

3、硬件配置要求... 5

(1) 网卡... 5

(2) 共享磁盘... 5

四、安装群集前的准备工作... 6

1、创建共享磁盘... 6

(1) 创建用来保存共享磁盘的目录... 6

(2) 创建仲裁磁盘... 6

(3) 创建数据共享磁盘... 7

(4) 验证共享磁盘是否成功创建... 7

(5) 附加共享磁盘... 8

2、网络及系统配置... 10

(1) 创建群集服务帐户... 10

(2) 添加群集A记录... 12

(3) ClusterNodeA上的共享磁盘配置... 12

(4) 网络配置... 16

(5) ClusterNodeB上的共享磁盘配置... 21

五、安装群集服务... 24

1、在A节点上新建一个群集... 24

2、将B节点加入现有群集... 29

六、配置群集服务... 35

1、群集网络配置... 35

2、心跳适配器优先化... 37

3、仲裁磁盘配置... 38

4、创建一个启动延迟(此操作非必需)... 39

5、测试群集安装... 40

七、故障转移测试... 42

1、初级测试... 42

2、高级测试... 44

(1) 手工模拟故障1次... 44

(2) 手工连续模拟故障4次... 45

(3) 停止群集服务测试... 47

(4) 模拟意外断电时故障转移... 49

八、结束语... 50

(1) 创建群集服务帐户

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

clip_image016[4]

2) 如下图所示,必须勾选“密码永不过期”,建议同时将“用户不能更改密码”勾选。当然,如果您希望每次密码到期前都手工重设密码,以便在您的工作周报中多一个已完成的工作记录,我不反对。

clip_image018[4]

3) 创建完毕后,再将其添加到各个节点的本地管理员组中即可。

clip_image020[4]

(2) 添加群集A记录

如果您需要将运行在群集服务上的应用程序服务(该服务器即为虚拟服务器)以域名的形式对内或对外发布,您可能需要在域控制器的DNS管理器中添加群集名的A记录。例如,本次试验中,我给节点A和节点B通过群集虚拟出来的地址192.168.0.10分配一个对应的A记录名:ClusterTest.test.com

clip_image022[4]

(3) ClusterNodeA上的共享磁盘配置

1) 启动ClusterNodeA(不要开启ClusterNodeB,使其保持关闭状态。这样有助于保证附加到共享总线的磁盘上的数据不会丢失或遭到破坏。)

2) 打开ClusterNodeA 的“磁盘管理”,系统会自动找到先前创建的两个共享磁盘。进入 “磁盘初始化和转化向导”

clip_image024[4]

clip_image026[4]

clip_image028[4]

3) “新建磁盘分区clip_image030[4]

4) 选择建立“主磁盘分区”。

clip_image032[4]

5) 给仲裁磁盘分配一个约定成俗的驱动器号Q。

clip_image034[4]

6) 一定要格式化成为NTFS,同时把卷标改成“Quorum”。clip_image036[4]

7) 以上是对仲裁磁盘进行操作,按照同样的方法,对共享数据磁盘进行操作。分配驱动器号为R,卷标名为Data。(具体过程略)。另外,需要补充一点的是,通常,驱动器盘符“Q”用于仲裁磁盘,而“R”、“S”等字母则常用于数据磁盘。尽管您可以按照个人喜好随意更改,但是建议采用约定成俗的规定。

8) 对共享磁盘的操作完成后,建议验证一下磁盘是否可读写。方法是新建一些文件后再删除,看看是否都正常。

(4) 网络配置

1) 为了接下来的实验更加直观,建议把两块网卡进行重命名操作。生产环境也推荐这样操作。

clip_image038[4]

2) Hearbeat Connection网卡(以下改称为心跳网卡)的TCP/IP属性如下。不要对心跳网卡设置默认网关和DNS地址。

clip_image040[4]

3) 按照下图修改心跳网卡的高级TCP/IP属性,目的是禁止心跳网卡的DNS和NetBios查询。这样能够消除可能出现的通信问题,也有利于减少不必要的网络流量。因为服务器群集节点间的通信对于群集的顺畅运转至关重要。

clip_image042[4]

clip_image044[4]

4) 按照微软官方推荐的做法,如果您拥有一个能够以不同速度进行传输的网卡,那么您应该手动指定同一个速度及双工模式。不要对传输速度应用自动选择设置,因为某些适配器在确定速度时可能丢掉一些数据包。这直接影响到群集节点之间的通讯质量。Microsoft建议您将同一路径上的所有设备设定为“10 M”和“半双工”。同时,如果您的网卡支持Teaming冗余,而您又无法确保该特性和群集之间的兼容性时,建议取消该特性。由于虚拟机无法对网卡的物理属性进行该类设置,如下图所示。

clip_image046[4]

故特意从生产环境HP服务器上截取了如下两张图来说明。

clip_image047[4]

clip_image048[4]

5) 至此,有关ClusterNodeA的前期网络和系统的相关配置已结束。接下来按照类似的方法对ClusterNodeB进行配置。

(5) ClusterNodeB上的共享磁盘配置

1) 关闭ClusterNodeA,开启ClusterNodeB。在此期间,请保持ClusterNodeA处于关闭状态。原因前面已经说明,不再赘述。(请尽量按照下图的方式关闭ClusterNodeA,而不只是简单的关闭系统)

clip_image050[4]

2) 打开ClusterNodeB的磁盘管理器,可以看到之前创建的共享磁盘同样被系统发现了。只是由于Windows Server 2003系统的设计使然,没有自动为其分配驱动器号。我们需要手工对它分配和ClusterNodeA相同的驱动器号。

clip_image052[4]

clip_image053[4]

clip_image055[4]

3) 为了实验的直观性,建议将卷标也进行修改。卷标名建议和ClusterNodeA上的保持一致。

clip_image057[4]

4) 同样,建议用同样的方法验证一下磁盘是否可正常读写。

5) 至此,我们已完成两个节点的网络和系统相关配置。下面,我们开始进入真正的群集服务安装环节。

五、安装群集服务 1、在A节点上新建一个群集

(1) 开启ClusterNodeA,同时保持ClusterNodeB处于关闭状态。展开ClusterNodeA的“开始”菜单,定位到“程序”à“管理工具”,打开“群集管理器”

clip_image059[4]

(2) 选择“创建新群集”。

clip_image061[4]

(3) 输入您公司的域名和事先准备好的群集名。如果有需要,在DNS中对该群集名建立对应的A记录。

clip_image063[4]

(4) 输入新群集中的第一个节点的计算机名,这里我们选择ClusterNodeA

clip_image065[5]

(5) 这时会对群集配置进行一个完全分析。如果有任何一项无法通过检测,务必检查原因、排除问题。故障排除后,不需要重新再来,只需点一下“重新分析”按钮就行。

clip_image067[5]

(6) 输入群集的IP地址,该地址是ClusterNodeA和ClusterNodeB共同虚拟出来的群集IP。

其FQDN地址对应于前面的ClusterTest.test.com.

clip_image069[4]

(7) 输入前面创建的群集服务帐号。该帐号可以不是域管理员,但是必须是各节点的本地管理员。

clip_image071[4]

(8) 下图是配置信息汇总。如果发现配置有错误,可以点击“上一步”进行更改。否则点击“下一步”,开始群集创建。

clip_image073[4]

(9) 可以查看创建过程是否顺利。一般来说,只要前面群集前的分析没有问题,创建过程一般都不会有问题的。

clip_image075[4]

(10) 完成新建服务器群集向导。至此,我们已经成功的在ClusterNodeA上配置了群集服务。

clip_image077[4]

(11) 打开群集管理器,验证ClusterNodeA上的群集服务已成功安装。资源所有者均为ClusterNodeA,并均处于联机状态。

clip_image079[4]

2、将B节点加入现有群集

(1) 开启ClusterNodeB节点,同时不要关闭ClusterNodeA,否则无法加入现有群集。打开群集管理器,选择“添加节点到群集”,“浏览”,找到之前创建的群集名ClusterTest。点击“确定”。

clip_image081[5]

(2) 进入添加节点向导。

clip_image083[5]

(3) 选择您要添加到现有群集的节点。我这里选择ClusterNodeB。

clip_image085[5]

(4) 同样,节点加入前会进行群集配置分析。如果分析结果中有任何问题,请着手解决后再往下继续。

clip_image087[5]

(5) 输入群集服务帐号。

clip_image089[7]

(6) 群集配置信息汇总,返回修改请点击“上一步”,继续请点击“下一步”。

clip_image091[12]

(7) 开始“添加节点到群集”的配置操作。

clip_image093[9]

(8) 完成节点添加工作。

clip_image095[5]

(9) 从下图可以看出,ClusterNodeB已成功加入现有群集,目前处于运行状态。

clip_image097[5]

(10) 至此,我们成功的在ClusterNodeA上新建了一个名为ClusterTest的群集,并成功将ClusterNodeB加入该群集中。

(11) 细心的您在ClusterNodeB加入到现有群集后,可能会发现无法在ClusterNodeB上访问原有的共享磁盘。如下图所示。不要奇怪,只是正常现象。因为在群集服务中,同一时刻只能有一个节点对资源拥有所有权。在我这个例子中,此刻仲裁磁盘的所有者是ClusterNodeA,所以ClusterNodeB无法访问。反过来,如果所有者是ClusterNodeB,则会变成ClusterNodeA无法访问共享磁盘。

clip_image099[5]

六、配置群集服务 1、群集网络配置

(1) 进行专用网络配置。打开群集管理器,单击“群集配置”,单击“网络”,右键选择Heartbeat的属性。clip_image100[5]

(2) 选择“为群集使用启用这个网络”和“只用于内部群集通讯(专用网络)”。

clip_image102[5]

对上图中的几个选项,我稍微做一下解释:

为群集使用启用这个网络: 如果选定了该复选框,群集服务将使用该网络。默认对所有网络选定该复选框。

只用于客户端访问(公用网络):如果您想让群集服务仅使用该网络适配器与其它客户端进行外部通信,那么选择该选项。该网络适配器将不进行节点对节点通信。

只用于内部群集通信(专用网络):如果您想让群集仅使用该网络进行节点对节点通信,那么选择该选项。

所有通信(混合网络):如果您想让群集服务使用该网络适配器进行节点对节点通信和外部客户端通信,那么选择该选项。默认对所有网络选定该复选框。

在本次实验中,我们仅使用到了两个网络:Public Connection和Heartbeat Connection。基于最常见的配置,我们将这两个网络分别作为混合网络和专用网络。

(3) 同样,进行公用网络配置

clip_image104[5]

2、心跳适配器优先化

(1) 由于群集服务总是尝试使用列于首位的网络适配器进行节点间的远程过程调用(RPC)通信。只有当群集服务无法使用第一个网络适配器进行通信时,才会使用列表上的下一个网络适配器。所以我们需要调整一下心跳适配器的优先级。

(2) 启动群集管理器。右击群集名称,然后单击“属性”,在弹出的对话框中单击“网络优先级”选项卡。将Heartbeat Connection 上移至顶部。

clip_image106[5]

3、仲裁磁盘配置

启动“群集管理器”。右击左上角的群集名称,然后单击“属性”。单击“仲裁”选项卡。在“仲裁资源”列表框中,选择“磁盘Q”。

clip_image108[5]

4、创建一个启动延迟(此操作非必需)

当出现所有的群集节点均同时启动并尝试附加到仲裁资源的情况时,群集服务可能无法启动。例如:在发生电源故障后,同时对所有节点恢复电力时,可能出现这种情况。(尽管可能性比较低,但是还是有可能发生的。)要避免这种情况,可以编辑boot.ini文件。将Timeout设置不同的值,以避免两个节点同时启动。

(1) 打开ClusterNodeA上系统盘根目录下的boot.ini文件,按下图修改。

clip_image110[5]

也许您会问,为什么要添加一行同样的记录。这是因为如果是单操作系统,无论你如何设置timeout的值都是没有用的。只有多系统才会读取这个值。所以我们复制同样的记录来实现启动延迟的目的。

(2) 同样的方法,将ClusterNodeB上的boot.ini文件的timeout值设置为其他数值。如果您想在恢复电力时,ClusterNodeA能够优先启动,就把ClusterNodeB上的timeout值大于10。以错开同时启动。

5、测试群集安装

前面我们在CluterNodeA和CluterNodeB新建和加入现有群集结束后,都分别给出了一张截图用来验证群集安装的正确性。如果您觉得验证不周全,还可以采用如下几个方法来验证。

(1) 最简单的验证就是通过群集管理器。打开群集管理器,查看是否能够打开到群集的连接。

clip_image112[5]

(2) 查看群集服务是否启动

clip_image114[5]

(3) 相关事件日志

clip_image116[5]

(4) 相关注册表键值

clip_image118[5]

七、故障转移测试

前面说了这么多,终于等到最激动人心的时刻了。在这一环节中,我准备将测试分为初级测试和高级测试两块来验证群集的故障转移功能。

1、初级测试

(1) 打开群集管理器,从图中我们可以看出,目前数据共享磁盘的所有者是ClusterNodeA,状态为联机。

clip_image120[5]

(2) 右键选择组0的“属性”,再选择“移动组”。

clip_image122[5]

(3) 可以看到此时的状态为“脱机挂起”。

clip_image124[5]

(4) 从图中可以得知,共享数据磁盘R的所有者已经转移到ClusterNodeB上了,状态为联机。

clip_image126[5]

(5) 此实验说明,在群集服务中,资源能够从一个节点手动转移到另一个节点。(当然也能够自动转移,后面的实验均属于自动转移)

2、高级测试 (1) 手工模拟故障1次

(1) 打开群集管理器,对磁盘Q进行一次“初始故障”操作。此时磁盘Q的所有者为ClusterNodeA。

clip_image128[5]

(2) 可以看到磁盘Q已经联机挂起了。

clip_image130[5]

(3) 经过很短的时间后,磁盘Q又自动联机了,所有者还是ClusterNodeA。

clip_image132[5]

(4) 此实验说明,群集节点的资源,在遇到初始故障后,能够自我修复,重新回到联机状态。虽然在这个实验中没有体现出能够初始故障多少次,但是我可以告诉大家,是3次。如果初始故障次数超过3次,就不会自我修复了,而是会进行故障转移。下面的实验会证明这一点。

(2) 手工连续模拟故障4次

(1) 打开群集管理器,对磁盘R进行“初始故障”操作,重复4次。此时磁盘R的所有者还属于ClusterNodeA。

clip_image134[5]

(2) 4次模拟故障后,定位到“资源”,在右边窗口中可以看到,所有资源已自动迁移到ClusterNodeB上,处于联机状态。

clip_image136[5]

(3) 由于心跳侦测机制的作用(心跳信息大约每1.2秒一次),群集服务会发现ClusterNodeA并不是真正的宕机,所以ClusterNodeA会自动尝试联机。

clip_image138[5]

(4) 节点ClusterNodeA已恢复正常。

clip_image140[5]

(5) 此实验说明,在群集服务中,当某个节点故障超过3次后,则不会自动恢复,而是进行故障转移。同时也说明,当群集服务检测到原节点可用时,原节点会再次自动回到群集中。此过程的专业术语叫“故障回复

(3) 停止群集服务测试

1) 在停止ClusterNodeB上的群集服务前,先打卡群集管理器,可以察看到,目前资源的所有者是ClusterNodeB。

clip_image142[5]

2) 停止ClusterNodeB的群集服务。

clip_image144[5]

3) 再次回到群集管理器,发现资源的所有者已经切换到ClusterNodeA上。因为ClusterNodeB上的服务已停止,不可能自动恢复过来。仍旧通过心跳侦测机制,当丢失4次心跳信息后,(大约5秒),则会宣告该节点失败。所以图中显示红叉,表示ClusterNodeB这个节点目前不可用。clip_image146[5]

4) 此实验说明,当某个节点上的群集服务停止后,运行在该问题节点上的资源会自动转移到其他正常节点。

(4) 模拟意外断电时故障转移

1) 测试前按照老规矩,打开集群管理器,可以看到资源的所有者是ClusterNodeB。

clip_image148[11]

2) 直接关闭虚拟机后,打开ClusterNodeA上的集群管理器,发现资源已经为脱机状态,且群集组已显示不正常。

clip_image150[5]

3) 群集服务试图将资源所有者切换到ClusterNodeA上。

clip_image152[5]

4) 资源已全部迁移到ClusterNodeA上,且显示ClusterNodeB不正常。

clip_image154[5]

5)此实验说明,当群集中的节点遇到突发性的意外事件(如意外断电等。)后,资源会自动从问题节点转移到正常节点。

八、结束语

如果您完成了本指南全部的实验环节,那么恭喜您!您已经完成了所有节点上的群集服务配置。服务器群集已经完成可以运作了。您现在可以准备安装群集资源,比如:文件共享、打印机共享、诸如分布式的事务协调器、DHCP、WINS等群集识别服务、或者诸如Exchange Server或SQL Server等群集识别程序。


推荐阅读
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 基于分布式锁的防止重复请求解决方案
    一、前言关于重复请求,指的是我们服务端接收到很短的时间内的多个相同内容的重复请求。而这样的重复请求如果是幂等的(每次请求的结果都相同,如查 ... [详细]
author-avatar
mobiledu2502911427
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有