SMB(Server Message Block)のまとめ
マイクロソフト社内のテスト環境
・SMB (1 Gbps イーサネット)
・DAS (4 Gbps ファイバー チャネル)
・28台 x 10K RPM ハード ディスク ドライブを使用
OS バージョンと SMB バージョン
Server OS | Client OS | SMB Version |
---|---|---|
Windows 2012 R2 | Windows 8.1 | SMB 3.02 |
Windows 2012 | Windows 8 | SMB 3.0 |
Windows 2008 R2 | Windows 7 | SMB 2.1 |
Windows 2008 | Windows Vista | SMB 2.0 |
Windows 2003 | Windows XP | SMB 1.0 |
どのバージョンが使われるかというと、例えば、 Windows クライアントが Windows サーバーの共有フォルダにアクセスしてファイルを開くとき、互いの SMB バージョンを確認して低い側のバージョンの SMB に合わせて通信します。つまり、クライアント OS 、サーバー OS をバージョンアップすることで、SMB のバージョンが上がりパフォーマンスが向上する可能性があります。
SMB 2.1 と SMB3.0 パフォーマンス比較
OS のバージョンが上がる毎に SMB のバージョンも上がり性能が向上しています。
Windows Storage Server 2012 搭載 NASでの性能比較
【読み込み】 | SMB2.1 (Win7) | SMB3.0 (Win8) |
---|---|---|
シーケンシャル | 59 MB/s | 56 MB/s |
512KB ランダム | 13 MB/s | 13 MB/s |
4KB ランダム | 0.5 MB/s | 0.5 MB/s |
4KB ランダムQD32 | 2.5 MB/s | 0.5 MB/s |
【書き込み】 | SMB2.1 (Win7) | SMB3.0 (Win8) |
---|---|---|
シーケンシャル | 17 MB/s | 67 MB/s |
512KB ランダム | 12 MB/s | 51 MB/s |
4KB ランダム | 1.2 MB/s | 1.2 MB/s |
4KB ランダムQD32 | 1.5 MB/s | 1.2 MB/s |
Windows 7 よりも Windows 8 の方がサイズの大きな書き込みの速度が 4 倍ほど向上しているようです。
引用元:インプレス Windows Server 2012 研究所
マイクロソフトは「イーサネット接続された SMB3.0 は、ファイバーチャネルで直接接続された DAS(direct-attached storage) とほとんど変わらないトランザクションを発揮する」と評しています。
SMB 2.0 機能強化 (Win Sv 2008, Win Vista)
機能 | 概要 |
---|---|
機能強化 | TCP/IP にウィンドウ サイズを調整するためのメカニズムを搭載した CTCP (Compound TCP : 複合 TCP) を実装。CTCP は、高い BDP (帯域幅遅延積) 値や大きな受信ウィンドウ サイズを要求する接続に対して、送信ウィンドウサイズを最適な大きさまで自動的に広げる機能。これにより、遅延やパケット ロスの多い環境であっても、その影響を抑えて高いパフォーマンスで通信を行うことが可能。Windows Server 2008 は既定で CTCP が有効。Windows Vista では既定で無効。Windows Vista で CTCP を有効にする場合は、netsh コマンドを使用する。Windows Vista 以降のオペレーティング システムでは、その時の状況に応じて最も効率の良い受信ウィンドウ サイズを自動的に計算し、使用する仕組。この結果、TCP/IP ベースのアプリケーションは遅延やパケットの影響を受けにくくなり、従来の通信と比較して高速にデータ転送を行うことができる。 |
要求の結合 | 複数の SMB 2.0 要求を 1 つのネットワーク要求として送信。 分割された複数のデータ ブロックを順次送信するのではなく複数同時にネットワークに転送するように変更。その結果、遅延によるオーバヘッドが抑えられ、データ転送効率が向上しファイル共有が高速化。 |
大きい MTU のサポート | 待ち時間が長くても高速のネットワークをより有効に活用できる、大きいサイズでの読み取りと書き込み。 |
ローカルキャッシュ | フォルダーおよびファイルのプロパティのキャッシュ。クライアントはフォルダーとファイルのローカル コピーを保持。 |
切断時の再接続 | ワイヤレス接続などで一時的な切断が発生した場合でも SMB 2.0 がサーバーに透過的に再接続できる永続性のあるハンドル。 |
セキュリテリ強化 | 強化された構成と相互運用性による向上したメッセージ署名 (ハッシュ アルゴリズムを MD5 から HMAC SHA-256 に)。 |
ファイル共有の強化 | ファイル共有の強化されたスケーラビリティ (サーバーごとのユーザー、共有、開かれるファイルの数が大幅に増える)。 |
その他 | シンボリック リンクのサポート |
SMB 2.1 機能強化 (Win Sv 2008 R2, Win 7)
機能 | 概要 |
---|---|
クライアント便宜的ロックモデルの導入 | 待ち時間の長いネットワークでのメリット向上 ・ネットワーク帯域幅の使用量の削減 ・ファイル サーバーのスケーラビリティの向上 ・ネットワーク経由でファイルにアクセスしたときのアプリケーションの応答時間の向上 |
大きい MTU のサポート | 最大 MTU が 64 キロバイト (KB) から 1 メガバイト (MB) に増加 ・10 ギガビット イーサネット ネットワークの機能が発揮される ・大きいファイルのコピーなどが、この機能により劇的に向上 |
クライアント コンピューターのエネルギー効率の向上 | スリープ モードへの移行が以下の状況で可能になった ・ネットワークファイルを開いている SMB クライアントに、そのファイルに対して書き込まれていない変更がないとき。 ・ネットワークファイルを開いている SMB クライアントに、そのファイルに対して書き込まれていない変更がある場合でも、そのファイルがローカルオフラインストアによってバックアップされているとき。クライアントがスリープの後で再開すると、これらのファイルはまだ使用でき、ローカル オフライン ストアで整合性が維持される。 ・SMB クライアントが、ネットワーク共有を参照しているか、またはディレクトリ ハンドルを開いているとき。 |
前バージョン SMB のサポート | Windows Server 2008 R2 および Windows 7 は、SMB 1、SMB 2、および SMB 2.1 をサポートし、通信に最適なバージョンを自動的に使用 |
SMB 3.0 機能強化 (Win Sv 2012, Win 8)
機能 | 概要 |
---|---|
SMB 透過フェールオーバー | クラスタ化したWindows Server 2012 ファイルサーバーのノード保守でフェールオーバーが発生した場合、また突然のクラスタノード障害が発生した場合、SMB3.0 クライアントは継続してファイル共有にアクセスできる。ファイル共有にデータを格納しているアプリケーションは中断が発生せず継続運用できる。 |
SMB スケールアウト | クラスターの共有ボリューム (CSV) バージョン 2 を使って、ファイル サーバー クラスター内のすべてのノードから同時にデータ ファイルにアクセスして直接入出力できるファイル共有を作成できる。これにより、ネットワーク帯域幅を効率よく利用しながらファイル サーバー クライアントの負荷分散ができるため、サーバー アプリケーションのパフォーマンスを最適化できる。 |
SMB マルチチャネル | SMB 3.0 クライアントと SMB 3.0 サーバーの間に複数のパスがある場合に、ネットワーク帯域幅を集約し、ネットワークのフォールト トレランスを高めることができる。これにより、サーバー アプリケーションは利用できるすべてのネットワーク帯域幅をフル活用すると共に、ネットワーク障害に対して高い回復力を維持することができる。 |
SMB ダイレクト | RDMA 機能を搭載し、遅延がきわめて小さく、CPU をほとんど使用せずに、最高速度で動作できるネットワーク アダプターが使用できる。Hyper-V や Microsoft SQL Server などのワークロードについては、この機能によってリモート ファイル サーバーをローカル ストレージのように利用することができる。 |
サーバー アプリケーションのパフォーマンス カウンター | SMB の新しいパフォーマンス カウンターでは、スループット、待ち時間、1 秒あたりの I/O (IOPS) に関する情報を共有ごとに詳細に得ることができ、データが格納されている SMB 3.0 ファイル共有のパフォーマンスを解析できる。このカウンターは、Hyper-V や SQL Server など、リモート環境のファイル共有にファイルを格納するサーバー アプリケーション向けに設計されている。 |
パフォーマンスの最適化 | SQL Server の OLTP など、サーバー アプリケーションで生じる I/O は、小規模なランダム読み取り/書き込みが一般的なため、SMB 3.0 クライアントおよび SMB 3.0 サーバーはそれに合わせて最適化。加えて、大きな最大転送単位 (MTU) が既定で有効にされているため、SQL Server データ ウェアハウス、データベースのバックアップと復元、仮想ハード ディスクの展開とコピーなど、大規模なシーケンシャル転送のパフォーマンスが大幅に向上。 |
SMB 用 Windows PowerShell コマンドレット | SMB 用 Windows PowerShell コマンドレットを使うと、管理者がコマンド ラインからエンド ツー エンドでファイル サーバーのファイル共有を管理できる。 |
SMB 暗号化 | SMB データをエンド ツー エンドで暗号化し、信頼できないネットワークで発生する傍受からデータを保護できる。新たに展開コストが発生することはなく、インターネット プロトコル セキュリティ (IPsec)、専用ハードウェア、WAN アクセラレーターも不要。SMB 暗号化は共有ごとでも、ファイル サーバー全体でも構成できる。信頼できないネットワークをデータが通過するさまざまな場面で有効にできる。 |
SMB ディレクトリ リース | ブランチ オフィスのアプリケーションの応答時間を改善。ディレクトリ リースを使うと、保存期間の長いディレクトリ キャッシュからメタデータを取得するため、クライアントからサーバーへのラウンドトリップが減少。サーバーにあるディレクトリ情報に変更があるとクライアントに通知されるので、キャッシュの一貫性も維持。ホームフォルダー (読み込み/書き込み可、共有なし) とパブリケーション (読み取り専用、共有あり) のどちらにも対応。 |
オフロード・データ転送(ODX) | ローカルのCPUやネットワークを使うことなく、リモートのストレージ内でデータを直接コピーを行うことで高速なデータ転送を実現する機能 |
SMB 3.02 機能強化 (Win Sv 2012 R2, Win 8.1)
機能 | 概要 |
---|---|
スケールアウト ファイル サーバー クライアントの自動再分配 | この機能によって、スケールアウト ファイル サーバーのスケーラビリティと管理のしやすさが向上。SMB クライアント接続は (サーバーごとではなく) ファイル共有ごとに追跡され、クライアントは、ファイル共有で使用されるボリュームへのアクセスに優れたクラスター ノードにリダイレクトされる。これにより、ファイル サーバー ノード間のリダイレクト トラフィックが減少し、効率性が向上。クライアントがリダイレクトされるのは、初期接続の後、クラスター記憶域が再構成された場合。 |
SMB ダイレクト (SMB over RDMA) のパフォーマンスの向上 | 小規模な I/O (仮想マシンのオンライン トランザクション処理 (OLTP) データベースなど) でのワークロードをホストするときの効率を高めることによって、小規模な I/O ワークロードのパフォーマンスを向上。このようなパフォーマンスの向上は、より高速なネットワーク インターフェイス (40 Gbps イーサネットや 56 Gbps InfiniBand など) を使用したときに明確になる。 |
強化された SMB イベント メッセージ | SMB イベントには、より詳細で役立つ情報が含まれている。この情報によって、トラブルシューティングが容易になり、不要なネットワーク トレースのキャプチャやより詳細な診断イベント ログの記録を減らすことができる。既定では最も重要なイベント チャネルが有効になっているため、重要な情報を直ちに取得できる。また、現在では、一部のイベントに構成とトラブルシューティングのソリューションに関する詳細情報が含まれている。 |
ゲスト クラスタリング用の共有記憶域としての VHDX ファイル | 仮想マシン内の共有記憶域用に共有 VHDX ファイルを使用することによって、ゲスト クラスターの作成が簡略化される。この機能を使う場合は、クラスターの共有ボリューム (CSV) または SMB スケールアウト ファイル共有に保存される VHDX ファイルを使用することができる。 |
SMB を使用した Hyper-V のライブ マイグレーション | SMB 3.0 をトランスポートとして使用することで、仮想マシンのライブ マイグレーションを実行できる。この機能では、主要な SMB 機能 (SMB ダイレクトや SMB マルチチャネルなど) を利用することで、低い CPU 使用率で高速な移行を実現。 |
SMB 帯域幅管理の向上 | SMB 帯域幅の制限を構成して、さまざまな種類の SMB トラフィックを制御できます。SMB トラフィックには、既定、ライブ マイグレーション、仮想マシンの 3 種類がある。 |
スケールアウト ファイル サーバーでの複数の SMB インスタンスのサポート | スケールアウト ファイル サーバーの各クラスター ノードに、CSV トラフィック専用の追加のインスタンスを提供。既定のインスタンスでは、通常のファイル共有にアクセスする SMB クライアントからの受信トラフィックを処理でき、追加されたインスタンスでは、ノード間の CSV トラフィックのみを処理できるようになる。この機能によって、CSV ノード間のトラフィックのスケーラビリティと信頼性が向上。 |
オプションの機能となった SMB 1.0 | SMB 1.0 の機能 (従来のコンピューター ブラウザー サービスやリモート管理プロトコル (RAP) など) は、個別の機能となり、削除することができる。既定ではこの機能は有効。以前の SMB クライアント (Windows XP や Windows Server 2003 など) を使用していない場合は、SMB 1.0 の機能を削除して、セキュリティを向上させ、修正プログラムの適用を減らせる。 |
参考
- WAN 環境下におけるサーバーの最適な配置とパフォーマンス(PDF)
- Windows Storage Server 2012 で始めるネットワーク接続ストレージ(NAS)入門 (PDF)
- Windows Storage Server 2012 販売シナリオガイド (PDF)
- Windows Server 2012のストレージ強化とエンタープライズへの活用 (PDF)
- [TechNet] Windows Server 2012 R2 の SMB 3.02 の新機能
- [TechNet] Windows Server 2012 の SMB 3.0 の新機能
- [TechNet] Windows Server 2008 R2 の SMB の新機能
- [MSDN]Server Message Block (SMB) Protocol Versions 2 and 3
- [TechNet blog]Updated Links on Windows Server 2012 File Server and SMB 3.0
- Windows Storage Server 2012
- [@IT] 第9回 強化されたファイル共有プロトコルSMB 3.0の概要