Windows Server の SMB 3 プロトコルを使用したファイル共有の概要
この記事では、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、および Windows Server 2012 のサーバー メッセージ ブロック (SMB) 3 プロトコルの概要について説明します。 実用的なアプリケーション、以前のバージョンと比較した新機能と更新された機能、およびハードウェア要件について説明します。 さらに、SMB は、記憶域スペース ダイレクトや記憶域レプリカなどのソフトウェア定義データ センター (SDDC) ソリューション
機能の説明
SMB プロトコルは、コンピューター上のアプリケーションがファイルの読み取りと書き込みを可能にするネットワーク ファイル共有プロトコルです。 SMB は、コンピューター ネットワーク内のサーバー プログラムからサービスも要求します。 SMB プロトコルは、TCP/IP プロトコルをはじめとするネットワーク プロトコルの上位で使用できます。 SMB プロトコルを使えば、アプリケーション (またはアプリケーションのユーザー) がリモート サーバーにあるファイルなどのリソースにアクセスできます。 このプロトコルを使用すると、アプリケーションはリモート サーバー上のファイルの読み取り、作成、更新を行えます。 また、SMB は、SMB クライアント リクエストを受け取ることができるように設定された任意のサーバー プログラムと通信できます。 SMB は、記憶域スペース ダイレクト、記憶域レプリカなどのソフトウェア定義データ センター (SDDC) コンピューティング テクノロジによって使用されるファブリック プロトコルです。 詳細については、「Windows Server のソフトウェアによるデータセンター」を参照してください。
実際の適用例
このセクションでは、この新しい SMB 3.0 プロトコルの実際の使用法をいくつか説明します。
- 仮想化用のファイル ストレージ (Hyper-V™ over SMB) 。 Hyper-V では、SMB 3.0 プロトコルを使って構成ファイル、仮想ハード ディスク (VHD) ファイル、スナップショットなどの仮想マシン ファイルをファイル共有に格納できます。 この機能はスタンドアロン型ファイル サーバーで使用できますが、Hyper-V を使っており、かつクラスターに共有ファイル ストレージを使っていれば、クラスター化されたファイル サーバーでも使用できます。
- Microsoft SQL Server over SMB。 SQL Server は、SMB を使用するファイル共有にユーザーのデータベース ファイルを格納できます。 現時点では、スタンドアロン SQL サーバーの SQL Server 2008 R2 では、SMB 経由の SQL Server がサポートされています。 今後のバージョンの SQL Server では、クラスター化された SQL サーバーとシステム データベースのサポートが追加されます。
- エンド ユーザー データの従来型ストレージ。 SMB 3.0 プロトコルは、インフォメーション ワーカー (つまりクライアント) の作業効率を改善します。 たとえば、ブランチ オフィスのユーザーがワイド エリア ネットワーク (WAN) 経由でデータにアクセスする際のアプリケーション待ち時間を短縮したり、データの傍受からの保護したりします。
Note
SMB ファイル共有で記憶領域を節約する必要がある場合は、クラウドの階層化を有効にした Azure File Sync を使用することを検討してください。 Azure File Sync を使用すると、アクセス頻度が最も高いファイルをローカルにキャッシュし、アクセス頻度が最も低いファイルをクラウドに階層化できるため、パフォーマンスを維持しながらローカルストレージ領域を節約できます。 詳細については、「Azure File Sync のデプロイの計画」を参照してください。
新機能と変更された機能
以下のセクションでは、SMB 3 とそれ以降の更新プログラムで追加された機能について説明します。
Windows Server 2019 および Windows 10 バージョン 1809 で追加された機能
機能 | 新規/更新 | 要約 |
---|---|---|
継続的に使用できないファイル共有上のディスクへの書き込みを必要とする機能 | 新規 | ファイル共有への書き込みが、書き込み操作が完了する前にソフトウェアとハードウェア スタックを介して物理ディスクに至るまでの保証を提供するために、NET USE /WRITETHROUGH コマンドまたは New-SMBMapping -UseWriteThrough PowerShell コマンドレットを使用して、ファイル共有の書き込みスルーを有効にすることができます。 ライトスルーを使用すると、パフォーマンスが低下することがあります。詳細については、ブログ記事「SMB でのライトスルー動作の制御」を参照してください。 |
Windows Server バージョン 1709、Windows 10、バージョン 1709 で追加された機能
機能 | 新規/更新 | 要約 |
---|---|---|
ファイル共有へのゲスト アクセスが無効になりました | 新規 | SMB クライアントでは、次の操作が許可されなくなりました。リモート サーバーに対するゲスト アカウントでのアクセス。無効な資格情報が指定されると、ゲスト アカウントにフォールバックします。 詳細については、「Windows の既定で無効になっている SMB2 のゲスト アクセス」を参照してください。 |
SMB グローバル マッピング | 新規 | リモート SMB 共有を、(コンテナーを含む) ローカル ホスト上のすべてのユーザーがアクセスできるドライブ文字にマップします。 SMB グローバル マッピングは、データ ボリュームのコンテナー I/O がリモート マウント ポイントを走査できるようにするために必要です。 コンテナーに SMB グローバル マッピングを使用する場合、コンテナー ホスト上のすべてのユーザーがリモート共有にアクセスできます。 コンテナー ホストで実行されているすべてのアプリケーションにも、マッピングされたリモート共有へのアクセス権があります。 詳細については、クラスター共有ボリューム (CSV)、記憶域スペース ダイレクト、SMB グローバル マッピングによるコンテナーストレージのサポートに関するブログの記事を参照してください。 |
SMB 言語制御 | 新規 | レジストリ値を設定して、使用される最小 SMB バージョン (言語) と最大 SMB バージョンを制御できるようになりました。 詳細については、「SMB 言語の制御」を参照してください。 |
Windows Server 2016 と Windows 10 バージョン 1607 で SMB 3.1.1 に追加された機能
機能 | 新規/更新 | 要約 |
---|---|---|
SMB 暗号化 | 更新済み | Advanced Encryption Standard-Galois/Counter Mode (AES-GCM) による SMB 3.1.1 暗号化は、SMB 署名または AES-CCM を使用した以前の SMB 暗号化よりも高速です。 |
ディレクトリ キャッシュ | 新規 | SMB 3.1.1 には、ディレクトリ キャッシュの機能強化が含まれています。 Windows クライアントは、約 500,000 エントリの大きなディレクトリをキャッシュできるようになりました。 Windows クライアントは、ラウンド トリップを減らし、パフォーマンスを向上させるために、1 MB のバッファーでディレクトリ クエリを試みます。 |
事前認証の整合性 | 新規 | SMB 3.1.1 では、事前認証の整合性により、中間者の攻撃者による SMB の接続確立と認証メッセージの改ざんによる保護が強化されます。 詳細については、「Windows 10 での SMB 3.1.1 の事前認証の整合性」を参照してください。 |
SMB 暗号化の機能強化 | 新規 | SMB 3.1.1 には、接続ごとに暗号アルゴリズムをネゴシエートするメカニズムが用意されており、AES-128-CCM と AES-128-GCM のオプションがあります。 AES-128-GCM は新しい Windows バージョンの既定値ですが、古いバージョンでは引き続き AES-128-CCM が使用されます。 |
クラスターのローリング アップグレードのサポート | 新規 | アップグレードの過程で、SMB がクラスターに対して異なる最大バージョンの SMB をサポートしているように見せることにより、クラスターのローリング アップグレードを実現します。 プロトコルの異なるバージョン (方言) を使用して SMB 通信を行う方法の詳細については、SMB 言語の制御 |
Windows 10 での SMB ダイレクト クライアントのサポート | 新規 | Windows 10 Enterprise、Windows 10 Education、Windows 10 Pro for Workstations には、SMB ダイレクト クライアントのサポートが追加されました。 |
FileNormalizedNameInformation API 呼び出しのネイティブ サポート | 新規 | ファイルの正規化された名前を照会するためのネイティブ サポートを追加します。 詳細については、「FileNormalizedNameInformation」を参照してください。 |
詳細については、Windows Server 2016 Technical Preview 2の SMB 3.1.1 の新機能
Windows Server 2012 R2 および Windows 8.1 で SMB 3.02 に追加された機能
機能 | 新規/更新 | 要約 |
---|---|---|
スケールアウト ファイル サーバー クライアントの自動再分配 | 新規 | スケールアウト ファイル サーバーのスケーラビリティと管理容易性が向上しています。 SMB クライアント接続は (サーバーごとではなく) ファイル共有ごとに追跡され、クライアントは、ファイル共有で使用されるボリュームへのアクセスに優れたクラスター ノードにリダイレクトされます。 これにより、ファイル サーバー ノード間のリダイレクト トラフィックが減少し、効率性が向上します。 クライアントがリダイレクトされるのは、初期接続の後、クラスター記憶域が再構成された場合です。 |
WAN 経由のパフォーマンス | 更新済み | Windows 8.1 および Windows 10 では、リモート マシン上のある場所から同じサーバー上の別のコピーへのリモート コピーにエクスプローラーを使用する場合、SMB を介した CopyFile SRV_COPYCHUNK のサポートが向上しています。 ネットワーク経由で少量のメタデータのみをコピーします (ファイル データの 16MiB あたり 1/2KiB が送信されます)。 その結果、パフォーマンスが大幅に向上します。 これは、SMB の OS レベルとエクスプローラーレベルの違いです。 |
SMB ダイレクト | 更新済み | 小規模な I/O (仮想マシンのオンライン トランザクション処理 (OLTP) データベースなど) でのワークロードをホストするときの効率を高めることによって、小規模な I/O ワークロードのパフォーマンスを向上させます。 このようなパフォーマンスの向上は、より高速なネットワーク インターフェイス (40 Gbps イーサネットや 56 Gbps InfiniBand など) を使用したときに明確になります。 |
SMB 帯域幅の制限 | 新規 | Set-SmbBandwidthLimit を使用して、3 つのカテゴリの帯域幅制限を設定できるようになりました。VirtualMachine (SMB 経由の Hyper-V トラフィック)、LiveMigration (SMB 経由の Hyper-V Live Migration トラフィック)、または既定値 (他のすべての種類の SMB トラフィック) です。 |
Windows Server 2012 R2 での SMB の新機能と変更された機能の詳細については、「Windows Server での SMB の新機能」を参照してください。
Windows Server 2012 と Windows 8 で SMB 3.0 に追加された機能
機能 | 新規/更新 | 要約 |
---|---|---|
SMB 透過フェールオーバー | 新規 | クラスター化されたファイル サーバーにあるノードのハードウェアやソフトウェアの保守作業を行うときに、そのファイル共有にデータを格納しているサーバー アプリケーションを中断する必要がありません。 また、クラスター ノードでハードウェアまたはソフトウェアの障害が発生した場合に、SMB クライアントが別のクラスター ノードに透過的に再接続できます。このとき、そのファイル共有にデータを格納しているサーバー アプリケーションを中断する必要はありません。 |
SMB スケールアウト | 新規 | スケールアウト ファイル サーバーでの複数の SMB インスタンスのサポート。 クラスターの共有ボリューム (CSV) バージョン 2 を使って、ファイル サーバー クラスター内のすべてのノードから同時にデータ ファイルにアクセスして直接入出力できるファイル共有を作成できます。 SMB Scale Out により、ファイル サーバー クライアントのネットワーク帯域幅と負荷分散の使用率が向上し、サーバー アプリケーションのパフォーマンスが最適化されます。 |
SMB マルチチャネル | 新規 | SMB クライアントとサーバーの間に複数のパスがある場合に、ネットワーク帯域幅を集約し、ネットワークのフォールト トレランスを高めることができます。 これにより、サーバー アプリケーションは利用できるすべてのネットワーク帯域幅をフル活用すると共に、ネットワーク障害に対して高い回復力を維持することができます。 SMB 3 の SMB マルチチャネルによって、パフォーマンスは SMB の以前のバージョンよりも大幅に向上します。 |
SMB ダイレクト | 新規 | RDMA 機能を備え、低待機時間でフルスピードで機能できるネットワーク アダプターの使用をサポートし、CPU をほとんど使用できません。 Hyper-V や Microsoft SQL Server などのワークロードの場合、SMB Direct を使用すると、リモート ファイル サーバーはローカル ストレージに似ています。 SMB 3 の SMB ダイレクトによって、パフォーマンスは SMB の以前のバージョンよりも大幅に向上します。 |
サーバー アプリケーションのパフォーマンス カウンター | 新規 | SMB の新しいパフォーマンス カウンターでは、スループット、待ち時間、1 秒あたりの I/O (IOPS) に関する情報を共有ごとに詳細に得ることができます。これで、管理者はデータが格納されている SMB ファイル共有のパフォーマンスを解析できます。 これらのカウンターは、リモート ファイル共有にファイルを格納する Hyper-V や SQL Server などのサーバー アプリケーション用に設計されています。 |
パフォーマンスの最適化 | 更新済み | SMB クライアントとサーバーはどちらも、SQL Server OLTP などのサーバー アプリケーションで一般的な小さなランダム読み取り/書き込み I/O 用に最適化されています。 加えて、大きな最大転送単位 (MTU) が既定で有効にされているため、SQL Server データ ウェアハウス、データベースのバックアップと復元、仮想ハード ディスクの展開とコピーなど、大規模なシーケンシャル転送のパフォーマンスが大幅に向上します。 |
SMB 用 Windows PowerShell コマンドレット | 新規 | SMB 用 Windows PowerShell コマンドレットを使うと、管理者がコマンド ラインからエンド ツー エンドでファイル サーバーのファイル共有を管理できます。 |
SMB 暗号化 | 新規 | SMB データをエンド ツー エンドで暗号化し、信頼できないネットワークで発生する傍受からデータを保護できます。 新たに展開コストが発生することはなく、インターネット プロトコル セキュリティ (IPsec)、専用ハードウェア、WAN アクセラレーターも不要です。 これは、共有ごとに、またはファイル サーバー全体に対して構成できます。また、データが信頼されていないネットワークを通過するさまざまなシナリオで有効にすることができます。 |
SMB ディレクトリ リース | 新規 | ブランチ オフィスのアプリケーションの応答時間を改善します。 ディレクトリ リースを使うと、保存期間の長いディレクトリ キャッシュからメタデータを取得するため、クライアントからサーバーへのラウンドトリップが減少します。 サーバーにあるディレクトリ情報に変更があるとクライアントに通知されるので、キャッシュの一貫性を維持できます。 ディレクトリ リースは、HomeFolder (読み込み/書き込み可、共有なし) と Publication (読み取り専用、共有あり) のどちらのシナリオにも対応しています。 |
WAN 経由のパフォーマンス | 新規 | SMB 3.0 では、ディレクトリの便宜的ロック (oplock) と oplock リースが導入されました。 一般的なオフィスおよびクライアントのワークロードでは、oplocks およびリースによってネットワーク ラウンドトリップが約 15% 削減されることが示されています。 SMB 3 では、クライアントでのキャッシュ動作と、より高いスループットをプッシュする機能を向上させるために、SMB の Windows 実装が改良されました。 SMB 3 では、CopyFile() API と Robocopy などの関連ツールが改善され、ネットワーク経由でより多くのデータがプッシュされます。 |
セキュリティで保護された言語ネゴシエーション | 新規 | 言語のネゴシエーションのダウングレードを試みる man-in-the-middle を防止するために利用できます。 その目的は、クライアントとサーバーの間で最初にネゴシエートされた言語と機能を盗聴者がダウングレードできないようにすることです。 詳細については、「SMB3 のセキュリティで保護された言語ネゴシエーション」を参照してください。 SMB 3.1.1 では、この機能が Windows 10 の SMB 3.1.1 事前認証整合性によって置き換えられました。 |
ハードウェア要件
SMB 透過フェールオーバーには、次の要件があります。
- 少なくとも 2 つのノードが構成された Windows Server 2012 または Windows Server 2016 を実行しているフェールオーバー クラスター。 このクラスターは、検証ウィザードのクラスター検証テストに合格している必要があります。
- ファイル共有が "継続的可用性 (CA)" プロパティで作成されていること。これは既定の設定です。
- SMB のスケールアウトができるように、CSV のボリューム パスにファイル共有を作成していること。
- クライアント コンピューターは、Windows® 8 または Windows Server 2012 を実行している必要があります。このどちらにも、継続的な可用性をサポートする更新された SMB クライアントが含まれています。
Note
下位レベルのクライアントは、CA プロパティを持つファイル共有に接続できますが、これらのクライアントでは透過的なフェールオーバーはサポートされていません。
SMB マルチチャネルの要件は次のとおりです。
- 少なくとも 2 台のコンピューターが Windows Server 2012 を実行している必要があります。 これ以外の機能のインストールは不要です。このテクノロジは既定でオンになっています。
- 推奨されるネットワーク構成については、この概要記事の最後にある「関連項目」セクションを参照してください。
SMB ダイレクトの要件は次のとおりです。
- 少なくとも 2 台のコンピューターが Windows Server 2012 を実行している必要があります。 これ以外の機能のインストールは不要です。このテクノロジは既定でオンになっています。
- RDMA 機能搭載のネットワーク アダプター。 ネットワーク アダプターは現在、iWARP、Infiniband、RoCE (RDMA over Converged Ethernet) の 3 種類が使用できます。
説明を見る
Windows Server 2012 R2、Windows Server 2012、および Windows Server 2016 の SMB および関連テクノロジに関する Web 上のその他のリソースを次の一覧に示します。