WAS/DB2 集群模型和用例

此模型包含一个 DB2® 数据库,一个依赖于 DB2 和四个 WebSphere 应用程序的 WebSphere® Application Server 应用程序。 此模型的父/子依赖关系是 DB2 在激活 WAS 之前应可用,而 WebSphere (WS#) 应用程序取决于 WAS 的可用性。

资源组的位置依赖关系是, DB2 和 WAS 不应 在同一节点上激活, WAS 在依赖于 WS4 的同一节点上处于联机状态 (请参阅图) , DB2 在具有 WS1, WS2 和 WS3的同一节点上处于联机状态。 在此示例中,WS# 的位置依赖性完全是虚假的。 但是,这是一个配置,其中一个节点针对 DB2 进行了微调 (因此将是 DB2的最高优先级节点) ,另一个节点针对 WAS 进行了微调。 它们具有一个通用的备份节点,此节点在同一时间内只能托管两个组中的一个。

图 1。 具有位置依赖性和父子依赖性的 WAS 集群和 DB2 集群

WAS 集群和具有位置和父子依赖关系的 DB2 集群

资源组策略

所有资源组均具有以下策略:

  • 启动策略:在第一个可用节点上联机
  • 失败转移策略:失败转移到下一个优先级节点
  • 回退策略:从不回退
参与节点 位置依赖性 父/子依赖性
  • DB2 [2 , 3]
  • WS1 [2、3]
  • WS2 [2、3]
  • WS3 [2、3]
  • WS4 [1、3]
  • WAS [1、3]
“在同一节点上连接”依赖组:
  1. DB2, WS1, WS2, WS3
  2. WAS , WS4

“在不同节点上联机”依赖组:

  • DB2, WAS
  1. WS1, WS2, WS3 和 WS4 (子代) 依赖于 WAS (父代)
  2. WAS (子代) 依赖于 DB2 (父代)

用例 1:启动第一个节点(节点 1)

注: 所有资源组都处于脱机状态,所有节点都处于脱机状态。

所有资源组均脱机,所有节点均脱机。

步骤/限定符 操作 节点 1 节点 2 节点 3
1 启动节点 1 父/子依赖性满足。
2 WAS:ERROR
3 WS4:ERROR
后置条件/资源组状态 WAS:ERROR WS4:ERROR
  • DB2:
    • WS1:
    • WS2:
    • WS3:
WAS:
DB2:
  • WS1:
  • WS2:
  • WS3:
  • WS4

WAS 和 WS4 可能已在节点 1 上启动,但父资源组 DB2 仍处于脱机状态。 因此,WAS 和 WS4 被置于 ERROR 状态。

用例 2:启动第二个节点(节点 2)

注: 集群状态与用例中的后置条件一样 2。
步骤/限定符 操作 节点 1 节点 2 节点 3
1 启动节点 2
2 获取 DB2
3 获取 WAS
4 获取 WS4 获取 WS1、WS2、WS3
后置条件/资源组状态 WAS:ONLINE

WS4:ONLINE

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
WAS:
DB2:
  • WS1:
  • WS2:
  • WS3:
  • WS4:

节点 2 启动 DB2 (父 RG) ,这将触发 WAS ( DB2的子代) 的处理。 最终,所有孙代都在其各自节点上启动。

启动节点顺序 1、2、3 的整合视图

步骤 节点 1 节点 2 节点 3
启动节点 1 WAS:ERROR

WS4:ERROR

DB2:
  • WS1:
  • WS2:
  • WS3:
WAS:
DB2:
  • WS1:
  • WS2:
  • WS3:
  • WS4:
启动节点 2 WAS:ONLINE

WS4:ONLINE

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
WAS:
DB2:
  • WS1:
  • WS2:
  • WS3:
  • WS4:
启动节点 3 WAS:ONLINE

WS4:ONLINE

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:OFFLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:OFFLINE

用例 3:不按顺序启动节点(节点 3)

注: 所有集群节点和资源组都处于脱机状态。
步骤/限定符 操作 节点 1 节点 2 节点 3 注释
1 启动节点 3
2 获取 DB2
后置条件/资源组状态 WAS: DB2:

WS4

WS1:
  • WS2:
  • WS3:
  • WAS:ERROR
  • DB2: 联机
  • WS1:ERROR
  • WS2:ERROR
  • WS3:ERROR
  • WS4: 错误li

节点 3 是所有资源组的参与节点。 但是, WAS 和 DB2 不能共存于同一节点上。 DB2 -作为父代-在节点 3 上启动,这意味着 WAS 无法在同一节点上启动。 由于 WAS 联机,因此 WAS 的任何子代都不能在节点 3 上联机。

用例 4:不按顺序启动第二个节点(节点 2)

注: 集群和 RG 状态与先前用例结束时相同。
步骤/限定符 操作 节点 1 节点 2 节点 3
1 启动节点 2
2 发行版 DB2
3 获取 DB2
4 获取 WAS
获取 WS1、WS2、WS3 获取 WS4
后置条件/资源组状态 WAS:

WS4

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:ONLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:ONLINE

节点 2 是 DB2的更高优先级节点。 因此, DB2 将回退到节点 2 ,现在可以在节点 3 上获取 WAS (Online On 不同节点依赖关系集)。

用例 5:启动第三个节点(节点 1)

注: 集群和 RG 状态与先前用例结束时相同。
步骤/限定符 操作 节点 1 节点 2 节点 3
1 启动节点 1
2 释放 WS1、WS2、WS3 释放 WS4
3 获取 WAS
4 获取 WS4
5 获取 WS1、WS2 和 WS3
后置条件/资源组状态 WAS:ONLINE

WS4:ONLINE

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:OFFLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:OFFLINE

所有组现在均已联机。

启动节点顺序 3、2、1 的整合视图

步骤 节点 1 节点 2 节点 3
启动节点 3 WAS:

WS4:

DB2:
  • WS1:
  • WS2:
  • WS3:
  • WAS:ERROR
  • DB2: 联机
  • WS1:ERROR
  • WS2:ERROR
  • WS3:ERROR
  • WS4:ERROR
启动节点 2 WAS:

WS4:

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:ONLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:ONLINE
启动节点 1 WAS:ONLINE

WS4:ONLINE

  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:OFFLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:OFFLINE

用例 6:获取失败示例

注: 节点 1 处于脱机状态,并且所有资源组都在节点 2 和 3 上联机。
步骤/限定符 操作 节点 1 节点 2 节点 3 注释
WAS:WS4:
  • DB2: 联机
  • WS1:ONLINE
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:ONLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:ONLINE
1 Node_up 1
2 释放 WS1 WS2 WS3 释放 释放 WS4
3 释放 WAS
4 获取 WAS WAS 的获取失败
5 rg_move WAS 正常的 rg_move 事件
6 获取 WAS
7 获取 WS1 WS2 WS3 获取 获取 WS4
后置条件/资源组状态 WAS:OFFLINE

WS4:OFFLINE

DB2: 在线 WS1: 在线
  • WS2:ONLINE
  • WS3:ONLINE
  • WAS:ONLINE
  • DB2: 脱机
  • WS1:OFFLINE
  • WS2:OFFLINE
  • WS3:OFFLINE
  • WS4:ONLINE

在节点 1 加入集群时,WAS 尝试回退,但是收到了获取失败。 获取失败会启动 resource_state_change 事件;这触发 rg_move 事件,此事件将 WAS 移动到其原始节点。