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にはなりませんでした.

2000年に CIFS から改めて SMB に改称されて Windows 2000 で導入されました.
したがって、CIFS という用語は本来は SMB 1.0 未満を指す言葉になりますので,皆さんは正しく「SMB」と呼称しましょう.

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

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

SMB 2.0

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

また,永続性ファイルハンドルのサポートにより,サーバーとの接続が切断されても再接続が透過的に行われ,再認証が不要になったことも大きな特徴です.
(SMB 1.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コマンドの統合も行われオペレーションにかかるコストが削減されました.

ブランチキャッシュ

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

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

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

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

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

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

透過フェイルオーバー

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 の通信でもインターフェイスの数分の帯域を利用できます.
さらに,チーミングと同様に,ネットワークの断が発生した場合でも,有効なインターフェイスを利用してアクセスを継続できます.

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

コメント

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