Windows ファイルサーバー – ファイルサーバーサービスを構成する 「SMBの解説」

ファイルサーバー
スポンサーリンク
スポンサーリンク

今回は,クライアントのプロファイルを保存するためのファイルサーバーを構築します.
このファイルサーバーは,DFS(分散ファイルシステム)と DFSR(DFS レプリケーション)を利用して冗長化されたファイルサーバーとなります.

ファイルサーバーを構築する前に,まずは SMB について説明していきます.

SMB とは

SMB(Server Message Block)は,ネットワーク上のファイルにアクセスするための仕組みで,主に Windows のファイルサーバーサービスで使用されるプロトコルです.元々は IBM が開発し,現在は Microsoft が管理しています.

この仕組み (サービス) を使うことで,クライアントはネットワーク上のファイルに直接アクセスしたり,ドライブマップ (ネットワークドライブとしてマウント) を介してネットワーク上のファイルをローカルストレージと同様に利用できます.
主に Windows OS で使われますが,Linux や Mac などでも利用可能です.

次のイメージは,SMB クライアントが SMB サーバーの共有フォルダをクライアント端末の「Z:\」にドライブマップして利用することを説明したイメージです.
ドライブマップされた以降は「Z:\」以下の読み書き処理は全て SMB サーバーの「営業部」共有以下に対する読み書きリクエストとなります.

SMB バージョン

SMB というプロトコルは長い期間利用されているプロトコルのため,いくつかのバージョンがあります.ここではそれぞれのバージョンと特徴についてかいつまんで説明します.

SMB 1.0 (CIFS)

SMB は長い歴史を持つプロトコルであり,複数のバージョンが存在します.初期の SMB は TCP/IP 上ではなく NetBIOS (NetBEUI) 上で動作しました.
1996年に CIFS(Common Internet File System)に改称し,Web NFS に対抗するた RFC インターネットドラフトとして仕様が公開されましたが,RFCにはなりませんでした.

Windows 2000 では,NetBIOS を使わずに 445/TCP で直接やり取りする「ダイレクトホスティング」が加わりました.
なお,「SMB 1.0」は SMB 2.0 が登場した後に,それまでの SMB(CIFS を含む)をまとめて呼ぶようになった名前です.CIFS は SMB の古い方言の名前なので,今の Windows のファイル共有は正しく「SMB」と呼称しましょう.

大きな特徴としては次のとおりです.

バージョン特徴
CIFSトランスポート層から独立してTCP/IP で動作するようになった
2GB を超えるのファイルの扱いが可能となった
SMB 1.0Active Directory 認証 (Kerberos 認証) に対応
ダイレクトホスティング SMB (445/TCP) に対応し、TCP/IP で直接扱えるようになった
Windows 2000 Server より、ドメインDFSが使えるようになった
Windows Server 2003 SP1 より、ABE が使えるようになった

SMB 2.0

SMB 2.0 は Windows Vista / Windows Server 2008 で導入されました.
以前のバージョンに比べ,コマンド/サブコマンドが19個に集約され,パイプライン化によりパフォーマンスが大幅に向上しています.セッション数の増加などのプロトコルの拡張が行われた結果,パフォーマンスに大きく寄与する変更が加わりました.

また,耐久性ハンドル(durable handle)のサポートにより,ネットワークが短い時間切れても,再接続してファイルを開いたままの状態を続けられるようになったことも大きな特徴です.
(クラスターのフェイルオーバーでも操作を続けられる「永続ハンドル」と透過フェールオーバーは,SMB 3.0 からの機能です)

バージョン特徴
切断時の透過的な再接続処理ネットワークが一時的に切れても、再接続してファイル操作を継続できるようになった(耐久性ハンドル。フェイルオーバーでの透過的な継続は SMB 3.0 から)
複数のSMBコマンドの連結複数のSMB命令を組み合わせて一つのリクエストとして送信が可能となった
順次リクエストする場合と違いやり取り回数を減らせる事でパフォーマンスが大きく向上
ローカルキャッシュフォルダー、ファイルのプロパティをキャッシュできるようになり、クライアントはファイル、フォルダーのローカルコピーを保持可能になった
(オフラインキャッシュ)
セキュリティの強化署名アルゴリズムを MD5 から HMAC SHA-256 に変更された
ファイル共有の強化サーバー毎のSMBセッション数、共有数、オープン可能なファイル数が大幅に増加
シンボリックリンクSMB 共有上でのシンボリックリンクが利用可能となった

SMB 2.1

SMB 2.1 は Windows 7 / Windows Server 2008 R2 から利用可能となりました.
このバージョンでは,モバイル端末やブランチオフィスでの利便性向上が期待される機能が追加されています.
さらに,SMB 2.1 からは「ブランチキャッシュ」も利用可能になりました.

バージョン特徴
スリープモードのサポートスリープ モードへの移行が以下の状況で可能になった
・SMB経由でファイルを開いている際、そのファイルに対して書き込まれていない変更がないとき
・SMB経由でファイルを開いている際、そのファイルに対して書き込まれていない変更がある場合でも、ファイルがローカルオフラインストアによってバックアップされているとき
・ネットワーク共有を参照しているか、ディレクトリを開いているとき
ブランチキャッシュファイルサーバーのキャッシュを各々のクライアントで持ったり、特定のホストが持ち,実際のファイルサーバーにアクセスする頻度を減らすことが可能になった

SMB 3.0

SMB 3.0 は Windows 8 / Windows Server 2012 で導入されました.
このバージョンでは,データセンターやエンタープライズストレージ向けに必要な機能やパフォーマンスが向上しています.
複数のインターフェイスを使用した転送速度の向上や,ファイルアクセス状況の維持によるフェイルオーバー,ファイルサーバーのスケーリングなどの機能拡張が行われ,Hyper-V や SQL Server 向けの共有ストレージとしても利用可能になりました.

バージョン特徴
透過フェイルオーバーファイルアクセスを維持したまま、正常ノードへフェイルオーバーが可能となった
スケールアウト複数の Windows Server を並べ、 最大8ノードで Active / Active でファイルサーバーを提供できるようになった
マルチチャンネルチーミング構成をとらずに複数のインターフェイスを利用したファイル読み書きが可能となり、速度向上・耐障害性が図られた

SMB で提供されている機能

ここでは上で説明した SMB で提供されている機能について簡単に説明します.

パイプライン処理,SMBコマンドの連結

SMB 1.0 までは,リクエストの後にレスポンスを待ってから次のリクエストを送信する方式でしたが,SMB 2.0 ではリクエストを送信してからレスポンスを待たずに次のリクエストを送信できるパイプライン化が導入されました.
合わせて,SMBコマンドの統合も行われオペレーションにかかるコストが削減されました.

ブランチキャッシュ

ブランチキャッシュは,拠点(ブランチオフィス)の中でキャッシュを共有し,WAN 越しに本社などのファイルサーバーから取り寄せる量を減らして,パフォーマンスを向上させる仕組みです.
ファイルサーバーへのアクセス後,キャッシュとしてデータを保持することで,不要なトラフィックを削減します.
以下は,自身のコンピューターにキャッシュがある場合とない場合の挙動を示したイメージです.

また,ブランチキャッシュはネットワーク内の他のコンピューターともキャッシュを共有します.

分散型のブランチキャッシュ

分散型のブランチキャッシュは,キャッシュを特定のホストではなく,複数のクライアント間で共有する仕組みです.
先行してファイルにアクセスしたクライアントがキャッシュを保持し,その他のクライアントはファイルサーバーから提供された「ハッシュ値」を元にキャッシュを持っているクライアントを探してファイルを取得します.
この探索はマルチキャストアドレスを使用して行われ,分散型は仕様として1つのサブネットの中だけで動きます.
この方法は,管理者が不在な小規模な拠点に適しています.

ホスト型のブランチキャッシュ

ホスト型のブランチキャッシュは,特定のホストをキャッシュサーバーとして構成し,キャッシュを集中的に管理して複数のクライアントで共有する仕組みです.
ファイルにアクセスしたクライアントがキャッシュサーバーにハッシュ情報とファイルを保存し,その他のクライアントはファイルサーバーから提供された「ハッシュ値」を元にキャッシュサーバーにアクセスしてコンテンツを取得します.
この構成では,ユニキャストアドレスを使用してキャッシュサーバーにアクセスするため,セグメントを超えたキャッシュの共有が容易に行えます.
この方法は,管理者が存在する拠点に適しています.

透過フェイルオーバー

SMB透過フェイルオーバーは,フェイルオーバークラスターやスケールアウトファイルサーバーなどの構成において,ファイルアクセスの中断を防止します.
データ転送中にノードが障害になった場合,一時的にIOが停止しますが,フェイルオーバー後は自動的に転送が再開されます.

この機能の導入により,Hyper-V や SQL Server のバックエンドに SMB ファイルサーバーを選択することが可能になりました.

Windows Server Failover Cluster (WSFC) でファイル共有を作成する際に,本機能を利用するチェックボックスがあります.Get-SmbShare コマンドの ContinuouslyAvailable の値で確認できます.

スケールアウト

SMB スケールアウトファイルサーバーは,フェイルオーバークラスターと CSV (クラスター共有ボリューム) を組み合わせた Active/Active のファイルサーバークラスターです.
分散ネットワーク名を使用した単一のファイルサーバー名でのアクセスが可能で,最大8台のクラスターを構成できます.アクセスは共有の所有権を持つサーバーに自動接続する形で分散されます.

Windows Server が提供するストレージ階層化機能や重複排除機能などと組み合わせることで,大規模な NAS を構成することができます.
ただし,スケールアウトファイルサーバーは WSFC と比較して実行できないタスクもありますので,用途に応じて構成を検討する必要があります.

マルチチャネル

チーミングでは,1対1 の通信では基本的に1つのネットワーク分の帯域しか利用できませんが,マルチチャネルでは 1対1 の通信でもインターフェイスの数分の帯域を利用できます.
さらに,チーミングと同様に,ネットワークの断が発生した場合でも,有効なインターフェイスを利用してアクセスを継続できます.

その他にも多数の機能がありますが,目玉になりそうな機能を紹介しました.
機能の説明で紙幅を取ってしまいましたので,ファイルサーバーの構成,設定は次回以降に解説します.

(2026年10月追記:Windows 2000 Server の表記、SMB 2.0 の耐久性ハンドル、CIFS と「SMB 1.0」の呼び名、ブランチキャッシュの説明を直しました.SMB の仕組みは,このブログの連載「SMB入門」(2027年2月公開)で詳しく扱います)

コメント

タイトルとURLをコピーしました