staging.inyokaproject.org

iscsitarget findet laufwerke nicht beim booten

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

musugru

Anmeldungsdatum:
28. August 2012

Beiträge: Zähle...

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

Antworten |