iSCSI steht für (Internet Small Computer System Interface) und ist ein Storage Area Network (SAN)-Protokoll, das für die Online-Speicherverwaltung verwendet werden kann. Es handelt sich um einen IP-basierten Speichernetzwerkstandard, der Zugriff auf Blockebene auf Speichergeräte bietet, indem SCSI-Befehle über ein TCP/IP-Netzwerk übertragen werden.
iSCSI besteht aus zwei Komponenten, iSCSI-Target und iSCSI-Initiator. Das iSCSI-Ziel ist ein Dienst auf dem iSCSI-Server, der Zugriff auf den gemeinsam genutzten Speicher bietet, und der iSCSI-Initiator ist ein iSCSI-Client, der eine Verbindung zum Ziel herstellt und auf den gemeinsam genutzten Speicher zugreift.
In diesem Tutorial zeigen wir Ihnen, wie Sie ein iSCSI-Ziel und einen iSCSI-Initiator auf einem Ubuntu 18.04-Server einrichten.
Anforderungen
- Ein frischer Ubuntu 18.04-Server für iSCSI-Target mit 2 GB externer Festplatte.
- Ein frischer Ubuntu 18.04-Server für den iSCSI-Initiator.
- Eine statische IP-Adresse 192.168.0.103 ist auf dem iSCSI-Ziel konfiguriert und 192.168.0.102 ist auf dem iSCSI-Initiator konfiguriert.
- Ein Root-Passwort ist auf beiden Servern konfiguriert.
Erste Schritte
Bevor Sie beginnen, müssen Sie beide Server mit der neuesten Version aktualisieren. Sie können sie aktualisieren, indem Sie den folgenden Befehl für $
ausführenapt-get update -y
apt-get upgrade -y
Sobald beide Server aktualisiert sind, starten Sie sie neu, um die Änderungen zu übernehmen.
iSCSI-Target installieren
Zuerst müssen Sie das Target Framework (TGT)-Paket auf dem iSCSI-Zielserver installieren. Sie können es mit dem folgenden Befehl installieren:
apt-get install tgt -y
Überprüfen Sie nach der Installation von TGT den Status von TGT, indem Sie den folgenden Befehl ausführen:
systemctl status tgt
Sie sollten die folgende Ausgabe sehen:
Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
iSCSI-Ziel konfigurieren
Als Nächstes müssen Sie ein LUN-Gerät (Logical Unit Number) auf Ihrem iSCSI-Server erstellen. LUN ist ein Back-End-Speichergerät, mit dem sich der Initiator später verbindet und verwendet.
Sie können dies tun, indem Sie die Konfigurationsdatei im Verzeichnis /etc/tgt/conf.d erstellen:
nano /etc/tgt/conf.d/iscsi.conf
Fügen Sie die folgenden Zeilen hinzu:
# Bereitgestelltes Gerät als iSCSI-Ziel Backing-Store /dev/sdb1 Initiator-Adresse 192.168.0.102 eingehender Benutzer iscsi-user Passwort ausgehender Benutzer iscsi-target secretpass
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den TGT-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart tgt
Hier ist eine kurze Erklärung jedes Parameters:
Ziel :Dies ist der Name des jeweiligen Ziels.
backing-store :Diese Option gibt die Speicherfestplatte an, die vom Initiator verwendet wird.
Initiator-Adresse :Dies ist die IP-Adresse des Initiators.
eingehender Benutzer :Dies ist der eingehende Benutzername/das Kennwort zum Sichern der LUN.
ausgehender Benutzer :Dies ist der ausgehende Benutzername/das Kennwort für die gegenseitige CHAP-Authentifizierung.
Überprüfen Sie nach dem Neustart des TGT-Dienstes den iSCSI-Zielserver mit dem folgenden Befehl:
tgtadm --mode target --op show
Sie sollten sehen, dass das iSCSI-Ziel verfügbar gemacht wird:
Ziel 1:iqn.2019-11.example.com:lun1 Systeminformationen:Treiber:iscsi Status:bereit I_T-Nexus-Informationen:LUN-Informationen:LUN:0 Typ:Controller SCSI-ID:IET 00010000 SCSI-SN:beaf10 Größe:0 MB, Blockgröße:1 Online:Ja Wechselmedien:Nein Entfernen verhindern:Nein Schreibgeschützt:Nein SWP:Nein Thin-Provisioning:Nein Sicherungsspeichertyp:null Sicherungsspeicherpfad:Keine Sicherungsspeicherflags:LUN:1 Typ:Festplatten-SCSI ID:IET 00010001 SCSI SN:beaf11 Größe:2146 MB, Blockgröße:512 Online:Ja Wechselmedien:Nein Entfernen verhindern:Nein Schreibgeschützt:Nein SWP:Nein Thin-Provisioning:Nein Sicherungsspeichertyp:rdwr Sicherungsspeicherpfad:/dev /sdb1 Sicherungsspeicher-Flags:Kontoinformationen:iscsi-user iscsi-target (ausgehend) ACL-Informationen:192.168.0.102
iSCSI-Initiator installieren und konfigurieren
Als Nächstes müssen Sie das iSCSI-Initiatorpaket auf dem iSCSI-Initiatorserver installieren. Sie können es mit dem folgenden Befehl installieren:
apt-get install open-iscsi -y
Führen Sie nach Abschluss der Installation die Zielerkennung für unseren iSCSI-Zielserver aus, um die freigegebenen Ziele zu ermitteln.
iscsiadm -m discovery -t st -p 192.168.0.103
Sie sollten das verfügbare Ziel in der folgenden Ausgabe sehen:
192.168.0.103:3260,1 iqn.2019-11.example.com:lun1
Der obige Befehl generiert auch zwei Dateien mit LUN-Informationen. Sie können sie mit dem folgenden Befehl anzeigen:
ls -l /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/ /etc/iscsi/send_targets/192.168.0.103,3260/
Sie sollten die folgenden Dateien sehen:
/etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1/:total 4-rw------- 1 root root 1840 8. November 13:17 default/etc/iscsi/send_targets/192.168.0.103,3260/:total 8lrwxrwxrwx 1 root root 66 Nov 8 13:17 iqn.2019-11.example.com:lun1,192.168.0.103,3260,1,default -> /etc/iscsi/nodes/iqn.2019-11.example.com:lun1/192.168.0.103,3260,1-rw------- 1 root root 547 8. November 13:17 st_config
Als Nächstes müssen Sie die Standarddatei bearbeiten und die CHAP-Informationen definieren, die Sie auf dem iSCSI-Ziel konfiguriert haben, um vom iSCSI-Initiator aus auf das iSCSI-Ziel zuzugreifen.
nano /etc/iscsi/nodes/iqn.2019-11.example.com\:lun1/192.168.0.103\,3260\,1/default
Folgende Zeilen hinzufügen/ändern:
node.session.auth.authmethod =CHAP node.session.auth.username =iscsi-usernode.session.auth.password =Passwort node.session.auth.username_in =iscsi-targetnode.session.auth.password_in =secretpass node.startup =automatisch
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den iSCSI-Initiatordienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart open-iscsi
Sie sollten die folgende Ausgabe sehen:
* Unmounten von iscsi-gestützten Dateisystemen [ OK ] * Trennen von iSCSI-Zielen iscsiadm:Keine übereinstimmenden Sitzungen gefunden [ OK ] * Stoppen des iSCSI-Initiator-Dienstes [ OK ] * Starten des iSCSI-Initiator-Dienstes iscsid [ OK ] * Einrichten von iSCSI-Zielen Einloggen in [iface:default, Ziel:iqn.2019-11.example.com:lun1, Portal:192.168.0.103,3260] (mult iple)Anmeldung bei [iface:default, target:iqn.2019-11.example.com:lun1, portal:192.168.0.103,3260] erfolgreich. [ OK ] * Mounten von Netzwerkdateisystemen [ OK ]
Sie können jetzt die vom iSCSI-Ziel freigegebene Speicherfestplatte mit dem folgenden Befehl überprüfen:
lsblk
Sie sollten sehen, dass der Speicherdatenträger jetzt für den Initiator als sdb:
verfügbar istNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSda 8:0 0 465.8G 0 disk ??sda1 8:1 0 93.1G 0 part /??sda2 8:2 0 1K 0 part ??sda5 8:5 0 186.3 G 0 Teil /home??sda6 8:6 0 181.6G 0 Teil /Data??sda7 8:7 0 4.8G 0 Teil [SWAP]sdb 8:16 0 2G 0 Festplatte
Sie können die iSCSI-Verbindungen auch mit dem folgenden Befehl überprüfen:
tgtadm --mode conn --op show --tid 1
Sie sollten die folgende Ausgabe erhalten:
Sitzung:1 Verbindung:0 Initiator:iqn.1993-08.org.debian:01:2e1e2383de41 IP-Adresse:192.168.0.102
Als nächstes müssen Sie ein Dateisystem auf diesem gemeinsam genutzten Gerät (sdb) erstellen und es einhängen, um dieses Gerät nutzbar zu machen.
Erstellen Sie zunächst ein Dateisystem auf dem gemeinsam genutzten Gerät (sdb) mit dem folgenden Befehl:
fdisk /dev/sdb
Sie sollten die folgende Ausgabe sehen:
Willkommen bei fdisk (util-linux 2.31.1).Änderungen bleiben nur im Speicher, bis Sie sich entscheiden, sie zu schreiben.Seien Sie vorsichtig, bevor Sie den Schreibbefehl verwenden.Gerät enthält keine erkannte Partitionstabelle.Neues DOS erstellt Disklabel mit Festplattenkennung 0x06091fe8.Befehl (m für Hilfe):nPartitionstyp p Primary (0 Primary, 0 Extended, 4 Free) e Extended (Container für logische Partitionen) Select (Default p):pPartition Number (1-4, Default 1 ):Erster Sektor (2048-4194303, Standard 2048):Letzter Sektor, +Sektoren oder +Größe{K,M,G,T,P} (2048-4194303, Standard 4194303):Erstellte eine neue Partition 1 vom Typ „Linux ' und der Größe 2 GiB.Befehl (m für Hilfe):wDie Partitionstabelle wurde geändert.Aufruf von ioctl(), um die Partitionstabelle neu zu lesen.Datenträger synchronisieren.
Als nächstes formatieren Sie diese Partition mit dem folgenden Befehl:
mkfs.ext4 /dev/sdb1
Hängen Sie diese Partition als Nächstes mit dem folgenden Befehl in das Verzeichnis /mnt ein:
Mount /dev/sdb1 /mnt
Jetzt können Sie das gemountete Gerät mit dem folgenden Befehl überprüfen:
df -h
Sie sollten die folgende Ausgabe sehen:
Verwendete Dateisystemgröße Verfügbar Verwendung% Eingehängt onudev 1.9G 4.0K 1.9G 1% /devtmpfs 384M 1.2M 383M 1% /run/dev/sda1 92G 36G 51G 42% /none 4.0K 0 4.0K 0% /sys/ fs/cgroupnone 5.0M 0 5.0M 0% /run/locknone 1.9G 54M 1.9G 3% /run/shmnone 100M 48K 100M 1% /run/user/dev/sda5 184G 96G 79G 55% /home/dev/sda6 179G 32G 138G 19 % /Data/dev/sdb1 2.0G 3.0M 1.9G 1% /mint
Herzliche Glückwünsche! Sie haben den iSCSI-Zielserver erfolgreich installiert und vom iSCSI-Initiator aus verbunden. Sie können dieses gemeinsam genutzte iSCSI-Gerät jetzt als normale angeschlossene Festplatte verwenden.