概要
最近iSCSIのハードディスクに興味があり、 ネットでコンシューマ向けの製品を調べていました。 ただ、ラインナップも少なく、価格的にも手軽に購入できる ものではなかったので、自作する道を考えていました。 市販の製品も内部的にはUNIX系のOSが 動いているだけだろうと思って調べてみたところ、 やはりLinuxでも構築できるようです。
iSCSIとは簡単に言うとTCP/IPのパケットに乗せて SCSIコマンドを送信することでイーサネット経由で ハードディスクにアクセスするための規格です。
そのため物理的に見るとPCとハードディスク装置を LANケーブルで接続しています。 ただしSCSIコマンドを使用しているため PCから見るとハードディスクはSCSI接続されているように見えます。
前からなんとなくイメージはできていましたが、 実際にネットワークで接続されているだけの装置が Windows XPから内蔵ディスクとして認識されていることに ちょっと驚きました。
必要な設定はSCSIのターゲット(接続先の装置)であるLinuxサーバと、 SCSIにイニシエータ(接続元の装置)であるWindowsの 両方なのですが、今回はLinuxサーバの設定方法を紹介します。
iSCSIのターゲットとして構築するために必要なパッケージは CentOS 5.2には同梱されていません。 そのためソースをダウンロードし、コンパイルして使用します。
このサイトで紹介しているOSインストール手順書では rpmパッケージで機能をインストールすることを前提にしていますので makeを実行した時点でエラーが出力されて失敗してしまいます。 今回iSCSIの構築を試した環境は「最小インストール」 +「開発ツール」+「開発ライブラリ」をベースとしています。
設定
インターネット上からwgetでファイルをダウンロードしてインストールします。
# wget http://jaist.dl.sourceforge.net/sourceforge/iscsitarget/iscsitarget-0.4.16.tar.gz
# tar zxvf ./iscsitarget-0.4.16.tar.gz
# cd ./iscsitarget-0.4.16
# make
# make install
viエディタで設定ファイル(ietd.conf)を開き、設定を変更します。
# mv ./ietd.conf ./ietd.conf.bk
# touch ./ietd.conf
# vi ./ietd.conf
IncomingUser
OutgoingUser
Lun 0 Path=/dev/sdc,Type=fileio
Alias iSCSI
OSの起動に合わせてデーモンを自動起動する設定に変更します。
以上で設定が終了しましたのでrcスクリプトを使用してデーモンを起動します。
