還記得在前幾期文章中筆者有提到關於最新叢集容錯移轉架構建置(Cluster)的方法,不過當時所介紹的部署架構是以最常見的共用儲存裝置,整合規劃在檔案伺服器的容錯移轉上來作為範例的。
而在這一次的內容中所要向各位 IT 讀者介紹的則是透過節點與檔案共用多數(Node and File Share Majority Quorum)的叢集架構基礎,來部署 Exchange Server 2007 SP1 的叢集連續複寫(CCR,Cluster Continuous Replication)的高用性建置,藉由這種不會因為單點失敗(共用儲存裝置的損毀)問題而造成 IT 服務的中斷,來提供企業一個真正 7x24 全年無休與永不中斷的絕佳訊息平台服務。然而究竟這種採用非同步複寫的高可用性架構有哪一些優點呢?請看以下說明:
不需要共用的儲存裝置、更不需要採用相同的伺服器硬體規格 提供一個不會發生單點失敗的電子郵件信箱的解決方案 保證資料與服務的可用性 針對目前的資料庫提供了最佳的資料備份中心 針對任何單點失敗的災害發生時,提供最迅速的系統與資料的回復速度 提供企業 IT 一個最低花費成本與最高執行效能的高可用技術 對於許多專業的 IT 來說,這也是最簡易部署的高可用性架構規劃此外在全新的 Exchange Server 2007 SP1 規劃中,還可以讓高可用性的情境從災害復原的情境中分隔開來,並且可以在不同的情境中針對組織的需求部署自訂的組態設定。以下說明在 SP1 中所新增與改善現有高可用性的特色項目:
全新待命連續複寫(SCR,Standby Continuous Replication)機制,適用郵件信箱於異地備份的持續備份需求。 支援建置在最新的 Windows Server 2008 作業平台上,這一些包括了支援多重子網路(multiple subnet)的叢集容錯移轉、支援採用動態 IP 位址(DHCP IPv4)的配置方式、對於 IPv6 位址配置方式的支援、新的仲裁模型 (磁碟及檔案共用見證)。 在叢集連續複寫的環境中,可透過備援的叢集網路進行連續複寫 (記錄檔傳送及植入),設定方法則是預先經由全新 Enable-ContinuousReplicationHostName 命令來設定即可。 讓 IT 人員可修改叢集信箱網路名稱資源的 TTL 時間,以便符合跨子網路的 CCR 高可性的容錯規劃要求。例如您可以預設 20 分鐘的 TTL 設定值變更為 5 分鐘(300 秒),只要下達 cluster.exe res <CMSNetworkNameResource> /priv HostRecordTTL=300 命令格式來變更設定即可。 報告、監視功能以及運作效能的改善 郵件傳輸暫存區功能的改善 提供新的 Test-ReplicationHealth 命令來診斷 CCR 複寫運作的健康與否 Exchange 管理主控台的操作介面的改良設計建置前的準備工作
已經在相同的 Active Directory 網域中完成了集線傳輸伺服器(Hub Transport Server)與用戶端存取伺服器(Client Access Server)的建置。 在兩部容錯移轉叢集節點伺服器上預先安裝好網頁伺服器(IIS)以及應用程式伺服器角色相關元件,其中在 IIS 部分還必須記得包含 IIS 6.0 相關管理工具的一並安裝才可以。 在兩部容錯移轉叢集節點伺服器上預先安裝好 Windows PowerShell 以及容錯移轉叢集功能相關元件。 完成兩部容錯移轉叢集節點伺服器的網路設定。如圖 1 所示便是筆者從 [伺服器管理員] 介面的 [角色] 節點頁面中,點選 [新增角色] 連結所預先完成的網頁伺服器(IIS)以及應用程式伺服器角色的安裝。
圖1 安裝必要的伺服器角色
緊接著則必須同樣在從 [伺服器管理員] 介面的 [功能] 節點頁面中,點選 [新增功能] 連結所預先完成的 Windows PowerShell 以及容錯移轉叢集功能的安裝範例。 完成了以上有關於 Windows Server 2008 相關伺服器角色與功能的安裝之後,接下來必須針對這兩部準備擔任 CCR 信箱的伺服器上,完成相關網路的安裝與必要設定。
首先在這兩部伺服器必須確認已經完成了兩張網路卡的安裝,以及設定好了公用網路(Public Network)與私有網路(Private Network)的 TCP/IP 設定,並且建議您在網路的命名上可以取名為 Public 以及 Private 即可。
請注意!有關於私有網路的連線上,如果您並沒有打算規劃架構出跨越多重跨子網路的建置,那麼可以直接使用一條跳接的 RJ45 網路線來直接對接即可。 接下來我們必須設定有關於網路服務連線的順序,請在 [進階] 的下拉選單中點選 [進階設定值],執行之後將會開啟 [介面卡及連結] 的頁面,在此請由上而下將 Public、Private、遠端存取連線依序進行排序即可。
最後請在 [Internet Protocol Version 4(TCP/IPv4)] 的內容中點選 [進階] 按鈕,執行之後請切換到 [WINS] 頁面,並且選取 [停用 [NetBIOS over TCP/IP] ] 設定,點選兩次 [確定] 按鈕完成設定。
建置 Windows Server 2008 叢集容錯
在完成了先前的準備工作之後,接下來我們便可以來到準備擔任 CCR 叢集信箱的其中一部主機上,來開始完成雙節點叢集容錯伺服器的建置。
首先請從 [系統管理工具] 的下拉選單中點選開啟如圖 2 所示的 [容錯移轉叢集管理] 的介面,在這個介面中目前並沒有建置任何的叢集服務,請點選位在 [動作] 窗格中的 [建立叢集] 連結繼續。
為什麼需要準備 Cluster 環境? |
由於 CCR 的容錯移轉機制部份是由 Microsoft Windows Cluster Services(MSCS)所提供,因此在正式生產環境的部署中作業系統必須採用 64 位元的 Windows Server 2003 R2 企業版,或是本文所介紹的 Windows Server 2008 企業版。 |
圖2 容錯移轉叢集管理介面
第一次執行 [建立叢集] 連結時將會開啟簡介說明頁面,在此說明中主要是建議我們在建立叢集之前,最好是先完成 [驗證設定精靈] 的執行,以便確認目前的硬體相容性與硬體設定符合叢集建置的基本需求。
在此筆者省略了這項驗證的操作步驟,原因是在等一下精靈設定的過程中,一樣可以完成這一樣驗證作業。點選 [下一步] 繼續。
接下來將會來到 [選取伺服器] 的頁面,如圖 3 所示您可以在此直接分別輸入兩部 CCR 叢集信箱伺服器的電腦名稱,或是點選 [瀏覽] 按鈕來將它們新增加入到下方的清單中,點選 [下一步] 繼續。
圖3 選取準備建立 CCR 的伺服器成員
接下來在 [驗證警告] 的頁面中,將會出現叢集設定驗證測試的報告似乎遺失或不完整的警告訊息,這是由於我們在準備建立叢集之前並沒有預先完成驗證測試的作業所致,不過沒有關係請確認目前選擇了預設的設定項目,點選 [下一步] 來開始進行相關的驗證設定作業吧。
接下來將會開啟 [驗證設定精靈] 頁面,在此您可以看到所有相關的簡介說明,點選 [下一步] 繼續。在 [測試選項] 的頁面中,如圖 4 所示您可以決定是要選擇 [執行所有測試] 還是 [僅執行選取的測試],如果是選取後者則可以在下一步的頁面內容中來自訂所要測試的項目,不過在此我們採用預設的 [執行所有測試(建議選項)] 項目,點選 [下一步] 繼續。
圖4 測試選項設定
接下來您會在 [確認] 的頁面中看到所有即將進行驗證的項目,點選 [下一步] 之後將會來到 [正在確認] 的頁面中,您必須在此等待所有驗證的項目都完成檢查為止。驗證設定精靈的最後將會來到[摘要]的顯示頁面,這裡有一段訊息告知我們測試已經順利完成,設定似乎適合進行叢集。如果您想要查看更進一步的驗證報告內容請點選 [檢視報告],然後點選 [完成] 按鈕即可。
如圖 5 所示這便是一個典型驗證設定的報告內容,您可以在此看到所有細部檢查項目是否成功。
當發現準備的作業系統為標準版時怎麼辦? |
筆者曾經在部署 Windows Server 2008 叢集的環境時,正準備要開始建立叢集時卻發現不小心安裝成 Windows Server 2008 標準版了,這時候只要將 Windows Server 2008 企業版的安裝光碟拿來進行作業系統的就地升級即可解決。 |
圖5 檢視叢集驗證報告
接下來將會自動回到建立叢集精靈的設定頁面,您必須完成叢集名稱以及叢集 IP 位址的設定,而這一些資訊在目前的網路中都是不能夠重覆的,在來到了 [確認] 的頁面中將可以看到設定確認頁面,點選 [下一步] 繼續。
接下來系統便會開始根據我們前面所設定的叢級節點成員、叢集名稱以及叢集 IP 位址來建立新的叢集網路。
在 [摘要] 頁面您可以看到它出現了找不到仲裁磁碟的可用磁碟訊息,不過這沒有關係,因為我們待回就可以從容錯移轉叢級的管理介面中來完成這一項必要的設定,需要的話您可以點選[檢視報告]按鈕來查看更進一步的資訊。
如圖 6 所示便是初步完成雙節點叢集網路的範例,在筆者所建立的 EXCLUSTER.msft.com 叢集頁面,可以清楚看到目前的仲裁設定所出現的訊息是 [節點多數-警告:節點失敗會導致從及失敗,請檢查節點的狀態]。
圖6 檢視已完成的基礎叢集
根據以上的仲裁設定訊息,告訴了我們必須變更相關的仲裁設定組態。請在目前的叢集節點項目按下滑鼠右鍵,點選位在 [其他動作] 子選單中的 [設定叢集仲裁設定] 繼續。接下來將會開啟 [設定叢集仲裁精靈] 頁面,內容中說明了正確設定仲裁的必要性與時機。點選 [下一步] 繼續。
接下來會來到如圖 7 所示的 [選取仲裁設定] 的頁面,在此有四種仲裁設定可以選擇分別是節點多數、節點與磁碟多數、節點與檔案共用多數、沒有多數只有磁碟,請在選取 [節點與檔案共用多數] 項目之後,點選 [下一步] 繼續。
如何快速確認叢集狀態 |
想確認它目前的運作狀態,只要透過兩個命令參數來檢視其狀態即可。首先請如圖在命令提示列上輸入 Cluster group,來得知目前所有的叢集群組都是在連線狀態。接著可以輸入 Cluster node 命令參數,來得知目前所有的叢集節點伺服器都在連線與執行的狀態下。 |
圖7 選取仲裁設定
接下來在 [設定檔案共用見證] 的頁面中,如圖 8 所示您必須點選 [瀏覽] 按鈕來指定一個共用資料夾來存放共用見證資源所需要的檔案,但是必須注意此資料夾必須給予叢集系統管理員完整的存取權限,並且請勿將此資料夾建立在叢集中的任何伺服器上。
圖8 設定檔案共用見證
接下來在[確認]的頁面中,便可以看到前面所作的設定值,確認無誤之後請點選 [下一步] 來開始完成叢集仲裁的設定。在 [摘要] 的頁面中便會顯示完成叢集仲裁設定的相關訊息,若想要看進一步的相關資訊請點選 [檢視報告],否則請直接點選 [完成] 即可。
當我們完成了叢集仲裁設定之後,再一次回到容錯移轉叢集的管理介面時,將會發現原有驚嘆號的警告訊息已經不見了,取而代之的是顯示前面所設定好的節點與檔案共用多數的設定值。
開始安裝 Exchange Server 2007 CCR 伺服器角色
既然已經完成了叢集環境的準備工作,那麼接下來我們便可以開始來將 Exchange Server 2007 的相關 CCR 信箱伺服器建置在這上面。請在 Exchange Server 2007 SP1 的安裝主選單中,點選 [步驟 4:安裝 Microsoft Exchange Server 2007 SP1] 連結繼續。
接下來首先將會如圖 9 所示開啟 [Exchange Server 2007 SP1 安裝程式] 簡介的頁面,點選 [下一步] 繼續。在 [安裝類型] 的頁面中,請點選 [自訂 Exchange Server 安裝] 項目之後,點選 [下一步] 繼續。
接下來在 [伺服器角色選取] 的頁面中,如圖 6-9-30 所示由於我們必須先完成主動叢集信箱角色的安裝,因此請將 [Active Clustered Mailbox Role] 項目勾選,然後點選 [下一步] 繼續。
圖9 伺服器角色選取
接下來在 [叢集設定] 的頁面中,如圖 10 所示請先選取 [叢集連續複寫] 項目,然後為這個新的叢集信箱伺服器名稱輸入全新的命名,至於叢集信箱伺服器資料庫檔案的路徑則可以根據實際需求來變更(因為可能後端有連接特定的 SAN 設備),但是必須注意的是在後續的被動信箱角色安裝設定中也必須一樣才可以。點選 [下一步] 繼續。
圖10 叢集設定
接下來在 [叢集 IP 位址組態] 的頁面中,如圖 11 所示必須至少設定一個叢集 IP 位址(第一個子網路),而 IP 位址的指定方式也可以採用 DHCP 的方式來定址,至於第二個子網路的設定部分,也只有在架構跨子網路(Subnet)的 CCR 規劃中才需要設定。
圖11 叢集 IP 位址組態
接著在 [整備檢查] 的頁面中,如果是採用測試用的 32 位元版本 Exchange Server 2007,便會出現相關警告訊息,如果沒有其它錯誤訊息請點選 [安裝] 即可。
如圖 12 所示便是成功完成 Exchange Server 2007 SP1 主動叢集信箱角色安裝的顯示頁面,請點選 [完成] 按鈕繼續。
圖12 成功安裝主動叢集信箱角色
完成安裝之後將會出現必須在重新開機之後才能夠使相關的變更生效,請在點選 [確定] 之後重新啟動伺服器繼續。
完成了 Exchange Server 2007 SP1 主動叢集信箱角色節點的安裝之後,緊接著必須到另一個節點伺服器上來安裝被動的叢集信箱角色,而整個安裝過程相當簡單,只要在 Exchange Server 2007 SP1 的自訂角色安裝頁面中,選取 [Passive Clustered Mailbox Role] 項目並且點選 [下一步] 來完成安裝即可。
在 Exchange 管理主控台中如何得知信箱伺服器為叢集架構 |
請在 Exchange 管理主控台中先點選至 [伺服器組態] 節點上,然後點選位在 [動作] 窗格中 [檢視] 的 [新增/移除欄位],執行後您可以將預設未加入到右邊窗格的欄位(其中便包括了一個 [叢集] 欄位),點選 [新增] 按鈕來加入即可。 |
在主動與被動的叢集信箱角色都完成安裝與重新開機之後,請開啟 Exchange 命令主控台並且如圖 13 所示輸入 Get-StrorageGroupCopyStatus 命令,來查看目前的複寫情形。過程中您可能會如同範例一樣先看到目前還在初始化階段,等過幾分鐘之後再輸入一次相同的命令,則將會看到出現正常的 Healthy 狀態。
圖13 檢是 CCR 叢集複寫狀態
至於在 Exchange 管理主控台的檢視部分,您可以在 [伺服器組態] [信箱] 節點頁面中,看到我們在範例中所建立 CMS01 的叢集信箱伺服器項目,我們可以點選位在 [動作] 窗格中的 [內容] 來查看進一步的相關資訊。
開啟了 CMS01 叢集信箱伺服器的內容之後,請如圖 14 所示切換到 [叢集信箱伺服器] 的頁面中,便可以看到叢集相關的詳細資訊,以及目前作用中的節點是以哪一部主機為主,需要的話還可以進一步變更有關於容錯移轉可用性的設定值。
圖14 檢是叢集信箱伺服器
對於叢集信箱伺服器的管理動作,在 Exchange Server 2007 SP1 的管理主控台中,如今還可以直接點選位在 [動作] 窗格中的 [管理叢集信箱伺服器] 連結,來開啟如圖 15 所示的頁面,來決定是否要立即將叢集信箱伺服器移動至另一個節點,還是要對於叢集信箱伺服器進行啟動或是停止。
圖15 管理叢集信箱伺服器介面
叢集信箱伺服器的命令主控台管理部份,首先您可以如圖 16 所示輸入 Get-ClusteredMailboxServerStatus 命令來檢視到目前叢集信箱運作的狀態。
圖16 檢是叢集信箱伺服器狀態
至於如果回到容錯移轉叢集管理的介面中,則系統管理員可以點選各別的叢集節點來進行查看,必要的時候同樣可以點選位在 [動作] 窗格的 [其他動作] 中來執行相關的管理動作,例如啟動與停止叢集服務等等。
而在叢集資源的管理中,您則可以在容錯移轉叢集管理的介面中,針對目前運作的 CCR 叢集與相對的叢集資源點選位在 [動作] 窗格中的動作,例如將叢集資源離線或是進行模擬此資源失敗的測試操作等等。
至於如果想要進行這兩個叢集節點的移轉測試,則可以針對此 CCR 叢集節點項目,按下滑鼠右鍵點選 [將此服務或應用程式移動到另一個節點] 即可,不過必須注意這種作法只適合使用在測試的 CCR 環境中,如果在正式的運作環境中則必須開啟 Exchange Server 2007 的命令主控台,然後如圖 17 所示輸入 Move-ClusteredMaiolboxServer 的 Shell 命令來進行手動切換 CCR 角色。範例中 targetmachine 的參數所指定的伺服器便是所有切換過去的目標電腦,至於 movecomment 則是可以讓我們輸入一段註解文字,因為在執行完畢之後,在事件檢視器的應用程式類別中便會出現一筆來源為 MSExchangeRepl、類型為資訊、事件 ID 為 111 的事件項目,內容中將可以看到成功完成移轉的訊息與我們所留下來的註解說明。
圖17 手動 CCR 容錯移轉測試
如果是在容錯移轉叢集管理員介面中進行移轉動作,則當我們執行將應用程式服務移動到另一個節點的動作時,系統將會出現如圖 18 所示的確認訊息視窗,範例中一旦筆者選取 [將 CMS01 移到 CCR01] 之後,所有 CCR 共用的叢集資源都將會全部移動過去。
圖18 確認叢集移動訊息
關於 Hub Transport 主機上的 Dumpster |
在 CCR 架構中的交易記錄檔(transaction log)複寫傳送與 Replay 部份,是由 Exchange Server 2007 負責處理而非 Windows Server 2008 叢集服務,至於傳送過程中的訊息佇列則是由 Hub Transport 上的 Dumpster 負責儲存,值得注意的是 Dumpster 這樣的訊息佇列機制在 Exchange Server 2007 的高可用性規劃中唯一只能夠應用在 CCR 的架構中,主要用途在用以避免一些還來不及完成複寫的訊息資料的遺失,佇列中暫存了使用者草稿資料夾中的訊息、約會、聯絡人、屬性設定、工作以及傳送至 Hub Transport 中的郵件訊息。如圖 19 所示便是透過 Set-TransportConfig 來設定 Dumpster 的儲存區大小以及最大存放的時間。 |
圖19 設定 Dumpster
結 論
建置在 Windows Server 2008 叢集架構下的 Exchange Server 2007 SP1 CCR 環境,可以讓企業 IT 人員掌控到更多有關於容錯移轉上的彈性規劃,以及許多過去沒有辦法作到的細微組態配置,也因此筆者才會特別撰寫此篇文章來與大家分享,不過礙於篇幅有限的因素之下,一些細微的應用部分並沒有辦法全部都一一提出來,但是讀者們若有興趣則可以透過本文的基礎概念與建置下,來自行研究與測試這一部份的相關應用,例如跨越子網路的雙節點 CCR 建置、使用動態 IP 位址的 CCR 網路、建構擁有備援叢集網路連續複寫的安全機制等等。