Website-Suche

Erstellen Sie einen zentralisierten sicheren Speicher mit iSCSI Target/Initiator unter RHEL/CentOS 7 – Teil 12


iSCSI ist ein Block-Level-Protokoll zur Verwaltung von Speichergeräten über TCP/IP-Netzwerke, insbesondere über große Entfernungen. Das iSCSI-Ziel ist eine Remote-Festplatte, die von einem Remote-iSCSI-Server (oder Ziel) bereitgestellt wird. Andererseits wird der iSCSI-Client als Initiator bezeichnet und greift auf den Speicher zu, der auf dem Ziel-Computer freigegeben ist.

Die folgenden Maschinen wurden in diesem Artikel verwendet:

Server (Ziel):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.29
Ports Used : TCP 860, 3260

Auftraggeber (Initiator):


Operating System – Red Hat Enterprise Linux 7
iSCSI Target IP – 192.168.0.30
Ports Used : TCP 3260

Schritt 1: Pakete auf dem iSCSI-Ziel installieren

Um die für das Ziel benötigten Pakete zu installieren (wir werden uns später mit dem Client befassen), gehen Sie wie folgt vor:


yum install targetcli -y

Wenn die Installation abgeschlossen ist, starten und aktivieren wir den Dienst wie folgt:


systemctl start target
systemctl enable target

Schließlich müssen wir den Dienst in Firewalld zulassen:


firewall-cmd --add-service=iscsi-target
firewall-cmd --add-service=iscsi-target --permanent

Und zu guter Letzt dürfen wir nicht vergessen, die iSCSI-Zielerkennung zuzulassen:


firewall-cmd --add-port=860/tcp
firewall-cmd --add-port=860/tcp --permanent
firewall-cmd --reload

Schritt 2: LUNs im Zielserver definieren

Bevor wir mit der Definition von LUNs im Ziel fortfahren, müssen wir zwei logische Volumes erstellen, wie in Teil 6 der RHCSA-Serie („Konfigurieren des Systemspeichers“) erläutert “).

Dieses Mal nennen wir sie vol_projects und vol_backups und platzieren sie in einer Volume-Gruppe namens vg00, wie in Abb. 1 gezeigt. Fühlen Sie sich frei, dies zu tun Wählen Sie den jedem LV zugewiesenen Platz:

Nachdem wir die LVs erstellt haben, können wir die LUNs im Ziel definieren, um sie für den Client-Computer verfügbar zu machen.

Wie in Abb. 2, öffnen wir eine targetcli-Shell und geben die folgenden Befehle aus, die zwei Block-Backstores (lokale Speicherressourcen, die die LUN darstellen, die der Initiator tatsächlich verwenden wird) und einen erstellen Iscsi Qualified Name (IQN), eine Methode zur Adressierung des Zielservers.

Weitere Einzelheiten zur Struktur des IQN finden Sie auf Seite 32 von RFC 3720. Insbesondere gibt der Text nach dem Doppelpunkt (:tgt1) den Namen des Ziels an, während der Text vor (server:) den Hostnamen des darin enthaltenen Ziels angibt Domain.


targetcli
cd backstores
cd block
create server.backups /dev/vg00/vol_backups
create server.projects /dev/vg00/vol_projects
cd /iscsi
create iqn.2016-02.com.tecmint.server:tgt1

Mit dem obigen Schritt wurde ein neues TPG (Target Portal Group) zusammen mit dem Standardportal (ein Paar bestehend aus einer IP-Adresse und einem Port, der den Weg der Initiatoren darstellt) erstellt kann das Ziel erreichen) und überwacht den Port 3260 aller IP-Adressen.

Wenn Sie Ihr Portal an eine bestimmte IP binden möchten (z. B. die Haupt-IP des Ziels), löschen Sie das Standardportal und erstellen Sie wie folgt ein neues (andernfalls überspringen Sie die folgenden targetcli-Befehle. Beachten Sie, dass wir sie der Einfachheit halber ebenfalls übersprungen haben):


cd /iscsi/iqn.2016-02.com.tecmint.server:tgt1/tpg1/portals
delete 0.0.0.0 3260
create 192.168.0.29 3260

Jetzt können wir mit der Erstellung von LUNs fortfahren. Beachten Sie, dass wir die Backstores verwenden, die wir zuvor erstellt haben (server.backups und server.projects). Dieser Vorgang ist in Abb. 3 dargestellt:


cd iqn.2016-02.com.tecmint.server:tgt1/tpg1/luns
create /backstores/block/server.backups
create /backstores/block/server.projects

Der letzte Teil der Target-Konfiguration besteht aus der Erstellung einer Zugriffskontrollliste, um den Zugriff pro Initiator einzuschränken. Da unser Client-Rechner den Namen „Client“ trägt, hängen wir diesen Text an den IQN an. Siehe Abb. 4 für Details:


cd ../acls
create iqn.2016-02.com.tecmint.server:client

An diesem Punkt können wir die targetcli-Shell aufrufen, um alle konfigurierten Ressourcen anzuzeigen, wie wir in Abb. 5:


targetcli
cd /
ls

Um die targetcli-Shell zu verlassen, geben Sie einfach exit ein und drücken Sie die Eingabetaste. Die Konfiguration wird automatisch unter /etc/target/saveconfig.json gespeichert.

Wie Sie in Abb. sehen können. 5 oben haben wir ein Portal, das erwartungsgemäß den Port 3260 aller IP-Adressen überwacht. Wir können dies mit dem Befehl netstat überprüfen (siehe Abb. 6):


netstat -npltu | grep 3260

Damit ist die Ziel-Konfiguration abgeschlossen. Fühlen Sie sich frei, das System neu zu starten und sicherzustellen, dass alle Einstellungen einen Neustart überleben. Wenn nicht, stellen Sie sicher, dass Sie die erforderlichen Ports in der Firewall-Konfiguration öffnen und den Zieldienst beim Booten starten. Jetzt können wir den Initiator einrichten und eine Verbindung zum Client herstellen.

Schritt 3: Einrichten des Client-Initiators

Im Client müssen wir das Paket iscsi-initiator-utils installieren, das den Server-Daemon für das iSCSI-Protokoll (iscsid) sowie iscsiadm< bereitstellt, das Verwaltungsdienstprogramm:


yum update && yum install iscsi-initiator-utils

Sobald die Installation abgeschlossen ist, öffnen Sie /etc/iscsi/initiatorname.iscsi und ersetzen Sie den Standard-Initiatornamen (kommentiert in Abb. 7) durch den Namen, der zuvor in festgelegt wurde ACL auf dem Server (iqn.2016-02.com.tecmint.server:client).

Speichern Sie dann die Datei und führen Sie iscsiadm im Erkennungsmodus aus, der auf das Ziel verweist. Bei Erfolg gibt dieser Befehl die Zielinformationen zurück, wie in Abb. gezeigt. 7:


iscsiadm -m discovery -t st -p 192.168.0.29

Der nächste Schritt besteht darin, den iscsid-Dienst neu zu starten und zu aktivieren:


systemctl start iscsid
systemctl enable iscsid

und Kontaktieren des Ziels im Knotenmodus. Dies sollte zu Meldungen auf Kernel-Ebene führen, die, wenn sie über dmesg erfasst werden, die Geräteidentifikation anzeigen, die den Remote-LUNs im lokalen System (sde) zugewiesen wurde. und sdf in Abb. 8):


iscsiadm -m node -T iqn.2016-02.com.tecmint.server:tgt1 -p 192.168.0.29 -l
dmesg | tail

Ab diesem Zeitpunkt können Sie Partitionen oder sogar LVs (und darauf liegende Dateisysteme) erstellen, wie Sie es mit jedem anderen Speichergerät tun würden. Der Einfachheit halber erstellen wir auf jeder Festplatte eine primäre Partition, die den gesamten verfügbaren Speicherplatz einnimmt, und formatieren sie mit ext4.

Zum Schluss mounten wir /dev/sde1 und /dev/sdf1 auf /projects bzw. /backups ( Beachten Sie, dass diese Verzeichnisse zuerst erstellt werden müssen):


mount /dev/sde1 /projects
mount /dev/sdf1 /backups

Darüber hinaus können Sie zwei Einträge in /etc/fstab hinzufügen, damit beide Dateisysteme beim Booten automatisch mit der UUID jedes Dateisystems gemountet werden, die von blkid zurückgegeben wird. .

Beachten Sie, dass die Mount-Option _netdev verwendet werden muss, um das Mounten dieser Dateisysteme zu verschieben, bis der Netzwerkdienst gestartet wurde:

Sie können diese Geräte nun wie jedes andere Speichermedium verwenden.

Zusammenfassung

In diesem Artikel haben wir behandelt, wie man ein iSCSI-Ziel und einen Initiator in RHEL/CentOS 7-Distributionen einrichtet und konfiguriert. Obwohl die erste Aufgabe nicht zu den erforderlichen Kompetenzen der EX300 (RHCE)-Prüfung gehört, wird sie zur Umsetzung des zweiten Themas benötigt.

Zögern Sie nicht, uns mitzuteilen, wenn Sie Fragen oder Kommentare zu diesem Artikel haben – schreiben Sie uns gerne eine Nachricht über das Kommentarformular unten.

Wenn Sie iSCSI Target und Client Initiator unter RHEL/CentOS 6 einrichten möchten, befolgen Sie diese Anleitung: Einrichten eines zentralen iSCSI-Speichers mit Client Initiator.