核心组视图同步协议
“视图同步协议”是针对可以相互通信的一组核心组成员建立的。对于一个发送方与可能存在的多个接收方之间的消息流,此协议提供了有保证的、按顺序进行的消息传递。这种保证与 TCP/IP 为点到点消息流提供的保证相似。
一组彼此之间建立有“视图同步协议”的核心组成员通称为一个视图。视图在时间和空间上都是唯一的。从视图中添加或除去成员的操作被称为视图更改。视图更改是一个很重要并且成本相对较高的同步点。同时,也将在该同步点检测同步问题、一致性问题和网络问题。
对于使用高可用性管理器框架的组件和产品管理员来说,“视图同步协议”是透明的。但是,如果破坏了“视图同步协议”,效果就可能会变得很明显,当发生称为视图更改的边界条件时最为显著。
视图更改
当核心组成员启动时,核心组传输和相关联的缺省“发现协议”、缺省“故障检测协议”和“视图同步协议”也会启动。“视图同步协议”会建立一个初始视图,该视图中只包含本地成员。当缺省“发现协议”与其他核心组成员建立连接时,会通知“视图同步协议”。然后,新连接的成员的视图同步层就会交换状态信息。此信息用来确定是否可以组成新视图。例如,如果新启动的成员发现一个现有视图,它就会与现有视图的成员协商来建立一个新视图。
当已建立的视图的某个成员停止或失败时,继续存在的视图成员上的缺省“故障检测协议”就会检测故障并通知“视图同步协议”。然后,继续存在的成 员会建立一个不包含已失败成员的新视图。
在建立新视图之前,必须完成与当前视图相关的活动。对 于在当前视图中发送的所有消息,仍然存在的所有意向接收方都必须接收并应答这些消息。当前成员必须交换 与已发送和已接收的消息有关的大量状态信息。然后,这些成员将执行完成暂挂的消息活动所需要的活动,这些活动可能包括重新传输似乎已丢失的消息。
安装新视图可能会导致 CPU 和网络带宽的使用量瞬间显 著增大。
视图更改消息
视图更改是一个复杂的由多个部分组成的过程,并且,每次更改视图时都会记录许多消息。这些消息指示视图更改处理是已完成还是当前正在运行。
DCSV8054I: DCS Stack DefaultCoreGroup at Member
anzioCell01\anzioCellManager01\dmgr: View change in process.
DCSV2004I: DCS Stack DefaultCoreGroup at Member
anzioCell01\anzioCellManager01\dmgr: The synchronization procedure completed
successfully. The View Identifier is (2:0.anzioCell01\anzioCellManager01\dmgr).
The internal details are [0].
HMGR0218I: A new core group view has been installed. The core group is
DefaultCoreGroup. The view identifier is (3:0.anzioCell01\anzioCellManager01\dmgr).
The number of members in the new view is 2.
DCSV1033I: DCS Stack DefaultCoreGroup at Member
anzioCell01\anzioCellManager01\dmgr: Confirmed all new view members in view
identifier (3:0.anzioCell01\anzioCellManager01\dmgr). View channel type is View|Ptp.
DCSV8050I: DCS Stack DefaultCoreGroup at Member
anzioCell01\anzioCellManager01\dmgr: New view installed, identifier
(3:0.anzioCell01\anzioCellManager01\dmgr), view size is 2 (AV=2, CD=2, CN=2, DF=6)
- AV 表示视图中的核心组成员数。
- CN 表示此成员已对其打开连接的核心组成员数。通常,此数目与为 AV 指定的数目相同。
- CD 表示此成员已对其打开连接的核心组成员数减去有问题的成员数。一个有问题的成员就是虽然与此成员相连,但是当前无法与此成员一起建立视图的那个成员。
- DF 表示核心组中已定义的成员数。