核心组发现和故障检测协议
当核心组成员启动时,不存在与其他核心组成员的连接。如果核心组已配置为与缺省“发现和故障检测协议”或备用协议提供程序一起运行,那么发现和故障检测任务或备用协议提供程序任务将作为进程启动过程的一部分启动。只要此核心组成员处于活动状态,那么这些任务将按预定的时间间隔定期建立与其他核心组成员的连接、监视此连接并处理此核心组成员的连接故障。
缺省“发现协议”
缺省“发现协议”建立与核心组的其他成员的网络连接。为了建立此连接,“发现协议”从产品配置设置中检索核心组成员列表和相关联的网络信息。然后,“发现协议”将尝试打开与所有其他核心组成员的网络连接。“发现协议”会定期重新计算未连接的成员集并尝试打开与这些成员的连接。
DCSV1032I: DCS Stack DefaultCoreGroup at Member MyCell\anzio\nodeagent:
Connected a defined member MyCell\anzioCellManager\dmgr.
在任何时候,连接都可能会因各种原因而失败。“故障检测协议”将检测连接故障并通知“发现协议”。然后,“发现协议”就会在经过预定的时间间隔之后尝试打开与该成员的另一个网络连接。
“发现协议”任务所消耗的 CPU 周期数量与已停止或不可访问的核心组成员数成正比。在缺省设置中,可以忽略“发现协议”任务所消耗的 CPU 周期数量。
缺省“故障检测协议”
“故障检测协议”监视“发现协议”建立的核心组网络连接。当“故障检测协议”检测到失败的网络连接时,就会向“视图同步协议”和“发现协议”报告该故障。“视图同步协议”就会调整视图以排除失败的成员。而“发现协议”将尝试与失败成员重新建立网络连接。只要成员是活动的,就会运行此任务。
- 它将查找因底层套接字关闭而关闭的连接。
当核心组成员为了响应管理命令而正常停止时,该成员的核心组传输也会停止,而与传输相关联的套接字也将关闭。如果核心组成员异常终止,那么底层操作系统会正常关闭由进程打开的套接字,而与核心组传输相关联的套接字也将关闭。
无论是哪种终止类型,都会告诉那些正连接到已终止成员的核心组成员,连接不再可用。接收到“套接字已关闭”通知的核心组成员会将已终止的成员看作失败成员。
当检测到因套接字关闭机制而失败的成员时,对于依然存在的成员,将在 SystemOut.log 文件中记录以下消息:DCSV1115W: DCS Stack DefaultCoreGroup at Member anzioCell01\anzio\ServerD: Member anzioCell01\anzio\ServerC connection was closed. Member will be removed from view. DCS connection status is Discovery|Ptp, transmitter closed.
通常,就是通过已关闭的套接字机制来发现失败成员的。底层操作系统中的 TCP 设置(例如,FIN_WAIT)会影响接收套接字关闭事件的速度。
- 它将侦听核心组成员的活动脉动信号。
活动脉动信号机制与 TCP 保持活动功能相似。按照预定的时间间隔,每个核心组成员会对打开的每个核心组连接发送一个 Ping 包。发送此包的速率或周期称为脉动信号传输周期。
每个核心组成员都期望通过每个打开的连接接收来自该连接另一端的其他核心组成员的包。如果在脉动信号超时周期所指定的时间内未通过打开的连接接收到任何包,那么该连接另一端的成员将标记为失败。
脉动信号超时周期必须是脉动信号传输周期的整数倍。脉动信号超时周期还必须至少是脉动信号传输周期的两倍。
当一个成员被标记为失败时,以下消息将发送至错误日志文件:DCSV1112W: DCS Stack DefaultCoreGroup at Member anzioCell01\anzioCellManager01\dmgr: Suspected member anzioCell01\nettuno\ServerB because of heartbeat timeout. Configured Timeout is 180000 milliseconds. DCS logical channel is Connected|Ptp.
要检测因网络停止而无法访问的核心组成员,活动脉动信号是最有用的方法。活动脉动信号会消耗一些 CPU 资源。消耗的 CPU 使用量与核心组中的活动成员数成正比。在设置活动脉动信号的缺省配置时,应兼顾 CPU 使用量和及时检测失败成员这两个方面。
可以使用管理控制台或 wsadmin 工具来配置脉动信号传输周期和脉动信号超时周期。阅读配置核心组的故障检测协议主题,以获取如何使用管理控制台来更改这些设置的描述。
![[IBM i]](../images/iseries.gif)
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
备用协议提供程序
目前,没有适用于 IBM i 和分布式平台的备用协议提供程序。
备用协议提供程序
可以使用备用协议提供程序代替缺省“发现协议”和“故障检测协议”来监视和管理核心组成员之间的通信。一般来说,备用协议提供程序(如 z/OS 基于跨系统耦合设施 (XCF) 的提供程序)使用的系统资源少于缺省“发现协议和“故障检测协议”所使用的系统资源,特别是核心组成员处于空闲状态时更是如此。因为备用协议提供程序不会执行成员间的 TCP/IP ping 操作(缺省协议提供程序使用此操作来确定核心组成员是否仍处于活动状态),所以它使用的系统资源通常都比较少。
![[z/OS]](../images/ngzos.gif)
DCSV1032I: DCS Stack DefaultCoreGroup at Member MyCell\anzio\nodeagent:
Connected a defined member MyCell\anzioCellManager\dmgr.
- 核心组是同质的。这表示核心组进程必须全部驻留在相同平台上。例如,核心组不能将 z/OS 进程和分布式进程混合在一起。
如果核心组包含非 z/OS 进程,或者核心组由处于本产品的不同版本级别的成员组成,那么您无法将 XCF 用于此核心组。
- 如果需要使用核心组网桥服务将此核心组桥接至另一核心组,那么桥接至此核心组的所有核心组也是同质核心组。
- 核心组的所有成员都必须处于本产品的 V7.x 中。如果核心组的任何成员在 V6.x 级别的本产品中运行,那么您必须先将它们更新到 V7.x,然后才能切换到备用协议提供程序。