Als iSCSI-Target dient das Tool »istgt
«
, das im Ports-Verzeichnis unter »/usr/ports/net/istgt
«
zu finden ist. Da es ständig weiterentwickelt wird, sollte der Ports-Tree immer auf dem aktuellen Stand sein. Im iSCSI-Jargon spricht man von einem Target und meint damit den Server, der iSCSI bereitstellt. Der Initiator ist der Client, der die Anfragen initiiert. Siehe hierzu Abbildung 5.
Die Installation der Software läuft schnell und problemlos ab:
portinstall -C istgt20121028
Es erscheint ein Konfigurationsdialog, dessen Vorgaben man normalerweise übernehmen kann. Nachdem die Software installiert ist, legt man den ZPool an. Die Art des Pools spielt im Zusammenhang mit iSCSI keine Rolle und richtet sich nur nach den eigenen Wünschen an die Datensicherheit. Im Beispiel soll es ein ZFS-RAIDZ1 sein:
zpool create fbsdsan raidz /dev/ada1 /dev/ada2 /dev/ada3
Im nächsten Schritt legt man den Datensatz an, der für das iSCSI-Target bestimmt sein soll. Wichtig sind hierbei zwei Dinge: Zum einen darf man keinen Mountpoint festlegen, da der Client dafür verantwortlich ist. Zum anderen muss man die Größe des Datasets festlegen, weil man diese Größe in die Konfigurationsdatei des iSCSI-Daemons eintragen muss, damit die Clients darüber informiert werden.
zfs create fbsdsan/target zfs set mountpoint=none fbsdsan/target zfs set quota=1024G fbsdsan/target
Nachdem der Pool eingerichtet ist, erfolgt die Konfiguration des Daemons. Zunächst kopieren die folgenden Befehle einige Dateien um:
cd /usr/local/etc/istgt cp auth.conf.sample auth.conf cp istgt.conf.sample istgt.conf cp istgtcontrol.conf.sample istgtcontrol.conf
Da es sich nur um ein Beispiel zu Demonstrationszwecken handelt, müssen nur wenige Zeilen in »/usr/local/etc/istgt/istgt.conf
«
geändert werden:
Portal DA1 192.168.1.1:3260 Netmask 192.168.1.0/24
Die beiden Einträge besagen, dass der Daemon auf der IP-Adresse 192.168.1.1 und Port 3260 einen Kommunikationskanal bereitstellt und Anfragen aus dem Klasse-C-Netzwerk 192.168.1 entgegen nimmt.
Dem iSCSI-Daemon muss man natürlich auch mitteilen, welches ZFS-Dataset er verwenden soll. Dazu sucht man in der genannten Konfigurationsdatei nach dem Eintrag
LUN0 Storage /tank/iscsi/istgt-disk1 10GB
und ersetzt ihn durch folgende Konfigurationszeile:
LUN0 Storage /fbsdsan/target
Abschließend ergänzt man noch die Systemkonfiguration »/etc/rc.conf
«
um eine Zeile, die festlegt, dass der iSCSI-Daemon automatisch startet:
stgt_enable="YES"
Manuell lässt sich der iSCSI-Daemon vom Administrator mit dem Aufruf
/usr/local/etc/rc.d/istgt start
auf der Kommandozeile starten.