3.0のマルチチャネル機能を使うと、NICを増設するだけでファイルサーバーとのコピー速度を向上できる。その方法と注意点を解説する。●ギガビットを超えるイーサネットはまだ高価Windowsのファイルサーバーとクライアント間において、ファイルコピーなどの速度を向上させる一番簡単な方法は、より高速な通信速度をサポートした「NIC(ネットワークインターフェースカード)」を利用することである。現在一般的に広く使われているイーサネットの規格では10Gbit/sとかそれ以上の速度のものが開発されており、普及し始めている。これらは非常に高価であり、現在は一部のサーバーやデータセンターなどでしか普及していない。一般のクライアントPCなどでは現在のところ、1Gbit/sのイーサネット(以下「ギガビットイーサネット」)が非常に多く使われている段階である。●NICの枚数を増やせば転送速度は上がる!?ギガビットにしか対応していないNICでも、複数束ねて使えばより高速な通信を実現できる。具体的には「NICチーミング」や「ポートトランキング」「リンクアグリゲーション」などの技術がある(各技術については次の記事参照)。R2のNICチーミング機能(LBFO)をマスターする」いずれも既存のソフトウエアなどに変更を加えることなく、通信速度だけをが高速化したシステムを実現できる。対応したNICやスイッチングハブ、もしくはシステム側での事前設定などがいくらか必要であり、導入はあまり簡単ではない。●より簡単にファイルコピー速度を向上できる「SMBマルチチャネル」機能だがファイルサーバーへのアクセス速度を向上させるだけなら、より簡単な方法がある。2012以降でサポートされている「SMBマルチチャネル」という機能を使うことだ。OSなどでも使われている。第7回「ファイル共有プロトコルSMBの概要」SMBマルチチャネルとは、そのSMBのバージョン3.0で実装された新機能の一つだ。これは複数のNICを使ってSMBの通信を行い、ファイルサービス(ファイルの読み書きやコピーなど)の速度を向上させるという機能である。SMBのサーバーとクライアント間の通信ではTCPを利用するが、NICごとに1つ(もしくは複数の)TCPコネクションを開設し、それらを同時に使って通信する。サーバーとクライアントの双方にギガビットのNICを3枚ずつ装着すると、理論的には3倍の速度でファイルをコピーできる。3.0で実装されたSMBマルチチャネル機能では、SMBのサーバー(ファイルサーバー)とクライアント間で複数のNICを使って複数のTCPコネクションを開設し、それらを同時に使ってデータを送受信する(以前は、サーバーとクライアント間では1つの通信路しか使わなかった)。理論的にはNICの枚数分だけ高速化できるし、障害対策としても機能する。ギガビットイーサネットでは最大100Mbytes/sほどでファイルコピーできる。これは最新のハードディスクの転送速度に劣っている。SSDではこの数倍の速度が出るため、SSDを使ったファイルサーバーシステムならもう少し高速化したいところだろう。そのような用途ではSMBマルチチャネルの利用を検討してもよいかもしれない。3.0をサポートしていないシステムからのアクセスは従来通りなので、何も問題はない(はずである)。●万能ではないSMBマルチチャネルただし、SMBマルチチャネルには以下のような制約/注意点があるので、注意して導入していただきたい。2012以降のOSの場合にのみ有効。R2もしくはそれ以前のOSの場合は高速化されず、従来通りのままファイル共有サービスのみが高速化される。それ以外のサービス(IISなど)は高速化されない複数のNICにそれぞれ固有のIPアドレスを割り当てるので、IPアドレスを多く消費するし、IPアドレスとのバインドが必要なサービス(IISなど)ではその設定に影響を与える。ついては、以下のブログ記事を参照のこと。3.0のマルチチャネル接続機能はデフォルトで有効になっており、ユーザーが明示的に許可する必要はない。そのためユーザーが行うべき実質的な作業は、システムに複数のNICを装着してIPアドレスを割り当てることだけである。それ以上の操作は何も必要ない。IPアドレスの割り当てにDHCPを使っている場合は、1つのシステムで多くのIPアドレスを消費することになるので、IPアドレスの枯渇に注意していただきたい。NICの増設システムによってはネットワークポートを2つ以上持つものがある。そんな場合はとりあえずもう1本イーサネットケーブルをつないでみよう。ExpressやPCIスロット、ハブのポートなどが余っている場合は、安価なギガビットイーサネットカードを購入して装着してもよいだろう。NICを3つ以上にしてもよいが、その分ハブのポートなどを多く消費することになるので注意。SMBマルチチャネルを使うためには、RSSやRDMAなどの機能をサポートしたNICが必要とされている。気にせずNICをシステムに装着してマルチチャネルが使えるかどうか試してみるとよい。NICを2枚以上増設するのではなく、まずは1枚だけ増設してみてマルチチャネル通信が有効になっているかどうか確認する。手元で試した限りでは、RSS機能がなくても十分高速化できていた。NICを追加してネットワークケーブルを接続したらシステムを起動して、IPアドレスが正しく割り当てられているかどうかを確認する。IPアドレスの確認は、コマンドプロンプトを開いて「ipconfig」コマンドを実行してもよいし、タスクマネージャーの[パフォーマンス]タブで[イーサネット]を選択してチェックしてもよい。●マルチチャネル機能でファイルコピー速度が向上しているか確認するサーバーとクライアントの双方にNICを増設したら、ファイルサーバーとクライアント間でエクスプローラーなどを使ってファイルをコピーしてみる。大きなファイルを用意してコピーするだけでよい。<サイズ>」コマンドで巨大なダミーファイルを作成してコピーしてもよい(次のTIPS参照)。NICが一つしかないシステムの例である。コピー速度は「111Mbytes/s」ぐらいだが、これはギガビットイーサネットの理論最大通信速度1,000,000,000bit/s(=119.2Mbytes/s)に近い(リモートもローカルも共にSSDボリューム)。10間でのファイルコピーの例。コピー元もコピー先もSSDにしている。1つ分の最高速度でコピーされている。(1)コピー速度は「111Mbytes/s」。ギガビットイーサネットのほぼ最高速度でコピーされている。(2)残り約7分でコピーが完了予定。これに対して、NICを2枚ずつ装着したシステムでは次のようになっている。10にNICをそれぞれ2つ装着したシステムでのファイルコピーの例。この場合は二つのNICをそれぞれ最高速度で使ってコピーしているので、トータルでは元のほぼ2倍の速度でコピーが行われている。(1)コピー速度は「210Mbytes/s」。ギガビットイーサネットのほぼ2倍の速度でコピーされている。(2)残り約3分30秒(単一NIC時の半分)でコピーが完了予定。