若要設定圍籬區隔,您需要設定一或多個 STONITH 資源 — stonithd 精靈不需要任何組態設定。所有組態皆儲存在 CIB 中。STONITH 資源即類別為 stonith 的資源 (請參閱節 17.1, 受支援的資源代辦類別)。STONITH 資源是 STONITH 外掛程式在 CIB 中的表示。除圍籬區隔作業之外,還可對 STONITH 資源執行啟動、停止和監控作業,就如同任何其他資源一樣。在這種情況下,啟動和停止 STONITH 資源就表示啟用和停用 STONITH。因此,啟動和停止只是管理作業,不能轉換為圍籬區隔設備本身的任何作業。不過,監控會轉換為設備狀態。
可以對 STONITH 資源進行設定,就如同任何其他資源一樣。如需有關設定資源的詳細資訊,請參閱節 4.3, 建立 STONITH 資源 或節 5.4, 建立 STONITH 資源。
參數 (屬性) 清單取決於各 STONITH 類型。若要檢視特定設備的參數清單,請使用 stonith 指令︰
stonith -t stonith-device-type -n
例如,若要檢視 ibmhmc 設備類型的參數,請輸入以下指令:
stonith -t ibmhmc -n
若要取得設備的簡短說明文字,請使用 -h 選項:
stonith -t stonith-device-type -h
下面提供了使用 crm 指令行工具的語法撰寫的一些範例組態。若要套用它們態,請將範例放入文字檔中 (例如,sample.txt),然後執行以下指令:
crm < sample.txt
如需有關使用 crm 指令行工具設定資源的詳細資訊,請參閱節 5.0, 從指令行設定叢集資源。
警告: 測試組態
下面提供的一些範例僅用於演示和測試用途。切勿在現實叢集案例中使用任何測試組態範例。
範例 8-1 測試組態
configure primitive st-null stonith:null \ params hostlist="node1 node2" clone fencing st-null commit
範例 8-2 測試組態
代用組態:
configure primitive st-node1 stonith:null \ params hostlist="node1" primitive st-node2 stonith:null \ params hostlist="node2" location l-st-node1 st-node1 -inf: node1 location l-st-node2 st-node2 -inf: node2 commit
如果關注叢集軟體,則此組態範例極其適用。與現實組態的唯一區別在於不發生任何圍籬區隔作業。
範例 8-3 測試組態
下面的 external/ssh 組態是更貼近實際但仍然僅用於測試的範例:
configure primitive st-ssh stonith:external/ssh \ params hostlist="node1 node2" clone fencing st-ssh commit
此組態也可重設節點。該組態與第一個組態非常相似,它具備空 STONITH 設備的功能。在此範例中,將使用複製。它們是 CRM/Pacemaker 功能。基本上,複製是一種捷徑:不需要定義 n 個名稱不同的相同資源,只需一個複製的資源就已足夠。如果 STONITH 設備可從所有節點存取,顯然最常用的複製為使用 STONITH 資源。
範例 8-4 IBM RSA 無人職守設備組態
實際設備組態並沒有明顯差異,雖然某些設備可能需要更多屬性。可按如下所示設定 IBM RSA 無人職守設備:
configure primitive st-ibmrsa-1 stonith:external/ibmrsa-telnet \ params nodename=node1 ipaddr=192.168.0.101 \ userid=USERID passwd=PASSW0RD primitive st-ibmrsa-2 stonith:external/ibmrsa-telnet \ params nodename=node2 ipaddr=192.168.0.102 \ userid=USERID passwd=PASSW0RD location l-st-node1 st-ibmrsa-1 -inf: node1 location l-st-node2 st-ibmrsa-2 -inf: node2 commit
在此範例中,由於下列原因,使用了位置限制:STONITH 作業失敗的可能性始終存在。因此,在做為執行者的節點上的 STONITH 作業也不可靠。如果重設節點,它就不能傳送關於圍籬區隔作業結果的通知。想傳送通知的唯一方法是,假設作業即將成功,然後提前傳送通知。但如果作業失敗,就會陷入麻煩。因此,一般來說 stonithd 拒絕停止其主機。
範例 8-5 UPS 圍籬區隔設備組態
UPS 類型圍籬區隔設備的組態類似於上述範例,詳細資料留給讀者做為練習之用。所有 UPS 設備皆使用相同技術進行圍籬區隔,但存取設備本身的方法各不相同。舊式 UPS 設備 (曾視為專業 UPS 設備) 通常只有一個序列埠,一般使用專用序列纜線以 1200 鮑率進行連接。許多新型 UPS 設備仍然有一個序列埠,但它們通常還具有一個 USB 介面或一個乙太網路介面。可以使用的連線類型取決於外掛程式所支援的類型。
例如,使用 stonith -t stonith 設備類型 -n 指令比較 apcmaster 與 apcsmart 設備:
stonith -t apcmaster -h
傳回下列資訊:
STONITH Device: apcmaster - APC MasterSwitch (via telnet) NOTE: The APC MasterSwitch accepts only one (telnet) connection/session a time. When one session is active, subsequent attempts to connect to the MasterSwitch will fail. For more information see http://www.apc.com/ List of valid parameter names for apcmaster STONITH device: ipaddr login password
使用
stonith -t apcsmart -h
您將取得下列輸出:
STONITH Device: apcsmart - APC Smart UPS (via serial port - NOT USB!). Works with higher-end APC UPSes, like Back-UPS Pro, Smart-UPS, Matrix-UPS, etc. (Smart-UPS may have to be >= Smart-UPS 700?). See http://www.networkupstools.org/protocols/apcsmart.html for protocol compatibility details. For more information see http://www.apc.com/ List of valid parameter names for apcsmart STONITH device: ttydev hostlist
第一個外掛程式支援具有網路埠和 Telnet 通訊協定的 APC UPS。第二個外掛程式透過眾多 APC UPS 產品線皆支援的序列線使用 APC SMART 通訊協定。
在節 8.3.1, 範例 STONITH 資源組態 中,您瞭解到設定 STONITH 資源有幾種方法:使用限制或複製,或同時使用兩者。選擇使用何種建構進行組態設定取決於幾項因素 (圍籬區隔設備的性質、設備管理的主機數目、叢集節點數目),最後 (但並非最不重要) 還還取決於個人優先設定。
簡言之:如果可以放心地將複製與組態搭配使用,且如果它們確實可以減少組態設定工作,則使用複製的 STONITH 資源。