在发生意外的硬件或应用程序故障时 , 故障转移可能会自动执行 , 也可能由群集管理人员手动触发。这两种情形的算法相同,只不过在人工启动故障转移时,资源是按有序方式关闭的(即使这种关闭形式在故障状态下可能显得突然和具有破坏性)。
当群集中的某个节点完全失效时 , 其资源组将被转移到群集中的一个或多个可用的服务器。自动故障转移类似于按照计划对资源所有权进行管理性的重新分配。但该过程将更为复杂一些,因为正常有序的关闭步骤可能受到影响或者根本就不会发生。因此为了评估故障时的群集状态,还将需要一些额外步骤。
自动故障转移需要确定在故障节点上运行的资源组以及哪些节点将会获得各个资源组的所有权。群集中所有可以驻留这些资源组的节点会彼此协商这些资源组的归属事宜。这种协商基于节点性能、当前负载、应用程序反馈或者 节点首选项列表 。节点首选项列表是资源组属性的一部分,可用来将资源组指定给某个节点。一旦完成资源组的协商,所有群集节点就会更新各自的数据库并跟踪拥有资源组的节点。
在具有两个以上节点的群集中 , 各个资源组的节点首选项列表可以指定一个首选服务器外加一个或多个优先的备用服务器。这样可以实现 级联式故障转移 功能。通过该功能,资源组可以不受多个服务器故障的影响,因为它们可以逐级地故障转移到节点首选项列表的下一个服务器上。群集管理员可以为某个服务器上的资源组设置不同的节点首选项列表,这样,一旦服务器发生故障,就可以将该资源组分发到幸存的群集服务器上。
这种方案的一个替代做法是设置群集中所有资源组的节点首选项列表 ( 该做法通常称为 N+I 故障转移 ) 。节点首选项列表将确定首次故障转移时应将资源转移到哪个备用的群集节点。这些备用服务器应该是群集中最为空闲的服务器,或者它们可以非常容易地清除自己的工作载荷以便接收故障服务器转移来的工作载荷。
当群集管理员在选择级联式故障转移和 N+I 故障转移时 , 关键问题是要考虑群集是否有额外的容量来容纳因为少了服务器而损失的容量。使用级联式故障转移的前提是,群集的每个服务器都有一定的额外容量来接纳其它服务器发生故障时转移来的一部分工作负载。而使用 N+I 故障转移的前提是 , 这 “ +I ” 个备用服务器将是提供额外容量的主要位置。