Windowsファイル共有プロトコル CIFS、SMB(SMB1.0)、SMB2.0とは
CIFSは、トランスポート層の名前解決や通信手段が違えど、SMBをベースにしたプロトコルである。
基礎から学ぶWindowsネットワーク
SMB2.0はSMB1.0にファイル転送に高速化を図ったバージョンアッププロトコルである。
CIFS(SMB2.0)のLAN内転送速度テスト結果
Windows共有でのファイルコピーで驚きの結果が出た!
Windows Server 2008 を相互のCIFSのクライアントとサーバーとして使用することにより、SMB2.0が使用されている。
環境
- Windows Server 2008 64bit
- FCストレージを使用
fsutil で作成したテストファイル10GBをエクスプローラを使用しコピーテストした。
コピー元のサーバーもコピー先のサーバーもFCストレージを使用。
RAID10のサーバーからRAID10のサーバーへWindowsファイル転送
ローカルサーバー(コピー実行サーバー)からリモートサーバーにエクスプローラによるファイルコピー
リモートサーバーからローカルサーバー(コピー実行サーバー)にエクスプローラによるファイルコピー
RAID10のサーバーから RAID1のサーバーへWindowsファイル転送
ローカルサーバー(コピー実行サーバー)からリモートサーバーにエクスプローラによるファイルコピー
リモートサーバーからローカルサーバー(コピー実行サーバー)にエクスプローラによるファイルコピー
驚きの結果でした、ここまでCIFS2.0はパフォーマンス性能が出る。
また不思議なことに、「ローカルサーバーからリモートサーバーにファイルコピー」の方が早いという結果がでた。
不思議なことに、こんな綺麗な波形は二度と得られなくなってしまった。。。
実データファイルでCIFS転送検証
さらに検証。
上の段は、リモートサーバー(サーバーA)で、ローカル(サーバーA)からリモート(サーバーB)にコピー。
下の段は、リモート(サーバーA)からローカル(サーバーB)にコピー。
ファイルのコピー移動方向は同じにした(サーバーAからサーバーBにコピー)。
今度は、copyコマンドを使用した。
また、転送用テストデータfsutilではなく、バックアップで作成した値のあるデータを使用。
同じコピー操作なのにも関わらず、転送速度が異なる。
ただし、サーバーBの方が他のアプリケーションで多少負荷があった。
現在のところ謎だらけであるが、転送速度のパフォーマンスが良いことは間違いない。
再度、同じようなCIFS(SMB2.0)パフォーマンスの波形を求めて再現テスト
さらに検証
再び、同ネットワークスループットの波形が得られた。
やはり、ファイルサーバー(CIFSサーバー)を書き込みとしたほうがパフォーマンスは良い。
テストは
・新規でfsutilで作成したデータファイル10GBを使用
・copyコマンドを使用
・ネットワークのL2スイッチは負荷の低いと思われるネットワークを使用
L2スイッチの負荷状態も影響があるようだ。
同じcopyコマンド、同じデータファイルを使用しても、接続するネットワークで波形が異なる。
コンピュータ名を使用した場合、どのネットワークを使用するか指定できないためIPアドレスでサーバー指定。
■テスト1
リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y \\192.168.1.100\test\test.dat F:\test
リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y F:\test\test2.dat \\192.168.1.100\test\
■ テスト2
再度、同じテストをした。
リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y \\T192.168.1.100\test\test.dat F:\test
リモートのファイルサーバーからファイルをダウンロードコピー
> copy /y F:\test\test2.dat \\192.168.1.100\test\
ファイルサーバーは書き込みの方が早い結果になった。