Anhang B. ISCSI-Festplatten

Internet Small Computer System Interface (iSCSI) ist ein Protokoll, dass es Rechnern erlaubt, mit Speichergeräten mittels SCSI-Anfragen und -Antworten über TCP/IP zu kommunizieren. Da iSCSI auf dem standardmäßigen SCSI-Protokoll basiert, nutzt es teilweise die Terminologie von SCSI. Das Gerät auf dem SCSI-Bus, an das die Anfragen gesendet werden (und das die Anfragen beantwortet), wird als Ziel bezeichnet, und das anfragende Gerät wird Initiator genannt. Anders ausgedrückt, eine iSCSI-Festplatte ist ein Ziel und die iSCSI-Software, die einen SCSI-Controller oder SCSI Host Bus Adapter (HBA) darstellt, ist ein Initiator. Dieser Anhang beschäftigt sich ausschließlich mit Linux in der Rolle des iSCSI-Initiators, also damit, wie Linux iSCSI-Festplatten verwendet, nicht wie Linux iSCSI-Festplatten hostet.
Linux verfügt über einen Software-iSCSI-Initiator im Kernel, der die Stelle eines SCSI-HBA-Treibers einnimmt und es Linux somit ermöglicht, iSCSI-Festplatten zu verwenden. Da iSCSI jedoch ein vollständig netzwerkbasiertes Protokoll ist, erfordert die Unterstützung des iSCSI-Initiators mehr als nur die Fähigkeit, SCSI-Pakete über das Netzwerk zu senden. Bevor Linux ein iSCSI-Ziel verwenden kann, muss Linux das Ziel auf dem Netzwerk finden und eine Verbindung dazu herstellen. In manchen Fällen muss Linux Daten zur Authentifizierung senden, um auf das Ziel zugreifen zu dürfen. Linux muss zudem etwaige Ausfälle des Netzwerks erkennen können, eine neue Verbindung herstellen und sich neu anmelden, falls nötig.
Das Auffinden, das Verbinden und das Anmelden wird im Userspace vom iscsiadm-Dienstprogramm gehandhabt. Auch die Fehlerhandhabung erfolgt im Userspace durch das iscsid-Dienstprogramm.
Sowohl iscsiadm als auch iscsid sind Teil des Pakets iscsi-initiator-utils in Red Hat Enterprise Linux.

B.1. iSCSI-Festplatten in Anaconda

Das Anaconda-Installationsprogramm kann iSCSI-Festplatten auf zwei Arten erkennen und sich anschließend damit verbinden:
  1. Anaconda überprüft beim Start, ob das BIOS oder die Zusatz-Boot-ROMs des Systems iSCSI Boot Firmware Table (iBFT) unterstützen - eine BIOS-Erweiterung für Systeme, die von iSCSI booten können. Falls das BIOS iBFT unterstützt, liest Anaconda das iSCSI-Ziel für Informationen über die konfigurierte Bootfestplatte vom BIOS und meldet sich an diesem Ziel an, wodurch es als Installationsziel verfügbar wird.
  2. Sie können auf der grafischen Benutzeroberfläche in Anaconda manuell iSCSI-Ziele suchen und hinzufügen. Klicken Sie in der Zusammenfassung der Installation auf den Punkt Installationsziel. Klicken Sie anschließend im Bereich Spezial- & Netzwerkgeräte auf die Schaltfläche Festplatte hinzufügen. Daraufhin erscheint eine Liste verfügbarer Speichergeräte auf mehreren Reitern. Klicken Sie in der Ecke unten rechts auf die Schaltfläche iSCSI Target hinzufügen und fahren Sie mit dem Verbindungsvorgang fort. Siehe Abschnitt 6.11.1, »Bildschirm zur Auswahl der Speichergeräte« für weitere Informationen.
Während Anaconda iscsiadm nutzt, um iSCSI-Ziele zu finden und sich dort anzumelden, speichert iscsiadm automatisch alle Informationen über diese Ziele in der iscsiadm-iSCSI-Datenbank. Anaconda kopiert diese Datenbank anschließend auf das installierte System und markiert jegliche iSCSI-Ziele, die nicht für / verwendet werden, so dass das System sich beim Start automatisch dort anmeldet. Falls / auf einem iSCSI-Ziel platziert ist, meldet sich initrd bei diesem Ziel an und Anaconda bezieht dieses Ziel nicht in Startup-Skripts mit ein, um mehrfaches Anmelden bei demselben Ziel zu vermeiden.
Falls / auf einem iSCSI-Ziel platziert ist, veranlasst Anaconda den NetworkManager dazu, jegliche Netzwerkschnittstellen zu ignorieren, die während des Installationsvorgangs aktiv waren. Diese Schnittstellen werden auch durch initrd konfiguriert, wenn das System startet. Würde NetworkManager diese Schnittstellen konfigurieren, so würde das System die Verbindung zu / verlieren.