Active Manager

適用於:Exchange Server 2013

Microsoft Exchange Server 2013 包含稱為Active Manager的元件,可管理高可用性平臺,其中包含資料庫可用性群組 (DAG) 和信箱資料庫複本。 Active Manager 會在所有信箱伺服器上的 Microsoft Exchange 複寫服務 (MSExchangeRepl.exe) 內執行。 在不是 DAG 成員的信箱伺服器上,有一個 Active Manager 角色: 獨立 Active Manager。 在屬於 DAG 成員的伺服器上,有兩個 Active Manager 角色: 主要 Active Manager (PAM) 和 待命 Active Manager (SAM) 。 PAM 是 DAG 中的主動管理員角色,可決定哪些複本為主動和被動。 PAM 負責取得拓撲變更通知,並回應伺服器失敗。 持有 PAM 角色的 DAG 成員一律是目前擁有叢集仲裁資源的成員, (預設叢集群組) 。 如果擁有叢集仲裁資源的伺服器失敗,PAM 角色會自動移至存取叢集仲裁資源擁有權的存活伺服器。 此外,如果您需要讓裝載叢集仲裁資源的伺服器離線進行維護或升級,您必須先將 PAM 移至 DAG 中的另一部伺服器。 PAM 可控制資料庫複本之間作用中指定的所有移動。 (任何指定的時間都只能有一個複本處於作用中狀態,而且該複本可以掛接或卸載。) PAM 也會在本機系統上執行 SAM 角色的功能, (偵測本機資料庫和本機資訊存放區失敗) 。

SAM 所提供的資訊,是關於哪一台伺服器會將信箱資料庫的主動副本裝載至執行 Active Manager 用戶端元件的其他 Exchange 元件 (例如,用戶端存取或傳輸服務)。 SAM 會偵測到本機資料庫與本機資訊儲存庫的失敗。 它會要求 PAM 初始化容錯移轉 (如果資料庫已複寫的話) 來回應失敗。 SAM 無法決定容錯移轉目標,也無法更新 PAM 中資料庫的位置狀態。 它會存取主動資料庫副本位置狀態,以回答所收到的主動資料庫副本查詢。

注意事項

Exchange 2013 不是叢集式應用程式。 它會使用 clusapi.dll 中實作的叢集程式庫功能,來執行叢集、群組、叢集網路 (活動訊號)、節點管理、叢集登錄與一些控制碼功能。 此外,Active Manager 會將目前的信箱資料庫資訊 (例如,主動與被動資料以及裝載的資料) 儲存在叢集資料庫 (也稱為叢集登錄) 中。 雖然這項資訊是直接儲存在叢集資料庫中,但卻無法由其他任何元件直接存取。

在 Exchange 2013 中,Microsoft Exchange 複寫服務會定期監視所有已裝載資料庫的健康狀態。 此外,它還會監控可延伸儲存引擎呼 (ESE),查看是否有任何 I/O 錯誤或失敗。 當服務偵測到失敗時,會通知 Active Manager。 這時 Active Manager 會判斷應該裝載那一個資料庫副本,以及裝載該資料庫需要哪些條件。 此外,它會追蹤信箱資料庫的主動副本 (依據上次裝載的資料庫副本),並將追蹤結果資訊提供給與該用戶端連線的用戶端存取伺服器。

最佳副本選擇

當發生失敗而無法存取已複寫信箱資料庫的主動副本時,Active Manager 會採取幾個步驟,透過選取要啟動之受影響資料庫的最佳可行被動副本,以便從失敗中復原。 此處理程序在 Exchange 2010 中稱為最佳副本選擇 (BCS),現在在 Exchange 2013 中則稱為最佳副本和伺服器選擇 (BCSS)。 一般程序進行的順序如下:

  1. 受管理的可用性或 Active Manager 偵測到失敗狀況,或由系統管理員啟動較不具目標的切換。

  2. PAM 執行 BCSS 內部演算法。

  3. 發生稱為 嘗試複製最後一個記錄 (ACLL) 的程式,它會嘗試在失敗或切換之前,從裝載使用中資料庫複本的伺服器複製任何遺失的記錄檔。

  4. ACLL 程式完成之後,裝載資料庫複本之信箱伺服器的 AutoDatabaseMountDial 值會與所啟用資料庫的複製佇列長度進行比較。 此時:

    • 遺失的記錄檔數目等於或小於 AutoDatabaseMountDial的值,在此情況下會發生步驟 5。

    • 遺失的記錄檔數目大於 AutoDatabaseMountDial的值,在此情況下,如果有的話,Active Manager 會嘗試啟用下一個最佳可用的複本。

  5. PAM 透過遠端程序呼叫 (RPC),向 Microsoft Exchange Information Store 發出裝載要求。 此時:

    • 資料庫會裝載並供用戶端使用。

    • 資料庫不會裝載,而由 PAM 對下一個最佳副本 (若有) 執行步驟 3 和 4。

在 Exchange 2010 中,BCS 處理程序已評估每個資料庫副本的各種面向,以判斷最適合啟用的副本。 其中包含:

  • 複製佇列長度

  • 重新顯示佇列長度

  • 資料庫的狀態

  • 內容索引狀態

在 Exchange 2013 中,Active Manager 會執行所有相同的 BCS 檢查和階段,但現在還包括使用健全狀況狀態的降序條件約束。 具體而言,BCSS 包含數個新的健全狀況檢查,這屬於 Exchange 2013 中內建之受管理可用性監控元件的一部分。 Active Manager 執行四種新的額外檢查(以執行的順序記載):

  1. 全部狀況良好:檢查裝載受影響資料庫複本的伺服器,該資料庫的所有監視元件都處於狀況良好狀態。

  2. 最高標準狀況良好:檢查裝載受影響資料庫複本的伺服器,該資料庫的所有監視元件都具有狀況良好的正常優先順序。

  3. 全部優於來源:檢查裝載受影響資料庫複本的伺服器,其監視元件的狀態優於裝載受影響複本的目前伺服器。

  4. 與來源相同:檢查裝載受影響資料庫複本的伺服器,該資料庫的監視元件狀態與裝載受影響複本的目前伺服器相同。

如果 BCSS 是因監控元件觸發了容錯移轉而被叫用 (例如,透過容錯移轉回應程式),則會實施另一個強制條件約束,也就是目標伺服器的元件健全狀態必須優於發生容錯移轉的伺服器。 例如,如果Outlook Web App失敗會透過容錯移轉回應程式觸發容錯移轉,BCSS 必須選取裝載受影響資料庫複本的伺服器,Outlook Web App狀況良好。

最佳副本選擇程序

至於資料庫失敗 (不是通訊協定失敗),Exchange 2013 中的 Active Manager 會執行與 Exchange 2010 相同的檢查。 開始進行最佳副本選擇的程序時,Active Manager 會先建立一份可能啟動的資料庫副本清單。 任何無法存取或被系統管理人員封鎖而無法啟動的資料庫副本都將被忽略,也不會用於選擇程序中。 清單的順序取決於 AutoDatabaseMountDial的值:

  • 如果 AutoDatabaseMountDial 設定為裝載資料庫複本的所有伺服器上以外的 Lossless 任何值,Active Manager 會使用複製佇列長度做為主鍵來排序產生的清單。 計算是根據 LastLogInspected (從副本的角度),所以可能副本的清單是依 LastLogInspected 的最高值 (這將是複製佇列長度最低的副本) 來排序。 如有必要,Active Manager 會使用「啟動喜好設定」的值做為次要索引鍵,再次排序清單,打破有兩個以上被動副本具有相同複製佇列長度的平手狀況。 「啟動喜好設定」值最低的副本,在清單上具有較高優先順序。

  • 如果在裝載資料庫複本的任何伺服器上設定 AutoDatabaseMountDial 的值 Lossless ,Active Manager 會使用啟用喜好設定的值作為主鍵,以遞增順序排序產生的清單。 此外,如果系統管理員執行不失真伺服器或資料庫切換但未指定目標,Active Manager 也會使用「啟動喜好設定」的值做為主要索引鍵,依遞增順序排序產生的清單。

接下來,Active Manager 會嘗試在清單中尋找具有 Healthy、DisconnectedAndHealthy、DisconnectedAndResynchronizing 或 SeedingSource 狀態的信箱資料庫副本,然後再使用依序排列的十組準則來評估清單中每個副本啟動的可能性。 Active Manager 會判斷是有任何可能啟動的副本符合第一組準則:

  • 它具有 Healthy 狀態的內容索引。

  • 它的副本佇列長度少於 10 個記錄檔。

  • 它的重新顯示佇列長度少於 50 個記錄檔。

如果沒有任何一個資料庫副本符合第一組準則,Active Manager 會嘗試尋找符合第二組準則的資料庫副本:

  • 它具有 Crawling 狀態的內容索引。

  • 它的副本佇列長度少於 10 個記錄檔。

  • 它的重新顯示佇列長度少於 50 個記錄檔。

如果沒有任何一個資料庫副本符合第二組準則,Active Manager 會嘗試尋找符合第三組準則的資料庫副本:

  • 它具有 Healthy 狀態的內容索引。

  • 它的重新顯示佇列長度少於 50 個記錄檔。

如果沒有任何一個資料庫副本符合第三組準則,Active Manager 會嘗試尋找符合第四組準則的資料庫副本:

  • 它具有 Crawling 狀態的內容索引。

  • 它的重新顯示佇列長度少於 50 個記錄檔。

如果沒有任何一個資料庫副本符合第四組準則,Active Manager 會嘗試尋找符合第五組準則的資料庫副本:

  • 它的重新顯示佇列長度少於 50 個記錄檔。

如果沒有任何一個資料庫副本符合第五組準則,Active Manager 會嘗試尋找符合第六組準則的資料庫副本:

  • 它具有 Healthy 狀態的內容索引。

  • 它的副本佇列長度少於 10 個記錄檔。

如果沒有任何一個資料庫副本符合第六組準則,Active Manager 會嘗試尋找符合第七組準則的資料庫副本:

  • 它具有 Crawling 狀態的內容索引。

  • 它的副本佇列長度少於 10 個記錄檔。

如果沒有任何一個資料庫副本符合第七組準則,Active Manager 會嘗試尋找符合第八組準則的資料庫副本:

  • 它具有 Healthy 狀態的內容索引。

如果沒有任何一個資料庫副本符合所有第八組準則,Active Manager 會嘗試尋找符合第九組準則的資料庫副本:

  • 它具有 Crawling 狀態的內容索引。

如果沒有任何一個資料庫副本符合第九組準則,Active Manager 會嘗試使用 Healthy、DisconnectedAndHealthy、DisconnectedAndResynchronizing 或是 SeedingSource (第十組準則) 來啟動任何一個資料庫副本。 如果找不到任何符合第十組準則的資料庫副本,它就無法自動啟動資料庫副本。

找到符合一或多組準則的一或多個副本之後,便會執行 ACLL 處理程序,以便將任何記錄檔從原始來源複製到可能的新主動副本。 在 ACLL 處理程序完成之後,PAM 會發出裝載要求,且資料庫會裝載並供用戶端使用,或者資料庫並不會裝載,而由 PAM 搜尋下一個最佳副本 (若有)。