Exchange Server 2013 の OAB

原文の記事の投稿日: 2012 年 10 月 27 日 (土曜日)

OAB の歴史

オフライン アドレス帳は OAB とも呼ばれ、長いこと Exchange インフラストラクチャの重要なコンポーネントであり続けています。OAB は、オフライン時にアドレス帳を参照するために Microsoft Outlook クライアントによって Exchange キャッシュ モードで使用されます。OAB は、Exchange サーバーの負荷を低減するという点でも重要です。なぜなら、キャッシュ モードの Outlook クライアントは必ずローカル OAB に対して最初に照会を行うからです。

OAB は、Exchange のいくつものリリースを経て、徐々に進化してきました。OAB アーキテクチャの大幅な見直しが最後に行われたのは Exchange Server 2007 で、このとき、OAB の Web 配布と、OAB の配布で主要な役割を果たす CAS サーバー ロールが導入されました。しかし、OAB 生成プロセス自体はあまり変更されていません。

これまでは確かにそうでした。

Exchange Server 2013 で導入したサーバー ロール アーキテクチャの変更に伴って、OAB を生成してクライアントに配布する方法も変更しました。では、Exchange 2013 の新しい OAB を、これまでのものと比較しながら見ていくことにしましょう。

OAB 生成の変更点

OAB を生成するサーバー

以前のどの Exchange リリースでも、OAB 生成は、Server プロパティによって特定の Exchange サーバーに結び付けられていました。最初の Exchange サーバーをインストールするときに、セットアップによって、そのサーバーが OAB 生成サーバーとして指定されます。必要に応じて新しい OAB を作成できます。新しい OAB を作成するときは、OAB 生成サーバーを指定する必要があります。

Exchange Server 2010 の OAB:

Get-OfflineAddressBook "Default Offline Address Book" | fl name,server
 
Name : Default Offline Address Book
Server : MBX1

この方法の不利な点は、OAB 生成用として構成されるサーバーが 1 つだけであり、それが単一障害点になることでした。このサーバーが長期にわたって使用できなくなった場合、OAB 生成が影響を受けました。

Exchange 2013 では、"組織メールボックス" と呼ばれる特別な調停メールボックスをホストする各 Exchange 2013 メールボックス サーバーによって OAB が生成されます。OAB 生成は、もはや Server パラメーターで固定されることはありません。

Exchange Server 2013 の OAB:

Get-OfflineAddressBook "Default Offline Address Book (Ex2012)" | fl name,server
 
Name : Default Offline Address Book (Ex2012)
Server :

OAB が特定のサーバーに固定されなくなることで、複数のメールボックス サーバーで同じ OAB を生成できるようになります。この新しいアーキテクチャにより、OAB 生成の回復性が向上します。

OAB を生成するコンポーネント

以前のバージョンの Exchange では、OAB 生成で中核的な機能を果たしていたのが Microsoft Exchange System Attendant サービスです。OAB 生成はスケジュール化されたプロセスでした。つまり、OAB 生成はサーバーの負荷に関係なく、OAB プロパティで構成された指定の時刻に開始されていました。

Exchange 2013 では、OABGeneratorAssistant (Microsoft Exchange メールボックス アシスタント サービスの下で実行されるメールボックス アシスタント) によって OAB が生成されます。他の多くのメールボックス アシスタントと同様、OABGEnerationAssistant も調整されたプロセスで、サーバーの負荷に応じて実行されたり一時停止されたりします。

OAB ファイルが格納される場所

以前のバージョンの Exchange では、メールボックス サーバーによって生成された OAB は %ExchangeInstallPath%\ExchangeOAB フォルダーに格納されました。このフォルダーは、CAS が Outlook クライアントへの配布用に OAB ファイルを取得できるように、共有されていました。

Exchange 2013 では、OAB ファイルが生成されると、まず組織メールボックスに格納され、後で %ExchangeInstallPath%\ClientAccess\OAB\ フォルダーにコピーされます。

OAB 配布の変更点

Exchange 2007 と Exchange 2010 は、OAB の配布方法として、Web 配布とパブリック フォルダー配布という 2 種類の配布方法をサポートしていました。Exchange 2013 は、Web 配布方法のみをサポートしているので、ここでは Web 配布方法の変更点について説明します。

Exchange 2007/2010 の CAS は、メールボックス サーバー上で生成された OAB ファイルを取得し、それらをローカルに格納していました。CAS ロールの Microsoft Exchange ファイル配布サービスが、OAB ファイルを取得するというタスクを実行していました。

クライアント側からの OAB ダウンロードの流れは次のようになっていました。

  1. Outlook が自動検出から OAB URL を受け取り、CAS サーバーに到達します。
  2. CAS がユーザーを認証し、ローカル ディスクの OAB ファイルを提供します。

この方法には不利な点が 2 つあります。

  1. CAS が OAB ファイルをローカルに保持していない場合は、OABダウンロードが失敗します。
  2. CAS のファイル配布サービスが機能していない場合は、クライアントが古い OAB ファイルを受け取ります。つまり、更新されたファイルを受け取りません。

Exchange 2013 では、OAB ファイルが CAS にローカルに格納されることはありません。CAS 2013 は、すべての OAB ダウンロード要求を適切な Exchange 2013 メールボックス サーバーにプロキシします。アーキテクチャのこの変更により、Microsoft Exchange ファイル配布サービスが CAS ロールから削除されます。

Exchange 2013 では、OAB ダウンロードの流れは次のようになります。

    1. Outlook が自動検出から OAB URL を受け取り、OAB URL によって指定された CAS 2013 に到達します。

CAS サーバーは次のアクションを実行します。

  1. OAB の初期認証を行います。
  2. Active Directory に照会を行い、要求したユーザーにとって最も近い組織メールボックスを判別します。
  3. 再び Active Directory に照会を行い、その組織メールボックスをホストしているメールボックス データベースを判別します。
  4. アクティブ マネージャーに照会を行い、メールボックス データベースがアクティブになっている (マウントされている) メールボックス サーバーを判別します。
  5. ステップ 4. で特定されたメールボックス サーバーに要求をプロキシします。
  6. OAB ファイルを取得し、それらをクライアントに渡します。

この新しいワークフローによって、以前の OAB ダウンロード ワークフローの不利な点が克服されます。

組織メールボックス

組織メールボックスは、Exchange 2013 で導入された新しい種類の調停メールボックスです。OrganizationCapabilityOABGen 永続機能を持つ調停メールボックスは、組織メールボックスと呼ばれます。このメールボックスは、OAB の生成と格納と配布において非常に重要な役割を果たします。

組織メールボックスをホストする各 Exchange Server 2013 メールボックス ロールは、環境内で定義されているすべての Exchange 2013 OAB を生成します。OAB は、まず組織メールボックス内に生成され、後でディスクにコピーされます。

組織メールボックスを特定するには、次のコマンドを使用します。

Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"}

例:

Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like "*oab*"}
 
Name Alias ServerName ProhibitSendQuota
---- ----- ---------- -----------------
SystemMailbox{bb558c35... SystemMailbox{bb5... mbx1 Unlimited

OAB ファイルを組織メールボックスに格納することで、OAB ファイルの回復性が向上します。

まとめ: 実際のシナリオ

次のシナリオは、これまでに学んだ重要な点をまとめたものです。

  1. MBX1 と MBX2 は Exchange 2013 メールボックス サーバーで、DAGのメンバーです。CAS1 は Exchange 2013 CAS です。
  2. 組織メールボックスは、メールボックス データベース DB1 にあります。DB1 は、MBX1 と MBX2 にコピーがあります。
  3. DB1 は、MBX1 で現在アクティブになっています。
  4. MBX1 の Microsoft Exchange メールボックス アシスタント サービスによって OAB が生成されます。
  5. OAB は、まず組織メールボックス内に生成され、後で MBX1 のディスクにコピーされます。この時点で、MBX2 は OAB 生成において何の役割も果たしていません。
  6. Outlook クライアントが OAB のダウンロードを試み、OAB URL によって CAS1 に到達します。
  7. CAS1 がアクティブ マネージャーに照会を行い、組織メールボックス (DB1) をホストしているデータベースが MBX1 上でアクティブになっていることを確認します。
  8. CAS1 が OAB ダウンロード要求を MBX1 にプロキシし、ファイルをクライアントに返します。
  9. この時点で、MBX1 が電源障害によりダウンし、DB1 がサーバー MBX2 上でアクティブ化されます。
  10. CAS1 が OAB ダウンロード要求をもう 1 つ受け取り、再びアクティブ マネージャーに照会を行います。現在、DB1 は MBX2 上でアクティブになっているので、今度はその要求を MBX2 にプロキシします。
  11. MBX2 が組織メールボックス内の OAB ファイルをディスクに抽出して、クライアントに最新のファイルを提供できるようにします。
  12. MBX1 がオンラインに戻りますが、DB1 は MBX2 上でアクティブなままです。
  13. 次の OAB 生成作業サイクルで、MBX2 の Microsoft Exchange メールボックス アシスタント サービスによって OAB が生成されます。

このシリーズの次の記事では、Exchange 2013 の新しい OAB の管理方法を説明します。

Bhalchandra Atre

これはローカライズされたブログ投稿です。原文の記事は「OAB in Exchange Server 2013」をご覧ください。