Nachdem ich der NSLU2 über iSCSI mehr Speicher zur Verfügung gestellt hatte, kam mir die Idee den Spieß mal umzudrehen, und die NSLU2 als iSCSI Target zu missbrauchen. Bisher läuft auf meiner NSLU2 nur ein Samba und ein kleiner Lightttpd - alles nur für Testzwecke. Was brauchen wir denn alles um die NSLU2 als iSCSI Target laufen zu lassen??
- NSLU2 mit Debian 4.0
- iSCSI Enterprise Target in der stabilen Version (0.4.15)
- ein paar Developertools müssen installiert werden (make, gcc usw.)
- die Kernel-Sourcen des 2.6.18
- für die Tests später einen iSCSI Initiator
Erstmal ziehen wir uns mittels
apt-get install linux-source-2.6.18 die Kernel Sourcen und entpacken diese unterhalb von
/usr/src. Danch noch schnell mittels
ln -s /usr/src/linux-2.6.18 /usr/src/linux
einen Symlink erstellt. Einen weiteren Symlink brauchen wir unterhalb von
/lib/modules/2.6.18-5-ixp4xx. Den erstellen wir mittels
ln -s /lib/modules/2.6.18-5-ixp4xx /lib/modules/2.6.18-5-ixp4xx/build
Anschließend müssen wir noch diverse Developertools, samt Abhängigkeiten installieren. Dazu gehören z.B.
make, gcc, kernel-header, ncurses, libssl-dev usw. Ich liste die hier nicht im Detail auf, sucht selber. :P Das iSCSI Enterprise Target entpacken wir erstmal unter
/tmp.
tar xzf iscsitarget-0.4.15.tar.gz
Anschließend in das Verzeichnis wechseln und beherzt
make eingeben und warten. Am Ende ein
make install und fertig. Ich musste aber noch das Kernel Modul von
/lib/modules/2.6.18/kernel/iscsi/ nach
/lib/modules/2.6.18-5-ixp4xx/kernel/iscsi/ kopieren, aber das ist halb so wild. Damit sollte die Installation abgeschlossen sein. Anschließend kann man die
/etc/ietd.conf, die /etc/initiators.allow und /etc/initiators.deny vergewaltigen. Zum Testen habe ich auf meinem Notebook den Microsoft iSCSI Initiator installiert. Funktioniert wunderbar. Hier mal meine
/etc/ietd.conf:IncomingUser iscsi xxxxxxxxxxxx
Target iqn.2007-03.site.blazilla:svr-lev-01-lun0
Lun 0 Path=/srv/iscsi1/lun0,Type=fileio
Alias lun0
IncomingUser iqn.2007-03.site.blazilla:mln-nb-60198 xxxxxxxxxxxx
MaxConnections 1
InitialR2T Yes
ImmediateData No
MaxRecvDataSegmentLength 8192
MaxXmitDataSegmentLength 8192
MaxBurstLength 262144
FirstBurstLength 65536
DefaultTime2Wait 2
DefaultTime2Retain 20
MaxOutstandingR2T 8
DataPDUInOrder Yes
DataSequenceInOrder Yes
ErrorRecoveryLevel 0
HeaderDigest CRC32C,None
DataDigest CRC32C,None
Wthreads 8
Als
Container können durchaus mittels
dd erstellte Dateien dienen, so wie bei mir. Oder aber Blockdevices, wie USB Stick o.ä. Bitte keine Performancewunder erwarten. :) Aber für ein einfaches iSCSI Target reicht es. :)