Storage-Insider-Service: iSCSI SAN Storage mit Linux Linux-Server als Storage-Server bereitstellen
Anbieter zum Thema
Auf Basis eines Linux-Servers können Administratoren Datenspeicher auch über iSCSI zur Verfügung stellen. Das kann man mit targetcli machen oder umfänglicher mit dem LIO iSCSI-Target bei Ubuntu-Distributionen. Es muss also nicht immer ein Windows Server sein.

Linux-IO-Targets sind seit Version 2.6.38 Bestandteil des Kernels in Linux, nicht nur in Ubuntu. Anbinden lassen sich an solche Systeme nicht nur Linux-Server und -Arbeitsstationen, sondern auch PCs mit Windows und Macs.
Zur Verwaltung eines iSCSI-Ziels auf Linux-Servern wird targetcli verwendet. Dieses Tool stellt die Management Shell und API zur Verwaltung des Ziels auf dem Linux-Rechner zur Verfügung.
Das ist die Aufgabe von LIO
Im Gegensatz zu LIO ist targetcli meistens nicht automatisch installiert, kann aber leicht installiert werden. LIO unterstützt jedoch nicht nur iSCSI, sondern auch Fibre Channel, Fibre Channel over Ethernet, FireWire, IBM vSCSI (virtuelles SCSI), iSER, SRP, tcm_loop, USB Gadget und vHost.
Anbinden lassen sich an solche Systeme auch Virtualisierungslösungen wie VMware vSphere oder Server mit Windows Server 2012/2012 R2 und Windows Server 2016.
Mit LIO kann Linux verschiedene SCSI-Targets über unterschiedliche Protokolle anbinden. Da die Technologie bereits in aktuellen Linux-Distributionen enthalten ist, benötigen Administratoren keine zusätzliche Erweiterung. Lediglich zur Verwaltung von LIO ist das zusätzliche Paket „Targetcli“ notwendig.
LIO wird vor allem dann eingesetzt, wenn mehrere Protokolle im Einsatz sind, und der Zugriff auf verschiedene Speichersysteme erfolgen soll. Die Aufgabe von LIO besteht darin, die SCSI-Targets zu abstrahieren. Die Technologie kommuniziert weder mit Serveranwendungen noch mit Clients. Das modulare System wird dazu verwendet iSCSI- oder andere Protokolle zu empfangen und umzusetzen.
Targetcli installieren und starten
Targetcli zur Verwaltung von LIO ist in den meisten Linux-Derivaten enthalten. Ist die Lösung noch nicht installiert, lässt sich das über die jeweilige Paketquelle leicht nachholen. Auf Linux-Servern mit Ubuntu wird dazu zum Beispiel der folgende Befehl verwendet:
sudo apt-get install --no-install-recommends targetcli
Nach der Installation von targetcli wird durch den Befehl targetcli die Shell gestartet. Durch Eingabe von ls wird eine Übersicht angezeigt. Hier sind auch die Backstores zu sehen, aus denen sich der Speicher verwenden lässt. Später kann auf diesem Weg auch die Konfiguration überprüft werden.
iSCSI-Ziel erstellen
Um schnell und einfach ein iSCSI-Ziel zu erstellen, wird in das Verzeichnis \backstires\iblock gewechselt. Danach wird ein neues Gerät angelegt:
cd backstores/iblock
create name=iscsi dev=/dev/sdb
Für das Anlegen sind Root-Rechte notwendig. Wird hier also nicht mit dem Root-Benutzer gearbeitet, ist der einfachste Weg, wenn targetcli über sudo targetcli gestartet wird. Die genaue Bezeichnung der jeweiligen Festplatte wird mit fdisk -l angezeigt.
Nachdem das Ziel angelegt wurde, wird es über ls angezeigt.
Der nächste Schritt besteht darin, in das iSCSI-Verzeichnis zu wechseln, und das Ziel anzulegen:
cd /iscsi
create
iSCSI-Ziel konfigurieren und Konfiguration speichern
Durch die erneute Verwendung von ls zeigt targetcli das neu erstellte Target im iSCSI-Bereich an. Außerdem ist hier der Name des Ziels zu sehen. Mit dem Befehl exit kann targetcli jederzeit verlassen werden. Die Konfiguration wird durch Bestätigung mit „y“ gespeichert. Es besteht also die Möglichkeit jederzeit erneut die Konfiguration aufzurufen, oder die Informationen der Konfiguration auszulesen, zum Beispiel der Name des iSCSI-Ziels.
Innerhalb der Konfiguration in targetcli, kann die aktuelle Einstellung mit dem Befehl saveconfig gespeichert werden.
iSCSI-Ziel im Netzwerk freigeben
Nachdem das Ziel konfiguriert ist, besteht der nächste Schritt darin, das Ziel über ein Portal im Netzwerk zur Verfügung zu stellen, damit Computer und Server im Netzwerk darauf zugreifen können. Im Rahmen der Konfiguration kann hier auch festgelegt werden mit welcher IP-Adresse und welchem Port das Ziel verwendet werden darf.
Für die Konfiguration wird mit cd in das Verzeichnis des Ziels gewechselt. Hier reicht es aus, die ersten Buchstaben einzugeben. Linux kann, wie Windows auch, den Namen des Verzeichnisses über die Tabulator-Taste vervollständigen.
Nach einem Wechsel in das Verzeichnis "Portals" und der Eingabe von create erstellt Linux das Portal. Standardmäßig wird die IP-Adresse des Servers verwendet, wenn dieser nur eine IP-Adresse hat sowie der Port 3260. Um manuell eine IP-Adresse anzugeben, wird die Syntax create <IP-Adresse> verwendet.
Logical Units (LUNs) erstellen
Danach können die LUNs für den Zugriff auf das iSCSI-Ziel erstellt werden. Häufig findet sich für LUNs auch die Bezeichnung "Logical Unit Number". Die LUN hat die Aufgabe die Zuordnung des iSCSI-Zieles zu steuern. Um eine LUN für ein neu erstelltes Target zu definieren, muss in das Verzeichnis "luns" des Targets gewechselt werden. Um eine LUN für das iSCSI-Target in diesem Beispiel zu erstellen, wird folgender Befehl verwendet:
create /backstores/iblock/iscsi
Die erste LUN im System trägt standardmäßig die Bezeichnung "LUN 0". Diesen Namen zeigt das Linux-System nach dem Erstellen an.
Berechtigungen für den Zugriff festlegen
Ist die LUN erstellt, wird in das Verzeichnis "acls" des Targets gewechselt. Hier lässt sich festlegen, auf welches Interface der Initiator zugreifen darf. Der Befehl für einen Client-Computer mit dem erstellten Initiator "iqn.1400-06.com.microsoft:hp.contoso.int" sieht folgendermaßen aus:
create iqn.1400-06.com.microsoft:hp.contoso.int
Hier werden schlussendlich die Client-Computer eingetragen, die Zugriff auf das iSCSI-Target erhalten sollen. Mit ls kann die aktuelle Konfiguration erneut angezeigt werden.
Nachdem alle Einstellungen vorgenommen wurden, können diese in targetcli jederzeit angezeigt werden. Targets lassen sich auch für bestimmte Benutzer freischalten. Dazu wird im Target-Verzeichnis der folgende Befehl verwendet:
set discovery_auth enable={0,1}
Um zum Beispiel einen bestimmten Benutzer für den Zugriff zu berechtigen, wird folgender Befehl verwendet:
set discovery_auth enable=1 userid=<id> password=<Kennwort>
Durch das Setzen der Option "0" können alle Benutzer im System das Target sehen.
Konfiguration steuern, testen und löschen
Nachdem alle Konfigurationen für ein iSCSI-Ziel vorgenommen wurden, kann das Ziel getestet werden. Das Target selbst, und der Dienst, der das Target zur Verfügung stellt, kann mit dem Befehl service target getestet werden. Dazu muss targetcli aber verlassen werden (exit). Durch Eingabe von service target zeigt die Shell alle zur Verfügung stehenden Optionen an. Mit service-target status ist der aktuelle Status des Dienstes zu sehen.
Wenn die Konfiguration fehlerhaft ist, kann diese auch gelöscht werden. Der Befehl dazu ist:
delete iscsi
Sobald das Ziel erstellt ist und konfiguriert ist, steht es für Verbindungen zur Verfügung. Administratoren können auch über Windows-Server eine Anbindung an das iSCSI-Ziel vornehmen. Die Vorgehensweise dazu ist identisch mit der Anbindung anderer Ziele.
iSCSI-Festplatten mit Windows Server 2012 R2 verbinden
In Windows Server 2012 R2 können Administratoren über den iSCSI-Initiator iSCSI-Festplatten von anderen Servern verbinden. Die Vorgehensweise dazu ist folgende:
- 1. Am besten wird nach "iscsi" im Startbildschirm gesucht, und das Tool gestartet. Beim ersten Aufruf muss der Start des entsprechenden Diensts bestätigen und die Blockierung aufgehoben werden. Danach wird folgendermaßen vorgegangen:
- 2. Wechseln Sie zur Registerkarte Suche.
- 3. Klicken Sie auf Portal ermitteln und geben Sie die IP-Adresse oder den Namen des Linux-Servers ein, auf dem das iSCSI-Ziel erstellt wurde.
- 4. Wechseln Sie zur Registerkarte Ziele. Hier zeigt Windows die erstellten Laufwerke an. Sie sehen hier auch bei die erstellten Targets.
- 5. Klicken Sie auf die Schaltfläche Verbinden. Damit baut der Server eine Verbindung mit dem Gerät auf.
- 6. Aktivieren Sie das Kontrollkästchen Diese Verbindung der Liste der bevorzugten Ziele hinzufügen. Diese Option muss für alle Laufwerke separat eingestellt sein.
- 7. Bestätigen Sie alle Fenster mit OK.
- 8. Nachdem Sie Targets verbunden haben, stehen in der Datenträgerverwaltung die mit diesem iSCSI-Ziel verbundenen Laufwerke zur Verfügung.
Fazit
Mit Targetcli und einem gängigen Standard-Linux-System wie Ubuntu, Debian oder CentOS können Administratoren recht leicht ganze Festplatten oder andere Datenträger als iSCSI-Ziel zur Verfügung stellen. Da die Ziele auch für andere Betriebssysteme zur Verfügung gestellt werden können, lohnt es sich, einen Blick auf die Möglichkeiten von Linux in diesem Bereich zu werfen. LIO bietet vielfältige Möglichkeiten Datenspeicher im Netzwerk zur Verfügung zu stellen.
Der Einsatz lohnt sich für Unternehmen, die bereits auf Linux setzen, aber auch für Unternehmen, die mehr auf Windows-Server setzen, aber die Möglichkeit suchen, iSCSI-Ziele effizient im Netzwerk zur Verfügung zu stellen. An LIO lassen sich auch viele Systeme anbinden, zum Beispiel Windows-Server, VMware vSphere, aber auch Linux-Server.
(ID:43975270)