Windows Server 2008 R2の真価
―― 実質新世代サーバOSの真の実力を知る ――
第10回 WAN回線経由でのアクセスを高速化するBranchCache
3.BranchCacheの支店側のセットアップ手順
マイクロソフト株式会社 エバンジェリスト
田辺 茂也
2010/03/25
■分散型キャッシュ方式のためのクライアント設定と動作確認
クライアント側での設定は、グループ・ポリシーで集中的に適用するか、各クライアントでローカル・ポリシーまたはnetshコマンドで変更する。ここでは各クライアントでのnetshコマンドによる設定例を示す。
まず分散型キャッシュ方式でBranchCacheを有効化してみよう。このとき、自動的にWindowsファイアウォールの設定も実行される(手動でポートを開く設定などは不要)。次にBranchCacheで利用するWANのレイテンシ(遅延時間)をmsec単位で設定する。この値はWANの帯域や応答時間によって異なり、原則として遅延時間が長いほど大きな値を設定する必要がある(この値より速くアクセスできる場合はBranchCacheが無効になる)。ここでは実験のため0とし、常にBranchCacheが有効になるように設定している。デフォルト値は80で、遅延が80msecを超えるとBranchCacheが有効になる。
クライアントでBranchCacheを有効化する(分散型キャッシュ方式の場合)
これはnetshによる設定例。以後、コマンド・プロンプトは管理者権限で起動する必要がある。
BranchCacheを有効化するためのコマンドライン。「mode=distributed」が分散型キャッシュ方式を指定している部分だ。
WANのレイテンシ(遅延時間、単位はmsec)を設定するコマンドライン。ここでは遅延の有無にかかわらず、常にBranchCacheを有効にするために「0」を設定している。
これでBranchCacheが利用できるようになったので、動作を確認してみる。同様の設定をしたクライアントを2台用意し、まず1台目でファイル・サーバにアクセスし、ファイルをダウンロードする。次に、同じクライアントでnetshコマンドを実行して状態を確認する。以下の画面では、約36Mbytesのデータがキャッシュに蓄えられていることが分かる(「ローカル キャッシュの状態」の「現在のアクティブ キャッシュ サイズ」)。
BranchCacheのキャッシュにファイルが蓄えられていることを確認する
BranchCacheが有効なファイル・サーバからファイルを読み出した後に、netshコマンドで状態を確認したところ。
BranchCacheの状態を表示するコマンドライン。
このコンピュータ上のキャッシュで、現在使われている領域サイズ。「37767712 バイト」すなわち約36Mbytesのデータが格納されていることが分かる。
そして2台目のクライアントから同じファイル・サーバの同じファイルにアクセスすると、1台目のキャッシュから同ファイルを取得しているはずだ。実際にパフォーマンス・モニタ(パフォーマンス・カウンタ)で各クライアントを監視したところ、1台目(BL-CL11)が1Mbytesのコンテンツをキャッシュから提供し(「Bytes served」の値)、2台目(BL-CL12)は1Mbytesのコンテンツをキャッシュから取得していた(「Bytes from cache」の値)。
クライアント同士でファイルを提供/取得していたときの監視結果
Windows OS付属のパフォーマンス・モニタ(パフォーマンス・カウンタ)で監視・測定を行った。「BC-CL11」は1台目、すなわち最初にサーバからファイルを取得して自身のキャッシュに保存したクライアント。「BC-CL12」は2台目、すなわち後からファイルを取得したクライアントだ。
1台目のクライアントがキャッシュから、1Mbytesのデータを提供したことを表している。
2台目のクライアントがキャッシュから、1Mbytesのデータを取得したことを表している。
このときの通信の様子をネットワーク・モニタで監視したところ、以下のようになっていた。ネットワーク・モニタの詳細についてはTIPS「ネットワーク・モニタ3.1を使う(基本編) 」を参照していただきたい。
クライアント同士でファイルを提供/取得したときのネットワーク・パケット
192.168.100.1はファイル・サーバで、192.168.200.11が1台目のクライアント、192.168.200.12が2台目のクライアントである。
サーバ(192.168.100.1)と2台目のクライアント(192.168.200.12)との間でファイルのハッシュ値をやりとりしているパケット。
IPv4およびIPv6でマルチキャスト・アドレスに対して、キャッシュを持っているコンピュータがいるかどうか問い合わせている。
1台目のクライアント(192.168.200.11)がキャッシュを持っているので、2台目のクライアント(192.168.200.12)でキャッシュの内容をやりとりしている。
■ホスト型キャッシュ方式のためのセットアップと設定
ホスト型キャッシュを構成するためには、支店側にキャッシュ・サーバを用意する必要がある。まずWindows Server 2008 R2 Enterprise EditionまたはDatacenter Editionのサーバを用意し、サーバ・マネージャにて機能の追加ウィザードから「BranchCache」機能を追加しておく。
次にグループ・ポリシー、ローカル・ポリシーまたはコマンドラインで、キャッシュ・サーバを有効にする設定を行う。分散型キャッシュ方式と同様に、ファイアウォールの設定は自動的に行われるほか、必要なサービス・プログラムも自動で起動するようになる。
BranchCacheのキャッシュ・サーバを有効にする
これはnetshコマンドでの設定例。グループ・ポリシーやローカル・ポリシーでも同じ設定ができる。
キャッシュ・サーバを有効にするためのコマンドライン。
また、キャッシュ・サーバとクライアント間の通信はSSLで暗号化されるため、SSL通信に必要なサーバ証明書を登録する。クライアント側でも証明書を確認できる必要があるため、ドメイン環境で証明機関を運用し、ルート証明書を自動配布するとよいだろう。以下ではサーバ証明書を登録した後に、登録状況を確認している。
SSL通信のためのサーバ証明書を登録する
キャッシュ・サーバとクライアント間の通信はSSLで暗号化されるため、SSL用のサーバ証明書が必要となる。
サーバ証明書をTCPのポート443番に登録するためのコマンドライン。証明書そのものは、あらかじめ作成しておく必要がある。
で登録したサーバ証明書の内容を表示するためのコマンドライン。
以上でキャッシュ・サーバの設定は完了である。あとはクライアント側で、ホスト型キャッシュのクライアントとして設定を行う。その際、キャッシュ・サーバのホスト名を明示的に指定する必要がある。
クライアントでBranchCacheを有効化する(ホスト型キャッシュ方式の場合)
これはnetshによる設定例。
BranchCacheを有効化するためのコマンドライン。「mode=hostedclient」がホスト型キャッシュ方式を指定している部分だ。また「location=」でキャッシュ・サーバを指定している。
■運用中のBranchCacheに設定できる項目
BranchCacheに設定できる主な項目は次のとおりである。
分散型キャッシュのオン/オフ
ホスト型キャッシュのオン/オフ
キャッシュ・サイズ
ホスト型キャッシュの場所の指定
キャッシュのクリア
いずれもグループ・ポリシー、ローカル・ポリシーまたはnetshで設定が可能だ。特にドメイン環境下ではグループ・ポリシーでリモートからの集中管理が可能なため、ユーザーの負担もなく確実な運用が可能になる。手動で設定するには、ローカル・ポリシーやnetsh branchcacheコマンドを使用する。
■BranchCacheに必要なファイアウォールの設定項目
BranchCacheの運用時には、コンテンツ・サーバへのアクセスだけでなく、LAN内へのキャッシュの問い合わせの通信が発生するため、ファイアウォールの追加設定が必要である。ただしWindowsファイアウォールの場合、前述のようにキャッシュ有効化などの際、自動的に設定が追加される。
設定項目の名称
分散型キャッシュに必要
ホスト型キャッシュに必要
BranchCache - コンテンツ取得 (HTTPを使用)
必要
必要
BranchCache - ピア検出 (WSDを使用)
必要
−
BranchCache - ホスト型キャッシュ クライアント (HTTPSを使用)
−
必要
BranchCache - ホスト型キャッシュ サーバー (HTTPSを使用)
−
必要
Windowsファイアウォールに追加されるBranchCache向けの設定項目
WSDはWS-Discoveryの略で、キャッシュの検出に使われるプロトコルである。
■運用中のBranchCacheのモニタリング
イベント・ログでBranchCacheのログが取得できる。具体的には、イベント・ビューアの[アプリケーションとサービス]−[Microsoft]−[Windows]の中にBranchCache関連のカテゴリがある。
またパフォーマンス・モニタ(パフォーマンス・カウンタ)では、クライアントのキャッシュ、ホスト型のキャッシュ、コンテンツ・サーバの状態が得られる。
さらに、netshコマンドでも設定の確認や問題の発見につながる情報が得られる。キャッシュ・サイズが小さ過ぎる、ファイアウォールの問題、証明書の問題などが確認できる。
まとめ
以上のように、Windows Server 2008 R2とWindows 7の組み合わせが使用できるのであれば、BranchCacheは環境構築や支店での運用にそれほど手間を掛けなくても、WANのトラフィックを大幅に抑制できる。また、ユーザーの操作性は変わらないという特長もある。本支社間のトラフィック削減を検討しているIT管理者には、ぜひ検証していただきたい。
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ