いまだにSeagateのHDDを使い続けてるってこともあるんだけど、毎日Windowsのコンテンツをバックアップしたいなと思ってます。
自宅のlinuxサーバにiscsiを入れて、WindowsにMicrosoftが無料で配布しているiSCSI Initiatorをインストールしてwindowsからiscsiでlinuxドライブをマウントして定期的にコンテンツをコピーしようと思ってやってみました。
Linux側にiSCSIサーバ(Target)を立ち上げるまでは良かったんだけど、Windows側のiSCSI Initiatorがくせものだった。インストールは無事に終わってiSCSI initiatorを立ち上げてサーバに接続させても、connection failと出てしまう。Firewallとか色々と設定しなおしてもだめ、linux側でtcpdumpしてもパケットきてない。winからtelnet でport 3260に繋ぐと接続は出来てたのでFirewallの問題ではなかった。win側でtcpdumpを動かすとパケットが送信されてないことが判明。
で、結局、俺のWindowsがXP HOMEだったからダメでしたよ。。。萎える。俺の時間を返せ!
MicrosoftのサイトにXP Homeは対象外ってちゃんと書いてよ。
しょうがないからSambaにするしかないかな。
とりあえず、iScsi Targetをインストールするまでの作業記録
注意点としては、最新のlinuxカーネルだとiscsi targetのblkio.cで「implicit declaration of function」というコンパイルでエラーが出る。close_bdev_exclというlinuxカーネルに含まれている関数を利用してるんだけど、最新のカーネルだとclose_bdev_exclusiveになって、引数の数も異なってしまっているのが原因でした。
iscsi targetのtar.gzファイルをダウンロードしてコンパイルせずに、svnからソースを取得する方法で回避できます。(SVNのソースは最新linuxカーネル対応)
$ yum install openssl-devel $ svn checkout http://svn.berlios.de/svnroot/repos/iscsitarget/trunk $ cd trunk $ make KSRC=/usr/src/kernels/linux-2.6.28/ $ make install KSRC=/usr/src/kernels/linux-2.6.28/ `usr/ietd' -> `/usr/sbin/ietd' `usr/ietadm' -> `/usr/sbin/ietadm' `etc/initd/initd.redhat' -> `/etc/init.d/iscsi-target' `doc/manpages/ietadm.8' -> `/usr/share/man/man8/ietadm.8' `doc/manpages/ietd.8' -> `/usr/share/man/man8/ietd.8' `doc/manpages/ietd.conf.5' -> `/usr/share/man/man5/ietd.conf.5' `ChangeLog' -> `/usr/share/doc/iscsitarget/ChangeLog' `COPYING' -> `/usr/share/doc/iscsitarget/COPYING' `README' -> `/usr/share/doc/iscsitarget/README' `README.vmware' -> `/usr/share/doc/iscsitarget/README.vmware' `kernel/iscsi_trgt.ko' -> `/lib/modules/2.6.28/kernel/iscsi/iscsi_trgt.ko' Running depmod $ vi /etc/ietd.conf Target iqn.2009-02.com.hoge:raid1.md3 Lun 0 Path=/dev/md3,Type=fileio MaxConnections 1 $ vi /etc/initiators.deny ALL ALL $ vi /etc/initiators.allow ALL 192.168.1.xx $ /etc/rc.d/init.d/iscsi-target start $ /sbin/chkconfig iscsi-target on $ vi /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3260 -s 192.168.1.xx -j ACCEPT $ /etc/rc.d/init.d/iptables restart
もう解説いれる気力がありません、、、XP proにしときゃよかった。XP proだったらsoftware raidも使えるしね。
windowsのiscsi initiatorの参考
http://mikilab.doshisha.ac.jp/dia/research/report/2005/0913/004/report20050913004.html