SheevaPlugで運用していたiSCSIサーバですがいろいろつなぐと結構スペースを取るという欠点があるので一時撤収。MacMiniにiSCSI targetを移そうとしてみました。商用ソフトは存在していますが少しお高いのでとりあえず自力で何とかする方向で。ちょっとググッてみて、どうやらMacOSXにnetbsdのiSCSIパッケージを入れると使えたとの情報があったので試してみました。無事動作はしましたが速度的に大問題があるので失敗のメモ
上記情報ではMacOSX 10.5でiSCSIの2008年のバージョンを使っておられる。で、netbsdのパッケージを覗いてみると2010年版があるので挑戦。
- パッケージを取ってきて展開
wget ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/netbsd-iscsi-20100416.tar.gz
tar xvfz netbsd-iscsi-20100416.tar.gz
cd netbsd-iscsi-20100416 - コンパイル時にエラーが出るので直すパッチ
diff -r netbsd-iscsi-20100416.orig/include/iscsi.h netbsd-iscsi-20100416/include/iscsi.h
32a33
> #include <inttypes.h> // XXX
diff -r netbsd-iscsi-20100416.orig/src/Makefile.am netbsd-iscsi-20100416/src/Makefile.am
3c3,4
< SUBDIRS = lib target initiator
---
> ##SUBDIRS = lib target initiator
> SUBDIRS = lib target # XXX
diff -r netbsd-iscsi-20100416.orig/src/lib/initiator.c netbsd-iscsi-20100416/src/lib/initiator.c
72a73
> #include <inttypes.h> // XXX - コンパイル
CFLAGS='-D_POSIX_C_SOURCE -D_FILE_OFFSET_BITS=64' ./configure
make - 設定など
sudo mkdir /etc/iscsiviなどで/etc/iscsi/targetsを適当にいじる。試すだけならネットワークマスクをいじるだけでOK
cd ./src/etc
sudo cp -rp targets /etc/iscsi
- お試し
cd $scsi/src/target
./iscsi-target - MacOSXのFirewallがポート解放を求めてくるので許可
- 以上でiscsi targetが起動しているはず
- 別のMacからglobalSAN iSCSIでportalを指定。100MBのHDDが見えるのでフォーマット
ということで、ここまでは無事完了。
ところが普通に数MBのファイルをコピーするだけでも数分かかり書き込みアクセスが極端に遅い。読み出しはなんとか出来ているようですが、書き込みが半端なく遅くxbenchどころではなく実用範囲外という感じ。遅いだけでなにやら動作はしていそうなので、ちゃんとデバッグすれば書き込み速度もなんとかなりそうとは思います。時間ができれば挑戦ということで。残念ながら今回はここまで。