Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03123.jsonl.gz/2613

iSCSI
Einige Systeme und Applikationen bestehen mitunter auf einer lokalen Festplatte als Speicherort, obwohl ein Netzlaufwerk wesentlich mehr Vorteile bietet. Mit iSCSI (internet Small Computer System Interface) lassen sich zum Beispiel Backup- oder Mediendaten unkompliziert im Netz ablegen, da es die Nutzung des SCSI-Protokolls über TCP ermöglicht. Ein Server stellt den Clients (iSCSI-Initiator) über seine iSCSI-Targets Speicherplatz (iSCSI-Devices) zur Verfügung. Für den Client sehen die Netzlaufwerke wie eine lokale Festplatte aus. Standardmässig ist der Port 3260/tcp vorgesehen.
Frühere Versionen von Red Hat Enterprise Linux verwendeten
tgtd zur Unterstützung von iSCSI-Targets. Für Fibre-Channel over Ethernet (FCoE) wurde dagegen LIO (Linux Iscsi.Org) aus den
fcoe-target-utils verwendet, der Open Source-Implementierung eines SCSI-Targets.
RHEL 7+ verwendet durchweg LIO für FCoE, iSCSI, iSER (Mellanox InfiniBand) und SRP (Mellanox InfiniBand) Storage Fabrics. Alle Fabrics können mithilfe von
targetcli verwaltet werden, welches auf dem Linux SCSI Target Wiki sehr schön beschrieben ist.
LIO initiiert dabei keine Sessions, sondern verwaltet eine oder mehrere Logical Unit Numbers (LUN), wartet auf SCSI-Kommandos eines Initiators und führt Input/Output-Transfers durch.
Weitere Begriffe:
LUN: Logical Unit Number. Bezeichnung von virtuellen Festplatten auf dem SCSI-Bus.
ACL: Access Control List. Berechtigungs-Tabelle.
TPG: Target Portal Group. Besteht aus ACLs, LUNs und Portal-Adressen (IP-Adresse + Port), auf die ein iSCSI-Target hört.
iSCSI-Target (Server)
Dem Server mit dem Hostnamen
srv.example.com zunächst eine neue (virtuelle) Festplatte (
/dev/vdb) spendieren. Diese muss nicht formatiert sein. Anschliessend:
yum -y install targetcli # Interactive targetcli # LUN my_disk auf dem Device /dev/vdb erzeugen backstores/block create my_disk /dev/vdb # iSCSI-Target erzeugen iscsi/ create #Created target iqn.2003-01.org...e3f4d7a6f0f9. #Created TPG 1. # IP-Adresse zuweisen cd iscsi/iqn.2003-01.org...f4d7a6f0f9/tpgl portals/ create # ACL erzeugen: welcher Client darf zugreifen? acls/ create <iSCSI-ID des Clients> # LUN exportieren luns/ create /backstores/block/my_disk set attribute authentication=0 set attribute generate_node_acls=1 cd / saveconfig exit
Diese Kommando-Aufrufreihenfolge steht unter „Quickstart“ in der Manpage zu
targetcli.
iSCSI-Clients besitzen eine individuelle iSCSI-ID, die man wie folgt ermittelt:
InitiatorName=iqn.2015-03.com.example:clientlun1
So löscht man im Fehlerfall die gesamte LIO-Konfiguration:
targetcli clearconfig confirm=true
Auf dem Server muss noch die Firewall angepasst werden:
firewall-cmd --permanent --add-port=3260/tcp firewall-cmd --reload
Ob der Target-Prozess läuft, lässt sich so überprüfen:
ss --all | grep iscsi
iSCSI-Inititator (Client)
Konfiguration des Initiators auf der Client-Maschine: Angenommen, man soll eine entfernte iSCSI-Disk als
/mnt/iscsi mounten. Vom Client aus soll die Datei
myfile.txt in der gemounteten iSCSI-Disk erstellt werden, und der Mount soll einen Neustart überstehen. Auf dem Client trifft man zunächst die Vorbereitungen:
yum -y install iscsi-initiator-utils
iSCSI-Clients besitzen eine individuelle iSCSI-ID, die man wie folgt ermittelt:
InitiatorName=iqn.2015-03.com.example:clientlun1
Nun sucht man vom Client aus nach Targets auf dem Server:
iscsiadm --mode discoverydb --type sendtargets --portal srv.example.com --discover
Die Befehlsparameter muss man sich nicht merken - der Aufruf steht so in der Examples-Sektion der Manpage zu
iscsiadm.
Im Beispiel liefert der Befehl die Ausgabe:
srv.example.com:3260,1 iqn.2003-...3f4d7a6f0f9
von der man den Teil nach dem Leerzeichen in die Zwischenablage kopiert und im folgenden Befehl einfügt.
iscsiadm: No records found? Wichtig ist, dass
srv.example.com problemlos per DNS oder
/etc/hosts auflösbar ist, und/oder die angegebene IP-Adresse stimmt. Nun ins iSCSI-Target einloggen:
iscsiadm --mode node --targetname iqn.2003-01.org...x8664:sn.e3f4d7a6f0f9 --portal srv.example.com:3260 --login
Auch dieser Befehlszeilenaufruf steht in der Manpage.
Per
partprobe; fdisk -l sieht man schön, wie die entfernte iSCSI-Platte als vermeintlich neue lokale
/dev/sda,
/dev/vdb o.ä. auf dem Client eingebunden wurde. Darauf lässt sich eine Partition sowie das Dateisystem erstellen und dauerhaft mounten. Man beachte unbedingt den
_netdev-Parameter in der
/etc/fstab - ohne diesen bleibt das System beim Herunterfahren hängen:
mkfs --type xfs /dev/vdb mkdir /mnt/iscsi echo '/dev/vdb1 /mnt/iscsi xfs _netdev 0 0' >> /etc/fstab mount --all lsblk
Die Platte lässt sich auch als physisches Volume in einem Logical Volume einsetzen.
Built on 2023-01-27