GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Vollständiger Leitfaden zur Konfiguration von iSCSI in CentOS / RHEL 7

Internet Small Computer System Interface (iSCSI) ist ein IP-basierter Standard zum Verbinden von Speichergeräten. iSCSI verwendet IP-Netzwerke, um SCSI-Befehle zu kapseln, wodurch Daten über große Entfernungen übertragen werden können. iSCSI bietet gemeinsam genutzten Speicher für eine Reihe von Client-Systemen. Speichergeräte sind an Server (Ziele) angeschlossen. Client-Systeme (Initiatoren) greifen über IP-Netzwerke auf die entfernten Speichergeräte zu. Für die Client-Systeme scheinen die Speichergeräte lokal angeschlossen zu sein. iSCSI nutzt die vorhandene IP-Infrastruktur und erfordert keine zusätzliche Verkabelung, wie dies bei Fibre Channel (FC) Storage Area Networks der Fall ist.

Konfigurieren eines iSCSI-Servers

RHEL/CentOS 7 verwendet das Kernel-Zielsubsystem Linux-IO (LIO) für iSCSI. Zusätzlich zu iSCSI unterstützt LIO eine Reihe von Speicherstrukturen, einschließlich Fibre Channel over Ethernet (FCoE), iSCSI-Zugriff über Mellanox InfiniBand-Netzwerke (iSER) und SCSI-Zugriff über Mellanox InfiniBand-Netzwerke (SRP). In RHEL 7 werden alle Speicher-Fabrics mit der targetcli verwaltet Dienstprogramm.

Um das RHEL-System als iSCSI-Server zu konfigurieren, installieren Sie zunächst das targetcli-Softwarepaket:

# yum install targetcli

Durch die Installation des targetcli-Softwarepakets wird auch die python-rtslib installiert Paket, das den /usr/lib/systemd/system/target.service bereitstellt Datei. Bevor Sie das Dienstprogramm targetcli zum Erstellen, Löschen und Anzeigen von Speicherzielen verwenden, verwenden Sie den Befehl systemctl, um den Zieldienst auf dem iSCSI-Server zu aktivieren und zu starten.

# systemctl enable target
Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
# systemctl start target

targetcli-Dienstprogramm

Das Dienstprogramm targetcli ist die Verwaltungsschale zum Erstellen, Bearbeiten und Anzeigen der Konfiguration des Zielsubsystems des Kernels. Führen Sie targetcli aus, um die Konfigurations-Shell aufzurufen.

# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.

/> help

Führen Sie die Hilfe aus Befehl an der targetcli-Eingabeaufforderung, um die verfügbaren Befehle anzuzeigen. Im Folgenden sind einige der verfügbaren targetcli-Befehle aufgeführt:

  • ls :Zeigt die Objekthierarchie an.
  • CD :Die Objekthierarchie durchlaufen.
  • erstellen :Speicherobjekte, Ziele, LUNs, Netzwerkportale, Zugriffskontrolllisten erstellen.
  • beenden :Beenden Sie die Targetcli-Shell und speichern Sie die Konfiguration automatisch.

Sie können auch „targetcli [command]““ eingeben, um Befehle auszuführen, ohne die Shell aufzurufen.

Backstores

Backstores sind die verschiedenen Arten von lokalen Speicherressourcen, die das Kernel-Ziel verwendet, um die SCSI-Geräte zu „sichern“, die es auf Client-Systeme exportiert. Die Zuordnungen zu lokalen Speicherressourcen, die jeder Backstore erstellt, werden als Speicherobjekte bezeichnet. Verwenden Sie die Zielclients Befehl, um die verschiedenen Typen von Backstores aufzulisten.

# targetcli ls /backstores

Die Arten von Backstores werden wie folgt beschrieben:

  • blockieren :Linux-Blockgeräte wie /dev/sda
  • fileio :Jede Datei auf einem gemounteten Dateisystem wie /tmp/disk1.img
  • pscsi :Jedes Speicherobjekt, das Pass-Through-SCSI-Befehle unterstützt
  • Ramdisk :Speicher kopieren RAM-Disks

So erstellen Sie einen Block-Backstore aus der targetcli-Shell:

/> cd /backstores/block
/backstores/block> create name=LUN_1 dev=/dev/xvdb

So erstellen Sie einen Fileio-Backstore aus der Targetcli-Shell:

/> cd /backstores/fileio
/backstores/fileio> create name=LUN_3 /root/disk1.img 5G

Erstellen eines iSCSI-Ziels

Verwenden Sie zum Erstellen eines iSCSI-Ziels von der TargetCli-Shell aus den cd-Befehl, um in das /iscsi-Verzeichnis zu wechseln.

/> cd /iscsi
/iscsi>

Verwenden Sie den create-Befehl ohne Argumente, um ein iSCSI-Target unter Verwendung eines Standard-Target-Namens zu erstellen. Standardmäßig wird das Ziel durch ein „iqn“ gekennzeichnet ” Kennung. Dies ist ein qualifizierter iSCSI-Name (IQN) , die ein Ziel eindeutig identifiziert. Adressen im IQN-Format werden am häufigsten verwendet, um ein Ziel zu identifizieren. Diese Adresse besteht aus den folgenden Feldern:

  • Wörtliches iqn
  • Datum (im Format JJJJ-MM), an dem die Namensbehörde den Besitz der Domain übernommen hat
  • Umgekehrter Domänenname der Behörde
  • Optional „:“, das einem Speicherzielnamen vorangestellt wird, der von der Namensbehörde angegeben wurde
/> cd /iscsi 
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> 

Verwenden Sie den folgenden Befehl, um die erstellten Ziele aufzulisten.

# targetcli ls /iscsi

Um Remotesystemen den Zugriff auf ein iSCSI-Ziel an Port 3260 zu ermöglichen, deaktivieren Sie entweder den Firewalld-Dienst auf dem iSCSI-Server oder konfigurieren Sie Firewalld so, dass er dem 3260/tcp-Port vertraut. Das folgende Beispiel verwendet firewall-cmd, um den Port 3260/tcp für den Dienst firewalld zu öffnen.

# firewall-cmd --permanent --add-port=3260/tcp

Wenn Sie –permanent hinzufügen Verwenden Sie beim Hinzufügen eines Ports die Option firewall-cmd, um die Konfiguration neu zu laden.

# firewall-cmd –reload

Erstellen von iSCSI-LUNs

Das Kernel-Ziel exportiert logische SCSI-Einheiten an entfernte Systeme. Verwenden Sie die targetcli-Shell, um zuvor definierte Speicherobjekte mit einem Ziel zu verknüpfen und anzugeben, welche Logical Unit Number (LUN) das Gerät verwendet. Das folgende Beispiel verwendet den create-Befehl, um zwei neue LUNs für ein Ziel zu erstellen. Beginnen Sie in der targetcli-Shell mit dem cd-Befehl, um in das luns-Verzeichnis innerhalb der [target/TGP]-Hierarchie zu wechseln.

/iscsi> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/
/iscsi/iqn.20....b0df6e328beb> cd tpg1/luns

Die folgenden Befehle erstellen eine LUN aus den zuvor definierten Blockspeicherobjekten.

/iscsi/iqn.20...beb/tpg1/luns> create /backstores/block/LUN_1 lun1
Created LUN 1.

ACLs erstellen

Access Control Lists (ACLs) beschränken den Zugriff auf LUNs von Remote-Systemen. Sie können für jeden Initiator eine ACL erstellen, um die Authentifizierung zu erzwingen, wenn der Initiator eine Verbindung zum Ziel herstellt. Dadurch können Sie einem bestimmten Initiator exklusiven Zugriff auf ein bestimmtes Ziel gewähren. Im folgenden Beispiel wird der create-Befehl verwendet, um eine ACL für einen Initiator zu erstellen. Beginnen Sie in der targetcli-Shell mit dem cd-Befehl, um in das acls-Verzeichnis innerhalb der [target/TGP]-Hierarchie zu wechseln.

/> cd /iscsi/iqn.2003-01.org.linux-iscsi.user.x8664:sn.b0df6e328beb/tpg1/acls 
/iscsi/iqn.20...beb/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012
Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012
Created mapped LUN 1.

Konfigurieren eines iSCSI-Initiators

Um ein Linux-System als iSCSI-Initiator zu konfigurieren, installieren Sie die iscsi-initiator-utils Softwarepaket. Dieses Paket ist der Linux Open-iSCSI Initiator.

# yum install iscsi-initiator-utils

Das Paket installiert mehrere Dateien, einschließlich der folgenden:

  • /etc/iscsi/iscsid.conf :Die von iscsid und iscsiadm gelesene Konfigurationsdatei. Diese Datei ist stark kommentiert mit Beschreibungen für jede Konfigurationsdirektive.
  • /sbin/iscsid :Der Open-iSCSI-Daemon, der den Kontrollpfad und die Verwaltungsfunktionen implementiert
  • /sbin/iscsiadm :Das Open-iSCSI-Verwaltungsdienstprogramm zum Erkennen und Anmelden bei iSCSI-Zielen

Bearbeiten Sie /etc/iscsi/initiatorname.iscsi -Datei und ersetzen Sie den InitiatorName-Parameter durch den Initiatornamen, den Sie zuvor als ACL auf dem Ziel konfiguriert haben. In dieser Datei ist ein standardmäßiger iscsi-Initiatorname definiert. Wenn Sie beim Konfigurieren von ACL denselben Namen verwendet haben, müssen Sie hier nichts ändern.

# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.1994-05.com.redhat:aabb51a64012

Verwenden Sie den Befehl systemctl, um den iscsid-Dienst zu aktivieren und zu starten.

# systemctl enable iscsid
# systemctl start iscsid
Grundlegendes zum iscsiadm-Dienstprogramm in CentOS / RHEL

iSCSI-Erkennung

Discovery ist der Prozess, der einem Initiator die Ziele bekannt macht. Im folgenden Beispiel wird die Erkennungsmethode SendTargets verwendet, um Ziele an der IP-Adresse 192.168.12.13 zu erkennen. Dieser Befehl startet bei Bedarf auch den iscsid-Daemon.

# iscsiadm -m discovery --type sendtargets –p 192.168.12.13

Nach der Erkennung werden die nodes-Tabelle und die send_targets-Tabellen in der Datenbank aktualisiert:

# ls /var/lib/iscsi/nodes
iqn.2011-12.com.example.mypc:tgt1 
iqn.2011-12.com.example.mypc:tgt2 
iqn.2012-11.com.example.mypc:tgt3
# ls /var/lib/iscsi/send_targets
192.168.12.13,3260

iSCSI-Initiator-Sitzungen

Eine Sitzung ist eine TCP-Verbindung zwischen einem Initiatorknotenport und einem Zielknotenport. Auf LUNs kann erst zugegriffen werden, wenn eine Sitzung eingerichtet wurde. Verwenden Sie die Option -l (oder –login), um eine Sitzung einzurichten:

# iscsiadm -m node -l

So melden Sie sich bei einem bestimmten Ziel an:

# iscsiadm -m node --targetname iqn.2011-12.com.example.mypc:tgt1 –p 192.0.2.102:3260 –l

Verwenden Sie die Option -u (oder –logout), um eine Sitzung zu schließen. So zeigen Sie Sitzungsinformationen an:

# iscsiadm -m session [-P [printlevel]]

Die Druckebenen sind 1, 2 und 3. Jede zeigt mehr Details.


Cent OS
  1. Ein ultimativer Leitfaden zum Aktualisieren des Kernels auf CentOS/RHEL/Fedora

  2. CentOS / RHEL 7 :Konfigurieren eines NFS-Servers und NFS-Clients

  3. CentOS / RHEL 7:Einsteigerleitfaden für Firewalld

  4. So konfigurieren Sie den iSCSI-Initiator (Client) in CentOS / RHEL 6

  5. Grundlegendes zum iscsiadm-Dienstprogramm in CentOS / RHEL

So richten Sie den GlusterFS-Speicher unter CentOS 7 / RHEL 7 ein

Konfigurieren von SpaceWalk / Hochladen von Inhalten auf SpaceWalk in CentOS 6 / RHEL 6

So konfigurieren Sie einen Hochverfügbarkeitscluster unter CentOS 7 / RHEL 7

Installieren und konfigurieren Sie GlusterFS unter CentOS 7 / RHEL 7

CentOS / RHEL 7:Leitfaden für Anfänger zu systemd-Diensteinheiten

So konfigurieren Sie das iSCSI-Ziel mit targetcli in CentOS / RHEL 7