Windows 系統管理

Windows Server 2008 Enterprise 容錯移轉叢集簡介

Chuck Timon

 

綜覽:

  • 容錯移轉叢集管理嵌入式管理單元
  • 新功能和增強功能
  • 備份及還原功能
  • 從 Windows Server 2003 移轉

目錄

全新管理介面
改良的設定程序
內嵌驗證程序
全新仲裁模型
安全性增強功能
擴充網路功能
提升與存放裝置互動時的可靠性
內建修復程序
全新備份及還原功能
自 Windows Server 2003 伺服器叢集移轉

自叢集首度在 Windows NT 4.0 企業版問世以來,使用者就不斷抱怨設定太難,要維護更是難上加難。要管理叢集,

系統管理員不光得要對叢集本身有所了解 — 他們還必須對儲存技術,還有叢集服務會如何與各種儲存解決方案互動等有深切的認識。許多公司都難尋具備完整技能讓高可用性解決方案正常執行,及維護它的千里馬。

叢集多年來不斷改善,但是隨著 Microsoft 開始開發 Windows Server® 2008,發現它仍有很多地方需要改進。有鑑於此,工作小組企圖以簡單為主要目標來重新設計叢集。在 Windows Server 2008 中,Microsoft® Cluster Services (MSCS) 經過徹底改頭換面,而現在改稱為容錯移轉叢集。

當然這不代表簡單是全新的容錯移轉叢集實作所帶來的唯一好處。這幾年來,因為公司對叢集解決方案的冀望提供了寶貴的意見,使得 Microsoft 學到了不少教訓。全新的容錯移轉叢集功能解決了許多使用者報告的首要問題,也參入一些令人雀躍的新功能,使它成為非常吸引人的產品。所以在本文中,我想要介紹您可以在 Windows Server 2008 容錯移轉叢集裡面找到的一些新酷功能。

全新管理介面

安裝容錯移轉叢集之後,便可以在 [系統管理工具] 中,或是透過執行 Cluadmin.msc 來存取容錯移轉叢集管理介面。[容錯移轉叢集管理] 嵌入式管理單元跟 Windows Server 2008 中其他的管理介面一樣,都是 Microsoft Management Console (MMC) 3.0。對於叢集老手來說,第一次開啟 [容錯移轉叢集管理] 嵌入式管理單元感覺可能有點像被放逐異國,而且手邊連地圖也沒有。

新介面分成三個不同的窗格,如 [圖 1] 所示。左窗格列出貴公司內所有的 Windows Server 2008 容錯移轉叢集。中間窗格提供您在左窗格內選定之任何一部分的叢集設定的詳細資訊,而右窗格則顯示您可以執行的動作。

fig01.gif

[圖 1] [容錯移轉叢集管理] 嵌入式管理單元 (按一下以放大影像)

假設您在左窗格選定 [存放裝置]。中間窗格接著會詳細列出叢集內提供了哪個存放裝置,以及目前有哪個存放裝置可用 (如果有的話)。如您在 [圖 1] 所見,該叢集包含了一個支援見證磁碟的存放裝置,針對檔案伺服器提供的存放裝置,以及一些可用的存放裝置。右窗格列出相關的動作,例如新增更多存放裝置。請注意,[容錯移轉叢集管理] 嵌入式管理單元無法用來管理舊版的 Microsoft Clustering Services。

改良的設定程序

設定容錯移轉叢集相當簡單。許多設定、重新設定和維護叢集的動作都有精靈可用。拜這些精靈所賜,系統管理員不用再煩惱資源是否設定正確,或是它們是否會以正確的順序連線。

[圖 2] 顯示「高可用性精靈」。在這個特定的範例中,設定的是檔案伺服器。您在左邊可以看到精靈引導系統管理員逐步完成的步驟清單。程序一完成,便會顯示摘要頁面,之後可檢視報告。

fig02.gif

[圖 2] 高可用性精靈 (按一下以放大影像)

內嵌驗證程序

在舊版的 Windows Server 中,硬體設定在 Windows Server Catalog 上必須列為 [叢集解決方案],才能被視為支援的叢集解決方案。這包括多網站叢集,此類叢集是另外列在 [地理位置四散 (Geographically Dispersed)] 類別下。若要列在目錄中,硬體廠商必須執行一組 Windows 硬體裝置品質實驗室 (WHQL) 測試,並將結果提交給 Microsoft。這對廠商來說是成本高昂的提案,而且 Windows Server Catalog 資料庫也很難維護。

在 Windows Server 2008 中,容錯移轉叢集包含一個內建的驗證程序。此程序是由分成四大類別的一系列測試組成,如 [圖 3] 所示。

fig03.gif

[圖 3] 容錯移轉叢集驗證測試類別 (按一下以放大影像)

您可以看到展開的 [網路] 類別顯示執行的測試,每個類別都包含一系列測試。[存放裝置] 類別也許是四個類別裡面最重要的,當中包含的測試可確保儲存解決方案遵守針對 Windows Server 2008 容錯移轉叢集設立的新需求。

具體地說,硬體廠商現在必須使用以 Microsoft Storport 驅動程式為基礎的驅動程式,而且他們必須支援 SCSI-3 持續保留。另外,使用多重路徑軟體裝置特定模組時,也必須依照 Microsoft Multi-Path Input\Output 標準。

隨著融入驗證程序,支援模型也有所變更。所有硬體都必須具備 Windows Server 2008 標誌,而且必須通過所有驗證測試。唯一的例外是具有兩個完全不同儲存機盒 — 每個網站各一個 — 及 Exchange Server 2007 叢集連續複寫實作的多網站叢集,這種叢集並不使用任何共用存放裝置。

全新仲裁模型

Windows Server 2008 容錯移轉叢集中的仲裁模型也有所變更。在舊版的系統中,當系統管理員聽到仲裁一詞,會聯想到存放叢集設定和一些複寫檔案的共用磁碟。這是叢集當中的單一失敗點。如果仲裁磁碟失敗,叢集服務便會終止,而且也會遺失高可用性。

Windows Server 2003 伺服器叢集提供了第二種仲裁類型,稱為多數節點組合仲裁。這類的仲裁一般是實作在多網站叢集中,而且不需要任何共用存放裝置。多數節點組合仲裁包括一個檔案共用,它位在每個叢集節點的系統磁碟上。此仲裁類型的連線是透過伺服器訊息區 (SMB) 連線的方式進行。同樣地,要讓叢集能夠正常運作,大多數的節點都必須參與。

之後,隨著 Exchange Server 2007 叢集連續複寫 (CCR) 的推出,Windows Server 2003 伺服器叢集也加入了檔案共用見證 (FSW) 功能。這容許單一 Exchange 2007 CCR 叢集節點 (或是任何多網站叢集) 只要達成大多數的 FSW 的連線就可以繼續提供服務。

在 Windows Server 2008 容錯移轉叢集中,仲裁的概念現在真正的意思是共識。現在只要有足夠的票數把叢集帶入服務,就可以達成仲裁 (或共識)。根據仲裁設定而定,有好幾種方法可以獲得足夠的投票數。Windows Server 2008 容錯移轉叢集裡提供四種仲裁模式,如 [圖 4] 所示。在列出的四種模式當中,只有前兩種 ([節點多數] 和 [節點與磁碟多數]) 在建立叢集程序期間能夠自動選取。應該採用的邏輯如下:

  • 如果叢集內設定了奇數節點,則選擇 [節點多數] 模式。
  • 如果叢集內設定了偶數節點,而且已連接且可存取共用存放裝置,則選擇 [節點與磁碟多數]。

fig04.gif

[圖 4] 設定叢集仲裁精靈中的仲裁模式 (按一下以放大影像)

若要從可用的存放裝置選取見證磁碟,請選取第一個大小至少為 500 MB 且設定 NTFS 磁碟分割的磁碟。其餘的仲裁節點只能透過執行「設定叢集仲裁精靈」手動選取。[節點與磁碟多數] 選項一般是用在多網站叢集設定或是 Exchange 2007 CCR 叢集中。最後一個選項 [沒有多數:只有磁碟] 模式相當於舊版叢集中的共用仲裁模型。它是單一失敗點,而且一般來說不應該使用。

要幫助達成共識,叢集裡面只有兩種見證資源可以設定,那就是實體磁碟和檔案共用。

見證磁碟是叢集服務可以帶上線的一個存放裝置。這個磁碟是隨著叢集網路名稱和相關 IP 位址資源一起放在 [叢集核心資源群組] 中。設定見證磁碟時,磁碟上會放置一個 [叢集] 資料夾,也會放置叢集設定 (叢集 Hive 或複本) 的完整複本。

在理想的情況下,FSW 這種網路共用位在不屬於叢集一部分之網路的伺服器。對 FSW 會建立 SMB 連線,而 FSW 會保有一份見證記錄檔的複本,當中包含叢集設定的版本控制資訊。

叢集當中只能設定一個見證資源。如果叢集只要再多一票就能達成仲裁的話,這項資源會提供這額外的一票。換句話說,若是叢集再多一票 (也就是一個節點) 就能達成共識的話,就會將見證資源帶上線,以利達成仲裁。如果叢集要達成仲裁需要不只一票,就會留下見證資源,而叢集會保持在休眠狀態,等候其他叢集節點加入。

安全性增強功能

容錯移轉叢集包含幾項安全性增強新功能。其中最重要的可能是移除了叢集服務帳戶 (CSA) 的需求。在舊版的 Microsoft Cluster Service 中,設定程序期間需要有網域使用者帳戶。這個帳戶是用來啟動叢集服務,它在叢集的每個節點上除了會被加入本機 Administrators 群組外,也獲有必要的本機使用者權限好讓叢集服務正常運作。因為是網域使用者帳戶,CSA 也受到可能套用到叢集節點的幾項網域層級原則的約束。這些原則可能會導致叢集服務失敗,而對高可用性產生負面的影響。

叢集服務現在是在本機系統帳戶下執行,它在本機叢集節點上具有一組特定的權限,容它正常運作。叢集的安全性內容已轉換成叢集名稱物件 (CNO),這是當叢集初次建立時,預設會在 Active Directory® 的 [電腦] 容器內建立的電腦物件。一旦成功建立叢集,而且 CNO 也存在於 Active Directory 中後,用來安裝和設定叢集的使用者帳戶就無用武之地。

Active Directory 中在 [電腦] 容器內建立的其他電腦物件都與容錯移轉叢集相關。這些物件稱為虛擬電腦物件 (VCO),相當於在叢集當中作為用戶端存取點 (CAP) 一部分而建立的叢集網路名稱資源。負責在叢集中建立所有 VCO 的 CNO 會加入到 Active Directory 中該物件的系統存取控制清單 (SACL) (見 [圖 5])。

fig05.gif

[圖 5] Active Directory 中 VCO 上的安全性 (按一下以放大影像)

CNO 也負責同步處理它所建立的所有 VCO 的網域密碼。完成這個程序是為了遵守設定的密碼替換網域原則。此外,由於 CNO 負責建立叢集中與 VCO 相關的所有電腦物件,因此 CNO (電腦帳戶) 必須具備網域層級權限,才能在建立 VCO 的容器 (預設是 [電腦] 容器) 上建立電腦物件。

另外一項變更是,現在的預設驗證方法是使用 Kerberos。Active Directory 中有電腦帳戶,便可利用這項安全性增強功能。但若應用程式無法使用 Kerberos 進行驗證,但需要存取叢集資源的話,叢集也可以使用 NT LAN Manager (NTLM) 進行驗證。

直接處理叢集程序的叢集節點之間的通訊也安全得多。在預設的情況下,所有內部叢集通訊都會經過簽署。您可使用 cluster.exe Common Language Interface 來變更這個叢集屬性,以加密節點之間的所有通訊,藉此多提供一層安全性。

擴充網路功能

容錯移轉叢集裡面的網路新功能,在設計高可用性和嚴重損毀修復解決方案方面提供更高的彈性。同時,這些網路增強功能在叢集中的各節點間還提供更可靠的連線能力。

客戶要求最殷切的功能莫過於希望能夠在不同的網路上尋找叢集節點。這點現在可以辦到。叢集網路驅動程式已經徹底重寫,若每個節點都連接到至少兩個完全不同的路由網路,它可在叢集內的節點間提供可靠性及容錯能力高的通訊。

叢集網路驅動程式會根據叢集啟動程序期間提供的連線資訊,建構它自己的內部路由表。其中包括本機連線資訊,也包括在叢集設定資料庫 (叢集登錄 Hive) 裡面提供的資訊。

叢集驗證程序有一部分包括網路連線探索程序。能夠在不同的路由網路上尋找叢集節點,降低了多網站叢集的網路需求。這讓組織部署起來更為簡單,成本也較低。它也使得在容錯移轉中使用 iSCSI 存放裝置成為更為吸引人的儲存解決方案。

叢集節點也可以透過 DHCP (動態主機設定通訊協定) 取得 IP 位址資訊。如果網路系統管理員可以接受在他們環境內的伺服器上使用動態位址,便可減輕他們的負擔。

叢集節點的網路介面設定可判斷哪個網路將使用靜態 IP 位址,而哪個網路將使用動態 IP 位址。即使叢集中 IP 位址資源是從 DHCP 伺服器取得的,您還是可以在 [容錯移轉叢集管理] 嵌入式管理單元裡面將它變更為靜態 IP 位址。

過去,所有的叢集通訊都是使用使用者資料包通訊協定 (UDP) 廣播,有時候會使用多點傳送。多點傳送功能已被移除,而叢集通訊現在是使用 UDP 單點傳送 (連接埠 3343 仍舊是 Microsoft 叢集常用的連接埠)。許多網路系統管理員將很樂見廣播被淘汰。然而,叢集當中真正的報酬其實跟叢集服務內部本身的新訊息程序有密切的關係 (不過這已經超出本文討論範圍)。雖然使用 UDP 作為傳輸機制,但內部叢集通訊現在卻擁有較可靠的 TCP 通訊。

提升與存放裝置互動時的可靠性

容錯移轉叢集與存放裝置互動的方式可說是大相逕庭。叢集磁碟驅動程式 (clusdisk.sys) 已經過徹底重寫,現在是真正的隨插即用 (PnP) 驅動程式。另外,它與存放裝置互動的方式也已改變。

在 Windows Server 2003 中,叢集磁碟驅動程式是直通存放裝置。但在 Windows Server 2008 中,叢集磁碟驅動程式會與磁碟分割管理員 (partmgr.sys) 驅動程式通訊以便與存放裝置進行互動。[圖 6] 中圖解說明了這兩種方法。

fig06.gif

[圖 6] Windows Server 2008 中的存放堆疊有何變更 (按一下以放大影像)

磁碟分割管理員主要是負責保護叢集磁碟資源。當第一次對應到叢集節點時,共用存放區匯流排上的所有磁碟都會自動處於離線狀態。這讓存放裝置可以早在叢集建立之前,同時對應到叢集中的所有節點。現在不用一次只能啟動一個節點,在上面準備磁碟,然後關閉節點,啟動另一個節點,確認磁碟設定之類的。

不過還是要進行存放裝置測試,這些測試是作為叢集驗證程序的一部分執行,而且磁碟必須要初始化。這可在驗證程序執行之前,於叢集的其中一個節點上完成。一旦將存放裝置新增至叢集後,磁碟便會在 [磁碟管理] 介面中顯示 [已保留] 狀態,而且會一直保持在保護狀態。

另外一項變更是與 SCSI 命令有關。在 Windows Server 2003 中,SCSI-2 Reserve\Release 命令是與叢集磁碟驅動程式搭配使用,以寫入磁碟本身的磁區。而在 Windows Server 2008 中,SCSI-3 PR (持續保留) 命令是必要的。叢集節點必須先註冊之後,才能在存放裝置上放置保留區,而叢集節點會定期使用 Registration Defense Protocol 防護它們的保留區。

驗證程序中的其中一項存放裝置測試會驗證這項功能。如果儲存解決方案不支援 SCSI-3 (PR) 命令,表示它在容錯移轉叢集也不受支援。

許多公司在連接到存放裝置時,都使用多重路徑軟體以備援。這種作法不但受到支援,甚至還被諭為最佳作法。不過,協力廠商多重路徑軟體解決方案或裝置特定模組都必須使用 Microsoft Multi-Path Input\Output 標準重寫,在容錯移轉叢集中才能受到支援。這表示無論路徑是否處於作用狀態,所有 SCSI-3 PR 命令都會同時傳送所有存放裝置的路徑。驗證程序也會驗證這項功能。

其他儲存方面的改進還包括改良的檢查磁碟 (chkdsk.exe) 程序、內建磁碟修復功能 (之前是屬於「叢集伺服器修復公用程式」(Cluster Server Recovery Utility) 的一部分),以及自我修復磁碟。在容錯移轉叢集中,識別叢集磁碟資源時會同時用到磁碟簽章和 LUN 識別碼。如果其中之一有所變更,便會更新叢集設定。也就是說,這可減少單純因為在實體磁碟資源上的屬性變更而引起的錯誤,進而達成更高的高可用性。

內建修復程序

之前提到的磁碟修復很明顯地是其中一項內建修復功能。而另一項則是 Active Directory 修復功能。若代表 CNO 的電腦物件遭到刪除,您將無法再建立與叢集 CAP 相關的電腦物件。然而,您會碰到的第一個問題很可能是發生在高度可用的應用程式或使用者因無法取得安全性權杖而不能存取叢集外部資源的情況下。

從已刪除的 CNO 復原包括兩個步驟。首先,您必須要求網域系統管理員將刪除的電腦物件從 Active Directory 中的 DeletedObject 容器復原。接下來,在還原並重新啟用物件之後,在 [容錯移轉管理] 嵌入式管理單元中執行 [修復 Active Directory 物件] 程序。

在 Windows Server 2003 伺服器叢集中,位於 %systemroot%\cluster 子目錄中的叢集設定檔有可能會損毀,而需要加以置換。在容錯移轉叢集中,自我修復功能可以幫上忙。若叢集服務在某節點上啟動,而且設定資料庫遭到損毀,便會使用包含在 HKLM\System\CCS\Services\ClusSvc\Parameters 登錄機碼中的資訊載入最精簡的設定範本。該節點會嘗試加入已經成形的叢集,而且如果嘗試成功的話,便會將叢集登錄 Hive 的全新複本推入節點。如果節點無法加入叢集,將會終止叢集服務。

全新備份及還原功能

容錯移轉叢集有自己的磁碟區陰影複製服務寫入器。這在備份和還原叢集資料庫和位於實體磁碟資源上的資料時,扮演著關鍵的角色。備份叢集設定相當簡單明瞭。只要系統狀態是屬於備份的一部分,即可還原叢集設定。但是要注意,叢集應當只有在有仲裁時才備份。這樣可保證備份的是最新的叢集設定。

叢集還原有兩種完全不同的類型:授權及未經授權。未經授權還原是使用 Windows Server Backup 或協力廠商備份應用程式從選定的備份執行還原。另一方面,叢集節點的授權還原只能使用 Windows Server Backup CLI (wbadmin.exe) 來完成。

授權還原基本上是在執行備份時,把叢集設定帶「回到過去」。若要完成授權還原,除了要執行還原的節點以外,在其他所有節點上都會停止叢集服務。還原一經完成,並且還原的節點上也啟動叢集服務後,叢集的還原設定便會變成明確的新叢集設定。接著,當重新啟動叢集當中其餘節點上的叢集服務時,便會在加入程序期間發送還原的設定。

這麼做在某些案例中可省下不少的時間和金錢。假設您擁有一個列印叢集,上面主控了多個列印多工緩衝處理器資源,各自支援 1,500 台印表機,而您不小心刪除了其中一個列印多工緩衝處理器資源。現在有一大堆使用者都不能列印。與其手動將所有這些印表機新增回叢集設定,直接執行叢集設定的授權還原可能快多了。這當然也要看您是否有完善的備份及還原策略而定。

自 Windows Server 2003 伺服器叢集移轉

基於 Windows Server 2008 容錯移轉叢集裡面所有這些架構變更,因此並不支援從 Windows Server 2003 進行就地或輪流升級。當從 Windows Server 2000 叢集升級到 Windows Server 2003 時,許多公司都會有系統地收回叢集裡面的每個節點,進行作業系統的全新安裝,然後將節點新增回叢集中。這種方法並不能用來移轉至 Windows Server 2008,因為 Windows Server 2003 和 Windows Server 2008 叢集節點無法屬於同個叢集的一部分。

所幸,它提供了一個精靈式的移轉程序來幫助移轉。但是移轉至 Windows Server 2008 容錯移轉叢集還是需要一些規劃。基本的移轉案例有三種:

  • 使用相同的伺服器和存放裝置。
  • 使用相同的伺服器,但搭配新存放裝置。
  • 使用新伺服器和新存放裝置。

無論是哪一種案例,都必須確定硬體已經過 Windows Server 2008 Logo Program 的認證,且已執行容錯移轉叢集驗證程序,並且通過了所有測試。這些步驟一完成後,便可前進到移轉程序。

並非 Windows Server 2003 伺服器叢集中的所有資源都可以移轉。您可以移轉網路名稱、IP 位址、實體磁碟、檔案共用、分散式檔案共用 (DFS) 根目錄、DHCP,以及 WINS。您也可以在有限的範圍內移轉一般服務、一般應用程式,以及一般指令碼資源。

另一方面,像 Microsoft Exchange 和 SQL Server® 這類的應用程式,在移轉到容錯移轉叢集時有自己的一套程序。印表機可以使用 [列印管理] 嵌入式管理單元 (這會隨列印伺服器角色一同安裝) 先匯出印表機,然後匯入到新設定的高可用列印伺服器,藉此移轉至 Windows Server 2008。協力廠商資源類型並無法移轉。

移轉程序並不會移轉任何資料。它牽涉的是將叢集組態設定從 Windows Server 2003 移轉到 Windows Server 2008。

在移轉程序完成時,所有已移轉的資源最先會處於離線狀態。這是因為可能需要執行其他必要的步驟。因此,在將叢集帶入服務之前,先檢閱移轉後報告來查看還需要哪些額外的步驟 (如果是移轉到新存放裝置,則不包括資料移轉) 是很重要的。舉個例來說,若要移轉 DHCP 伺服器,就必須將 DHCP 伺服器角色安裝在叢集裡面的所有節點上。如果是移轉 WINS 伺服器,則必須在叢集裡面的所有節點上安裝 WINS 伺服器功能。

Chuck Timon 在 Microsoft 擔任支援高階工程師,支援叢集和設定技術。他寫過 Windows Server 2008 容錯移轉叢集的訓練教材,現在正投身 Hyper-V 訓練。

© 2008 Microsoft Corporation and CMP Media, LLC.著作權所有,並保留一切權利。未經許可,不得部分或全部重製。