ISCSI

ISCSI-Server

  • Der Server heisst auch ISCSI-Target.
  • zuerst muss die ISCSI-Server-Komponente installiert werden:
apt-get install iscsitarget iscsitarget-modules-`uname -r`
  • Dann brauchen wir eine leere Partition zum exportieren(z.B. /dev/sdb1). Diese muss mit fdisk, cfdisk o.ä. erstellt werden.
  • Mehr nicht!, die Partition muss nicht formatiert werden. Das wird vom Client aus gemacht.
  • in der Datei /etc/default/iscsitarget muss folgende Zeile stehen:
ISCSITARGET_ENABLE=true
  • jetzt muss die Datei /etc/ietd.conf bearbeitet werden:
Target lun0
        Lun 0 Path=/dev/sdb1,Type=blockio
        Alias lun0
        InitialR2T      Yes
        ImmediateData   Yes
        #IncomingUser meinUser geheim
        #OutgoingUser meinUser geheim
  
  • jetzt muss die Datei /etc/initiator.allow bearbeitet werden:
  • wenn von allen Clients auf das iscsi zugegriffen werden darf dann:
lun0 ALL
  • sonst kann man den Zugriff für verschiedene IPs einschränken. Bsp:
 lun0 192.168.99.99, 192.168.99.100
  • danach muss der ISCSI-Serverdienst neu gestartet werden:
/etc/init.d/iscsitarget restart
  • Jetzt steht die Platte für einen Import auf anderen Rechnern zur Verfügung.
  • Die exportierte Partition sollte nur einmal von einem Client schreibbar gemountet werden.
  • Wenn ein zweiter Client die Partition parallel mountet, dann nur noch schreibgeschützt, sonst gibt es Inkonsistenzen im Dateisystem.
  • Die Partition sollte auch niemals direkt auf dem Server gemountet werden, während diese per ISCSI exportiert ist.


ISCSI-Client konfigurieren

  • Der Client heisst auch ISCSI-Initiator.
  • auf dem rechner muss open-iscsi installiert sein.
  • suse:
zypper in open-iscsi
  • debian:
apt-get install open-iscsi
  • Dienst rcopen-iscsi muss in yast oder per Konsole auf automatisch starten gestellt werden.
chkconfig open-iscsi on
  • oder:
insserv open-iscsi
  • der ISCSI-Server mit der IPadresse (192.168.1.33) wird jetzt durchsucht:
iscsiadm -m discovery -tst -p 192.168.1.33 -d3
  • die entdeckten nodes können jetzt angezeigt werden
iscsiadm -m node
  • jetzt ein node auswählen (z.B.lxtarget2) und anbinden
iscsiadm -m node -T lxtarget2 -p 192.168.1.33 -l
  • Erfolg anzeigen lassen:
iscsiadm -m session
  • jetzt ermitteln, wie das Target im Dateisystem auftaucht(z.B. als /dev/sdb:
 fdisk -l
  • jetzt eine primäre Partition(/dev/sdb1) für Linux auf dem Laufwerk erstellen:
cfdisk /dev/sdb
  • Einstellung so ändern,dass das Target immer automatisch startet(also immer angehängt wird):
iscsiadm -m node -T lx2target2 -p ipadresse /dev/sdb1 --op update -n node.conn[0].startup -v automatic

(oder direkt in der /etc/iscsi/nodes/lxtarget2/192.168.1.33,3260,1/default ändern)

  • jetzt den Plattenplatz mit ext3 und index formatieren (kann sehr lange dauern, je nach Größe des Targets):
mkfs.ext3 -j -c -O dir_index /dev/sdb1
  • jetzt einen Mountpoint erstellen:
mkdir /iscsi
  • und in der /etc/fstab eintragen:
/dev/sdb1 /iscsi ext3 noatime 0 0
  • das erste mal mounten:
mount -a

fertig!!!

  • Bei einem Fehler kann das Node wie folgt abgehängt werden:
iscsiadm -m node -T lxtarget2 -p 192.168.1.33 -u
iscsiadm -m discovery -p 192.168.1.33 --op=delete -d 3
  • und der Dienst gestoppt werden:
rcopen-iscsi stop
  • weitere Konfigurationsmöglichkeit des ISCSI-Client unter yast:
yast2 iscsi-client

mögliche Fehler

  • gegenseitige DNS-Auflösung der Hosts funktioniert nicht
  • Firewall lässt keinen Zugriff zu.


zurück