Anhang B. ISCSI-Festplatten

Internet Small Computer System Interface (iSCSI) ist ein Protokoll, dass es Computern erlaubt, mit Speichergeräten mittels SCSI-Anfragen und -Antworten über TCP/IP zu kommunizieren. Da iSCSI auf dem Standard-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 somit Linux 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, wenn nötig.
Das Erkennen, die Verbindung und das Anmelden wird im Userspace durch das iscsiadm-Dienstprogramm gehandhabt, auch die Fehlerbehandlung erfolgt im Userspace durch iscsid.
Sowohl iscsiadm als auch iscsid sind Teil des iscsi-initiator-utils-Pakets unter Red Hat Enterprise Linux.

B.1. iSCSI-Festplatten in Anaconda

Anaconda kann iSCSI-Festplatten auf zwei Wegen erkennen (und sich anschließend damit verbinden):
  1. Anaconda überprüft beim Start, ob das BIOS oder 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 Boot-Festplatte vom BIOS und meldet sich an diesem Ziel an, wodurch es als Installationsziel verfügbar wird.
  2. Bei der Auswahl der Option Spezielle Speichergeräte während der Installation wird eine Schaltfläche Erweitertes Ziel hinzufügen angezeigt. Mit dieser können Sie iSCSI-Zielinformationen wie die zu findende IP-Adresse hinzufügen. Anaconda testet die angegebene IP-Adresse und meldet sich bei allen Zielen an, die es findet. Unter Abschnitt 9.6.1.1, »Erweiterte Speicheroptionen« sind die Details aufgeführt, die Sie für iSCSI-Ziele spezifizieren können.
Während Anaconda iscsiadm nutzt, um iSCSI-Ziele zu finden und sich dort anzumelden, speichert iscsiadm automatisch alle Information ü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 Installationsprozesses 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.