2008/5/9 金曜日

インターネットVPN経由でMSアクセスファイルが重い@CIFSの仕様

Filed under: PC, Windows XP — pnpk @ 3:56:55

■MSアクセスのファイルが開かないんですが仕様ですか?
はい、仕様です。

少し前にインターネットVPN経由でファイルサーバ上のデータにアクセスすると物凄く開くのに時間がかかってしまう件を調査していました。
例えば同一セグメント上のクライアントPCからファイルサーバにアクセスしてデータを開くと1秒もかからないのに、インターネットVPN経由でクライアントPCがファイルサーバにアクセスすると開くだけで数十秒かかってしまう。
結論から言うと、これはWindowsのファイル共有に使っているCIFSっていうプロトコルの仕様らしい。

■CIFSって何すか?
CIFSとは

Common Internet File System

の略で、

Windowsのファイル共有サービスで利用されているプロトコルの「SMB」を拡張し、Windows以外のOSやアプリケーションソフトでも利用できるよう仕様を公開したもの。※e-wordsより抜粋

の事です。

TCP/IP上で動作するように作られているんだけど、そもそもイントラネットで利用する事を前提として作られているらしく、経路上にインターネットがあると動作がいきなり不安定になります。

■何で不安定になるんすか?
CIFSはネットワークの速度にもろに影響されるプロトコルです。イントラネット内のデバイスに対してPINGを打つと大体1ms以下とかで応答って帰ってきますよね、この速度に影響されるわけです。

この辺の事について図入りで分かりやすく書いてあるドキュメントがあるので、詳細を見てみたい方は以下のリンクからPDFを読んでみてください。

WANJet : CIFS アクセラレーション機能

■どうにかなりませんか?
自分の知っている範囲で恐縮ですが、この現象を解決する場合は以下の方法を検討してみます。

・インターネットVPNをやめる
・WAFSを使う
・メタフレームを使う
・CIFSを諦める

■インターネットVPNをやめる
やめるといっても通信を諦めるわけじゃないです。インターネットVPNの代わりに広域イーサネットサービスなどの回線を利用します。
接続したい拠点間の距離にもよるんですが同一県内ならおそらくこの方法でいけると思います。自分が試した、もしくは調べた中では

・NTT ビジネス イーサ
・KDDI Powered Ethernet
・ソフトバンクテレコム ULTINA Wide Ethernet

がそれにあたります。広域イーサネットサービスを利用する事で通信の暗号化を行う事も無くなりますし、経路もしっかりしているので通信が安定します。どのサービスも極端に言うとL2スイッチに接続した感じになりますので拠点間で巨大な1セグメントを作ることもおそらく可能です。

広域イーサネットサービスを利用するデメリットとしては

・コストが高い
・1年間解約出来ない
・ネットワーク応答速度は現実的な範囲内で保証内容に含まれていない

ぶっちゃけ回線を引いてみないと分かりませんよ。って事です。ただしベンダーによっては予想応答速度なども測定してくれたり検証環境も貸してくれるので十分検討に値すると思います。
費用はだいたい拠点間接続を行うと2拠点で100Mの回線で月額15〜40万かかります。月額でインターネットVPNの利用料金より何倍も高いです。

■WAFSを使う
WAFS(wide area file services)ってのはCIFSの代替技術で、CIFSの弱点である大量の通信のやりとりをWAFSでキャッシュして一気にやりとりを終わらせてしまう技術(機械)です。
拠点間のネットワーク上にWAFSを設置して拠点間をまたがるCIFS通信を全てWAFS経由でやりとりさせるようにして使います。
WAFSは使ってみたこと無いので詳しく無いんですが、リバーベッドのSteelheadって製品が優秀らしいという噂を聞きました。
海外の拠点とか通信の遅延が物凄く多いところで効果を発揮するらしいです。

今度検証出来る機会もありそうなんで、実際に近い距離の通信に効果があるのかどうか可能であれば調べてみたいと思います。

費用は2拠点で200万円〜くらいみたいですがおそらくかなりの出費になる事は間違い無いでしょう。実際に導入するのであればちゃんと動作確認した方がいいですね。

■メタフレームを使う
そもそもCIFSが遅いわけなんでメタフレーム経由でデータを扱ってしまおうという方法です。実際の業務がこの方法で回るのであれば無難にお勧めだと思います。ただし利用人数が多いとこれも結構な金額になりそうです。
メタフレームを買う予算が・・・って事であればターミナルサービスでも良いかもしれませんし、もっと予算が・・・ってのであればWindows XPを何台か配置するのでも良いと思います。
※ライセンスがややこしそうではありますけども

■CIFSを諦める
冗談みたいですが、正直これが一番適切だと個人的には思っています。
ただし一番適切な物が受け入れられるか?というのは別の問題ですのでこの方法もある意味難しいです。MSアクセスのファイルを全てWebアプリケーションに移行して・・・なんていうバリバリ仕事が出来るプログラマーがいると・・・良いですね。
成功すればですが、この方法が一番コスト抑えられるかもしれません。

■まとめ
とりあえず僕自身が選択しようと思っているのは

■インターネットVPNをやめる

という選択肢です。拠点間の距離が僕の場合は23区内(区内)なので予想遅延速度も1.6ms〜2msでいけそうだったからなんですが、まあ正直他の方法が取れない状況でもあるわけです。

CIFSがまともに使える遅延は自分の体感ではありますが1ms〜2msまでが限界かなと思っていますが、一般的には1~3msまではCIFSで行けますよ。と言うらしいです。

WAFSとかCIFSとか、言葉が分かっているとGoogleなどでもこの問題が検索出来るんですが、それが分からないと、

なんだか分からないけどとにかくMSアクセスがVPN経由で遅い。

という書き込みしか検索出来なかったので今回CIFSについて書いてみました。すべての情報があてになるかどうかは分かりませんが何かのお役に立てれば幸いです。
・・・でも鵜呑みにはしちゃ駄目ですよ。

ここで挙げた方法以外にもDFSレプリケーションを使って拠点間で共有ディレクトリを共有する方法も試してみたんですが、別サーバ上の同ファイルって開いても排他制御が有効にならないんですよね。

まあ、なんだかんだで拠点毎にやはり更新するファイルは分けた方が管理も楽だしコストもかからないよって事です。

Popularity: 2%

コメント (0) »

この記事にはまだコメントがついていません。

コメント RSS トラックバック URI

コメントをどうぞ

HTML convert time: 0.502 sec. Powered by WordPress ME