BranchCacheで遠隔地からのファイルアクセスを高速化基礎から学ぶサーバーマネージャーの使い方(6)

「BranchCache(ブランチキャッシュ)」は、ブランチオフィスでのファイルサーバーへのアクセスを高速化するWindows Serverの標準機能である。今回は、BranchCacheを解説する。

» 2015年03月24日 18時00分 公開
[阿部直樹(Microsoft MVP for Hyper-V)エディフィストラーニング株式会社]
「基礎から学ぶサーバーマネージャーの使い方」のインデックス

連載目次

ブランチサイトにキャッシュを置けば、ファイルアクセスは快適に

 Windows Serverが搭載する「BranchCache(ブランチキャッシュ)」は、クライアントがWAN(Wide Area Network)経由でファイルサーバー上にアクセスする際、キャッシュを利用することでトラフィックを軽減するWAN帯域幅最適化テクノロジである。

 BranchCacheを利用すると、WAN接続された支店や支社(ブランチサイト)から、本社(リモートサイト)にあるファイルサーバーなどからファイルを取得する際、そのファイルはブランチサイト上にキャッシュされるようになる。ブランチサイトのクライアントが次回同じファイルを利用する際にはリモートサイトに(速度の遅い)WAN経由で接続する必要はなく、ブランチサイト内に保存されたキャッシュからファイルを取得できる(図1)。

図1 図1 BranchCacheの動作。ブランチサイト側にファイルをキャッシュしておくことで、クライアントからのアクセスを高速化する

 BranchCacheがサポートするプロトコルは次の通り。

  • HTTP/HTTPSプロトコル(Webブラウザーなどで使用)
  • SMB(Server Message Block)プロトコル(Windowsのファイルサーバーへのアクセスに使用)
  • BITS(バックグラウンドインテリジェント転送サービス)プロトコル(アイドル状態のネットワーク帯域幅のみを使用して、コンテンツをサーバーからクライアントに配信するコンポーネント)

 例えば、BranchCacheをファイルサーバーで構成した場合、ファイルサーバーにはコンテンツの識別情報である共有ファイルの「ハッシュ情報」が生成される。ブランチサイトのクライアントは、WAN経由でファイルサーバーからファイル共有にある目的のファイルのハッシュ情報を取得し、その拠点にあるキャッシュサーバーを検索(ホスト型キャッシュモード)する。目的のハッシュ情報がある場合は、キャッシュサーバーからファイルを取得する。

 ハッシュ情報がない場合はファイルサーバーからファイルを取得して、キャッシュサーバーに保存する。以降、そのファイルはキャッシュサーバーに保存されているので、WAN経由でアクセスすることなく、ローカルネットワークからの取得が可能になる。

BranchCacheの二つの動作モード

 BranchCacheには、「分散キャッシュモード」と「ホスト型キャッシュモード」の二つの動作モードがある。

 分散キャッシュモードでは、ブランチオフィス内のクライアントコンピューター間に分散されてコンテンツのキャッシュが保存される。一方、ホスト型キャッシュモードでは、「キャッシュ専用サーバー」にコンテンツのキャッシュが保存される。ただし、一つのブランチオフィスで使用できるモードはどちらか一方で、併用することはできない。

 分散キャッシュモードはブランチサイトに追加のハードウエアが必要ないので、導入が容易だ。ただし、キャッシュされたクライアントコンピューターが常に稼働しているとは限らないので、キャッシュがブランチサイトに展開されていても使用できない場合もあることに注意しなければならない。また、分散キャッシュモードでは同一サブネットでのみ動作するので、ブランチサイトに複数サブネットが存在する場合は、サブネットごとにコンテンツをキャッシュする必要がある。

 ホスト型キャッシュモードでは、専用のキャッシュサーバーをブランチサイトに用意するので、ブランチサイトのクライアントは常にキャッシュサーバーからコンテンツを取得できるようになる。また、分散キャッシュモードでは問題となる複数サブネットにおいても、異なるサブネット上からホスト型キャッシュ専用サーバーを使用することが可能になる。

 BranchCacheはWindows Server 2008 R2から搭載された機能だが、Windows Server 2012でホスト型キャッシュサーバーの大幅な改良が行われている。導入面では以前のホスト型キャッシュサーバーではサーバー証明書の導入が必須だったが、現在は必要がなくなっている。また、運用面ではブランチサイトにホスト型キャッシュサーバーは1台しか設置できなかったが、現在は複数台の設置が可能だ。

 さらに、見えないところになるが、キャッシュ管理用のデータベースとしてExchange Serverの「Extensible Storage Engine(ESE)」データベーステクノロジを採用したことで、ホスト型キャッシュサーバーで膨大なデータ(最大数テラバイト)が格納可能になり、大規模な組織での導入にも対応できるようになっている。

 以上の改良により、Windows Server 2012 R2でのBranchCacheは、ホスト型キャッシュモードでの展開、運用が推奨されている。

BranchCacheの導入概要

 BranchCacheを導入する場合は、機能によってインストールする役割要素が異なることに注意が必要だ(表1)。

機能 コンピューターの場所 インストールするBranchCache要素
コンテンツサーバー(BITSベースのアプリケーションサーバー) メインオフィスまたはクラウドデータセンター BranchCache機能
コンテンツサーバー(Webサーバー) メインオフィスまたはクラウドデータセンター BranchCache機能
コンテンツサーバー(SMBを使用するファイルサーバー) メインオフィスまたはクラウドデータセンター ファイルサービスのサーバーの役割/ネットワークファイル用BranchCache役割サービス
ホスト型キャッシュサーバー ブランチオフィス ホスト型キャッシュサーバーモードを有効にしたBranchCache機能
BranchCacheが有効なクライアントコンピューター ブランチオフィス インストールの必要なし。クライアント上でBranchCacheとBranchCacheモード(分散またはホスト型)を有効化
表1 BranchCacheのインストールガイド。利用する機能によってインストールする要素が異なる

WebサーバーまたはBITSサーバーの構成

 BITS(バックグラウンドインテリジェント転送サービス)プロトコルを使用するWindows Server 2012のWebサーバーまたはアプリケーションサーバーを構成するには、まずはBranchCache機能をインストールして、ブランチサービスが起動したことを確認する。次にBranchCache機能を使用するクライアントを構成する。追加のWebサーバーの構成は必要ない。

ファイルサーバーの構成

 全てのファイル共有に対してBranchCache機能を有効にするには、ファイルサーバーホストに「ファイルサービスのサーバー」の役割に含まれる「ネットワークファイル用BranchCache」の役割サービスをインストールする。

 「ネットワークファイル用BranchCache」の役割サービスをインストールしたら、「グループポリシー」からサーバーのBranchCache機能を有効にする。具体的にはグループポリシーの「コンピューターの構成」→「ポリシー」→「管理用テンプレート」→「ネットワーク」→「LAN Managerサーバー」にある「BranchCacheのハッシュの発行」を構成する(画面1)。

画面1 画面1 グループポリシーで「BranchCacheのハッシュの発行」を構成する

 次に、各ファイル共有の「プロパティ」でBranchCache機能を有効にする(画面2)。

画面2 画面2 ファイル共有の「プロパティ」でBranchCache機能を有効にする

ハッシュのバージョン

 BranchCacheのファイルサーバーではハッシュ情報を生成するが、このハッシュにはバージョンがある。「バージョン1」にはWindows 7/Windows Server 2008 R2が対応し、「バージョン2」にはWindows 8/Windows Server 2012が対応する。

 バージョン1はファイルの変更が発生すると、そのハッシュ情報は無効となりファイルを再取得する。バージョン2はファイルの変更が発生すると、以前のファイルを再利用し変更部分だけを取得する。BranchCacheのファイルサーバーのデフォルトでは、バージョン1と2の両方のハッシュを生成する設定になっている。

キャッシュサーバーの構成

 キャッシュサーバーを構成するには、BranchCache機能を追加する。さらに、「セキュリティが強化されたファイアウオール」の受信の規則で「BranchCacheホスト型キャッシュサーバー(HTTP−受信)」の許可を設定する。これだけで、キャッシュサーバーとして動作するようになる。

 BranchCacheは、デフォルトでアクティブパーティションのディスク領域の5%をキャッシュデータとして割り当てる。この5%という値は、グループポリシーやコマンド、Windows PowerShellコマンドレッドなどで変更できる。例えば、10%に構成するには、以下のPowerShellコマンドレッドを実行すればよい。

Set-BCCache -Percentage 10


 また、以下のPowerShellコマンドレッドを実行すると、構成情報を確認できる。

Get-BCDataCache


 BranchCacheでは、一度はWAN経由でファイルサーバーにアクセスしないとキャッシュサーバーにデータが格納されない。そこで、あらかじめキャッシュサーバーにデータを保存しておくために、「BranchCacheのプレロード」という機能が用意されている。

 例として「C:\Data」フォルダーをキャッシュサーバーにプレロードしてみよう。まずは、ファイルサーバー上で、次のコマンドレッドを実行してデータパッケージを作成する。

Publish-BCFileContent -Path C:\Data -StageData

Export-BCCachePackage -Destination C:\Temp


 これで「PeerDistPackage.zip」ファイルが「C:\Temp」フォルダーに生成されるので、このファイルを以下のコマンドでキャッシュサーバーにコピーしてインポートすればよい。

Import-BCCachePackage -Path C:\Temp\PeerDistPackage.zip


クライアントの構成

 クライアントでWindows 7/8/8.1が稼働している場合、BranchCacheはすでにインストールされているが、デフォルトでは「無効」になっている。

 BranchCacheを利用するには、グループポリシーや「netsh」コマンド、PowerShellコマンドレッドで構成を行う。グループポリシーでは、「コンピューターの構成」→「ポリシー」→「管理用テンプレート」→「ネットワーク」→「BranchCache」から構成する(画面3)。

画面3 画面3 クライアント(Windows 7/8/8.1)のグループポリシーでBranchCacheを構成する

 BranchCacheを有効化したら、分散キャッシュモードまたはホスト型キャッシュモードのどちらかを選択する。「サービス接続ポイントポリシー」を構成することで、分散キャッシュモードまたはホスト型キャッシュモードの自動検出を行うことも可能だ。その際、クライアントはブランチサイト内でキャッシュサーバーを検出しない限り、分散キャッシュモードで動作する。

 BranchCacheプロトコルを有効にするには、ファイアウォールの構成が必要になる。分散キャッシュモードでは、クライアントコンピューター間のデータ転送にHTTPプロトコルを、キャッシュされた内容の検出には「WS探索プロトコル」を使用する。クライアントファイアウォールは、次の受信規則を有効にするよう構成する。

  • BranchCacheコンテンツ取得(HTTP−受信)
  • BranchCacheピア検出(WSD−受信)

 ホスト型キャッシュモードでは、BranchCacheクライアントは、クライアントコンピューター間のデータ転送にHTTPプロトコルを使用するが、WS探索プロトコルは使用しないので、「BranchCacheコンテンツ取得(HTTP−受信)」だけを有効にすればよい。


 今回は、BranchCacheを構成することで、ブランチオフィスでのファイルアクセスを高速化することができることを紹介した。Windows Server 2012 R2ではBranchCacheを容易に構成できるので、ぜひ試してみてほしい。

筆者紹介

阿部 直樹(あべ なおき)

エディフィストラーニング株式会社所属のマイクロソフト認定トレーナー。Active Directory、Network、Security、Hyper-V、Clusterなどを担当。マイクロソフト トレーナー アワード(2010年)およびMicrosoft MVP for Hyper-V(Apr 2010 - Mar 2014)を受賞。個人ブログ『MCTの憂鬱』でマイクロソフト関連情報を発信中。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。