Sun Cluster 概念指南 (適用於 Solaris 作業系統)

用於故障隔離之 Failfast 機制

叢集框架用於確保故障的節點無法重新啟動和開始寫入共用儲存體的機制稱為 failfast

叢集成員的節點對於它們有存取權的磁碟,包括法定數目的磁碟,會連續啟用特定的 ioctl,也就是 MHIOCENFAILFAST。Ioctl 是用於磁碟機的指令。Ioctl 使節點可以在因磁碟被其他節點保留而無法存取時將自己當機。

MHIOCENFAILFAST ioctl 會讓磁碟機檢查從每次讀取和寫入節點發送給磁碟的 Reservation_Conflict 錯誤代碼時傳回的錯誤。Ioctl 會在背景中定期地對磁碟發出測試作業,以檢查 Reservation_Conflict。如果傳回 Reservation_Conflict,則前景與背景的控制流程路徑都會發生錯誤。

對於 SCSI-2 磁碟而言,保留並不是永久性的 — 它們並不能在節點重新啟動時存活。對於具有 Persistent Group Reservation (PGR) 的 SCSI-3 磁碟而言,保留資訊是儲存在磁碟上,並且在節點重新啟動後仍會保留。Failfast 機制工作方式相同,無論您使用的是 SCSI-2 磁碟還是 SCSI-3 磁碟。

如果節點在叢集中失去與其他節點的連接,並且也不是可達法定容量的分割區,它會被其他節點強制從叢集中移除。另一可達法定容量之分割區部分的節點,將共用磁碟保留。如果節點嘗試存取共用磁碟次數不是法定數目,則 failfast 機制會導致其收到保留衝突並當機。

在當機之後,該節點可能重新啟動並嘗試重新連結叢集,或者停留在 OpenBootTM PROM (OBP) 提示符號處 (如果叢集由基於 SPARC 的系統組成)。採用的動作由 auto-boot? 參數的設定所決定。在基於 SPARC 的叢集中,您可以在 OpenBoot PROM ok 提示符號中使用 eeprom(1M) 設定 auto-boot?。或者,您可以在基於 x86 的叢集中使用在 BIOS 啟動後選擇性執行的 SCSI 公用程式設定此參數。