Windowsを利用していてWAN越しのファイル共有が遅い場合の検討事項

windows-wan-late-thum

先日、弊社のお客様より、インターネットVPN経由(WAN越し)でファイルサーバへアクセスした場合のファイルオープンが遅いとご相談を頂きました。環境はファイルサーバとしてWindows Server 2003(R2?)、WANはギガビット回線を利用したインターネットVPN環境。インターネットの閲覧は問題がないが、ファイル共有のみが遅いようで、1MB程度のxlsファイルをオープンすると、大体1分程度は掛かるとのお話。
ファイル共有が遅延する原因と対策について、弊社では以下のようにお客様へご提案しております。WAN環境でのファイル共有が遅いという事象は、多拠点の環境の場合、良く発生する問題ですので、参考としていただければ幸いです。

1. SMB(CIFS)のバージョンについて

一般的にWAN経由の場合、ファイル共有はその他のプロトコルと比較して遅いことが殆どです。
原因はファイル共有の利用するCIFSプロトコルにあり、WAN経由でやり取りを行うにはCIFSプロトコルは、転送先とのやり取りが非常に多くTCPのような通信の確実性を担保している通信では、相当なパフォーマンスダウンとなります。特にWindows Server 2003までのCIFSは古いSMB(1.0)を利用しており、その遅さが顕著になるようです。
Windows7/Windows Server 2008 ではバージョンアップしたSMB2.0、2008R2ではSMB2.1の実装となります。Windows 8、Server 2012以上(送信元、送信先共に)だとファイルのやり取りを、さらにバージョンアップしたプロトコルであるSMB3.0を利用するので、1.0/2.0よりパフォーマンスが確保できるとの情報もありましたが、それも劇的にパフォーマンスアップを図ることは難しそうです。

実際にテストしてみると、確かにやや早いように感じるものの、全体のボトムアップという点では、疑問符が残る結果でした。もちろん、プロトコル以外にも原因がある可能性もありますので、具体的な調査方法について検討してみます。

2. ファイル共有、遅延についての調査方法

速度のボトルネックを以下のような調査で行う必要があると考えます。

  • ファイルオープン(SMB)が遅いのか、他のプロトコルも全て遅いのかを確認します。
    例えば、同じ容量のファイルをコピーする時間と、FTPでファイルをアップロードする時間を比較検討します。
  • 両方遅い場合、回線に問題があると判断ができます。(回線自体は速度が出ているため可能性は低い)
  • ファイルオープンのみが遅い場合(SMBのやり取りに問題があると判断ができます。今回、合致するのはこの可能性が高そうです。)

仮にファイル共有が遅いと判明した場合は、ファイル共有に絞って調査を行います。
追加で以下のような調査を行う必要があると考えます。

  • ファイル共有に絞ってボトルネックを調査します。(パケットキャプチャを利用)
  • ファイル共有をどのような状況で利用したときに遅いのか、詳細なヒアリングを行います。
  • どの程度の容量のデータを、どのような操作をしたときに遅いのか。

調査の結果で、対策を考えます。

3. 対策について

ファイル共有が遅い場合の対策について、ある程度、原因が判明し、設定変更や現状の見直しで解決ができない場合の対策を検討します。
今回はCIFS(SMB)が潜在的に持つ問題であると仮定して、対策を検討しました。
以下のような対策を行うことで効果が期待できます。

3-1. 現在のファイルサーバをWindows2012以上にアップグレードする。

SMB3.0で通信を行うことにより、ファイル共有の速度をアップします。

3-2. BranchCacheを利用する。

Windows2008以上から実装されているBranch Cache機能を利用します。Branch Cacheは拠点側にファイルサーバのファイルキャッシュを持ち、通常はキャッシュへアクセスすることで速度を確保する方法です。クライアント(分散キャッシュモード)でもサーバ(ホスト型キャッシュモード)でも実装が可能ですが、信頼性を考えるとサーバへキャッシュを配置したほうがよさそうです。(マイクロソフトでは、クライアントが50台以下の台数を分散キャッシュモードの閾値とアナウンスしており、50台以上の場合はホスト型キャッシュモードを推奨するとのこと。一つの目安として参考にして下さい。)

この機能は次の対策と機能的には同じですが、コスト面から考えると、Windowsに実装されている機能を利用しますので、やや安価に導入が可能です。実装に関しての問題としては、クライアントOSがWindows7/8のEnterprise/Ultimateの場合のみCIFSのキャッシュが可能となり、Professionalでは、BITS (バックグラウンドインテリジェントサービス)のみがキャッシュ対応となります。EnterpriseやUltimateを導入している環境は、なかなかありませんので、ブランチキャッシュは導入に敷居が高いソリューションです。効果に関しては、弊社で検証した限り、かなり優秀なパフォーマンスが出ていました。

3-3. WAN回線最適化アプライアンスを導入する。

WAN回線用のキャッシュアプライアンスを導入します。この手のアプライアンスは高価ですが、導入が簡単で、効果も期待できます。
riverbedやF5、CISCOなどのベンダーから様々な種類のWAN回線最適化アプライアンスがリリースされていますので、ニーズに合わせて選定することが可能です。
拠点が小規模な場合、「3-2. ブランチキャッシュを分散キャッシュモードで動作させる」構成が安価で良いのですが、クライアントOSがWindows7/8 Enterprise以上という制限があるので、ここをクリアできるかが、一つの壁になります。

そう考えると、最近、コストが安価になりつつある、「3-3. WAN最適化アプライアンスを導入する」が費用対効果が高いソリューションだと判断しました。

4. 参考情報

現在、Windows Server 2003を実行している環境は殆どないかと思いますが、もし2003を運用している場合、合致する可能性がありますので、遅延に関係するKBを記載しておきます。

Windows 2000 または Windows Server 2003 が実行されているドメイン コントローラにファイルをコピーすると、ネットワークのパフォーマンスが低下する

特定の環境において遅延ACKが発生し、ネットワークパフォーマンスが劣化するという内容。この場合、レジストリの変更により、パフォーマンスを上げることが可能です。WANを介したファイル共有はいくつかの潜在的な問題がありますので、今後、どのように対応していくか難しいところです。

  • この記事を書いた人
rem-profile-photo

レムシステム

レムシステムはPC・サーバー・ネットワークでの業務効率化を主な業務としている会社です。全国に対応しています。

-Windows, ネットワーク