【図解】初心者にも分かる iSCSI の仕組み ~NAS(NFS)との違いやメリット,デメリット~

iSCSI とは

ストレージは大きく分けて2種類あります。

1つは『ファイルストレージ』で、一般的には『NAS(Network Attached Storage)』と呼ばれています。もう1つは『ブロックストレージ』で、これはさらにSASケーブル等の専用ケーブルでサーバと直結する 『DAS(Direct Attached Storage)と、SAN(Storage Area Network)というネットワークでサーバと接続する『SANストレージの2つに分かれます。

これらの違いについて分からない場合は以下ページを参考にしてみて下さい。

【図解】良くわかるDAS/NAS/SANストレージの違い,iSCSIの分類 ~接続方法やメリット/デメリット~
【図解】良くわかるDAS/NAS/SANストレージの違い,iSCSIの分類 ~接続方法やメリット/デメリット~
ストレージの種類 ストレージは大きく分けて2種類あります。 1つは『ファ...

iSCSI は上記でいうところの『SANストレージ』との接続方式に該当します。

つまり、iSCSI とは SAN の一種です。

SAN の種類とメリット・デメリット

SANとは『Fibre Channel(ファイバチャネル,略称FC)』や『FC over Ethernet(読み方:エフシーオーイー, 略称FCoE)』、『iSCSI(読み方:アイスカジー)』といったプロトコルを使って ブロックアクセスを行わせる、ストレージ専用ネットワークのことです。

そして SANストレージは、SAN を介してサーバと接続される、ブロックストレージの一種です。

FC/FCoE/iSCSI のいづれのプロトコルも SCSI コマンドをカプセル化するものですので、基本的には DASと同様のブロックアクセスを行います。つまり、SANストレージはファイルシステムを理解せず、接続元であるサーバ OS がファイルシステムを理解した上で SAN ストレージに SCSI コマンドによるブロックレベルでのアクセスを行います。

FC のメリットはオーバーヘッドが少なくパフォーマンスが良いことです。一方デメリットは、インタフェース(HBA=ホストバスアダプタ)や(冗長化のための)ファイバチャネルスイッチ等が独自規格のため高価であることです。なお、ケーブル自体は 10GBase-LR 等で使う一般的なシングルモード/マルチモードの光ケーブル、LC 等の一般的なコネクタのものが利用可能です。

一方、FCoE や iSCSI は大量生産が可能な Ethernet インタフェースを使うためコスト削減ができるのがメリットです。

FCoE は SCSI コマンドを Ethernet にカプセル化するため、オーバーヘッドは Ethernet ヘッダ分だけで済みますが、サーバと同一ブロードキャストドメインに存在する必要があります。

iSCSI は SCSI コマンドを Ethernet および IP にカプセル化しますので、ルーティングによりIPネットワークを横断できますが、オーバーヘッドは Ethernetヘッダ+IPヘッダになります。

NAS (CIFS, NFS接続) との違い、メリット・デメリット

NAS とはファイルストレージのことで、IPアドレスを持ち、IPネットワークに接続して使われます。特徴としては、競合を気にすることなく、複数のサーバOSが同時にNASを利用できます。よく使われるプロトコルは CIFS(SMB) と NFS の2種類です。

NAS は SANストレージと異なり、NAS自体がファイルシステムを構成し、認識します。そのため、要求はブロック単位ではなくファイル/フォルダ単位で処理されます

具体的には、サーバOS は NAS に対し『資格情報(ユーザID等)』と『アクセスしたいファイル』と『ファイルに対する操作(Read/Write等)』を送信します。NAS はアクセス権に問題が無いことを確認した上で、処理を実行し、結果をサーバOSに返します。上図では CIFS の例を示していますが、NFS でも同じです。

iSCSI のメリット (=NAS のデメリット)

iSCSI はブロックレベルでのアクセスを行う低レイヤの要求であるため、NASと比べて処理が高速です。つまりパフォーマンスが良いのです。

NAS のメリット (= iSCSI のデメリット)

NASは複数サーバOSからの同時アクセスに対しては待ち行列を使って順に処理をしていきます。必要に応じてロック(排他)するため、基本的に競合を起こしません。

なお、このように NAS は高次元な処理を行うOSが必要となり、このような OS を一般的に『NASヘッド』と呼びます。NASヘッドは Windows や Linux 等の一般的なOSであったり、ストレージメーカ独自OSだったりします。

一方 、iSCSI等のブロックアクセスは一般的に、ストレージがファイルシステム全体像を理解していないため、複数のホストが互いに相手領域に侵食する(競合する)ことを防げません

例えば複数仮想ホストから SASケーブルで 1つの DAS に接続したり、iSCSI で複数イニシエータから1つのターゲットにログインしたり等で、LUN を複数ホストから共有する場合、何もしないとお互いの領域を破壊し合うシナリオも起こりえます。

iSCSI のデメリットに対する解決策

サーバ仮想化において、ブロックストレージを共有ストレージとして利用するのはごく一般的であり、ソフトウェアベンダの考慮が行き届いていたりもします。

例えば VMware では VMFS というクラスタファイルシステムを使うため『オンディスクロック』という機能により排他を行い、安全性を確保できます。

KVM では virtlockd による排他処理や、クラスタLVMによる排他処理など、実装がいくつかあるようで、実際にどのようにするか検討・設計する必要があります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする