Grundlagen von iSCSI:
Der iSCSI-Speicherserver wird verwendet, um Blockgeräte wie HDD/SSD-Partitionen oder LVM-Partitionen freizugeben oder Dateien im Netzwerk zu blockieren. iSCSI-Clients können diese Freigaben über das Netzwerk genauso verwenden wie jede gewöhnliche HDD oder SSD, die darauf montiert ist. Der iSCSI-Client kann diese Datenträger formatieren, mounten und Dateien und Verzeichnisse wie gewohnt speichern.
Abb. 1: iSCSI-Server-Client-Architektur
Jeder iSCSI-Client hat eine Initiator-ID, die verwendet wird, um sich mit den Zielen auf dem Server zu verbinden.
Die Ziele sind Freigaben auf dem iSCSI-Server. Jedes Ziel besteht aus einem eindeutigen Namen (IQN), dem Pfad des Blockgeräts (i.e. Festplattenpartition oder Blockdatei), die Initiator-ID, die eine Verbindung zu diesem Ziel herstellen kann, und ein optionales Benutzername-Passwort-basiertes Authentifizierungssystem.
In Abb. 1 ermöglicht der iSCSI-Speicherserver 3 Initiatoren (3 iSCSI-Clients) die Verbindung zu 4 Zielen. Initiator01 kann sich mit . verbinden Ziel01 und Ziel02, Initiator02 kann sich mit . verbinden Ziel03, und Initiator03 kann sich mit . verbinden Ziel04.
Netzwerktopologie:
Die in diesem Artikel verwendete Netzwerktopologie ist in Abb. 2 dargestellt. Hier konfiguriere ich ein Ubuntu 18.04 LTS-Server als iSCSI-Server. Der iSCSI-Server hat eine statische IP-Adresse 192.168.20.168. Der iSCSI-Client befindet sich auch im Netzwerk 192.168.20.0/24. Es kann also auf den iSCSI-Server zugreifen.
iSCSI-Ziel- und Initiator-Namenskonventionen:
Der iSCSI-Zielname und der Initiatorname müssen eindeutig sein.
Das Zielbenennungsformat ist:
iqn.JJJJ-MM.Reverse-Domain-Name:ZielnameBeispiel: iqn.2020-03.com.Linuxhint: www, iqnq.2020-03.com.linuxhint:logs,
iqn.2020-03.com.linuxhint: user-bob usw.
Das Benennungsformat des Initiators ist:
iqn.JJJJ-MM.Reverse-Domain-Name:Initiator-NameBeispiel: iqn.2020-03.com.linuxhint:initiator01, iqn.2020-03.com.linuxhint:initiator02,
iqn.2020-03.com.Linuxhint:initiator03 usw.
Statische IP einrichten:
Richten Sie zunächst eine statische IP-Adresse auf Ihrem iSCSI-Server ein. Wenn Sie Hilfe benötigen, lesen Sie meinen Artikel Setup Static IP on Ubuntu 18.04 LTS Desktop- und Serverbetriebssystem.
iSCSI-Server installieren:
Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:
$ sudo apt-Update
Installieren Sie nun den iSCSI-Server wie folgt:
$ sudo apt install tgt
Um die Installation zu bestätigen, drücken Sie Ja und drücke dann
iSCSI-Server sollte installiert sein.
Teilen von Dateiblöcken über iSCSI:
Sie können mit dem Befehl dd erstellte Dateiblöcke über iSCSI freigeben.
Erstellen Sie zunächst ein neues Verzeichnis, in dem Sie alle Dateiblöcke wie folgt aufbewahren möchten:
$ sudo mkdir -pv /iscsi/blocks
Erstellen Sie nun einen neuen Dateiblock www.img im Verzeichnis /iscsi/blocks/ wie folgt:
$ sudo dd if=/dev/zero of=/iscsi/blocks/www.img bs=1M count=1024 status=Fortschritt
Erstellen Sie nun eine neue Zielkonfigurationsdatei iqn.2020-03.com.linuxhint.www.conf in dem /etc/tgt/conf.d/ Verzeichnis wie folgt:
$ sudo nano /etc/tgt/conf.d/iqn.2020-03.com.linuxhint.www.conf
Geben Sie nun die folgenden Zeilen in die Konfigurationsdatei ein und speichern Sie die Datei mit
Backing-Store /iscsi/blocks/www.img
Initiatorname iqn.2020-03.com.linuxhint:initiator01
Incominguser Linuxhint-Geheimnis
Hier wird der Zielname im Ziel-Tag definiert.
backing-store wird auf den Pfad der Blockdatei gesetzt.
Initiator-Name wird verwendet, um die Initiator-ID festzulegen, die auf das Ziel zugreifen darf.
eingehender Benutzer line wird verwendet, um den Benutzernamen und das Passwort festzulegen, die der Initiator für die Authentifizierung verwendet.
Freigeben von HDD/SSD über iSCSI:
Sie können auch die gesamte HDD/SSD oder eine oder mehrere HDD/SSD-Partitionen über iSCSI freigeben. Wenn Sie die gesamte HDD/SSD freigeben, sind die Partitionen dieser HDD/SSD auch vom Initiator oder iSCSI-Client aus zugänglich.
Suchen Sie zuerst den HDD/SSD-Namen oder den HDD/SSD-Partitionsnamen, den Sie mit dem folgenden Befehl teilen möchten:
$ sudo lsblk
Erstellen Sie nun eine neue Zielkonfigurationsdatei iqn.2020-03.com.linuxhint.Daten.conf in dem /etc/tgt/conf.d/ Verzeichnis wie folgt:
$ sudo nano /etc/tgt/conf.d/iqn.2020-03.com.linuxhint.www.conf
Geben Sie nun die folgenden Zeilen in die Konfigurationsdatei ein und speichern Sie die Datei.
Sicherungsspeicher /dev/sdb
Initiatorname iqn.2020-03.com.linuxhint:initiator01
Incominguser Linuxhint-Geheimnis
Hier habe ich die gesamte HDD geteilt /dev/sdb über iSCSI. Wenn Sie eine einzelne Partition freigeben möchten, können Sie festlegen Backing-Store zu /dev/sdb1 oder /dev/sdb2 und so weiter.
Neustart des iSCSI-Dienstes:
Wenn Sie Änderungen an der iSCSI-Zielkonfigurationsdatei vornehmen, führen Sie den folgenden Befehl aus, damit die Änderungen wirksam werden:
$ sudo systemctl restart tgt
Der iSCSI-Dienst sollte ausgeführt werden.
$ sudo systemctl status tgt
Der iSCSI-Server-Port 3260 sollte ebenfalls geöffnet sein, wie Sie im Screenshot unten sehen können.
$ sudo netstat -tlpn
Hinzufügen des iSCSI-Dienstes zum Systemstart:
Führen Sie den folgenden Befehl aus, um den iSCSI-Dienst beim Booten zu starten:
$ sudo systemctl enable tgt
Client konfigurieren:
Sie müssen die iSCSI-Client-Tools auf dem Client installiert haben, um die iSCSI-Freigaben verwenden zu können.
Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:
$ sudo apt-Update
Jetzt installieren open-iscsi Paket mit folgendem Befehl:
$ sudo apt install open-iscsi
Um die Installation zu bestätigen, drücken Sie Ja und drücke dann
open-iscsi sollte installiert werden.
Fügen Sie nun die iscsid Service zum Systemstart wie folgt:
$ sudo systemctl enable iscsid
Öffnen Sie nun die /etc/iscsi/initiatorname.iscsi Konfigurationsdatei.
$ sudo nano /etc/iscsi/initiatorname.iscsi
Stellen Sie jetzt ein Initiatorname zu Ihrem Initiatornamen und speichern Sie die Datei.
Öffnen Sie nun die /etc/iscsi/iscsid.conf Datei mit folgendem Befehl:
$ sudo nano /etc/iscsi/iscsid.conf
Entkommentieren Sie nun die markierte Zeile.
Kommentieren Sie die markierte Zeile.
Endlich, das Starteinstellungen sollte wie folgt sein.
Entkommentieren Sie die markierten Zeilen.
Geben Sie hier Ihren Benutzernamen und Ihr Passwort ein und speichern Sie die Datei.
Scannen Sie nun den iSCSI-Server wie folgt nach Zielen:
$ sudo iscsiadm -m Discovery -t sendtargets -p 192.168.20.168Wie Sie sehen, sind die Ziele aufgelistet.
Jetzt können Sie sich wie folgt bei einem bestimmten Ziel anmelden:
$ sudo iscsiadm -m Knoten -p 192.168.20.168 -T iqn.2020-03.com.linuxhint:www --loginHier, 192.168.20.168 ist die IP-Adresse des iSCSI-Servers und iqn.2020-03.com.linuxhint:www ist der Zielname.
Sie können sich auch mit dem folgenden Befehl bei allen verfügbaren Zielen anmelden:
$ sudo iscsiadm -m Knoten -p 192.168.20.168 --login
Sobald Sie sich bei den Zielen angemeldet haben, sollten die iSCSI-Festplatten Ihrem Client zur Verfügung stehen. Jetzt können Sie sie nach Belieben partitionieren, formatieren oder mounten.
$ sudo lsblk -e7
Sie können auch Partitionen auf Ihren iSCSI-Festplatten mit fdisk, cdisk, parted, GNOME-Festplatten, GParted oder einer anderen Partitionierungssoftware erstellen. Um zu erfahren, wie Sie fdisk zum Partitionieren von Festplatten verwenden, lesen Sie meinen Artikel How to Use fdisk in Linux.
Sie können Ihre Partitionen auch formatieren.
$ sudo mkfs.ext4 -L www /dev/sdb1
Automatisches Mounten von iSCSI-Partitionen:
Um eine iSCSI-Partition zu mounten, erstellen Sie einen Mountpoint wie folgt:
$ sudo mkdir /www
Öffnen Sie nun die /etc/fstab Datei wie folgt:
$ sudo nano /etc/fstab
Geben Sie nun die folgende Zeile in das ein /etc/fstab Datei und speichern Sie die Datei.
/dev/sdb1 /www/ ext4 defaults,auto,_netdev 0 0
HINWEIS: Stellen Sie sicher, dass Sie die _netdev Option in der /etc/fstab Datei. Andernfalls bootet Ihr Client nicht.
Nun können Sie die iSCSI-Partition wie folgt mounten:
$ sudo mount /www
Die Partition sollte gemountet werden.
Jetzt können Sie den Besitzer und die Gruppe des Mountpoints bei Bedarf in Ihren Login-Benutzernamen und Gruppennamen ändern.
$ sudo chown -Rfv $(whoami):$(whoami) /www
Jetzt können Sie beliebige Dateien in Ihrer iSCSI-Partition speichern.
So konfigurieren Sie den iSCSI-Speicherserver unter Ubuntu 18.04 LTS. Danke, dass du diesen Artikel gelesen hast.