共用方式為


使用 DAG 時共存的 Hub Transport 和 Mailbox Server 角色

 

適用版本: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上次修改主題的時間: 2015-03-09

Microsoft Exchange Server 2007 在使用高可用性功能 (如單一複本叢集 (SCC) 或叢集連續複寫 (CCR)) 時,不在相同伺服器硬體上支援 Hub Transport server role 和 Mailbox server role。Exchange 2007 中的最小高可用性部署需要四部伺服器:兩個節點用於信箱高可用性,兩部 Hub Transport Server 用於郵件傳輸備援。

若要降低提供高可用性解決方案所需的伺服器數目,Exchange Server 2010 可在使用資料庫可用性群組 (DAG) 時,於相同伺服器硬體上支援 Hub Transport server role 和 Mailbox server role。Exchange 2010 提供一個稱為「陰影備援」的功能,該功能可以在傳送郵件時,保護資料不會遺失。搭配兩者使用時,DAG 和陰影備援提供高度靈活的郵件基礎結構。

本主題著重於將 Exchange 2010 Hub Transport server role 部署於與參與 DAG 之信箱伺服器相同的伺服器硬體上時,該 Hub Transport server role 所表現的行為方式。若要深入了解 DAG,請參閱瞭解資料庫可用性群組

提交與傳遞郵件

陰影備援可避免資料遺失,同時會以沿著郵件路徑保留郵件複本的方式傳輸郵件。如果郵件在傳輸時因為失敗而遺失,則會透過傳輸元件重新提交陰影複製的郵件。如需實作陰影備援方式的詳細資訊,請參閱瞭解陰影備援

信箱伺服器會在使用者按一下 [傳送] 初始郵件提交時使用,以及在最終傳遞期間,當郵件儲存在收件者的 [收件匣] 時使用。當提交郵件以進行傳輸時,該郵件的主要複本會位於提交郵件之 Hub Transport Server 的佇列中。該郵件的陰影複製即是儲存於寄件者之 [寄件備份] 資料夾中的項目。傳遞郵件時,主要複本會位於收件者的 [收件匣] 中,而郵件的陰影複製則會儲存於傳輸暫放中。

在 Hub Transport server role 和 Mailbox server role 共存於同一個伺服器硬體上的高可用性案例中,最重要的是要嘗試避免讓郵件的兩種複本位於相同的伺服器上。請考慮如下圖所示的部署案例。該拓撲是由兩部參與 DAG 且已安裝 Hub Transport server role 的 Exchange 伺服器組成。資料庫 DB1 及 DB2 是 DAG 的一部分。圖中主動資料庫以綠色顯示,而被動資料庫以藍色顯示。

兩部含有 Hub Transport server role 和 Mailbox server role 的伺服器高可用性拓撲

具有 Hub 及 Mailbox 角色的雙伺服器 HA 拓撲

在此拓撲中,假設信箱位於 DB1 的使用者傳送了一封郵件。如果該郵件已提交至 Server1 上的 Hub Transport server role,則主要及陰影郵件將會實際儲存在 Server1 上。主要郵件將會位於 Hub Transport Server 佇列中,而陰影郵件將會位於寄件者的 [寄件備份] 資料夾中,如下圖所示。

不需要的提交路徑

不需要的提交路徑

同樣地,如果 Server1 上的 Hub Transport server role 接收以 DB1 上的使用者為目的地的郵件,該郵件會直接傳遞,而主要和陰影郵件將會實際儲存在 Server1 上。主要郵件將會位於收件者的 [收件匣] 中,而陰影郵件將會位於傳輸暫放中,如下圖所示。如果伺服器的任一執行個體發生故障,則有可能會使郵件遺失。

不需要的傳遞路徑

不需要的傳遞路徑

為避免可能發生郵件遺失的這些案例,Exchange 嘗試透過可確保郵件的主要和陰影複本是儲存在不同實體伺服器的路由來提交或傳遞郵件。修改後的郵件提交和傳遞行為將在以下各節中討論。

郵件提交行為

當其信箱位於屬 DAG 成員之資料庫的使用者傳送郵件時,如果其偵測到本機伺服器上同時也安裝了 Hub Transport Server 時,郵件提交服務會優先使用遠端 Hub Transport Server。如「兩部含有 Hub Transport server role 和 Mailbox server role 的伺服器高可用性拓撲」圖中所示,如果其信箱位於 DB1 的使用者傳送郵件,則郵件提交服務將會嘗試使用 Server2 上安裝的 Hub Transport Server 來提交郵件。下圖顯示此慣用的郵件提交路徑。

慣用的提交路徑

慣用的提交路徑

在站台中沒有其他 Hub Transport Server 可用的情況下 (例如,若 Server2 因為排程維護而無法使用),郵件提交服務將會回復為將郵件提交至本機 Hub Transport Server。即使這是備援用不需要的提交路徑,Exchange 也不會延遲郵件的傳遞。這個後援提交路徑對於可用性和低傳遞延遲而言是必要的。

郵件傳遞行為

郵件路由及傳遞行為在大部分情況下不會變更。例如,若 Server1 如「兩部含有 Hub Transport server role 和 Mailbox server role 的伺服器高可用性拓撲」圖中所示接收 DB2 上收件者的郵件,則它會正常傳遞郵件,因為該資料庫是在不同的伺服器上作用。當 Hub Transport Server 將處理連入郵件時,唯一不同的案例是,當目標信箱位於屬於 DAG 一部分的資料庫上,且該資料庫同時又在本機伺服器上作用時。因為在此情形下直接傳遞將會導致傳遞的郵件和傳輸暫放中的複本位於相同伺服器上,Hub Transport Server 將會改為將此郵件重新路由至相同站台內的另一部 Hub Transport Server。下圖顯示此案例中的郵件傳遞路徑。

慣用的傳遞路徑

慣用的傳遞路徑

在站台中沒有其他 Hub Transport Server 可用的情形下,Hub Transport Server 將會回復為本機傳遞,即使其為備援用不需要的傳遞路徑。而且,這個後援傳遞路徑對於可用性和低傳遞延遲而言是必要的。

郵件流程案例

此案例將詳細說明在各種郵件流程案例中,當 Hub Transport server role 和 Mailbox server role 共存於相同伺服器上時,將會發生什麼狀況。下圖中所示的拓撲可用來說明各種可能的郵件流程案例。

郵件流程案例的範例拓撲

郵件流程案例的範例拓撲

下表顯示 Server1 上的 Hub Transport server role 在各種案例下如何處理郵件。在所有這些情況下,Server1 均被視為是進入點。

寄件者位置 收件者位置 一般郵件路徑 高可用性案例

DB1,在 Server1 上作用中

DB1,在 Server1 上作用中

  1. Server1 上的提交服務會將郵件提交至 Server2 上的 Hub Transport server role。

  2. Server2 上的 Hub Transport server role 會將郵件傳遞至 Server1 上的 DB1,並將郵件新增至 Server2 上的傳輸暫放。

  • 如果 Server1 在郵件提交完成之前故障,位於寄件者之 [寄件匣] 中的郵件將會遺失。

  • 如果 Server2 在郵件提交完成之前故障,則會將郵件提交至 Server1 上的 Hub Transport server role。

  • 如果 Server1 在將郵件提交至 Server2 上 Hub Transport server role 完成之後故障,則 Server2 上的 DB1 將會變為作用中狀態。在 DB1 裝載之前,郵件將會佇列於 Server2 上,然後由 Hub Transport server role 在本機傳遞郵件。

  • 如果 Server2 在將郵件提交至 Server2 上 Hub Transport server role 完成之後故障,則會將 DB1 中的陰影郵件重新提交至 Server1 上的 Hub Transport server role,以便在本機傳遞郵件。

  • 如果 Server1 在郵件傳遞完成之後故障,則 Server2 上的 DB1 將會變為作用中狀態。如果已傳遞的郵件尚未認可到資料庫中,則會從 Server2 上的傳輸暫放重新傳遞郵件。

DB1,在 Server1 上作用中

DB2,在 Server2 上作用中

  1. Server1 上的提交服務會將郵件提交至 Server2 上的 Hub Transport server role。

  2. Server2 上的 Hub Transport server role 會將郵件重新路由至 Server1 上的 Hub Transport server role。

  3. Server1 上的 Hub Transport server role 會將郵件傳遞至 Server2 上的 DB2,並將郵件新增至 Server1 上的傳輸暫放。

  • 在郵件提交完成之前發生的任何伺服器故障,都會以上一列中所述的相同方法處理。

  • 如果 Server1 在將郵件提交至 Server2 上 Hub Transport server role 完成之後故障,則 Server2 上的 Hub Transport server role 將會在本機傳遞郵件。

  • 如果 Server2 在將郵件提交至 Server2 上 Hub Transport server role 完成之後故障,則 Server1 上的 DB2 將會變為作用中狀態。在 Server1 上的 Hub Transport server role 偵測到 Server2 上的 Hub Transport server role 無法使用後,它將會重新提交陰影郵件。在 Server1 上裝載 DB2 之後,將會在本機傳遞郵件。

  • 如果 Server1 在將郵件重新路由至 Server1 以便傳遞之後故障,Server2 上的 Hub Transport server role 將會在其偵測到 Server1 上的 Hub Transport server role 無法使用後,重新提交陰影郵件。然後,它將會在本機傳遞郵件。

  • 如果 Server2 在將郵件重新路由至 Server1 以便傳遞之後故障,Server1 上的 DB2 將會變為作用中狀態。郵件將保持佇列在 Server1 上,直到在 Server1 上裝載 DB2 為止,然後它便會在本機進行傳遞。

  • 如果 Server2 在郵件傳遞完成後故障,則 Server1 上的 DB2 將會變為作用中狀態。如果已傳遞的郵件尚未認可到資料庫中,則會從 Server1 上的傳輸暫放重新傳遞郵件。

外部

DB1,在 Server1 上作用中

  1. Server1 上的 Hub Transport server role 會將郵件重新路由至 Server2 上的 Hub Transport server role。

  2. Server2 上的 Hub Transport server role 會將郵件傳遞至 Server1 上的 DB1,並將郵件新增至 Server2 上的傳輸暫放。

  • 如果 Server1 在其從 Edge1 完成接收郵件前故障,Edge1 將會嘗試傳遞至 Server2 上的 Hub Transport server role。

  • 如果 Server1 在其從 Edge1 完成接收郵件後故障,Edge1 會在其偵測到 Server1 上的該 Hub Transport server role 無法使用之後,將郵件重新提交至 Server2 上的 Hub Transport server role。Server2 上的 Hub Transport server role 隨後會在 Server2 上裝載 DB1 之後,在本機傳遞郵件。

  • 所有的其他故障案例都會以如第一列所述的相同方式處理。

外部

DB2,在 Server2 上作用中

  1. Server1 上的 Hub Transport server role 會將郵件傳遞至 Server2 上的 DB2,並將郵件新增至 Server1 上的傳輸暫放。

  • 如果 Server1 在其從 Edge1 完成接收郵件前故障,Edge1 將會嘗試傳遞至 Server2 上的 Hub Transport server role。

  • 如果 Server1 在其從 Edge1 完成接收郵件後,但在將郵件傳遞至 Server2 上的 DB2 之前故障,Edge1 會將陰影郵件重新提交至 Server2 上的 Hub Transport server role。這是因為 Server1 會在其將郵件成功傳遞至 DB2 之後,才會傳送認可給 Edge1。由於 Edge1 尚未收到認可,所以會在其偵測到 Server1 無法使用之後重新提交郵件。

  • 如果 Server2 在郵件傳遞完成之後故障,則 Server1 上的 DB2 將會變為作用中狀態。如果已傳遞的郵件尚未認可到資料庫中,則會從 Server1 上的傳輸暫放重新傳遞郵件。

上表的重點是最小案例,其中在與參與 DAG 的 Mailbox server role 共存的站台中,只有兩部 Hub Transport Server。在其中含有專用 Hub Transport Server 的較複雜部署中,也會在決定路由決策時使用這些伺服器。不過,如果您的大型部署足以在其中使用專用的 Hub Transport Server,則最佳的作法是不要在參與 DAG 的信箱伺服器上安裝 Hub Transport server role。

 © 2010 Microsoft Corporation. 著作權所有,並保留一切權利。