通过qdisk增强red hat cluster suite的仲裁机制

上传人:子 文档编号:42635100 上传时间:2018-06-02 格式:DOC 页数:10 大小:130KB
返回 下载 相关 举报
通过qdisk增强red hat cluster suite的仲裁机制_第1页
第1页 / 共10页
通过qdisk增强red hat cluster suite的仲裁机制_第2页
第2页 / 共10页
通过qdisk增强red hat cluster suite的仲裁机制_第3页
第3页 / 共10页
通过qdisk增强red hat cluster suite的仲裁机制_第4页
第4页 / 共10页
通过qdisk增强red hat cluster suite的仲裁机制_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《通过qdisk增强red hat cluster suite的仲裁机制》由会员分享,可在线阅读,更多相关《通过qdisk增强red hat cluster suite的仲裁机制(10页珍藏版)》请在金锄头文库上搜索。

1、通过 QDisk 增强 Red Hat Cluster Suite 的仲裁机制(Quorum)http:/ 支持少数量集群环境,Red Hat Enterprise Linux 4.4 以上及 5.0 以上才支持 QDisk。问题提出:多个节点失败使整个集群不正常问题提出:多个节点失败使整个集群不正常 假设你配置好你的 WEB 服务环境,Red HatClustering 能够通过多台机器提供 可扩展的性能以及一个节点失败,集群会自动切换服务到另一节点。但有时候 事情并不是想像的那样,甚至更坏。比如,一个四节点的集群环境,一旦两个 节点故障,整个集群就会挂起,停止服务。这并不是我们希望的情况。

2、 本文就是解释如何使用 QDisk 工具来发挥共享存储优势,达到你的应用运行连 续性要求。什么是什么是 Quorum,Quorum, quorate,quorate, QDisk?QDisk?集群(clustering)是一个“聚集”问题,它基于成员能力,它还具有民主 特征并通过投票来决定下一步的行为。例如重启一台挂起的机器等。对于一个 完全的民主的环境,超过半数的选票是必须的。所以 Quorum 就是集群存在的最 少个数。这样对于一个 3 节点的集群, 最少需要 2 个节点激活才有效。一个 6 节点集群最少需要 4 个节点激活, 以此类推,公式一般就是集群至少有(n/2+1)个 节点数就会建

3、立 Quorate 状态,也就存在 Quorum(仲裁),集群才能工作。 RedHat Cluster Suite 在 Enterprise Linux2.1 使用共享磁盘分区来协调集群 状态,IP 网络作为备份。在 Enterprise Linux3 切换 IP 网络作为主要协调集 群状态而共享磁盘分区作为备份。在 Enterprise Linux 4 和 5,Cluster Suite 结合了 GFS(全局文件系统)使用 IP 网络作为协调机制,不再需要 Quorum 分 区。这样集群也可以在没有 SAN 共享盘阵下运行,再加上基于 IP 网络的仲裁具 有更好的更扩展性,尤其在大规模集群节

4、点环境中(大于 16 个节点)但是当集 群节点没有那么多的时候,比如 9 个节点的集群,虽说失去足够多的节点来破 坏 Quorum 的机会很少,但是只要 4 个以上的节点失败,整个集的 Quorum 就没 有了,集群也就不能正常工作。但对于 34 个节点的案例,只要 2 台机器故障, 整个集群就会有问题,这种案例又很多。当然你可以通过增加冗余的机器来增加 Quorum 计数,但这样太不现 实,尤其是如果你本身就配置了 SAN 存储情况 下。所以一种替代的方法,我们可通过已有的 SAN 共享存储的一 小块分区来支 持 Quorum。QuorumQuorum DiskDisk (QDisk)(QD

5、isk) (仲裁机制)(仲裁机制)为了解决小规模集群存在的 Quorum 问题,Red Hat Cluster Suite 参照 RHEL3 下面的 cluster 的 Quorum 机制,引入了 Qdisk,但和 RHEL 3 下面工作 原理有些不同,下面图示它的工作原理。 QDisk 使用一个小于 10MB 的共享磁盘分区,Qdiskd 进程运行在集群的所有节点 上,定期评估自身的健康情况,然后把它的状态信息放入到指定的共享磁盘分 区。每 qdiskd 接着查看其他节点的状态,并传递信息给其他节点 QDisk 分区。 在正常情况下,集群的 Quorum 就是每个节点计数再加上 QDisk

6、分区的计数和。 如上面例子,总共 quorum 计数是 7,每个节点计数为 1,QDisk 为 3。这样,在 一个节点 A 上,QDisk 经过几次偿试都不能访问它的共享磁盘分区,那么运行 在另一节点 B 上的 qdiskd 进程会请求节点 A 被隔离,这样会重启节点 A 并重新 加入集群中。HeuristicsHeuristics(试探)选项来增加可靠性(试探)选项来增加可靠性作为一个选项,一个或更多的试探方法可以增加到 qdisk 的配置中,试探 就是测试能否访问 qdisk 分区,一个典型的测试方法包括能够访问到路由网 关。如果试探失败,QDisk 默认会重启节点使其进入正常工作状态。

7、minimum_score 指出试探成功计数。在集群数据库(如在集群数据库(如 OracleOracle RACRAC)中使用)中使用 DLMDLM 和和 QDiskQDisk我们进一步来学习如何设置 QDisk,分布式锁管理(DLM)已经被认证支持 OracleRAC10gR2,通过 DLM 消除了额外锁管理器的需求,减少成本投入。QDisk 确保任一节点失败 RAC 仍然可以持续运行。使用 DLM 替换 GULM 操作非常简单 (可以参考 Oracle Real Application Clusters GFS:Oracle RAC GFS )。现在,参照上面的图示我们建一个四节点的集群,

8、这意 味着总共 quorum 为 7,每个节点为 1,quorum 分区为 3。该分区必须为裸设备 分区(raw devices),不会被 clvm 所管理。 初始化初始化 QDiskQDisk设置一个 Quorum 磁盘分区也非常简单,首先,建立一个共享的 quorum 分 区,第二,设置集群配置。本例使用 11MB 分区/dev/sdi1,可以通过 cat /proc/partitions 或用 parted 查看。建议 10MB 的分区。 rootet-virt09 # cat /proc/partitions major minor #blocks name 8 0 71687325

9、sda 8 1 104391 sda1 8 2 71577607 sda2 : : 8 128 55587840 sdi 8 129 11248 sdi1 8 130 55576576 sdi2 8 144 53483520 sdj 8 145 53483504 sdj1 rootet-virt05 # parted /dev/sdi GNU Parted 1.8.1 Using /dev/sdi Welcome to GNU Parted! Type help to view a list of commands. (parted) p Model: EQLOGIC 100E-00 (scs

10、i) Disk /dev/sdi: 56.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 16.4kB 11.5MB 11.5MB primary 2 11.5MB 56.9GB 56.9GB primary 接下来 mkqdisk 命令可以用可准备 quorum 分区,它将会初始化 16 个区集群 允许 QDisk 使用的最大尺寸。简单的指定设备及唯一卷标名就可以了。卷标会 被 cluster.conf 使用。

11、运行的结果可以通过“mkqdisk -L“来查看。rootet-virt08 # mkqdisk -c /dev/sdi1 -l rac_qdiskmkqdisk v0.5.1Writing new quorum disk label rac_qdisk to /dev/sdi1.WARNING: About to destroy all data on /dev/sdi1; proceed N/y ? yInitializing status block for node 1.Initializing status block for node 2.: : :Initializing sta

12、tus block for node 16.rootet-virt08 # mkqdisk -Lmkqdisk v0.5.1/dev/sdi1:Magic: eb7a62c2Label: rac_qdiskCreated: Thu Dec 6 14:40:07 2007Host: et-集群配置集群配置 你可以通过 Conga 来配置 QDisk 的使用。quorum 分区指定投票数为 3,该值是一个少于集群节点数的值。这意味着只需 一个节点加上 quorum 分区就捅有 quorum,集群就会正常工作。另外卷标要输 入,不是设备名,设备名有可能会在重启后发生变化,但卷标方式不会发生改 变。做

13、为例子,没有加入“试探” 选项。其缺省值为 1。注意,QDisk 每 3 秒 执行一次评估,TKO 值为 23,代表允许 23 次失败共计 69 秒。这意味着如果一 个节点不能连接到 qdisk 区,它会被标为失败的 quorum 磁盘,会被集群隔离。 这样会留出足够的时间允许 RAC 在一个节点失败后作出反应,本例 RAC 超时设 为 60 秒。RAC 使用“自隔离”, Red Hat Cluster 随后再隔离并 重启失败的节点。同样地,cman 下的 deadnodetimeout(这个参数是这个参数是 rhel5rhel5 的,这个教程是的,这个教程是rhel4rhel4 , , rh

14、el5 要加一条参数要加一条参数 135 秒秒 )设为 135 秒,1.5 倍于 qdisk 的超时时间,135 秒后,cman 将发出 fence(隔离)指令并重启故障 节点。对于非 RAC 的情况,其值一般不用修改。你可以直接在 /etc/cluster/cluster.conf 配置文件中修改。通过 ccs_tool 更新所有节点。如果要缩短其时间,其他参数也会缩短。另外要注意的是 expected_nodes=“7“,这包括 qdisk 分 区的 3 在内。编辑、修改编辑、修改 cluster.confcluster.conf 文件文件rootet-virt05 cluster# cp

15、 cluster.conf cluster.conf.newrootet-virt05 cluster# vi cluster.conf.newrootet-virt05 cluster# ccs_tool update cluster.conf.new两个节点集群情况两个节点集群情况两个节点的集群也是常见的,但是 quorum 在这里做为一个特例,因为(n/2+1), 当两个节点时,其值为 2,如果按常规就无法正常工作。所以一般情况,集群 中一个节点失败,另一个节点就会接管。但是,有一种临界情况,如果两节点 间网络出现故障,两节点会互相 认为对方失败,这种情况就是通常所说的“裂脑”,每个节点

16、都会去 fence 另 一节点,这样会形成两节点不断互相重启现象。通过 Qdisk 就可以避免这种情 况的发生。“试探”选项可以用来评估网络连接是否正常。典型的配置就是 ping 一个路由或网关。如下例:注意:如果不带 QDisk 的两节点 cluster,在 cluster.conf 中需要 two_node=“1“和 expected_votes=“1“。带 QDisk, expected_count 应该为“3”,two_node 为“0”(或者去掉 two_node 字段)结束语结束语 集群是一种高可用性、可扩展性技术,Qdisk 提供了一种在小规模集群下更有 效的保护集群完整性的方法。min_score 我

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号