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.
Targetcli installieren
1. RHEL/CentOS 7 verwendet das Kernel-Zielsubsystem Linux-IO (LIO) für iSCSI. Zusätzlich zu iSCSI unterstützt LIO eine Reihe von Speicherstrukturen, darunter 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
2. 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
Hinzufügen des Geräts
1. Fügen Sie die Festplatte /dev/xvdf als iSCSI-Gerät unter Backstores /backstores/block hinzu. Backstores sind lokale Speicherressourcen, die das Kernel-Ziel verwendet, um die exportierten SCSI-Geräte zu „sichern“.
# targetcli ... /> cd /backstores/block/ /backstores/block> create disk0 /dev/xvdf Created block storage object disk0 using /dev/xvdf.
2. Überprüfen Sie das neue Gerät mit „ls“ im Verzeichnis /backstores/block der targetcli-Befehlszeile.
Neuen IQN erstellen
1. Das folgende Beispiel verwendet den create-Befehl, um einen IQN (iSCSI Qualified Name) mit einem Ziel zu erstellen. 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 eine „iqn“-Kennung identifiziert. Dies ist ein iSCSI Qualified Name (IQN), der ein Ziel eindeutig identifiziert.
/>/> cd /iscsi /iscsi> create Created target iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721. Created TPG 1. Global pref auto_add_default_portal=true Created default portal listening on all IPs (0.0.0.0), port 3260. /iscsi>
2. Überprüfen Sie den neu erstellten IQN mit dem Befehl ls im Verzeichnis /iscsi.
Einrichten der ACL
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.
2. Bevor Sie eine ACL erstellen können, müssen Sie den Initiatornamen von Ihrem Client (iscsi-initiator) erfahren. Verwenden Sie den folgenden Befehl auf dem Client, um den Initiatornamen abzurufen.
[root@initiator ~]# cat /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.1994-05.com.redhat:aabb51a64012
2. Das folgende Beispiel verwendet den create-Befehl, 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. Verwenden Sie den Namen des Initiators, den Sie gerade mit dem obigen Befehl erhalten haben.
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/acls /iscsi/iqn.20...721/tpg1/acls> create iqn.1994-05.com.redhat:aabb51a64012 Created Node ACL for iqn.1994-05.com.redhat:aabb51a64012
3. Überprüfen Sie die neue ACL, die Sie gerade eingerichtet haben.
Zielportalgruppe (TPG) erstellen
Eine standardmäßige Zielportalgruppe (TPG) wird erstellt, wenn Sie einen neuen IQN erstellen. Ein Netzwerkportal ist ein IP-Adresse:Port-Paar. Auf ein iSCSI-Ziel wird von Remote-Systemen über das Netzwerkportal zugegriffen. Das Standardportal von 0.0.0.0:3260 ermöglicht es dem iSCSI-Server, alle IPv4-Adressen auf Port 3260 abzuhören. Sie können das Standardportal löschen und Portale nach Bedarf konfigurieren. Sowohl IPv4- als auch IPv6-Adressen werden unterstützt.
1. Wie Sie im folgenden Befehl sehen können, wurde das Standard-TGP bereits erstellt.
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/portals/ /iscsi/iqn.20.../tpg1/portals> ls
2. Um Remote-Systemen den Zugriff auf ein iSCSI-Ziel auf 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 beim Hinzufügen eines Ports die Option –permanent angeben, verwenden Sie den Befehl firewall-cmd, um die Konfiguration neu zu laden.
# firewall-cmd –reload
Hinzufügen von iSCSI-Festplatten zum TPG
1. Jetzt müssen wir die Festplatte (disk0), die wir zuvor in diesem Beitrag erstellt haben, zum Standard-TPG hinzufügen.
/> cd /iscsi/iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721/tpg1/luns /iscsi/iqn.20...721/tpg1/luns> create /backstores/block/disk0 Created LUN 0. Created LUN 0->0 mapping in node ACL iqn.1994-05.com.redhat:aabb51a64012
2. Überprüfen Sie Ihre Konfiguration.
Speichern Sie die Konfiguration
Der letzte Schritt besteht darin, die Konfiguration mit dem Befehl „saveconfig“ zu speichern. Stellen Sie sicher, dass Sie den Befehl aus dem Verzeichnis „/“ ausführen, andernfalls schlägt er fehl.
/> saveconfig Last 10 configs saved in /etc/target/backup. Configuration saved to /etc/target/saveconfig.json
Konfigurieren des iSCSI-Initiators
1. Führen Sie auf Ihrem iscsi-initiator eine Discovery gegen das Ziel durch, um zu überprüfen, ob Ihr iqn verfügbar ist.
iscsiadm --mode discoverydb --type sendtargets --portal [ip-of-target] --discover [ip-of-target]:3260,1 iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721
2. Melden Sie sich beim Ziel an
# iscsiadm --mode node --targetname iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721 --portal [ip-of-target] --login Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721, portal: [ip-of-target],3260] (multiple) Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.geeklab.x8664:sn.81b9fd11a721, portal: [ip-of-target],3260] successful.
3. Überprüfen Sie, ob Sie den neuen iSCSI-Speicher sehen können.
# cat /proc/scsi/scsi Attached devices: Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: LIO-ORG Model: disk0 Rev: 4.0 Type: Direct-Access ANSI SCSI revision: 05