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

ページ : 1 2
<この記事を全て表示する場合はこちらをクリック>

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を何台か配置するのでも良いと思います。

Windows Server 2008のTS REMOTE APPは、かなり便利に使えるのでお勧めです。

CIFSを諦める

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

まとめ

とりあえず僕自身が選択しようと思っているのは“インターネットVPNをやめる”という選択肢です。

結局拠点間のイントラネット通信については広域イーサネットを採用しました。
その後、費用が高かった事もあり、かなり順調に動作しています。

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

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

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

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

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

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

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

追加記事

Windows Vista以降のWindows OSに搭載されているSMB 2.0は、インターネットVPN経由などの遅延の多いネットワーク環境でも比較的安定して稼働するようです。

ページ : 1 2
<この記事を全て表示する場合はこちらをクリック>

1 2

5 COMMENTS

福廣 直和

ご教授ありがとうございます。
先日、調査しましたが、
xls(500K)、xla(1.3M)の起動に、2~3分かかりました。
アプリケーション(更新処理)は5秒ぐらいでした。
xlaをクライアントにコピー後でも、1分40秒かかりました。
xlsとxlaをともにコピーしてから起動したところ、10秒ぐらいになりました。
サーバに置いておけば、置き場所や、プログラムの修正も楽なので、
そうしたかったのですが、(サーバのパスなどを固定する形になってしまいますが)
各クライアントにインストールする形で、対応することにします。
ありがとうございました。

pnpk

こんにちは。
WAFSを経由する形でネットワークを構成して、WAFS上の設定でCIFSもしくはSMBのキャッシュ設定を有効にすれば相乗り自体は可能だと思います。

ただし、ご利用されているWAFSのライセンス形態や、利用帯域におそらく何らかの制約があると思いますので、あらかじめそちらを確認する必要はあるかもしれません。

以前どこのベンダーのものか失念してしまいましたが実際にWAFSを評価する機会がありました。
しかしながら結論として、自分の場合はMSアクセスのファイルだったのですが、当時採用出来るほどのパフォーマンスを得る事は出来ませんでした。
※実際に動作は速くなるのですが、ファイル操作一回分の動作が30秒→5秒に短縮されても結局は実務上は支障が出るだろう・・・というイメージです。

ベンダー曰く、のコメントですが、WAFSは世界規模で展開しているネットワークには有効ですよ。との事でした。

Windows Vista以降搭載されているSMB2.0を利用したインターネットVPN経由の通信についても、早めに動作検証行ってみたいと思っていますが、本格的にそちらの環境に移行出来るのはまだまだWindows XPを利用したクライアント端末が大半なので、Windows7に少し期待をして、4~5年後くらいなのかな・・・と思っています。

SMB2.0についても動作確認出来ればまたこのサイトにて記載させていただきたいと思います。

よろしくお願いいたします。

福廣 直和

ありがとうございます。
XPの件は、intraでClient分用意し、そのマシンにVPN経由でリモート接続して、
画面だけVPNで見るということですね。
着想は、面白いですが・・・・
別のアプリケーションで、WAFSを使っていますが、簡単に相乗りできるものでしょうか?

pnpk

こんばんは、コメントありがとうございます。

・WindowsXPを並べるとは、どうする事でしょうか?

こちらは「Windows XPを何台か配置するのでも・・・」というくだりの事でよろしいでしょうか。
Windows XP Professionalを利用するとリモートデスクトップ接続が可能です。

こちらの機能を利用してリモートからシンクライアント的にWindows XP Professionalを利用する事をあらわしています。

・ClentをVistaにすれば大丈夫でしょうか?

こちらに関しては、自分は試していないのでそうです。とは言えないのですが、Vista以降に搭載されているSMB2.0を利用すれば状況は改善出来るかもしれません。

ただ、この場合サーバ・クライアント共にSMB2.0に対応している必要がありますので、Windows OSですと、クライアントOSがWindows Vista以降、サーバOSはWindows Server 2008以降のOSという事になると思います。

SMBの互換性については以下のサイトが参考になると思います。

ファイル共有(1)--バージョンアップしたSMB 2.0を搭載
http://itpro.nikkeibp.co.jp/article/COLUMN/20080916/314883/?ST=vista&P=1

・tpingを実行すると”Windows Socket Open failed: 10013″がでます。
 どうすればよいでしょうか。(OS:Vistaです)

こちらについては申し訳ないのですが手元にWindows Vista環境が無いので確認出来ませんでした。

遅延の解決方法なのですが、自分は結局広域イーサネットを選択しました。
将来的にWindows Vista以降のOSが普及すれば拠点間の通信はインターネットVPNで十分かもしれません。

以上になります、よろしくお願いいたします。

福廣 直和

VPNでExcelマクロ(共有ファイル)のアプリケーションが遅くて困っていました。
簡単に改善できそうにないですが・・・・
・WindowsXPを並べるとは、どうする事でしょうか?
・ClentをVistaにすれば大丈夫でしょうか?
・tpingを実行すると”Windows Socket Open failed: 10013″がでます。
 どうすればよいでしょうか。(OS:Vistaです)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です