使用状态更改传播和验证#
概述#
本部分介绍了如何在资源群集中使用资源状态更改传播和验证。资源群集由不同的子资源组组成,这些子资源组可能包含类型为Process、LoadPorts、ConsumableFeeds和Components的资源。特定资源组的从属关系由作为自由文本字段的资源的资源组属性定义。如果资源没有资源组,则不考虑将其用于资源状态更改传播和验证。
每当资源状态发生变化时,如果设置了资源属性ValidateDown,系统会调用业务规则ResourceValidateDown,根据群集配置和子资源当前状态,检查状态更改是否有效。如果设置了资源属性PropagateUp,则系统将通过调用业务规则ResourcePropagateUp来传播状态更改。标准的ResourceValidateDown和ResourcePropagateUp提供了某种行为 - 本部分稍后描述 - 但客户可以通过实现他们自己的逻辑来替代这种行为。
系统标准业务规则仅基于资源的SystemState属性。在每个资源组级别,适用以下规则:
| 组状态 | 条件 | 向下验证 | 向上传播 |
|---|---|---|---|
| 向下 | 没有组成员已启动,至少有一个组成员已关闭 | 已检查 | 已检查 |
| 非计划 | 所有组成员均未计划 | 未选中 | 已检查 |
| 向上 | 至少有一个组成员已启动 | 未选中 | 已检查 |
Table: 资源组级别规则
在资源群集级别(代表属于资源群集的所有资源组的状态),以下规则适用:
| 群集状态 | 条件 | 向下验证 | 向上传播 |
|---|---|---|---|
| 向下 | 至少有一个组已关闭 | 未选中 | 已检查 |
| 非计划 | 至少有一个组未计划,且没有组已关闭 | 未选中 | 已检查 |
| 向上 | 所有组都已启动 | 已检查 | 已检查 |
Table: 资源群集级别规则
向下验证#
标准ResourceValidateDown业务规则仅进行一项检查,即如果存在一个已关闭的资源组,则资源群集不会更改为已启动状态。
向上传播#
标准ResourcePropagateUp业务规则实现以下逻辑:
-
它测试当前资源系统状态是否因状态更改而发生更改。如果没有更改,业务规则将正常退出。
-
它测试当前资源组的状态是否因当前资源的状态更改而更改(使用上面的组状态规则)。如果未更改,则业务规则将正常退出。
-
对于资源的每个父项(表示群集的父项),该规则将评估父项的系统是否必须更改(使用上面的群集状态规则)。如果没有更改,业务规则将正常退出。
-
如果必须更改父级状态更改,系统将尝试使用以下方法按以下顺序更改状态:
1.应用相同的状态转换
2.调整状态
3.设置系统状态
