2013年3月19日 星期二

Exchange 2013 OAB 進化大躍進


Exchange Server 2013 OAB 進化大躍進

如果您是 Exchange Server 管理者,那麼您應該對 Offline Address Book (OAB) 離線通訊錄不陌生. 它在很久很久以前就一直是 Exchange Server 的重要元件之一. Outlook MAPI 用戶端透過它可以在離線的狀態仍然可以存取到 Exchange Address List (通訊清單). 因此對早期網路還不是這麼發達連線品質還不是這麼穩定的年代(數據機撥接連網),它可是很重要的一個服務.

個人將 Exchange OAB 可以區分成三個階段.

第一階段 Exchange 2003()以前的版本. 在這個階段中 Exchange OAB 檔案會被存放在 Exchange Server Public Folder, 所有要使用 OAB Outlook MAPI 用戶端都必需從公用資料夾中下載取得完整的OAB檔案. 這個階段擔任 OAB 產生的伺服器預設為組織中第一台安裝的 Exchange Server. OAB 檔案會以 Exchange 系統資料夾方式複寫到其它擁有公用資料庫的 Exchange Server .

第二階段 Exchange 2007 & 2010 的版本. 在這個階段中的 Exchange OAB 檔案會以兩種方式被儲存: 一是為了向下相容的傳統公用資料夾方式,二是以IIS Web 檔案方式儲存. Outlook 2003 ()以前的MAPI 用戶端會經由公用資料夾的方式下載取得OAB檔案. Outlook 2007 () 以後的MAPI 用戶端則會透過 Autodiscover SCP 方式直接向 CAS Server 下載取得 OAB檔案. 無論是哪一種方式, OAB 檔案的產生還是由固定一台的 Exchange Mailbox Server 來負責.

第三階段 Exchange Server 2013的版本,也就是本文的主題.

Exchange Server 2013OAB版本,做了許多功能上的進化改變.

首先是 OAB Generator 由過去的 Exchange Server (Mailbox Server)來擔任. 如同前述預設組織中第一台被安裝的 Exchange Server 將會擔任 OAB Generator Server. 在這種情況下會有單點失敗的風險. 如果當OAB Generation Server Failed , OAB就會無法持續被更新而用戶端也將無法下載到最新的 OA B檔案.
 
通常在這種情況下管理者必需重新指定另外一台 Exchange Server (Mailbox Server)做為OAB Generator Server,並重新產生一份全新的OAB檔案內容. 如果在使用者數量龐大的 Exchange 組織中這種Failure & Downtime 及對用戶端所造成的影響會是很麻煩的一件事.

現在, Exchange Server 2013 OAB 不再是由 Exchange Server 來擔任 OAB Generator 而是改由名為 Organization Mailbox 的信箱來擔任 OAB Generator. 這樣做的好處是可以避免單點失敗的問題. 每一台 Exchange 2013 Mailbox Server 都可以去Host Organization Mailbox, 也因此 Organization Mailbox 可以透過 Exchange Server 2013 DAG 來達到HA 的架構.

而在儲存發佈方面, Exchange Server 2013 OAB 現在只提供 IIS Web 檔案的方式發佈. 所有Outlook (2007~2013) Anywhere 用戶端會透過 Exchange 2013 CAS Server 下載取得最新的 OAB 檔案內容.

用戶端取得 OAB 檔案的流程如下:
  1. Organization Mailbox 會透過Microsoft Exchange Mailbox Assistants Service底下的 OABGeneratorAssistant 元件來產生 OAB 檔案
  2. 產生出來的 OAB 檔案會先存放在 Organization Mailbox 中,後再被複製到本機 %ExchangeInstallPath%\ClientAccess\OAB 路徑下存放
  3. 此路徑為Exchange 2013 Mailbox Server 獨有
  4. Outlook 透過 Autodiscover 取得 OAB URL (https://mail.contoso.com/oab )
  5. CAS Server 要求 Outlook Client進行驗證以便取得 OAB
  6. CAS Server 向 AD 查詢取得距離 Outlook 使用者最近的 Organization Mailbox (Local Site or Remote Site)
  7. CAS Server 再向 AD 查詢確定這個 Organization Mailbox 所在的 DB 名稱
  8. 然後向 Active Manager 查詢確認在 Hosting 這個 DB 的 Mailbox Server
  9. CAS 將下載 OAB 檔案的要求 Proxies 給這台 Mailbox Server 並開始接收檔案完成後由 CAS Server 將 OAB 檔案passes給用戶端
  10. 而 CAS Server 上將不再儲存 OAB檔案
這種運作流程可以確保每一次 Outlook 用戶端所取得的都是最新版本的 OAB 檔案,而不是儲存在 CAS Server 上較舊版本的 OAB 檔案.

另一項改變是在升級共存時,您再也不需要去將舊有的OAB 檔案同步到 Exchange Server 2013. 當你在安裝第一台 Exchange Server 2013 至現有的 Exchange 組織環境中時,它就會自動產生一組名稱為 "Contoso-OAB (Ex2012)" Organization Mailbox (其中ContosoExchangeOrganization Name), 如下圖:
 
 
當你將使用者從現有的 Exchange Server 信箱搬到 Exchange 2013 時只需要將使用者信箱所在的Mailbox DB 的 OAB 改指向到此Organization Mailbox即可,如下圖:
 
相信這對有經歷過公用資料夾同步OAB至其它 Exchange Server痛苦經驗的管理者來說是個好消息.

好吧! 那你該怎麼知道哪一個 Mailbox 才是 Organization Mailbox?

你可以透過 Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"} 指令結果來識別出Organization Mailbox,如下圖:
 
 
管理者可以為每一個 AD Site 建立最多一個 Organization Mailbox.

下次有時間將談談 OAB Organization MailboxFailover 程序.

沒有留言:

張貼留言