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

第 3 章 針對系統管理員和應用程式開發者的重要概念

本章說明有關 Sun Cluster 系統的軟體元件的重要概念。涵蓋的主題包含:

本資訊主要是供使用 Sun Cluster API 和 SDK 的系統管理員和應用程式開發人員參考。叢集系統管理員可以使用本資訊來準備安裝、配置和管理叢集軟體。應用程式開發人員可以使用這些資訊來瞭解將要利用的叢集環境。

管理介面

您可以從數種使用者介面中選擇一種,以安裝、配置和管理 Sun Cluster 系統。您可以透過 SunPlex Manager 圖形使用者介面 (GUI) 或透過歸檔指令行介面來完成系統管理作業。在指令行介面的頂端有一些公用程式 (如 scinstallscsetup),可以簡化選取的安裝和配置作業。Sun Cluster 系統亦有一個模組作為 Sun Management Center 的一部分執行,為特定的叢集作業提供 GUI。此模組僅可在基於 SPARC 的叢集中使用。請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的「管理工具」,以取得管理介面的完整說明。

叢集時間

叢集中所有節點的時間均必須同步。不論您是否將叢集節點與任何外在的時間來源同步化,對於叢集操作而言並不重要。Sun Cluster 系統使用網路時間協定 (NTP) 同步化各節點間的時鐘。

一般而言,系統時鐘在傾刻之間變更並不會造成問題。然而,如果您在使用中的叢集上執行 date(1)rdate(1M),或 xntpdate(1M)(交談式,或在 cron 指令集之內),您可以強制進行比傾刻更久的時間變更來同步化系統時鐘與時間來源。這種強制變更可能會導致檔案修改時間戳記有問題或混淆 NTP 服務。

在每個叢集節點上安裝 Solaris 作業系統時,您都有機會變更該節點預設的時間和日期設定。一般而言,您可以接受出廠預設值。

使用 scinstall(1M) 安裝 Sun Cluster 軟體時,安裝程序中的一個步驟是為叢集配置 NTP。Sun Cluster 軟體提供一個範本檔案,ntp.cluster (請參閱已安裝的叢集節點上的 /etc/inet/ntp.cluster),該檔案會在所有叢集節點之間建立對等關係。一個節點定義為「喜好的」節點。由專用的主電腦名稱和跨叢集交互連接時發生的時間同步化來識別節點。如需有關如何配置叢集 NTP 的說明,請參閱「Sun Cluster 軟體安裝指南(適用於 Solaris 作業系統)」中的第 2 章「安裝和配置 Sun Cluster 軟體」

另外一種方式是,您可以在叢集之外設定一或多部 NTP 伺服器,並變更 ntp.conf 檔案以反映該配置。

在正常作業中,您應該不會需要調整叢集的時間。然而,您安裝 Solaris 作業系統時時間設定不正確,並且您希望變更時間,「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的第 7 章「管理叢集」中包含有關該作業的程序。

高可用性框架

Sun Cluster 系統使使用者和資料之間的「路徑」上所有元件 (包括網路介面、應用程式本身、檔案系統和多重主機裝置) 都具有高度可用性。一般而言,如果叢集元件在系統內有任何單一(軟體或硬體) 故障之後仍然存在,就具有高度可用性。

下表顯示了各種 Sun Cluster 元件故障 (硬體和軟體均包括) 和內建於高度可用性框架中的各種回復。

表 3–1 Sun Cluster 故障偵測和回復的層級

故障的叢集元件 

軟體復原 

硬體恢復 

資料服務 

HA API、HA 框架 

不適用 

公用網路配接卡 

Internet Protocol (IP) 網路多重路徑 

多重公用網路配接卡 

叢集檔案系統 

主要與次要複製 

多重主機裝置 

鏡像的多重主機裝置 

容體管理 (Solaris Volume Manager 和 VERITAS Volume Manager,它們僅在基於 SPARC 的叢集中可用) 

硬體 RAID-5 (例如,Sun StorEdgeTM A3x00)

整體裝置 

主要與次要複製 

至裝置的多重路徑,叢集傳輸接點 

私有網路 

HA 傳輸軟體 

多重私有硬體獨立網路 

節點 

CMM,failfast 驅動程式 

多重節點 

Sun Cluster 軟體的高度可用性框架可以快速偵測到節點故障,並會在叢集剩餘節點上為框架資源建立一個新的等效伺服器。框架資源隨時皆可使用。不受當機節點影響的框架資源在回復期間完全可用。此外,已故障節點的框架資源一經恢復之後,便會成為可使用。已回復的框架資源不必等待所有其他的框架資源完成回復。

大多數高度可用的框架資源都可回復為使用此資源的應用程式 (資料服務) 而不需設定。框架資源存取的語意會在各項節點故障時被完整地保留。應用程式完全不會偵測到框架資源伺服器已經移至其他節點。透過使用連結至單一節點的檔案、裝置和磁碟容體,該節點的故障對剩餘節點上的程式是完全不需設定的。如果存在到另一節點上的磁碟的替代硬體路徑,則不需進行設定。其中的一個範例便是使用具有連到多重節點的通訊埠的多重主機裝置。

叢集成員關係監視器

為了讓資料免於毀損,所有的節點必須對叢集成員達成一致的協議。必要時,CMM 會為了回應故障而協調叢集服務 (應用程式) 的叢集重新配置。

CMM 從叢集傳輸層接收有關連接到其他節點的資訊。在重新配置期間,CMM 使用叢集交互連接來交換狀態資訊。

偵測到叢集成員關係變更後,CMM 會執行叢集的同步化配置。在已同步的配置中,叢集資源可能會根據新的叢集成員關係重新分配。

與先前的 Sun Cluster 軟體發行版本不同,CMM 完全在核心中執行。

請參閱關於故障隔離,以取得有關叢集如何防止自身分割為多重單獨叢集的更多資訊。

Failfast 機制

如果 CMM 偵測到某節點具有嚴重問題,它便會通知叢集框架強制關閉 (當機) 該節點並將其從叢集成員關係中移除。發生此情況的機制稱為 failfast。Failfast 會以兩種方式關閉節點。

叢集常駐程式終止導致節點當機時,該節點的主控台上將會顯示與以下訊息類似的訊息。


panic[cpu0]/thread=40e60: Failfast: Aborting because "pmfd" died 35 seconds ago.
409b8 cl_runtime:__0FZsc_syslog_msg_log_no_argsPviTCPCcTB+48 (70f900, 30, 70df54, 407acc, 0)
%l0-7: 1006c80 000000a 000000a 10093bc 406d3c80 7110340 0000000 4001 fbf0

發生當機之後,節點可能會重新啟動並嘗試重新加入叢集。或者,如果叢集由基於 SPARC 的系統組成,則節點可能會保持在 OpenBootTM PROM (OBP) 提示符號狀態。節點的下一個動作由 auto-boot? 參數的設定決定。您可以在 OpenBoot PROM ok 提示符號中使用 eeprom(1M) 設定 auto-boot?

Cluster Configuration Repository (CCR,叢集配置儲存庫)

CCR 使用兩階段確定演算法作為更新之用:更新必須在所有叢集成員上都成功完成,否則該更新將會回復。CCR 使用叢集交互連接來套用分散式更新。


注意 – 注意 –

雖然 CCR 是由文字檔所組成,請絕對不要手動編輯 CCR 檔案。每一個檔案均含有總和檢查記錄,以確保節點之間的一致性。手動更新 CCR 檔案會導致節點或整個叢集停止運作。


CCR 依賴 CMM 來保證叢集只有在到達法定數目時才能執行。CCR 負責驗證整個叢集的資料一致性,必要時執行復原,以及促使資料的更新。

全域裝置

Sun Cluster 系統使用全域裝置來提供從任何節點對叢集中任何裝置之叢集範圍內的、高度可用的存取,無論裝置實體上連接到何處。通常,如果節點在提供對全域裝置的存取期間發生故障,Sun Cluster 軟體會自動探索到此裝置的其他路徑並將存取重新導向至該路徑。Sun Cluster 全域裝置包含磁碟、CD-ROM 與磁帶。然而,Sun Cluster 軟體支援的多埠式全域裝置僅限於磁碟。從而,CD-ROM 和磁帶裝置目前不是高度可用的裝置。每部伺服器上的本機磁碟亦不是多埠式,因此不是高可用性裝置。

叢集可以自動為叢集中的每個磁碟、CD-ROM 和磁帶裝置指定唯一的 ID。這種指定可讓叢集中的任何節點對各個裝置進行一致存取。整體裝置名稱空間是保存於 /dev/global 目錄。請參閱全域名稱空間,以取得更多資訊。

多埠式整體裝置提供一條以上的裝置路徑。因為多重主機磁碟是由多個節點宿主的磁碟裝置群組的一部分,所以多重主機磁碟具有高度可用性。

裝置 ID 和 DID 虛擬驅動程式

Sun Cluster 軟體透過稱為 DID 虛擬驅動程式的建構來管理全域裝置。此驅動程式用於將唯一的 ID 自動指定給叢集中的每個裝置,包括多重主機磁碟、磁帶機和 CD-ROM。

DID 虛擬驅動程式是叢集的全域裝置存取功能的主要部分。DID 驅動程式會探測叢集的所有節點並建立唯一磁碟裝置的清單,為每個裝置指定唯一的主要和次要編號,這些編號在叢集的所有節點上是一致的。對全域裝置的存取是利用唯一的裝置 ID,而不是利用傳統的 Solaris 裝置 ID 執行的,例如用於磁碟的 c0t0d0

此方法可以確保存取磁碟的所有應用程式 (例如使用原始裝置的容體管理程式或應用程式) 在叢集中使用一致的路徑。這種一致性對多重主機磁碟而言特別重要,因為每個裝置的本機主要編號和次要編號會隨著節點不同而改變,因此也會變更 Solaris 裝置命名慣例。例如,Node1 可能將某個多重主機磁碟識別為 c1t2d0,而 Node2 可能會將同一磁碟完全不同地識別為 c3t2d0。DID 驅動程式會指定全域名稱 (例如 d10),節點會改用該名稱,為每個節點指定一致的多重主機磁碟對映。

您可以透過 scdidadm(1M)scgdevs(1M) 來更新和管理裝置 ID。如需更多資訊,請參閱下列線上說明手冊:

磁碟裝置群組

在 Sun Cluster 系統中,所有多重主機裝置均必須受 Sun Cluster 軟體控制。您首先要在多重主機磁碟上建立容體管理程式磁碟群組︰Solaris Volume Manager 磁碟組或 VERITAS Volume Manager 磁碟群組 (僅可在基於 SPARC 的叢集中使用)。然後,將容體管理程式磁碟群組註冊為磁碟裝置群組。磁碟裝置群組是一種整體裝置類型。此外,Sun Cluster 軟體自動為叢集中的每個磁碟和磁帶裝置建立原始的磁碟裝置群組。不過這些叢集裝置群組仍會維持離線狀態,除非您以整體裝置來存取它們。

註冊為 Sun Cluster 系統提供有關哪些節點具有特定容體管理程式磁碟群組的路徑的資訊。在此,容體管理程式磁碟群組會變成可由叢集內做全域存取。如果一個以上的節點可以寫至 (主控) 磁碟裝置群組,儲存在此磁碟裝置群組上的資料就變得高度可用了。該高度可用的磁碟裝置群組可以用於容納叢集檔案系統。


備註 –

磁碟裝置群組與資源群組無關。一個節點可以控制資源群組 (代表資料服務程序群組),而另一個節點可以控制正在被資料服務存取的磁碟群組。然而,最佳方法是將儲存特定應用程式的資料之磁碟裝置群組和存放該應用程式資源的資源群組 (應用程式常駐程式) 的資源群組保持在同一節點上。請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的「Relationship Between Resource Groups and Disk Device Groups」,以取得有關磁碟裝置群組和資源群組之間的關聯之更多資訊。


節點使用磁碟裝置群組時,容體管理程式磁碟群組將成為「全域」群組,因為其為基礎磁碟提供多重路徑支援。實體連接到多重主機磁碟的每一個叢集節點均會提供磁碟裝置群組的路徑。

Disk Device Group Failover(磁碟裝置群組防故障備用模式)

因為磁碟機殼連接至一個以上的節點,當目前主控裝置群組的節點故障時,仍可透過替代路徑來存取該外殼中的所有磁碟裝置群組。主控裝置群組的節點故障不會影響裝置群組的存取,但是在執行恢復與一致性檢查的期間除外。在這段期間內,所有的要求均會暫停執行 (對於應用程式為透明的),直到系統恢復使用裝置群組為止。

圖 3–1 容錯移轉之前和之後的磁碟裝置群組

圖例:前面的文字內容說明該圖形。

多埠式磁碟裝置群組

本節說明可以讓您在多埠式磁碟配置中平衡效能和可用性的磁碟裝置群組特性。Sun Cluster 軟體提供了兩個用於配置多埠式磁碟配置特性︰preferencednumsecondaries。您可以使用 preferenced 特性控制發生容錯移轉時節點嘗試採取控制的順序。使用 numsecondaries 特性,可為裝置群組設定所需數目的次要節點。

當主要節點發生故障且沒有符合的次要節點可以成為主要節點時,會認為高度可用的服務當機。如果發生服務容錯移轉並且 preferenced 特性為 true,則節點會按照節點清單中的順序選取次要節點。由該特性設定的節點清單可以定義節點嘗試採取主要控制或是從備用轉為次要的順序。您可以使用 scsetup(1M) 公用程式動態變更裝置服務的喜好設定。與附屬服務提供者 (例如全域檔案系統) 相關的喜好設定將與裝置服務的喜好設定相同。

在正常作業期間,次要節點是主要節點的核對點。在多埠式磁碟配置中,對每個次要節點進行核對點作業將導致叢集效能降低和記憶體的耗用。備用節點支援用於將檢查點導致的效能降低和記憶體經常性耗用時間降到最低。依預設,磁碟裝置群組有一個主要節點和一個次要的節點。剩餘的可用提供者節點成為備用節點。如果發生容錯移轉,則次要節點將成為主要節點,而節點清單中優先權最高的節點將成為次要節點。

所需次要節點的數目可以設定為 1 與裝置群組中可作業非主要提供者節點數目之間的任何整數。


備註 –

如果您使用的是 Solaris Volume Manager,您必須建立磁碟裝置群組才能將 numsecondaries 特性設定為預設值之外的數值。


預設的所需裝置服務次要節點數目為 1。由副本框架維護的次要提供者的實際數目為所需數目,除非可作業非主要提供者的數目少於所需數目。如果您要在配置中增加或移除節點,則必須更改 numsecondaries 特性並仔細檢查節點清單。維護節點清單和次要節點的所需數目可以防止配置的次要節點數目與框架允許的實際數目之間發生衝突。

全域名稱空間

啟用全域裝置的 Sun Cluster 軟體機制是全域名稱空間。全域名稱空間包含 /dev/global/ 階層結構和容體管理程式名稱空間。全域名稱空間反映多重主機磁碟和本機磁碟 (以及任何其他的叢集裝置,如 CD‐ROM 和磁帶),並提供多重主機磁碟的多重故障轉移路徑。每個實體連接至多重主機磁碟的節點會為叢集中任何的節點提供儲存體的路徑。

通常,對於 Solaris Volume Manager,容體管理程式名稱空間位於 /dev/md/diskset/dsk (以及 rdsk) 目錄中。對於 Veritas VxVM,容體管理程式名稱空間位於 /dev/vx/dsk/disk-group/dev/vx/rdsk/disk-group 目錄中。這些名稱空間分別由在整個叢集匯入的每個 Solaris Volume Manager 磁碟組和每個 VxVM 磁碟群組之目錄組成。其中的每個目錄均包含該磁碟組或磁碟群組中的每個中介裝置或容體的裝置節點。

在 Sun Cluster 系統中,本機容體管理程式名稱空間中的每個裝置節點均替代為 /global/.devices/node@nodeID 檔案系統中裝置節點的符號連結,其中 nodeID 是代表叢集中的節點的整數。Sun Cluster 軟體繼續在其標準位置以符號連結表示容體管理程式裝置。全域名稱空間和標準容體管理程式名稱空間均可由任何叢集節點使用。

全域名稱空間的優勢包含以下各項︰

區域和全域名稱空間範例

下表顯示多重主機磁碟 (c0t0d0s0) 的本機和全域名稱空間之間的對應。

表 3–2 本機和全域名稱空間對應

元件或路徑 

本機節點名稱空間 

全域名稱空間 

Solaris logical name (Solaris 邏輯名稱) 

/dev/dsk/c0t0d0s0

/global/.devices/node@nodeID/dev/dsk/c0t0d0s0

DID name (DID 名稱) 

/dev/did/dsk/d0s0

/global/.devices/node@nodeID/dev/did/dsk/d0s0

Solaris Volume Manager 

/dev/md/diskset/dsk/d0

/global/.devices/node@nodeID/dev/md/diskset/dsk/d0

SPARC:VERITAS Volume Manager 

/dev/vx/dsk/disk-group/v0

/global/.devices/node@nodeID/dev/vx/dsk/disk-group/v0

全域名稱空間是在安裝和更新的每次重新配置重新開機時自動產生。您也可以執行 scgdevs(1M) 指令來產生全域名稱空間。

Cluster File Systems(叢集檔案系統)

叢集檔案系統具備下述功能:

您可以使用 mount -g 將檔案系統全域掛載在全域裝置上或使用 mount 將其本機掛載在全域裝置上。

程式可以從叢集中的任何節點,透過相同的檔名 (例如,/global/foo) 來存取叢集檔案系統中的檔案。

叢集檔案系統會裝載於所有叢集成員上。您不能將叢集檔案系統裝載於叢集成員的子集上。

叢集檔案系統並非不同的檔案系統類型。用戶端驗證基礎檔案系統 (如 UFS)。

使用叢集檔案系統

在 Sun Cluster 系統中,所有多重主機磁碟均置入磁碟裝置群組中,這些群組可以是 Solaris Volume Manager 磁碟組、VxVM 磁碟群組或是不受軟體式容體管理程式控制的個別磁碟。

要使叢集檔案系統為高度可用,基礎的磁碟儲存體必須連結一個以上的節點。因此,成為叢集檔案系統的本機檔案系統 (即儲存於節點本機磁碟上的檔案系統) 並不具有高度可用性。

您可以掛載叢集檔案系統,方法與掛載檔案系統相同︰


備註 –

因為 Sun Cluster 軟體沒有強制叢集檔案系統的命名策略,您可以將所有叢集檔案系統的掛載點建立在同一目錄下,例如 /global/disk-device-group,以簡化管理作業。請參閱「Sun Cluster 3.1 9/04 Software Collection for Solaris OS (SPARC Platform Edition)」和「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」,以取得更多資訊。


HAStoragePlus 資源類型

HAStoragePlus 資源類型是設計用於使非全域檔案系統配置 (如 UFS 和 VxFS ) 具有高度可用性的。使用 HAStoragePlus 將您的本機檔案系統整合到 Sun Cluster 環境中,並且使檔案系統具有高度可用性。HAStoragePlus 提供附加的檔案系統功能,例如檢查、掛載和強制卸載,這些功能使 Sun Cluster 可以容錯移轉本機檔案系統。本機檔案系統必須位於已啟動切換保護移轉的全域磁碟群組中,才能進行故障轉移。

請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的「Enabling Highly Available Local File Systems」,以取得有關如何使用 HAStoragePlus 資源類型的資訊。

HAStoragePlus 還可用於同步化資源和資源所依賴的磁碟裝置群組的啟動。如需更多資訊,請參閱資源、資源群組與資源類型

Syncdir 掛載選項

您可以將 syncdir 掛載選項用於使用 UFS 作為基礎檔案系統的叢集檔案系統。然而,如果您不指定 syncdir,效能會明顯改善。如果您指定 syncdir,則會保證寫入與 POSIX 相容。如果您不指定 syncdir,您將遇到與 NFS 檔案系統中相同的運作方式。例如,不使用 syncdir,您可能關閉檔案時才能發覺空間不足的狀況。使用 syncdir (和 POSIX 行為),便可在寫入作業期間發覺空間不足的狀況。如果不指定 syncdir 而遇到問題的情況會很少。

如果您使用的是基於 SPARC 的叢集,則 VxFS 沒有與 UFS syncdir 掛載選項等效的掛載選項。未指定 syncdir 掛載選項時,VxFS 運作方式與 UFS 的相同。

請參閱檔案系統常見問題,以瞭解有關全域裝置和叢集檔案系統的常見問題。

磁碟路徑監視

目前發行版本的 Sun Cluster 軟體支援磁碟路徑監視 (DPM)。本節提供了有關 DPM、DPM 常駐程式的概念資訊,以及用於監視磁碟路徑的管理工具。請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」,以取得有關如何監視、取消監視和檢查磁碟路徑狀態的程序資訊。


備註 –

如果節點執行的是 Sun Cluster 3.1 10/03 發行版本之前的軟體版本,則該節點上不支援 DPM。當進行滾動升級時,請勿使用 DPM 指令。在升級了所有節點後,節點必須在線上才能使用 DPM 指令。


DPM 簡介

DPM 可以透過監視次要磁碟路徑的可用性,來提昇故障轉移和切換保護移轉的整體可信賴性。使用 scdpm 指令來驗證某個資源在切換之前所使用的磁碟路徑之可用性。scdpm 指令隨附的選項可以讓您監視叢集中單一節點或所有節點的路徑。請參閱 scdpm(1M) 線上手冊,以取得有關指令行選項的更多資訊。

DPM 元件是從 SUNWscu 套件安裝的。SUNWscu 套裝軟體是透過標準的 Sun Cluster 安裝程序安裝的。請參閱 scinstall(1M) 線上手冊,以取得關於安裝介面的詳細資訊。下表說明了 DPM 元件的預設安裝位置。

位置 

元件 

常駐程式 

/usr/cluster/lib/sc/scdpmd

指令行介面 

/usr/cluster/bin/scdpm

共用檔案庫 

/user/cluster/lib/libscdpm.so

常駐程式狀態檔 (在執行期間建立) 

/var/run/cluster/scdpm.status

多重執行緒 DPM 常駐程式在每個節點上執行。當節點啟動時,DPM 常駐程式 (scdpmd ) 由 rc.d 程序檔啟動。如果出現問題,則此常駐程式將由 pmfd 管理並自動重新啟動。下列清單說明初始啟動時 scdpmd 的工作方式。


備註 –

在啟動時,每個磁碟路徑的狀態都將初始化為 UNKNOWN


  1. DPM 常駐程式從之前的狀態檔案或從 CCR 資料庫收集磁碟路徑和節點名稱資訊。請參閱Cluster Configuration Repository (CCR,叢集配置儲存庫),以取得有關 CCR 的更多資訊。啟動 DPM 常駐程式之後,可以強制此常駐程式從指定的檔案名稱讀取受監視磁碟的清單。

  2. DPM 常駐程式可初始化通訊介面 (如指令行介面),以回應來自此常駐程式外部元件的要求。

  3. DPM 常駐程式可使用 scsi_inquiry 指令,每隔 10 分鐘在受監視的清單中偵測每個磁碟路徑。將鎖定每個項目,以防止通訊介面存取被修改項目的內容。

  4. DPM 常駐程式會通知 Sun Cluster Event Framework 並透過 UNIX syslogd(1M) 機制記錄路徑的新狀態。


備註 –

pmfd (1M) 會報告與常駐程式相關的所有錯誤。API 的所有功能均傳回 0 表示成功,傳回 -1 表示發生任何故障。


DPM 常駐程式會監視透過多重路徑驅動程式可見的邏輯路徑 (例如 Sun StorEdge Traffic Manager、HDLM 和 PowerPath) 的可用性。將不監視這些驅動程式管理的個別實體路徑,因為多重路徑驅動程式可遮罩 DPM 常駐程式的個別故障。

監視磁碟路徑

本節說明了監視叢集內磁碟路徑的兩種方法。第一種方法由 scdpm 指令提供。使用該指令,可監視、取消監視或顯示叢集內磁碟路徑的狀態。此指令對列印故障磁碟清單和從檔案監視磁碟路徑也非常有用。

SunPlex Manager 圖形使用者介面 (GUI) 提供了監視叢集內磁碟路徑的第二種方法。SunPlex Manager 提供了叢集內受監視磁碟路徑的拓撲檢視。此檢視每 10 分鐘更新一次,以提供關於失敗偵測的數目。請將 SunPlex Manager GUI 提供的資訊與 scdpm(1M) 指令配合使用,來管理磁碟路徑。請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的第 10 章「利用圖形化使用者介面管理 Sun Cluster」,以取得有關 SunPlex Manager 的資訊。

使用 scdpm 指令監視磁碟路徑

scdpm(1M) 指令提供了可讓您執行下列作業的 DPM 管理指令︰

從任何使用中節點發出具有磁碟路徑引數的 scdpm(1M) 指令,以便對叢集執行 DPM 管理作業。磁碟路徑引數總是由節點名稱與磁碟名稱構成。節點名稱不是必須的,並且如果未指定節點名稱則預設為 all。下列表格說明了磁碟路徑的命名慣例。


備註 –

極力建議您使用全域磁碟路徑名稱,因為全域磁碟路徑名稱在整個叢集中是一致的。UNIX 磁碟路徑名稱在整個叢集中是不一致的。一個磁碟的 UNIX 磁碟路徑在叢集節點之間可以不同。磁碟路徑可以在一個節點上為 c1t0d0,而在另一個節點上為 c2t0d0。如果您使用 UNIX 磁碟路徑名稱,請在發出 DPM 指令之前,使用 scdidadm -L 指令將 UNIX 磁碟路徑名稱對應至全域磁碟路徑名稱。請參閱 scdidadm(1M) 線上手冊。


表 3–3 範例磁碟路徑名稱

名稱類型 

範例磁碟路徑名稱 

描述 

整體磁碟路徑 

schost-1:/dev/did/dsk/d1

schost-1 節點上的磁碟路徑 d1

all:d1

叢集內所有節點上的磁碟路徑 d1

 

UNIX 磁碟路徑 

schost-1:/dev/rdsk/c0t0d0s0

schost-1 節點上的磁碟路徑 c0t0d0s0

schost-1:all

schost-1 節點上的所有磁碟路徑

 

所有磁碟路徑 

all:all

叢集中所有節點上的全部磁碟路徑 

使用 SunPlex Manager 監視磁碟路徑

SunPlex Manager 可讓您執行下列基本的 DPM 管理作業︰

請參考 SunPlex Manager 線上說明,以取得關於如何使用 SunPlex Manager 來執行磁碟路徑管理的程序資訊。

法定數目和法定裝置

本節包含下列主題︰


備註 –

如需 Sun Cluster 軟體支援作為法定裝置的特定裝置清單,請聯絡您的 Sun 服務供應商。


由於叢集節點共用資料與資源,因此叢集永遠不能分割為同時處於使用中的單個分割區,因為多個使用中的分割區可能導致資料毀損。叢集成員關係監視器 (CMM) 與法定數目演算法保證同一叢集在任何時候均最多有一個實例處於作業中,即使分割了叢集互連亦是如此。

如需有關法定數目和 CMM 的說明,請參閱「Sun Cluster 簡介 (適用於 Solaris 作業系統)」中的「叢集成員關係」

叢集分割區中產生的兩種問題︰

當節點間的叢集互連遺失且該叢集被分割成子叢集時會出現 Split Brain。每個分割區都「認為」自己是唯一的分割區,因為一個分割區中的節點無法與其他分割區中的節點進行通訊。

關機後叢集重新啟動時 (其中叢集配置資料比關機時還舊) 會發生 Amnesia。當您不是在上一次起作用的節點上啟動叢集時可能會發生此問題。

Sun Cluster 軟體透過以下方法避免 Split Brain 與 Amnesia:

具有多數投票的分割區獲得法定數目,可以進行運作。在一個叢集中配置兩個以上的節點時,該多數投票機制會防止 Split Brain 與 Amnesia。但是,在一個叢集中配置兩個以上的節點時,僅僅計數節點票數是不夠的。在兩個節點的叢集中,票數為兩票。如果此類包含兩個節點的叢集被分割,則其中一個分割區需要外部投票才能獲得法定數目。該外部投票由法定裝置提供。

關於法定票數

使用 scstat -q 指令來確定以下資訊:

如需有關此指令的更多資訊,請參閱 scstat(1M)

節點與法定裝置均會向叢集投票以形成法定數目。

節點根據節點狀態進行投票︰

法定裝置根據與該裝置連接的票數進行投票。當您配置法定裝置時,Sun Cluster 軟體為法定裝置指定票數 N-1,其中 N 是連接至此法定裝置的票數。例如,與兩個有非零票數節點連線的法定裝置,擁有一票法定票數 (二減一)。

如果滿足以下兩個條件之,則法定裝置就會投票:

您在安裝叢集的過程中配置法定裝置,或者稍後使用「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的第 5 章「管理法定數目」中說明的程序進行配置。

關於故障隔離

叢集的主要問題是導致叢集被分割的故障 (稱為 Split Brain)。發 split brain 時,不是所有節點均可通訊,所以個別節點或節點子集可能會嘗試形成個別的叢集或子集叢集。每個子集或分割區都可能會「認為」自己對多重主機裝置擁有唯一的存取權和所有權。當多個節點嘗試寫入磁碟時會發生資料毀損。

故障隔離藉由實際防止磁碟存取來限制節點存取多重主機裝置。當節點離開叢集時 (故障或被分割),故障隔離可確保節點不會再存取碟。只有目前的成員可以存取磁碟,因此維持了資料的完整性。

磁碟裝置服務為使用多重主機裝置的服務提供容錯移轉功能。當目前作為磁碟裝置群組的主要節點 (所有者) 的叢集成員發生故障或無法連線時,將會選擇新的主要節點。新的主要節點可以讓對磁碟裝置的存取繼續,而只發生短暫中斷。在此過程中,舊的主要節點必須喪失對裝置的存取權才能啟動新的主要節點。然而,當成員退出叢集且接觸不到時,叢集就無法通知該主要節點釋放裝置。因此,您需要一個方法讓存活的成員可以從故障的成員接手控制和存取整體裝置。

Sun Cluster 系統使用 SCSI 磁碟保留來實現故障隔離。使用 SCSI 保留,便可以將發生故障的節點與多重主機裝置「隔離」,防止它們存取這些磁碟。

SCSI-2 磁碟保留支援一種形式的保留,它會授予對所有連接到該磁碟的節點的存取權 (當不存在保留時)。或者,存取權被限制為某一單一節點 (存放該保留的節點)。

當叢集成員偵測到另一個節點在叢集交互連接上已經不再進行通訊,即會起始隔離程序來防止其他節點存取共用磁碟。發生此故障隔離時,隔離的節點將會當機,並在其主控台上顯示「保留衝突」訊息。

如果發現節點不再是叢集成員,則在此節點和其他節點間共用的所有磁碟上觸發 SCSI 保留。隔離的節點可能不「發覺」其已被隔離,並且如果其嘗試存取共用磁碟,則會偵測到保留和當機。

用於故障隔離之 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 公用程式設定此參數。

關於法定數目配置

以下清單包含關於法定數目配置的事實:

如果要瞭解需要避免的法定配置之範例,請參閱不正確的法定數目配置。如果要瞭解建議使用的法定配置之範例,請參閱建議使用的法定數目配置

遵守法定裝置需求

您必須遵守以下需求。如果忽略了這些需求,則您可能會降低叢集的可用性。

如果要瞭解有關需要避免的法定數目配置之範例,請參閱不正確的法定數目配置。如果要瞭解建議使用的法定數目配置之範例,請參閱建議使用的法定數目配置

遵照法定裝置最佳方法

請使用以下資訊來為您的拓樸評估最佳法定配置:

如果要瞭解需要避免的法定數目配置之範例,請參閱不正確的法定數目配置。如果要瞭解建議使用的法定數目配置之範例,請參閱建議使用的法定數目配置

建議使用的法定數目配置

本節提供了建議使用的法定數目配置之範例。如果要瞭解應避免的法定數目配置之範例,請參閱不正確的法定數目配置

雙節點配置中的法定數目

需要有兩票法定票數才能形成包含兩個節點的叢集。這兩票可以從兩個叢集節點獲得,或者從一個節點和一個法定裝置獲得。

圖 3–2 雙節點配置

圖例:顯示使用連線至兩個節點的一個法定裝置的節點 A 與節點 B。

多於兩個節點的配置中的法定數目

您可以配置多於兩個節點而不包含法定裝置的叢集。然而,如果這樣,則必須使用叢集中的大多數節點才能啟動叢集。

圖例:配置 1:節點 A 至 D。A/B 連線至 (->) 法定裝置 1。C/D -> 法定裝置 2。配置 2:節點 A 至 C。A/C -> 法定裝置 1。B/C -> 法定裝置 2。配置 3:節點 A 至 C -> 一個法定裝置。

非典型的法定數目配置

圖 3–3 假定在您正在 Node ANode B 上執行關鍵作業應用程式 (如 Oracle database)。如果節點 A節點 B 不可用,且無法存取共用資料,則您可能想要使整個叢集當機。否則,該配置為次佳配置,因為它沒有提供高度可用性。

如需有關與異常相關的最佳方法的資訊,請參閱遵照法定裝置最佳方法

圖 3–3 非典型的配置

圖例:節點 A 至 D。節點 A/B 連線至法定裝置 1-4。節點 C 連線至法定裝置 4。節點 D 連線至法定裝置 4。總票數 = 10。法定要求票數 = 6。

不正確的法定數目配置

本節提供了應避免的法定數目配置之範例。如果要瞭解建議使用的法定數目配置之範例,請參閱建議使用的法定數目配置

圖例:配置 1:NodeA-B. A/B connect to -> QD1/2. Config2:NodeA-D. A/B -> QD1/2. Config3:NodeA-C. A/B-> QD1/2 & C -> QD2.

資料服務

專有名詞資料服務說明的是已配置為在叢集上而不是在單一伺服器上執行的應用程式,例如 Sun Java System Web Server 或 Oracle。資料服務由一個應用程式、專用的 Sun Cluster 配置檔案以及控制應用程式以下動作的 Sun Cluster 管理方法組成。

如需有關資料服務類型的資訊,請參閱「Sun Cluster 簡介 (適用於 Solaris 作業系統)」中的「資料服務」

圖 3–4 將在單一應用程式伺服器 (單一伺服器模型) 上執行的應用程式與在叢集 (叢集伺服器模型) 上執行的同一應用程式進行比較。這兩種配置之間的唯一差異就是叢集應用程式會執行得更快並且可用性更高。

圖 3–4 標準主從式配置與叢集主從式配置

圖例:下面的上下文說明圖形。

在單一伺服器模型中,您將應用程式配置為透過特定的公用網路介面 (主機名稱) 存取伺服器。主機名稱與實體伺服器有關。

在叢集伺服器模型中,公用網路介面為邏輯主機名稱共用位址網路資源一詞用於指代邏輯主機名稱和共用位址。

某些資料服務要求您將邏輯主機名稱或共用位址指定為網路介面。邏輯主機名稱和共用位址不能互換。其他資料服務則容許您指定邏輯主機名稱或共用位址。請參考每個資料服務的安裝和配置,以取得有關必須指定的介面類型的詳細資訊。

網路資源不與特定的實體伺服器相關。網路資源可以在實體伺服器之間遷移。

網路資源與一個節點 (主要節點) 初始相關。如果主要節點發生故障,則網路資源和應用程式資源將容錯移轉至其他叢集節點 (次要節點)。當網路資源發生故障轉移時,只要稍有延誤,應用程式資源就繼續在次要節點上執行。

圖 3–5 將單一伺服器模型與叢集伺服器模型進行比較。請注意,在叢集伺服器模型中,網路資源 (在此例中為邏輯主機名稱) 可於兩或多個叢集節點間移動。應用程式被配置為使用此邏輯主機名稱,而非與特定伺服器相關的主機名稱。

圖 3–5 固定主機名稱與邏輯主機名稱

圖例:前面的文字內容說明該圖形。

共用位址也與一個節點初始相關。此節點稱為全域介面節點。共用位址 (稱為全域介面) 作為叢集的單一網路介面。

邏輯主機名稱模型和可延伸服務模型之間的差異是︰在後者中,每個節點也都在其迴路介面上主動配置了共用位址。此配置使資料服務的多個實例可以同時在多個節點上處於使用中的狀態。「可延伸的服務」一詞表示,您可藉由新增附加的叢集節點來為應用程式提供更多 CPU 能力,其效能也隨之延伸。

如果全域介面節點發生故障,則可以在也在執行該應用程式實例的其他節點上啟動共用位址 (從而使此節點成為新的全域介面節點)。但共用位址也可能發生故障轉移而移轉至另一個先前未執行應用程式的節點。

圖 3–6 將單一伺服器配置與叢集可延伸服務配置進行比較。請注意,在可延伸服務配置中,共用位址存在於所有節點上。與邏輯主機名稱用於移轉資料服務方式類似的是,應用程式被配置為使用此共用位址而不是與特定伺服器相關的主機名稱。

圖 3–6 固定主機名稱與共用位址

圖例:前面的文字內容說明該圖形。

資料服務方法

Sun Cluster 軟體提供了一組服務管理方法。這些方法在 資源群組管理員 (RGM) 的控制下執行,它會使用這些方法啟動、停止和監視叢集節點上的應用程式。這些方法配合叢集框架軟體和多重主機裝置,可讓應用程式成為防故障備用或可延伸的資料服務。

RGM 也會管理叢集內的資源,包括應用程式的實例和網路資源 (邏輯主機名稱和共用位址)。

除 Sun Cluster 軟體提供的方法之外,Sun Cluster 系統也提供了 API 和數種資料服務開發工具。這些工具使應用程式開發人員可以開發所需的資料服務方法,以使用 Sun Cluster 軟體使其他應用程式作為高度可用的資料服務執行。

故障轉移資料服務

如果正在執行資料服務的節點 (主要節點) 故障,該服務會移轉至其他運作中的節點而不需要使用者介入。容錯移轉服務使用容錯移轉資源群組,它是應用程式實例和網路資源 (邏輯主機名稱) 的容器。邏輯主機名稱是 IP 位址,其可以在某個節點上配置,稍後在原始節點上自動配置下線並在其他節點上配置。

對於故障轉移資料服務,應用程式實例僅在單一節點上執行。如果故障監視器偵測到錯誤,則會嘗試在同一節點上重新啟動該實例,或在其他節點上啟動該實例 (容錯移轉)。結果取決於資料服務是如何配置的。

可延伸的資料服務

可延伸的資料服務具有在多重節點上的使用中實例之潛力。可延伸服務使用以下兩個資源群組︰

可延伸資源群組可以在多重節點上成為線上,所以即可一次執行多個服務實例。放置共用位址的故障轉移資源群組一次只在一個節點上啟動成為線上。宿主可延伸服務的所有節點均使用相同的共用位址宿主服務。

服務請求透過單一網路介面 (全域介面) 進入叢集。會根據負載平衡策略設定的數個預先定義的演算法之一將這些請求將分配到各節點。叢集可以使用平衡資料流量策略,來均衡各個節點之間的服務負載。存放其他共用位址的不同節點上可以存在多個全域介面。

對於可延伸的服務,應用程式實例可同時在數個節點上執行。如果放置整體介面的節點故障,該整體介面會轉移至另一個節點。如果正在執行的應用程式實例發生故障,則該實例將嘗試在同一節點上重新啟動。

如果無法在同一節點上重新啟動應用程式實例,就會配置另一個未使用的節點來執行此服務,該服務便轉移至未使用的節點。否則,該服務將繼續在剩餘的節點上執行,可能導致服務流量降低。


備註 –

每個應用程式實例的 TCP 狀態是保存在具有該實例的節點上,而不是在整體介面節點上。因此,整體介面節點的故障並不會影響連接。


圖 3–7 顯示了容錯移轉和可延伸資源群組的範例,以及兩者之間存在的可延伸服務的相依性。此範例顯示三個資源群組。容錯移轉資源群組包含高度可用的 DNS 之應用程式資源,以及高度可用的 DNS 和高度可用的 Apache Web Server (僅可在基於 SPARC 的叢集中使用) 所使用的網路資源。可延伸資源群組僅包含 Apache Web Server 的應用程式實例。請注意,可延伸和容錯移轉資源群組 (實線) 之間存在資源群組相依性。此外,所有 Apache 應用程式資源都依賴網路資源 schost-2,該資源為共用位址 (虛線)。

圖 3–7 SPARC: 故障轉移與可延伸的資源群組範例

圖例:前面的文字內容說明該圖形。

平衡資料流量策略

平衡資料流量可以在回應時間及產量上增進可延伸服務的效能。可延伸資料服務有兩類。

Pure 服務可以使其任何實例回應用戶端請求。Sticky 服務可以使一個用戶端向同一實例傳送請求。那些要求不會重新導向至其他實例。

Pure 服務使用加權平衡資料流量策略。在此平衡資料流量策略下,依預設用戶端要求會平均地分配給叢集中的伺服器實例。例如,在一個三節點叢集中,假定每個節點的權重為 1。則每個節點將代表服務處理所有來自用戶端的請求的 1/3。管理員可以透過 scrgadm(1M) 指令介面或 SunPlex Manager GUI 隨時變更權重。

Sticky 服務具有兩種類型︰ordinary stickywildcard sticky。Sticky 服務使在多個 TCP 連線上的並行應用程式級階段作業可以用 in-state 記憶體 (應用程式階段作業狀態)。

Ordinary sticky 服務使用戶端可以共用多個並行 TCP 連線之間的狀態。稱該用戶端對偵聽單一連接埠的伺服器實例「sticky」。只要實例維持啟動與可存取的狀態,且此服務處於線上狀態時負載平衡策略為變更,便可保證用戶端的所有請求均傳送至同一伺服器實例。

例如,用戶端上的 Web 瀏覽器使用三個不同的 TCP 連線透過連接埠 80 連線至的共用 IP 位址。然而,連線會在服務中交換它們之間快取的階段作業資訊。

Sticky 策略的一般化會延伸至在背景中並且在同一實例上交換階段作業資訊的多個可延伸服務。當這些服務在背景中並且在同一實例上交換階段作業資訊時,則稱該用戶端對同一節點上偵聽不同連接埠的多個伺服器實例「sticky」。

例如,電子商務網站上的某位顧客透過在連接埠 80 上使用 HTTP 將購物車裝滿商品。然後該顧客切換至連接埠 443 上的 SSL 來傳送安全資料以使用信用卡支付購物車內的商品。

Wildcard sticky 服務使用動態指定的連接埠號碼,但仍然希望用戶端請求傳送到同一節點。用戶端在具有同一 IP 位址的連接埠上「sticky wildcard」。

這種策略的典型範例是被動模式 FTP。例如,某用戶端連線至連接埠 21 上的 FTP 伺服器。伺服器則會指示該用戶端連線回動態連接埠範圍內的偵聽程式埠伺服器。此 IP 位址的所有請求均轉發至同一節點伺服器透過控制資訊通知用戶端。

依預設,對於其中的每個 sticky 策略,加權式負載平衡策略均有效。因而,會將用戶端的初始請求導向至負載平衡器指定的實例。用戶端為實例正在其上執行的節點建立關聯之後,會有條件地將以後的請求導向至該實例。節點必須可以存取且負載平衡策略必須未變更。

有關特定的負載平衡策略的其他詳細資訊如下。

故障回復設定

資源群組因故障轉移,從某個節點移轉至另一個節點。發生容錯移轉時,原來的次要節點將成為新的主要節點。故障回復設定可以指定當原來的主要節點回到線上後將發生的動作。此選項是要使原來的主要節點再次成為主要節點 (故障回復) 或維持目前的主要節點。您可以使用 failback 資源群組特性設定指定要使用的選項。

如果原來存放資源群組的節點發生故障並反復重新啟動,則設定故障回復會導致資源群組的可用性降低。

資料服務錯誤監視器

每個 Sun Cluster 資料服務均提供一個故障監視器,可定期探測資料服務以確定其運作狀態。故障監視器驗證應用程式常駐程式是否在執行,以及用戶端是否正在接受服務。根據探測傳回的資訊,可以啟動預先定義的動作,如重新啟動常駐程式或進行容錯移轉。

項o新的資料服務

Sun 提供配置檔案與管理方法範本,讓您得以使各種應用式在叢集中以故障轉移或可延伸的服務來運作。如果 Sun 未提供您要作為容錯移轉或可延伸服務執行的應用程式,您還可使用替代方案。使用 Sun Cluster API 或 DSET API 將應用程式配置為作為容錯移轉或可延伸服務執行。然而,並非所有應用程式都可以成為可延伸服務。

可延伸服務的特徵

一組可以確定應用程式是否可以成為可延伸服務的條件。若要確定應用程式是否可以成為可延伸服務,請參閱「Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)」中的「分析應用程式的適當性」。以下對這組條件進行了總結。

資料服務 API 與資料服務檔案庫 API

Sun Cluster 系統提供以下項目,以使應用程式具有高度可用性︰

「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」說明如何安裝和配置 Sun Cluster 系統隨附的資料服務。「Sun Cluster 3.1 9/04 Software Collection for Solaris OS (SPARC Platform Edition)」說明如何在 Sun Cluster 框架下將使其他應用程式具有高度可用性。

Sun Cluster API 使應用程式開發人員能夠開發可以啟動和停止資料服務實例的故障監視器和程式檔。使用這些工具,應用程式可以實作實為容錯移轉或可延伸服務。Sun Cluster 系統提供「通用」資料服務。使用此通用資料服務可以快速產生應用程式所需的啟動和停止方法,並可以該資料服務實作為容錯移轉或可延伸服務。

使用資料服務通訊的叢集交互連接

叢集在節點之間必須具備多網路連接,以形成叢集交互連接。Sun Cluster 軟體使用多重互連以達到以下目標︰

對於內部流量 (例如檔案系統資料或延伸服務資料),訊息以 round-robin 方式透過所有的可用互連平行儲存。叢集交互連接也可以用於應用程式,以便在節點之間建立高可用性通訊。例如,分散式應用程式可能會有元件在多個需要通訊的節點上執行。如果使用叢集交互連接而不是公用傳輸,可以防制個別連結的故障。

要在節點之間使用叢集互連進行通訊,應用程式必須使用在 Sun Cluster 安裝過程中配置的私有主機名稱。例如,如果 node 1 的私有主機名稱是 clusternode1-priv,則使用該名稱透過叢集互連與 node 1 通訊。使用此名稱開啟的 TCP 通訊端透過叢集互連佈置路由,並且如果網路發生故障還可以重新佈置路由而不需設定。

因為您可以在 Sun Cluster 安裝過程中配置私有主機名稱,所以叢集互連會使用您在安裝時選擇的任何名稱。若要確定實際名稱,請使用 scha_cluster_get(3HA) 指令和 scha_privatelink_hostname_node 引數。

應用程式通訊和內部叢集通訊均透過所有互連平行儲存。因為應用程式與內部叢集流量共用叢集互連,所以應用程式可用的頻寬取決於其他叢集流量使用的頻寬。如果發生故障,內部流量和應用程式流量將透過所有可用的互連平行儲存。

還會為每個節點指定一個固定的 pernode 位址。此 pernode 位址綁定在 clprivnet 驅動程式上。該 IP 位址對映至以下節點的私有主機名稱︰clusternode1-priv。如需有關 Sun Cluster 私有網路驅動程式的資訊,請參閱 clprivnet(7) 線上手冊。

如果應用程式要求在各方面均一致的 IP 位址,則請在用戶端和伺服器上均進行配置,以將應用程式連結至 pernode 位址。則所有顯示的連線便均來自並傳回 pernode 位址。

資源、資源群組與資源類型

資料服務利用了多種類型的資源:應用程式 (例如 Sun Java System Web Server 或 Apache Web Server) 使用應用程式所依賴的網路位址 (邏輯主機名稱和共用位址)。應用程式和網路資源形成受 RGM 管理的基本單位。

資料服務式資源類型。例如,Sun Cluster HA for Oracle 屬於資源類型 SUNW.oracle-server,而 Sun Cluster HA for Apache 屬於資源類型 SUNW.apache

資源是在整個叢集中定義的資源類型的個體化。定義了數種資源類型。

網路資源屬於 SUNW.LogicalHostnameSUNW.SharedAddress 資源類型。這兩種資源類型由 Sun Cluster 軟體預先註冊。

HAStorageHAStoragePlus 資源類型用於將資源和其所依賴的磁碟裝置群組的啟動同步化。這些資源類型可以確保在資料服務啟動前,叢集檔案系統的掛載點、全域裝置和裝置群組名稱的路徑均為可用。如需更多資訊,請參閱「Data Services Installation and Configuration Guide」中的「Synchronizing the Startups Between Resource Groups and Disk Device Groups」。在 Sun Cluster 3.0 5/02 中,HAStoragePlus 資源類型已經可用,並增加了其他功能,從而使本機檔案系統具有高度可用性。如需有關此功能的更多資訊,請參閱HAStoragePlus 資源類型

RGM 管理的資源被置入到稱為資源群組的群組中,以便可以將其作為一個整體來管理。如果在資源群組上啟動了故障轉移或切換保護移轉,則資源群組會被當作一個單位來遷移。


備註 –

當您使含有應用程式資源的資源群組線上運作時,則此應用程式便會啟動。資料服務啟動方法等待應用程式進入執行狀態後才會成功結束。判斷應用程式何時啟動與執行的方式,與資料服務故障監視器判斷資料服務是否仍在服務用戶端的方式相同。請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」,以取得有關此程序的更多資訊。


資源群組管理員 (RGM)

RGM 可控制資料服務 (應用程式) 作為資源 (由資源類型實作來管理)。這些實施由 Sun 提供,或由開發人員以一般資料服務範本、資料服務開發檔案庫 API (DSDL API) 或資源管理 API (RMAPI) 所建立。叢集管理員建立並管理稱為資源群組的容器中的資源。RGM 停止和啟動所選取節點上的資源群組,以回應叢集成員變更。

RGM 作用於資源資源群組 RGM 動作會使致資源和資源群組在上線和離線狀態之間切換。資源及資源群組狀態與設定值一節中提供了有關可以適用於資源和資源群組的狀態和設定的完整說明。

請參閱資料服務專案配置,以取得有關如何在 RGM 控制下啟動 Solaris 專案的資訊。

資源及資源群組狀態與設定值

管理者將靜態設定值套用到資源與資源群組中。這些設定值只可經由管理動作來變更。RGM 將資源群組在動態「狀態」之間切換。這些設定值與狀態的說明列於下述清單中。

資源和資源群組特性

您可以為 Sun Cluster 資料服務配置資源和資源群組的特性值。標準特性常見於所有資料服務中。延伸特性則特定於個別的資料服務。部分標準和延伸特性是以預設值配置的,所以您不需要修改它們。其他特性則需要在建立和配置資源時加以設定。各資料服務的說明文件會指定可設定哪些資源特性,及設定的方式。

標準特性是用來配置通常與任何特定資料服務無關的資源和資源群組特性。如果要瞭解標準特性集,請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的附錄 A「Standard Properties」

RGM 延伸特性提供了諸如應用程式二進位檔案及配置檔案之位置的資訊。您要依照資料服務的配置方式來修改延伸特性。在資料服務的個別指南中描述了延伸特性集。

資料服務專案配置

當使用 RGM 使資料服務上線運作後,可以將其配置為以 Solaris 專案名稱啟動。此配置可將 RGM 管理的資源或資源群組與 Solaris 專案 ID 關聯起來。從資源或資源群組至專案 ID 的對映使您可以使用 Solaris 作業系統中提供複雜的控制項,以管理叢集內的工作負荷量和消耗量。


備註 –

僅當您所執行的 Sun Cluster 軟體當前的發行版本不低於 Solaris 9 時才可以執行此配置。


在 Sun Cluster 環境中使用 Solaris 管理功能,可以保證在與其他應用程式共用節點時,最重要的應用程式獲得優先權。如果您已經合併了服務或應用程式已經進行了故障轉移,則應用程式可能會共用一個節點。使用此處說明的管理功能可以防止低優先權的應用程式過度消耗系統資源 (如 CPU 時間),以提高重要應用程式的可用性。


備註 –

此功能的 Solaris 文件將 CPU 時間、程序、作業和類似元件稱為「資源」。同時,Sun Cluster 文件將受 RGM 控制的實體稱為「資源」。在下一節中,專有名詞「資源」是指受 RGM 控制的 Sun Cluster 實體。在該節中,專有名詞「供應」是指 CPU 時間、程序和作業。


本節提供配置資料服務以在指定的 Solaris 9 project(4) 中啟動程序的概念說明。本節還說明數種容錯移轉分析藍本和有關打算使用 Solaris 提供的管理功能的建議。

如需有關該管理功能詳細的概念和程序文件,請參閱「System Administration Guide: Network Services」中的第 1 章「Network Service (Overview)」

當配置資源和資源群組以在叢集中使用 Solaris 管理功能,請使用以下高階程序︰

  1. 將應用程式配置為資源的一部分。

  2. 將資源配置為資源群組的一部分。

  3. 啟用資源群組中的資源。

  4. 使資源群組受管理。

  5. 為資源群組建立 Solaris 專案。

  6. 配置標準特性,以將資源群組名稱與在步驟 5 中建立的專案名稱相關聯。

  7. 讓資源群組上線運作。

若要配置標準 Resource_project_nameRG_project_name 特性以將 Solaris 專案 ID 與資源或資源群組相關聯,請使用 -y 選項和 scrgadm(1M) 指令。將特性值設定為資源或資源群組。請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的附錄 A「Standard Properties」,以瞭解特性定義。請參閱 r_properties(5)rg_properties(5),以取得特性說明。

指定的名稱必須在專案資料庫 (/etc/project) 中,並且必須將超級使用者配置為已命名的專案之成員。請參閱「System Administration Guide: Solaris Containers-Resource Management and Solaris Zones」中的第 2 章「Projects and Tasks (Overview)」,以取得有關專案名稱資料庫的概念資訊。請參閱 project(4),以取得專案檔案語法的說明。

若 RGM 使資源或資源群組線上運作,它便啟動了專案名稱下的相關程序。


備註 –

使用者可以隨時將資源或資源群組與專案關聯起來。然而,直到資源或資源群組離線並使用 RGM 重新使其線上運作之後,新的專案名稱才會生效。


啟動專案名稱下的資源與資源群組可讓您配置下列功能,以便在整個叢集內管理系統供給品。

確定專案配置的需求

在您配置資料服務以在 Sun Cluster 環境中使用 Solaris 提供的控制項之前,您必須決定如何在切換移轉或容錯移轉間控制和追蹤資源。在配置新的專案之前識別叢集中的相依性。例如,資源與資源群組依賴磁碟裝置群組。

使用由 scrgadm(1M) 配置的 nodelistfailbackmaximum_primariesdesired_primaries 資源群組特性識別資源群組之節點清單特性。

使用由 scrgadm(1M)scsetup(1M) 配置的 preferenced 特性和 failback 特性確定磁碟裝置群組節點清單優先權。

如果您以相同方式配置所有的叢集節點,將在主要節點與次要節點上以相同方式執行使用限制。對於所有節點上配置檔案中所有的應用程式,專案的配置參數無需相同。至少該應用程式所有潛在主要節點上的專案資料庫必須可以存取所有與應用程式相關聯的專案。假定應用程式 1 由 phys-schost-1 控制,但會可能切換移轉至或容錯移轉至 phys-schost-2phys-schost-3。與應用程式 1 相關聯的專案必須可以在所有三個節點 (phys-schost-1phys-schost-2phys-schost-3) 上進行存取。


備註 –

專案資料庫資訊可以是本機 /etc/project 資料庫檔案或者可以儲存在 NIS 對映或 LDAP 目錄服務中。


Solaris 作業系統可以靈活配置使用參數,並且 Sun Cluster 強制的限制很少。配置選項取決於網站的需要。在配置系統之前,請考慮下列章節中的一般準則。

設定每個程序的虛擬記憶體限制

請將 process.max-address-space 控制設定為以每個程序為基礎來限制虛擬記憶體。請參閱 rctladm(1M),以取得有關設定 process.max-address-space 值的詳細資訊。

當您使用 Sun Cluster 軟體的管理控制項時,適當地配置記憶體限制以防止不必要的應用程式容錯移轉和應用程式的「交替」效果。一般情況,請遵守以下規範。

故障轉移方案

您可以配置管理參數,以便專案配置 (/etc/project) 中的分配可在一般的叢集作業中以及在切換保護移轉或故障轉移情形下運作。

下列章節為方案範例。

在 Sun Cluster 環境中,將應用程式配置為資源的一部分然後將資源配置為資源群組 (RG) 的一部分。如果發生故障,則資源群組連同與其相關聯的應用程式都將容錯移轉至其他節點。在下列範例中不明確顯示資源。假定每個資源僅有一個應用程式。


備註 –

故障轉移以 RGM 中設定的個人喜好節點清單順序發生。


下列範例具有這些限制︰

雖然指定的份額數相同,但分配給每個應用程式的 CPU 時間百分比將在故障轉移後發生變更。此百分比取決於節點上執行的應用程式數目,以及指定給每個使用中應用程式的份額數。

在這些情形下,假定下列配置。

具有兩個應用程式的兩個節點叢集

您可以在一個雙節點叢集上配置兩個應用程式,以保證每個實體主機 (phys-schost-1phys-schost-2) 作為一個應用程式的預設主要節點。每個實體主機可作為另一個實體主機的次要節點。與應用程式 1 和應用程式 2 相關聯的所有專案必須出現在兩個節點上的專案資料庫檔案中。當叢集正常執行時,每個應用程式將在其預設主控者上執行,在此位置上將藉由管理設備為每個應用程式分配所有 CPU 時間。

發生故障轉移或切換保護移轉之後,兩個應用程式將在單一節點上執行,在該節點上將按照配置檔案中的指定為它們分配份額。例如,/etc/project 檔案中的此項目指定為應用程式 1 配置 4 個份額而為應用程式 2 配置 1 個份額。

Prj_1:100:project for App-1:root::project.cpu-shares=(privileged,4,none)
Prj_2:101:project for App-2:root::project.cpu-shares=(privileged,1,none)

下圖展示了此配置的一般作業與故障轉移作業。指定的份額數沒有變更。然而,每個應用程式的可用 CPU 時間比例會變更。該比例取決於為每個需要 CPU 時間的程序指定的份額數。

圖例:前面的文字內容說明該圖形。

具有三個應用程式的兩個節點叢集

在一個包含三個應用程式的雙節點叢集上,您可以將一個實體主機配置為 (phys-schost-1) 一個應用程式的預設主要節點。您可以將第二個實體主機配置為 (phys-schost-2) 剩餘兩個應用程式的預設主要節點。假定每個節點上都有以下範例專案資料庫檔案。當發生故障轉移或切換保護移轉時,專案資料庫檔案不會變更。

Prj_1:103:project for App-1:root::project.cpu-shares=(privileged,5,none)
Prj_2:104:project for App_2:root::project.cpu-shares=(privileged,3,none) 
Prj_3:105:project for App_3:root::project.cpu-shares=(privileged,2,none)  

當叢集正常執行時,將在應用程式 1 的預設主控者 phys-schost-1 上為其分配 5 個份額。此數相當於 CPU 時間的 100%,因為它是該節點上需要 CPU 時間的唯一應用程式。在應用程式 2 和 3 的預設主節點 phys-schost-2 上,分別為應用程式 2 和 3 配置 3 個份額和 2 個份額。在一般作業期間,應用程式 2 將收到 60% 的 CPU 時間,應用程式 3 將收到 40% 的 CPU 時間。

如果發生容錯移轉或切換移轉並且應用程式 1 切換移轉至 phys-schost-2,則三個應用程式的份額數保持不變。不過,將依據專案資料庫檔案重新分配 CPU 資源的百分比。

下圖展示了此配置的一般作業與故障轉移作業。

圖例:前面的文字內容說明該圖形。

僅資源群組的故障轉移

在多個資源群組使用同一個預設主控者的配置中,資源群組 (及其關聯應用程式) 可以發生故障轉移或切換至次要節點。同時在叢集內執行預設主控者。


備註 –

在故障轉移期間,將按照次要節點上配置檔案中的指定,為發生故障轉移的應用程式分配資源。在此範例中,主要節點和次要節點上的專案資料庫檔案具有相同的配置。


例如,此範例配置檔案指定為應用程式 1 分配 1 個份額,為應用程式 2 分配 2 個份額以及為應用程式 3 分配 2 個份額。

Prj_1:106:project for App_1:root::project.cpu-shares=(privileged,1,none)
Prj_2:107:project for App_2:root::project.cpu-shares=(privileged,2,none)
Prj_3:108:project for App_3:root::project.cpu-shares=(privileged,2,none)
 

下圖說明了此配置的正常作業和容錯移轉作業,其中包含應用程式 2 的 RG-2 容錯移轉至 phys-schost-2。請注意指定的份額數不會變更。然而,每個應用程式的可用 CPU 時間會變更,這取決於為每個需要 CPU 時間的應用程式指定的份額數。

圖例:前面的文字內容說明該圖形。

公用網路配接卡和 Internet Protocol (IP) 網路多重路徑

用戶端透過公用網路來將要求送至叢集。每個叢集節點均透過一對公用網路配接卡連接至至少一個公用網路。

Sun Cluster 上的 Solaris 網際網路通訊協定 (IP) 網路多重路徑軟體提供一種用於監視公用網路配接卡,並在偵測到故障時將 IP 位址從一個配接卡容錯移轉至其他配接卡的基本機制。每個叢集節點均有自己的 Internet Protocol (IP) 網路多重路徑 配置,該配置可能與其他叢集節點上的配置不同。

公用網路配接卡已經置入 IP 多重路徑群組 (多重路徑群組) 中。每個多重路徑群組均有一個或多個公用網路配接卡。多重路徑群組中的每個配接卡均可以處於使用中狀態。或者,您可以配置待機介面,該介面處於非使用中狀態,除非發生容錯移轉。

in.mpathd 多重路徑常駐程式使用測試 IP 位址來偵測故障並進行修復。如果透過多重路徑常駐程式在其中一個配接卡上偵測到錯誤,將發生故障轉移。所有網路存取將從發生錯誤的配接卡容錯移轉至多重路徑群組中的其他可以正常運作的配接卡。因此,常駐程式可以維護節點的公用網路可連結性。如果您配置了待機介面,則常駐程式會選擇該待機介面。否則,常駐程式會選擇 IP 位址數最小的介面。因為發生的是配接卡層級的容錯移轉,更高層級的連線 (如 TCP) 未受影響,只是在容錯移轉過程中出現短暫的暫態延遲。IP 位址的容錯移轉成功完成後,將會發送 ARP 廣播。因此,常駐程式可以維護遠端用戶端的連結。


備註 –

由於 TCP 的擁塞回復特性,TCP 端點會在成功容錯移轉後進一步延遲。某些區段可能會在容錯移轉過程中遺失,從而啟動 TCP 中的擁塞控制機制。


多重路徑群組可提供邏輯主機名稱與共用位址資源的建置區塊。您也可以另外建立邏輯主機名稱與共用位址資源的多重路徑群組,來監視叢集節點的公用網路連接性。節點上的相同多重路徑群組可以擁有任意數目的邏輯主機名稱或共用位址資源。如需有關邏輯主機名稱和共用位址資源的更多資訊,請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」


備註 –

Internet Protocol (IP) 網路多重路徑 機制的設計是為了偵測和遮罩配接卡故障。該設計並不是供管理員用於使用 ifconfig(1M) 以移除一個邏輯 (或共用) IP 位址,以進行故障回復。Sun Cluster 軟體將邏輯和共用 IP 位址視為由 RGM 管理的資源。管理員增加或移除 IP 位址的正確方法是使用 scrgadm(1M) 修改包含資源的資源群組。


如需有關 Solaris 實作 IP 網路多重路徑的更多資訊,請參閱叢集上所安裝的 Solaris 作業系統之相應文件。

作業系統發行版本 

操作說明 

Solaris 8 作業系統 

「IP Network Multipathing Administration Guide」

Solaris 9 作業系統 

「IP Network Multipathing Administration Guide」中的第 1 章「IP Network Multipathing (Overview)」

Solaris 10 作業系統 

「System Administration Guide: IP Services」中的第 VI部分「IPMP」

SPARC: 動態重新配置支援

Sun Cluster 3.1 8/05 對動態重新配置 (DR) 軟體功能的支援正處於不斷取得進展的開發階段。本節說明了關於 DR 功能之 Sun Cluster 3.1 8/05 支援的概念和注意事項。

文件中說明的 Solaris?DR 功能的所有需求、程序和限制也適用於 Sun Cluster DR 支援 (作業環境的靜態作業除外)。因此,在使用 Sun Cluster 軟體的 DR 功能之前,請先閱讀 Solaris DR 功能的文件。您應該仔細閱讀在 DR 拆離作業過程中影響非網路 IO 裝置的問題。

Sun Enterprise 10000 Dynamic Reconfiguration User Guide」和「Sun Enterprise 10000 Dynamic Reconfiguration Reference Manual」(在Solaris 8 on Sun HardwareSolaris 9 on Sun Hardware集合中) 均可從 http://docs.sun.com 進行下載。

SPARC: 動態重新配置一般說明

DR 功能可以在正在執行系統中進行作業 (例如移除系統硬體)。DR 程序用於確保連續的系統作業,無需停止系統或中斷叢集可用性。

DR 在板層次上作業。因此,DR 作業會影響板上所有的元件。每個板可以包含多個元件,包括 CPU、記憶體以及磁碟裝置、磁帶機與網路連接的周邊介面。

移除包含使用中的元件的板會導致系統錯誤。在移除板之前,DR 子系統可查詢其他子系統 (如 Sun Cluster),以確定是否正在使用板上的元件。如果 DR 子系統發現一個板正在使用中,將不執行 DR 移除板的作業。因此,執行 DR 移除板作業一定是安全的,因為 DR 子系統會拒絕在包含使用中的元件的板上執行的作業。

DR 增加板的作業也一定是安全的。新加入板上的 CPU 與記憶體會由系統自動納入服務中。然而,系統管理員必須手動將叢集配置為主動使用新增板上的元件。


備註 –

DR 子系統具有數個層次。如果較低層次報告一個錯誤,則較高層次也將報告一個錯誤。然而,較低層級報告特定錯誤時,較高層級會報告 Unknown error。您可以安全地忽略此錯誤。


下列章節說明了用於不同裝置類型的 DR 注意事項。

SPARC: CPU 裝置的 DR 叢集注意事項

Sun Cluster 軟體不會由於 CPU 裝置而拒絕 DR 移除板作業。

若接著執行 DR 加入板作業,加入板上的 CPU 裝置將自動納入系統作業中。

SPARC: 記憶體的 DR 叢集注意事項

根據 DR 的用途,請注意記憶體的兩種類型。

這兩種類型僅在用法上不同,其實際硬體相同。核心記憶體機架是 Solaris 作業體統所使用的記憶體。Sun Cluster 軟體不支援在包含核心記憶體機架的板上執行移除板作業並會拒絕任何此類作業。對其他非核心記憶體機架執行 DR 移除板作業時,Sun Cluster 軟體不會拒絕此作業。若接著執行關係到記憶體的 DR 加入板作業,加入板上的記憶體將自動納入系統作業中。

SPARC: 磁碟和磁帶裝置的 DR 叢集注意事項

Sun Cluster 會拒絕主要節點之使用中磁碟機上的 DR 移除板作業。DR 移除板作業可以在主要節點中的非使用中的磁碟機上和次要節點中的任何磁碟機上執行。DR 作業完成後,叢集資料存取會像之前一樣繼續。


備註 –

Sun Cluster 會拒絕影響法定裝置可用性的 DR 作業,如需有關法定裝置及在其上執行 DR 作業的程序之注意事項,請參閱SPARC: 法定裝置的 DR 叢集注意事項


請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的「動態重新配置法定裝置」,以取得有關如何執行這些動作的詳細說明。

SPARC: 法定裝置的 DR 叢集注意事項

如果對含有配置為法定裝置的介面之板執行 DR 移除板作業,則 Sun Cluster 軟體拒絕此作業。Sun Cluster 軟體還會識別可能受到此作業影響的法定裝置。您必須先將此裝置作為法定裝置停用,然後才可以執行 DR 移除板作業。

請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的第 5 章「管理法定數目」,以取得有關如何管理法定數目的詳細說明。

SPARC: 叢集互連介面的 DR 叢集注意事項

如果對含有使用中的叢集互連介面執行 DR 移除板作業,則 Sun Cluster 軟體會拒絕此作業。Sun Cluster 軟體還會識別可能受到此作業影響的介面。您必須使用 Sun Cluster 管理工具停用使用中的介面 DR 作業才能成功。


注意 – 注意 –

Sun Cluster 軟體要求每個叢集節點至少具有一條可以正常運作的到其他各叢集節點的路徑。請勿停用私有交互連接介面支援任何叢集節點的最後路徑。


請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的「管理叢集交互連接」,以取得有關如何執行這些動作的詳細說明。

SPARC: 公用網路介面的 DR 叢集注意事項

如果對含有使用中的公用網路介面的板執行 DR 移除板作業,則 Sun Cluster 軟體會拒絕此作業。Sun Cluster 軟體還會識別可能受到此作業影響的介面。在您移除含有使用中的網路介面的主機板之前,請使用 if_mpadm(1M) 指令以將此介面上所有的流量切換移轉到多重路徑群組中的其他可以正常運作的介面上。


注意 – 注意 –

如果您在停用的網路配接卡上執行 DR 移除作業時其餘網路配接卡發生故障,則可用性會受到影響。其餘的配接卡沒有空間可以為 DR 作業的持續時間進行故障轉移。


請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的「管理公用網路」,以取得有關如何在公用網路介面上執行 DR 移除作業的詳細資訊。