tixture55’s diary

主にプログラミング関係の日記です。

強化されたファイル共有プロトコル〜SMB3.0

クラスタ環境対応やスケールアウト/マルチチャンネル対応などによるパフォーマンス改善 そして管理機能の強化と、改善点は多岐にわたる。


windows server2012やwindows8では従来からwindows OSで利用されてきたファイル共有プロトコル SMBを改良したSMB3.0が実装されている。SMBダイレクト対応などによるパフォーマンスの改善、PowerShell などによる管理機能の強化など、数多くの改良が行われている。

 

  • SMB透過フェールオーバ ファイル・サーバをクラスタしてフェイルオーバーしてもクライアントからは継続してアクセスできる ようにする機能。ファイル共有を利用するアプリケーションを再起動するなどの処理は不要
  • SMBスケールアウト ファイル・サーバ・クラスタ内のすべてのノードから同時にクラスタ共有ボリューム上のファイルに アクセス可能になった。これによりクラスタのノード数を増やしただけファイルサーバの帯域を スケールアウトでき、クライアントの負荷分散につながる
  • SMBダイレクト RDMAというCPUの介在なしでデータを転送する機能をもつアダプタを使うことにより、高速・低レイテンシ の通信を実現する機能 オフロード・データ転送(ODX)ローカルのCPUやネットワークを使うことなく、リモートのストレージ内で データをコピーする機能
  • SMBPowerShell・・PowerShellによるSMBファイル共有サービスの管理が可能
    SMB2.0を実装しているバージョンはwindows vistawindows Server2008で複数のSMBコマンドの連結や 切断時の透過的な再接続処理、ファイル・プロパティのキャッシュ、スケーラビリティの拡大、 シンボリックリンクのサポートなどの機能がある。

 

 

SMBの仕様

基本的に次のようにサーバ側とクライアント側のSMBのバージョンを比較して低い方に合わせて アクセスされる。(バージョンへのネゴシエーションが行われる) 古いバージョンに合わせるのでその分機能が限定される(ダウンレベルアクセスという)

 

【可用性の向上】 SMB透過フェイルオーバーとはクラスタ化したwindows server2012のファイルサーバ上に共有 フォルダを作成しておくと、何らかの障害などでクラスタがフェイルオーバーしても、クライアント からは自動的に別ノードに再接続し、処理を継続できるという機能である。

 

【SMBマルチチャンネルサポート】 SMBのサーバとクライアント間に複数のネットワーク・パスが存在していることが検出されると、 同時に複数のパス(通信路、コネクション)を開設し、パケットを分散して送受信してデータを 読み書きする。これにより、1つのNICだけでは得られないような高速なアクセスが可能になる。 ネットワークインターフェイスやケーブルなどの障害で通信ができなくなっても、自動的に他の パスを使って通信を継続できるので、耐障性も高くなる。

 

 

この機能を利用するためには、いずれかの構成のハードウェアが必要である。 NICチーミングとして構成された一つもしくは複数のネットワークアダプタ 一つもしくは複数のRDMAをサポートしたネットワークアダプタ 複数のネットワークアダプタ(ギガビットイーサネットもしくはInfiniBandネットワークアダプタ

 

※InfiniBandとはイーサネットのようなバス型ではなく、ポイントトゥポイントで接続する 高速通信インターフェイス技術。構成にもよるが、数十〜数百ギガビット/秒の通信が可能