群集控制器(集群控制器是什么)

频道:电子元器件 日期: 浏览:281

群集控制器

本文内容来自于互联网,分享群集控制器(集群控制器是什么)

也叫群集管理器,群集管理器用于初始化群集、监视群集的运行状况、识别出现的节点故障以及当有节点加入或脱离群集时管理群集的重组。群集管理器作为守护程序运行在每个节点上。在群集启动和重组期间,会选出一个节点作为群集协调器。尽管所有节点都执行某些群集管理功能,但群集协调器是节点内通信的中枢点。

基本原理:一个控制器可以实现以下功能:

1,群集的配置

系统管理员设置群集配置参数,并进行初次群集启动。此后在正常运行过程中,群集就可管理其自身,而无须手动进行干预。群集的配置参数包括群集名称和节点、群集心跳线的联网参数、群集锁磁盘信息和定时参数(在“规划”一章中详述)。群集参数可以通过 SAM 输入,或通过编辑群集 ASCII 配置文件输入(有关详细内容,请参考第 5 章)。您输入的参数用于建立二进制配置文件,该文件将传送到群集的所有节点中。群集中的所有节点必须使用相同的二进制群集配置文件。

2,心跳线消息

群集管理器操作的核心是在群集中的各个节点之间发送和接收心跳线消息。群集中的每个节点使用群集协调器,跨越各自所监视的 TCP/IP 网络或配置为心跳线设备的 RS232 串行线交换心跳线信息。(有关 LAN 监视的详细信息,请参阅后面的章节“监视 LAN 接口和检测故障”。)

如果某个群集节点未在规定时间内从其他节点收到心跳线消息,则将启动群集重组。重组后期,如果一组新的节点组成了群集,则该信息将传递给程序包协调器(有关程序包协调器的详细内容,请参阅后文“程序包管理器如何工作”)。已经不属于新群集的节点上运行的程序包被转移到它们的代管节点。注意,如果暂时没有心跳线,群集可能会使用与以前相同的节点来进行重组。在这种情况下,程序包既不会暂停也不会切换,不过在重组过程中应用程序的性能可能会略受影响。

如果心跳线和数据通过同一 LAN 子网发送,那么数据拥塞可能会导致MC/ServiceGuard 在心跳线超时期间失去心跳线并启动群集重组,但如果未发生拥塞,则此重组是不必要的。为防止此类情况发生,除了建议在数据网络上配置心跳线或在串行线路接口 (RS232) 上运行心跳线外,还建议使用专用的心跳线。虽不要求使用专用 LAN,但如果网络分析结果表明群集中有丢失心跳线的潜在可能,就最好使用专用 LAN。

每个节点都以群集心跳线间隔指定的速率发送各自的心跳线消息。群集心跳线间隔在群集配置文件中设置,此文件是作为群集配置的一部分而创建的,将在“建立 HA 群集配置”一章中详述。

3,手动启动整个群集

手动启动可构成一个由群集配置中所有节点组成的群集。手动启动通常在第一次启动群集之时、在进行整个群集范围的维护或升级之后或在重新配置之后进行。

群集启动前,其中的所有节点上必须有相同的二进制群集配置文件。系统管理员可以在 SAM 中启动群集,或从某个节点执行 cmruncl 命令。仅在未运行群集时,即所有节点都未运行 cmcld 守护程序的时候,才能使用 cmruncl 命令。

在启动过程中,群集管理器将检查并确认启动命令中指定的所有节点是否都是群集的有效成员,是否都已启动并在运行,是否试图构成群集以及是否可以相互通信。如果它们满足这些条件,则群集管理器将构成群集。

自动启动群集

只要有节点重新引导并加入群集,就会自动启动群集。在个别节点重新引导之后,或者在群集中的所有节点出现故障时,以及在出现大范围电源故障并且所有 SPU 都停止运行时,此功能就会启动。

如果在 /etc/rc.config.d/cmcluster 文件中将 AUTOSTART_CMCLD 标志设置为 1,则将发生自动群集启动。在此参数设置为 1 时,只要有任何节点重新引导,它都将重新加入现有的群集,或者如果没有群集时,它将尝试构成新的群集。

4,动态群集重组

动态重组是群集成员的一种临时变化,它在有节点加入或脱离正在运行的群集时发生。重组不同于重新配置,后者是配置文件的一种永久改变。出现下列情况时会发生群集重组(但不限于以下情况):

? 在一个活动节点上检测到 SPU 故障或网络故障。

? 一个非活动节点想加入群集。该节点上已启动了群集管理器守护程序。

? 向群集配置中添加了一个节点,或从中删除了一个节点。

? 系统管理员暂停了一个节点。

? 节点由于程序包出现故障而暂停。

? 节点由于服务出现故障而暂停。

群集控制器(集群控制器是什么)

? 网络通信量过大阻碍了群集接收心跳线信号。

? 心跳线网络出现故障,而并未配置其他网络来传送心跳线。

重组通常导致群集的成员发生变化。新群集包含的节点可能会与以前的群集不同。

5,群集锁

群集控制器(集群控制器是什么)

尽管通常要求超过 50% 的群集定额,但恰好 50% 的此前运行的节点也可以重组为一个新的群集,前提是另外 50% 此前运行的节点不进行重组。这一点可通过使用仲裁器来保证,以便在两个大小相等的节点组之间做出选择,使其中一个组形成群集,而强制另一个组关闭。此仲裁器称为群集锁群集锁是通过锁磁盘或者 Quorum Server 来实现的。

只有发生以下情况时,才会将群集锁用作仲裁器:正在运行的群集出现故障,并且在 ServiceGuard 试图构成新的群集时会将群集分割为两个同等大小的子群集。这时,每个子群集都将试图获得群集锁。获得群集锁的子群集将构成新的群集,这样就防止了两个子群集同时运行的可能。如果两个子群集的大小不等,则节点多于 50% 的子群集将构成新的群集,此时不会用到群集锁。

对于一个包含两个节点的群集,需要配置群集锁。如果这两个节点间失去通信,获得群集锁的节点将接管群集,另一个节点则会暂停或执行 TOC。如果没有群集锁,群集中的任何一个节点出现故障都将导致另一个节点(即整个群集)暂停。另请注意,如果在试图获得群集锁的过程中群集锁出现故障,群集将暂停。

6,将 LVM 锁磁盘用作群集锁

可以使用锁磁盘的群集最多可包含四个节点(含四个节点)。群集锁磁盘是 LVM 磁盘上的一个特殊区域,它位于一个卷组中,可为群集中的所有节点所共享。当某个节点获得群集锁时,此区域将会加上标记,从而告诉其他节点此锁已“占用”。锁磁盘不单用作群集锁,它还可用作普通卷组的一部分,以存储用户数据。群集锁卷组和物理卷名称都在群集配置文件中标识。


关键词:控制器群集集群