2016年6月9日木曜日

iSCSIを利用しようその1

私が使っているNASキットは、通常のCIFS(Windowsファイル共有)とNFSだけでなく、iSCSIも利用することが出来る。
これを使って、Ubuntu Linuxにディスク領域を提供し、データ置き場にしてみたい。
(そもそも、NASキットでiSCSIストレージが使えるから、Ubuntu Linuxを搭載するNUCは120GB程度のSSDにしたんだった)

で、「そもそもiSCSIってナニよ?」ってところなんだけど…。
ご存じの方はご存知の通りなので、軽く読み飛ばして欲しい。

ご存知ではない方へ…
iSCSIとは、「Internet Protocol上にSCSIプロトコル(SCSIコマンド)を流す仕組み」だ。
うん、さっぱりワカランね。

SCSIっていうのは、Small Computer System Interfaceの略で、小型コンピュータ(ココでは、一般家庭のPCや、Interl x86系プロセッサを搭載したサーバ機器等)と各種外付デバイスを接続する規格の一種で、コネクタ形状やケーブル形状といった物理規格、当然電気的な規格(電圧等)、そしてその中を流れるコマンド類まで規格化されている、らしい。

また、色々なSCSIデバイスが生み出されてきたが、その特性からHDDやCD-ROM等のブロックデバイスに使用されることが多かった。
#いわゆる記憶媒体だけでなく、SCSIデバイスのスキャナもあった。
#逆に、SCSI接続のマウス、みたいなキャラクタデバイスは見たことが無い。

こういったSCSI規格のうち、ソフトウェア的な部分(コマンド類)を、今までのSCSIケーブルではなく、IP上に載っけてしまおう、というのがiSCSI規格だ。

SCSIに於ける機器の関係は以下のとおり。

PCにSCSIアダプタを搭載し、そこからSCSIケーブルを伸ばし、HDDがつながっているSCSIコントローラに接続する、という形だ、思う。

iSCSIは、上図の「SCSIケーブル」のところがEtherケーブルになっていて、IPネットワーク上に構築される形だ。
多分こんな形

SCSIで「コントローラ」とされていた部分は、ソフトウェアで実装されており、通常のNetworkにデータが流れるようなイメージになっている。
また、HDD側も同様に、ソフトウェアでコントローラが実装されていて、通常のNetworkに接続されている。
(コントローラをハードウェアで実装しているものもある)

そして、PC側のコントローラを「iSCSIイニシエータ」、HDD側のコントローラを「iSCSIターゲット」と呼ぶ…らしい。(詳細はちょっと違うけど)
これ、「iSCSIクライアント」と「iSCSIサーバ」って表現にしてくれたら分かりやすかったのに。

で、HDD側で容量を適当に切り出して、

その領域をターゲットに紐付けて、

ターゲットごと、イニシエータに提供する(アクセス許可を与える)

それによって、PCにあたかも新しいHDDを追加搭載したように見える。


細かくは色々あるんだけど、ざっくりこんな感じだ。

で、上記の設定を施して、Ubuntu LinuxからiSCSIのディスク領域を使えるようにしよう、ってのが今の思い。

長くなったので、一旦ココまで。
次回分から、実装にとりかかる。

0 件のコメント:

コメントを投稿