Hallo Zusammen!
Ich habe einen, an sich funktionierenden Fileserver eingerichtet: Ubuntu Server 12.04 AMD64 mit dem Service iscsitarget. Initiator ist ein Windows 7 Rechner. Das Problem ist "nur", dass beim Start des NAS zwar das Target-Portal erstellt wird aber keine Laufwerke (LUN 0-1) eingebunden sind. Nach dem Login und restart des Service werden auch die LUNs eingebunden und sind für den Initiator verfügbar. Meine Vermutung ist, dass im Bootvorgang iscsitarget gestartet wird, bevor die "Laufwerke" verfügbar sind. Seltsam ist, dass ich die gesamte Installation zuvor mit einer Ubuntu 12.04 Desktop Version durchgespielt habe, wobei auch "Autostart" funktionierte.
Kann ich als mögliche Lösung vielleicht irgendwie die Startreihenfolge der Dienste ändern?
Interessant ist vielleicht noch, dass es sich bei dem "Laufwerk" um eine virtuelle physische HD handelt (/dev/sdb) welches ein RAID5-Array an einem Hardware-Controller ist. LUN 0 ist ein lv (/dev/archiv/archiv) und LUN 1 eine GPT-ntfs Partition (/dev/sdb2). Beide LUNs werden nach "sudo service iscsitarget restart" korrekt eingebunden aber leider nicht schon beim booten.
Ich installierte folgendes:
1. Ubuntu Server 12.04 AMD64 ohne zusätzliche Server (auf 8GB CD-Kart, /sda)
2. Netzwerk auf static
3. ISCSI Target installiert: sudo apt-get install iscsitarget iscsitarget-source iscsitarget-dkms
edit: /etc/default/iscsitarget
ISCSITARGET_ENABLE=true
edit: /etc/iet/ietd.conf
Target iqn.2012-08.local.home:nas Lun 0 Path=/dev/archive/archive,Type=blockio Lun 1 Path=/dev/sdb2,Type=blockio
4. Neustart des Service: sudo service iscsitarget restart
ALLES FUNKTIONIERT TADELLOS!
5. Reboot
Ergebnis: iscsitarget läuft (wie erwartet) aber ohne LUNs (beim Start noch nicht verfügbar?)
Erst der restart des Service von Hand bringt die fehlenden LUNs zum Vorschein...
Für Vorschläge bin ich dankbar!!
UPDATE:
Habe mit fstab rumgespielt und eine Fehlermeldung beim Booten provoziert: "... Fehler beim mounten... drücke S zum überspringen..."
Diese Verzögerung hat offensichtlich gereicht, damit iscsitarget genug Zeit hatte die LUNs zu finden und einzubinden. Das Target war also beim login-prompt verfügbar und nicht erst beim restart des service. So soll es sein! Naja, ok, der "Workaround" ist nicht gerade befriedigend 😉
Wie kann ich den Start von iscsitarget auf legale Weise verzögern?
GELÖST:
Habe in der ini "/etc/default/iscsitarget" ein "sleep 10" eingefügt.
sleep10 ISCSITARGET_ENABLE=true
"sleep 5 war übrigens zu kurz, es wurde nur die LUN 1 (einfache Partition) gefunden. LVM braucht wohl etwas länger zum Initialisieren (LUN 0 "/dev/archiv/archiv"). Vorher hatte ich versucht "sleep" in dem eigentlich zuständigen Script "/etc/init.d/iscsitarget" unterzubringen. Dies verursachte aber seltsame Fehler beim Booten und Ausschalten.
Insgesamt vermute ich, dass das Problem beim inzwischen sehr schnellen Start durch "Upstart" entsteht. Ob da nun Handlungsbedarf bei Ubuntu oder bei "The ISCSI Enterprise Target Project" besteht kann ich nicht sagen (letzte aktualisierung irgendwann 2010, glaube ich). Fazit: Ärgerlich.
Die Lösung war dann doch recht simpel und vielleicht zu banal für dieses Forum.
Naja, habe dabei wieder etwas gelernt: Ungewolltes Wissen #12453 😉
Gruß musugru