medium_36833332

Exchange Server 2010導入時にはCASが1台しかなくても例外なく極力早い段階でRPCClientAccessServerを設定するべきです

CassArrayは必ず作成すべし

Exchange Server 2010では、OutlookクライアントからのMAPIアクセスに対してCasへのアクセスポイントを集約するための仕組みとしてCasArrayが存在します。それをコントロールするRPCClientAccessServerという属性がデータベースに存在します。この動きを理解していないと思わぬ落とし穴にはまる可能性があります。

基本的にCasArrayは2台以上のCASサーバーがサイト内に存在している場合にOutlookの接続先を指定するもので、接続先を単一の名前にすることで冗長化することを可能にしています(冗長化の仕組み自体はCasArrayは提供しないので、別途HWロードバランサー、SWロードバランサー、NLBなどで冗長化の仕組みを構築する必要があります)。サイト内に1台しかCASサーバーが存在しない場合には特にCASArrayを作成する必然性はありません。・・・が、実はその場合でもCasArrayを作成しておいたほうが良いです。つまり、どんな場合でも例外なくCasArrayを作成しておき、そこに対して接続させるように構成すべきなのです。このことは以下のドキュメントにも明記されています。

クライアント アクセス サーバー アレイは、組織内に 1 つのクライアント アクセス サーバーしかない場合でも作成することをお推めします。クライアント アクセス サーバー アレイが作成されると、クライアントは、クライアント アクセス サーバーの完全修飾ドメイン名 (FQDN) に直接ではなく、クライアント アクセス サーバー アレイの仮想名によって接続します。1 つのクライアント アクセス サーバーを Active Directory サイト内部で置き換える必要があるか、2 つめのクライアント アクセス サーバーを追加する場合、クライアント上でプロファイル更新は必要ありません。

つまり、一度プロファイルが作成されてしまうとCASの実ノードへのアクセスがクライアントに記憶されてしまい、その後CasArrayを使う構成にしたりCasを切り替えたりする場合にプロファイルの更新がクライアント側で必要になってしまう危険性があるのです。サーバー側で管理者が操作するだけで変更できるならともかく、クライアント側で個別に作業が発生してしまうのは管理者にとって悪夢です。しかもそれが自動化しづらいものとなると・・・。事前の準備が肝心です。

構築時の注意点

構築時にはいくつか注意点があります。知っていないと思わぬ挙動に頭を悩ませることになる危険性があります。

まず新しくCasArrayを作成するのは簡単です。

  1. New-ClientAccessArray Name “CAS Array” Fqdn “casarray.test.local” Site “SiteName”

これでおしまい…ではないことに注意が必要です。Cas Arrayが作成されても自動的にそれが使われるようにはならないのです。きちんとDatabaseに対してCassArrayを使用するように設定を行う必要があります。具体的にはMailboxDatabaseのRpcClientAccessServer属性をCassArrayのFQDNにする必要があります。

  1. Set-MailboxDatabase DB1 -RpcClientAccessServer “casarray.test.local”

この指定を忘れていると「CasArrayを構成しているのにCASが1台落ちたらクライアントがつながらなくなってしまった」というトラブルが発生します。しかもその時に全部のクライアントが同じ挙動になるのではなく、正常に接続できるOutlookクライアントもあれば、正常に接続できないOutlookクライアントもある・・・という状況になってしまうはずです。なぜかというと、MailboxDatabaseのRpcClientAccessServer属性は以下のように決定、設定されるからです。

  • サイト内にCasArrayが存在する場合 → CasArrayが設定される
  • サイト内にCasArrayが存在しない場合 → MBXとCASが同居している場合 → サーバー自身が設定される
  • サイト内にCasArrayが存在しない場合 → MBXとCASが同居していない場合 → サイト内のCASからランダムに選ばれ設定される

つまり、CasArray作成前に先行的にMailboxDBが作成され、Outlookプロファイルが作成されるとそのクライアントはCASの実ノードに接続されてしまうのです。その後CasArrayの構成を正しくやり直すと、そのあとで作られたOutlookプロファイルはCasArrayにきちんと向きますが、それ以前のものは自動では変更されません。

結果、CASの負荷に偏りが出たり、CASの障害時に一部のユーザーだけ接続不良が起きたりします。さらにややこしいのはOutlook2007以降であればCASと接続できなくなればAutodiscoverを使って正しい接続先を見つけて再接続できる点です。この時Outlook2003はいつまでたっても接続できずプロファイルの更新が必要になります。ただでさえややこしい問題がさらにややこしくなってしまいます。

これらのことから、「MBXサーバーを構築したらすぐにCasArrayを設定してしまう」のが一番よいと思います。

余談

Exchange Server 2010ではOutlookがCASにアクセスすることになったことによりこのような話題が出てきているのですが、例外としてパブリックフォルダへの接続は依然として直接MBXサーバーへの接続になりますので注意してください。「Exchange Server 2010になったからOutlookからの接続は全部CAS!」と思い込んでしまうとトラブルシューティングの際に誤った判断をしてしまうことになります。

参考になる記事

コメントを残す

メールアドレスが公開されることはありません。