常见原因:串行电源开关断开了到控制成员的连接。网络电源开关断开了到网络的连接。
预计行为:被电源开关控制的成员将不会被关闭或重新启动。在这种情况下,如果成员被挂起,服务将不会从被有问题的电源开关控制的成员中失效转移。
校验:运行 clustat 来校验成员上的服务是否仍被标为 running,即便成员是 inactive。
常见原因:多数群集成员(例如,三到五个成员)离线。
测试例:在一个三成员的群集中,停止两个成员上的群集软件。
预计行为:所有没有控制电源开关的成员都会立即重新引导。所有服务会立即停止,它们的状态不会在共享介质上更新(运行 clustat 时,服务状态栏可能仍会显示服务在运行)。服务管理器退出。群集锁丢失,并且不可用。
校验:在剩余的活跃成员之一上运行 clustat。
常见原因:完全失去和其它成员的连接。
测试例:从群集成员中断开所有网络电缆。
预计行为:如果成员没有控制电源开关,它会立即重新引导。否则,它会试图尽快停止服务。如果某仲裁存在,组成群集仲裁的成员集合将会保护(fence)这个成员。
测试例:killall -KILL clumembd
预计行为:系统重新引导。
测试例:killall -STOP clumembd
预计行为:如果 clumembd 挂起的时间大于 (failover_time - 1) 秒,系统就会重新引导。被监视计时器从外部引发。
测试例:killall -STOP clumembd
预计行为:如果 clumembd 挂起的时间大于 (failover_time) 秒,系统就会重新引导。被 clumembd 从内部引发。
测试例:killall -KILL cluquorumd
预计行为:系统重新引导。
测试例:killall -KILL clusvcmgrd
预计行为:cluquorumd 重新生成 clusvcmgrd,它会运行所有服务的停止阶段。被停止的服务会被启动。
校验:参考系统日志中来自 cluquorumd 的警告消息。
测试例:killall -KILL clulockd
预计行为:cluquorumd 重新生成 clulockd。锁可能会在短期内不可用(防止服务的状态转换)。
校验:参考系统日志中来自 cluquorumd 的警告消息。
常见原因:导致系统重新引导的任何已知情况。
测试例:reboot -fn;按重设按钮。
预计行为:如果电源开关控制要重新引导的成员,那么若群集仲裁存在,整个系统也将会被保护(fence)(通常重开电源)。
测试例:停止所有成员上的群集服务(service clumanager stop)。
预计行为:剩余的服务都被不完整地停止。
校验:参考系统日志中的警告消息。
预计行为:被保护(fence)的成员上的服务在群集中的其它成员上被启动(若可能)。
校验:校验服务在成员被保护(fence)后确实被启动。这应该只花几秒钟。
常见原因:电源开关返回了错误状态或不可通信。
测试例:断开控制成员的电源开关,在成员上运行 reboot -fn。
预计行为:保护(fence)失败的成员上的服务不会在群集的其它地方被启动。如果该成员恢复了,群集上的服务会被重新启动。因为没有准确判定成员状态的方法,即便心跳停止,成员也会被假定仍在运行。因此,在断线的成员上的所有服务都应该被报告为运行。
校验:运行 clustat 来校验服务在成员上仍被标为运行,即便成员本身是不活跃的。日志中记录的消息会说该成员处于 PANIC 状态。
测试例:运行 dd 来在共享分区上写零
dd if=/dev/zero of=/dev/raw/raw1 bs=512 count=1 |
shutil -p /cluster/header |
预计行为:事件被记录。情况良好的共享分区上的数据被复制到返回错误的分区上。
校验:第二次读取同样的数据不应该生成第二条错误消息。
常见原因:共享介质不会联系,或两个分区都损坏了。
测试例:断开成员上的 SCSI 或光纤频道电缆。
预计行为:事件被记录。采取了配置的行动(reboot/halt/stop/ignore)来解决无法存取共享贮存区的问题。默认行动是重新引导(reboot)。