Marco Burmeister

  private Homepage



internet Small Computer System Interface ( iSCSI )

Das internet Small Computer System Interface (iSCSI) ermöglicht die Verwendung des SCSI-Protokolls über TCP.
Es ist damit möglich Festplatten, die auf einem Computer bzw. einer VM bereitgestellt wurden, einem anderen Computer bzw. VM im Netz via Netzwerk (TCP) bereitzustellen.
Diese Funktionalität kann im Rahmen von NAS Systemen verwendet werden, um Festplattenplatz im Netz bereitzustellen.
Im konkreten Fall hatte ich es genutzt, um von einer VM in einer virtualisierten Umgebung Platten für zwei andere VMs bereitzustellen, um dann von diesen beiden VMs auf den Festplattenplatz zugreifen zu können. Dieser Zugriff sollte gleichzeitig erfolgen. Dieses Szenario wird u.a. benötigt im Umfeld von Oracle RAC.

Bei VMWare ESXi können virtuelle Festplatten auch mehreren VMs zugeteilt werden, die dann auch gleichzeitig darauf schreiben können. Aber die Virtualisierungslösung Proxmox beherrscht das Stand Februar 2024 noch nicht.
Wer unabhängig von einer VM-Lösung eine solche Technik benötigt, kann sie bei jeder VM-Virtualisierungslösung einsetzen.

In diesem Dokument geht es nur darum, wie eine Festplatte von einer VM für eine andere VM im Netz bereitgestellt werden kann.
Das ist die Beschreibung einer Implementationslösung, die nicht den Anspruch erhebt vollständig zu sein.

Diese Anleitung beschreibt, wie ich eine solche Lösung für einen eigenen Anwendungsfall im Homelab eingerichtet hatte.

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!

Die Seite ist in die folgenden Bereiche eingeteilt:




top Allgemeine Hinweise

In diesem Abschnitt werde ich ein paar allgemeine Beschreibungen / Hinweise erfassen.

Target

Als Target wird in dem Umfeld der Quell-Server /-Rechner bezeichnet, welcher die Festplatten bereitstellt.

Initiator

Der Initiator ist dann der Client, der eine Festplatte vom Quell-Rechner auf dem lokalen System einbindet.

iSCSI-Benennungskonventionen

Ich habe in diesem Beispiel die folgende Namenskonvention für das iSCSI Target und den iSCSI Initiator gewählt. (Die Netzerk-Domain muss in umgekehrter Reichenfolge aufgeschrieben werden - hier für die Anleitung dann die Domain "example.com".)
iSCSI Target = iqn.2024-02.com.example:mysrv1.iscsi1
iSCSI Initiator = iqn.2024-02.com.example:client1.myvm1.iscsi1
iSCSI Target =
iqn.2024-02.com.example:mysrv1.iscsi1
iSCSI Initiator =
iqn.2024-02.com.example:client1.myvm1.iscsi1

Die Namenskonvention kann auch unten im Link-Bereich nachgelesen werden.

top Vorarbeiten

Wir brauchen 2 VM mit installiertem openSUSE (bei mir Version 15.5). Die VM, die als iSCSI Target dienen soll, benötigt neben der Festplatte für das OS noch eine weitere Festplatte, welche dann via iSCSI an die verbliebene VM bereitgestellt werden wird.

Bezeichnung für diese Anleitung:

  1. VM1 ist die VMServer
  2. VM2 ist die VMClient

top iSCSI Target auf VMServer einrichten

Vorarbeiten

Zunächst muss für die Funktionalität iSCSI Target auf dem VMServer die notwendige Software installiert werden.
Ferner muss eine leere Festplatte vorhanden sein, die wir in den folgenden Schritten für die VMClient bereitstellen.
Auf dieser Festplatte muss bereits eine Partition erstellt worden sein. In diesem Beispiel gehen wir davon aus, dass wir eine Festplatte /dev/sdb mit einer Partition /dev/sdb1 haben.

Folgende Pakete müssen installiert werden:

Einrichtung

Nun richten wir das iSCSI Target ein:
  1. Anmeldung als User root an das OS
  2. Starten Programm yast
  3. Wechsel zu yast -> network services -> iscsi-lio-target
  4. Auf der Einstiegsseite (TAB-Name "Service":
    Hier wird festgelegt, dass nach einem Reboot der Start automatisch erfolgen und der Port in der Firewall geöffnet werden soll.
  5. Wechsel auf den TAB "Targets"
    Hier drücken wir den Button "add"
    Auf der folgenden Seite tragen wir dann ein:
    "Target" ist "iqn.2024-02.com.example" und der "Indentifier" ist "mysrv1.iscsi1".
    Durch den Druck auf den Button "add" können wir dann die Disk /dev/sdb ergänzen. Hierbei ist "LUN Path" dann /dev/sdb und der "LUN Name" ist dann dev_sdb.
  6. Nun kann dieser Bereich mit dem Druck auf den Button "Finish" beendet werden.
  7. Der iSCSI Server ist damit eingerichtet.

top iSCSI Initiator auf VMClient einrichten

Vorarbeiten

Das iSCSI Target muss auf der VM VMServer eingerichtet sein und die VM VMClient muss die VMServer via Netzwerk erreichen können.

Zunächst muss für die Funktionalität iSCSI Initiator auf der VM VMClient die notwendige Software installiert werden.

Folgende Pakete müssen installiert werden:

Einrichtung

Nun richten wir den iSCSI Initiator ein:
  1. Anmeldung als User root an das OS
  2. Starten Programm yast
  3. Wechsel zu yast -> network services -> iSCSI Initiator
  4. Auf der Einstiegsseite (Tab-Name "Service":
    Hier wird festgelegt, dass nach einem Reboot der Start automatisch erfolgen soll.
    Ferner wird der "Initiator Name" mit dem Bezeichner iqn.2024-02.com.example:client1.myvm1.iscsi1 festgelegt.
  5. Wir wechseln auf den TAB "Connect Targets" Hier drücken wir den Button "Add" und tragen auf der nächsten Seite die IP-Adresse (!) vom VMServer (iSCSI Target Server) ein.

    Wir kommen dann auf die Seite mit dem TAB "Connected Targets" zurück.
    Hier drücken wir nun für diesen Eintrag den Button "Connect" und legen die Start-Art fest ("On-Boot" oder "Automatic").
  6. Nun können wir die Konfiguration abschliessen.
  7. Der iSCSI Initiator ist eingerichtet. Via OS Befehl fdisk -l ist nun die Disk auf der VM VMClient zu sehen.
  8. Nacharbeiten

    Es ist nun auf der VM VMClient eine Festplatte /dev/sdb zu sehen, die kein Filesystem / Dateisystem hat.
    Dieses Dateisystem muss nun im nächsten Schritt festgelegt werden. Ferner ist der Mount-Point festzulegen.
    Das hängt allerdings davon ab, für welchen Zweck die Festplatte verwendet werden soll. Im Fall von Oracle RAC und ASM Disk erfolgt hier keine Erstellung eines Dateisystems.


    top Links zum Thema


    Hinweis:
    Für die Richtigkeit der Daten übernehme ich keine Gewähr!
    Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!