iSCSI Anleitung · 9 min read · Nov 26, 2025
So installieren Sie einen iSCSI-Speicherserver auf Ubuntu 22.04

Die Internet Small Computer System Interface (iSCSI) ist ein Protokoll, das in Storage Area Networks (SANs) verwendet wird, um Blockspeicherressourcen wie Partitionen von Festplatten (HDDs) oder Solid State Drives (SSDs), Logical Volume Management (LVM)-Partitionen oder Blockdateien über ein Netzwerk zu teilen. Mit einer Client-Server-Architektur ermöglicht iSCSI die Übertragung von SCSI-Befehlen über TCP/IP-Netzwerke zwischen zwei Hauptkomponenten: dem Initiator und dem Ziel. Das iSCSI-Ziel ist ein Dienst, der auf einem iSCSI-Server gehostet wird und für den Zugriff auf den gemeinsamen Speicher verantwortlich ist. Im Gegensatz dazu fungiert der iSCSI-Initiator als Client, der eine Verbindung zum Ziel herstellt, um die gemeinsamen Speicherressourcen zu nutzen.
Dieses Tutorial ist ein vollständiger Leitfaden zur Einrichtung sowohl von iSCSI-Zielen als auch von Initiatoren auf einem Server, der Ubuntu 22.04 ausführt. Es werden die Schritte zur Einrichtung einer sicheren Speicherfreigabe innerhalb Ihres Netzwerks behandelt.
Anforderungen
- Ein System, das Ubuntu 22.04 für das iSCSI-Ziel mit 1 GB externem HDD ausführt.
- Ein System, das ein frisches Ubuntu 22.04 für den iSCSI-Initiator ausführt.
- Eine statische IP-Adresse 192.168.1.10 ist auf dem iSCSI-Ziel konfiguriert, und 192.168.1.20 ist auf dem iSCSI-Initiator konfiguriert.
- Ein Root-Passwort ist auf beiden Servern konfiguriert.
System aktualisieren
Bevor Sie beginnen, ist es eine gute Idee, Ihr System mit den neuesten Paketen zu aktualisieren. Sie können dies mit dem folgenden Befehl tun:
apt update -y
apt upgrade -ySobald alle Pakete aktualisiert sind, starten Sie Ihr System neu, um die Änderungen anzuwenden.
iSCSI-Ziel installieren
Das iSCSI-Zielpaket befindet sich standardmäßig im Ubuntu 22.04-Standardrepository. Sie können es installieren, indem Sie den folgenden Befehl auf dem iSCSI-Zielserver ausführen:
apt install tgt -yNach der Installation des iSCSI-Ziels überprüfen Sie den Status des Servers mit dem folgenden Befehl:
systemctl status tgtSie sollten die folgende Ausgabe erhalten:
? tgt.service - (i)SCSI-Zieldaemon
Loaded: loaded (/lib/systemd/system/tgt.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2024-01-03 11:13:04 UTC; 23s ago
Docs: man:tgtd(8)
Main PID: 7770 (tgtd)
Status: "Starting event loop..."
Tasks: 1
Memory: 1.1M
CGroup: /system.slice/tgt.service
??7770 /usr/sbin/tgtd -f
Jan 03 11:13:04 ubuntu2204 systemd[1]: Starting (i)SCSI-Zieldaemon...
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: iser_ib_init(3431) Failed to initialize RDMA; load kernel modules?
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: work_timer_start(146) use timer_fd based scheduler
Jan 03 11:13:04 ubuntu2204 tgtd[7770]: tgtd: bs_init(387) use signalfd notification
Jan 03 11:13:04 ubuntu2204 systemd[1]: Started (i)SCSI-Zieldaemon.
An diesem Punkt ist das iSCSI-Ziel auf Ihrem Server installiert. Sie können nun mit dem nächsten Schritt fortfahren.
iSCSI-Ziel konfigurieren
Zuerst erstellen Sie ein LUN (Logical Unit Number)-Gerät auf Ihrem iSCSI-Server. LUN ist ein Backend-Speichergerät, das Teil eines physischen SCSI-Geräts ist. Alle LUNs, die dem iSCSI-Ziel zugeordnet sind, sind virtuell an das Betriebssystem des Clients angeschlossen. Daher können Initiatoren Dateisysteme auf iSCSI-LUNs einrichten und verwalten.
Sie können es konfigurieren, indem Sie eine neue Konfigurationsdatei erstellen:
nano /etc/tgt/conf.d/iscsi.confFügen Sie die folgenden Zeilen hinzu:
backing-store /dev/sdb
initiator-address 192.168.1.20
incominguser iscsi-user password
outgoinguser iscsi-target secretpass
Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.
Wo:
- Die erste Zeile definiert den Namen der LUN.
- Die zweite Zeile definiert den Speicherort und den Namen des Speichergeräts auf dem iSCSI-Zielserver.
- Die dritte Zeile definiert die IP-Adresse des iSCSI-Initiators.
- Die vierte Zeile definiert den eingehenden Benutzernamen/Passwort.
- Die fünfte Zeile definiert den Benutzernamen/Passwort, das das Ziel dem Initiator zur Verfügung stellt, um eine gegenseitige CHAP-Authentifizierung zu ermöglichen.
Als Nächstes starten Sie den iSCSI-Dienst neu, um die Änderungen anzuwenden:
systemctl restart tgtÜberprüfen Sie dann den iSCSI-Zielserver mit dem folgenden Befehl:
tgtadm --mode target --op showSie sollten die folgende Ausgabe erhalten:
Target 1: iqn.2024-01.example.com:lun1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Prevent removal: No
Readonly: No
SWP: No
Thin-provisioning: No
Backing store type: null
Backing store path: None
Backing store flags:
Account information:
iscsi-user
iscsi-target (outgoing)
ACL information:
192.168.1.10
An diesem Punkt ist der iSCSI-Zielserver installiert und konfiguriert. Jetzt können Sie mit dem nächsten Schritt fortfahren.
iSCSI-Initiator installieren und konfigurieren
Gehen Sie als Nächstes zur iSCSI-Initiatormaschine und installieren Sie das iSCSI-Initiatorpaket mit dem folgenden Befehl:
apt install open-iscsi -ySobald die Installation abgeschlossen ist, entdecken Sie den iSCSI-Zielserver, um die gemeinsamen Ziele mit dem folgenden Befehl zu finden:
iscsiadm -m discovery -t st -p 192.168.1.10Sie sollten die folgende Ausgabe sehen:
192.168.1.10:3260,1 iqn.2024-01.example.com:lun1
Als Nächstes müssen Sie den Namen des LUN-Geräts in der Datei initiatorname.iscsi definieren:
nano /etc/iscsi/initiatorname.iscsiFügen Sie den Namen Ihres iSCSI-Ziel-LUN wie unten gezeigt hinzu:
InitiatorName=iqn.2024-01.example.com:lun1
Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.
Als Nächstes müssen Sie die CHAP-Informationen definieren, die Sie auf dem iSCSI-Ziel konfiguriert haben, um auf das iSCSI-Ziel vom iSCSI-Initiator aus zuzugreifen. Die Knoten-Konfigurationsdatei befindet sich im Verzeichnis ‘/etc/iscsi/nodes/‘ und hat ein Verzeichnis pro verfügbarer LUN.
Sie können dies definieren, indem Sie die folgende Datei bearbeiten:
nano /etc/iscsi/nodes/iqn.2024-01.example.com\:lun1/192.168.1.10\,3260\,1/defaultFügen Sie die folgenden Zeilen hinzu/ändern Sie sie:
node.session.auth.authmethod = CHAP
node.session.auth.username = iscsi-user
node.session.auth.password = password
node.session.auth.username_in = iscsi-target
node.session.auth.password_in = secretpass
node.startup = automatic
Speichern Sie die Datei und schließen Sie sie, und starten Sie dann den iSCSI-Initiatordienst mit dem folgenden Befehl neu:
systemctl restart open-iscsi iscsidSie können auch den Status des Dienstes mit dem folgenden Befehl überprüfen:
systemctl status open-iscsiSie sollten die folgende Ausgabe erhalten:
? open-iscsi.service - Anmeldung bei Standard-iSCSI-Zielen
Loaded: loaded (/lib/systemd/system/open-iscsi.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2024-01-03 11:33:13 UTC; 10s ago
Docs: man:iscsiadm(8)
man:iscsid(8)
Process: 2861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS)
Process: 2867 ExecStart=/lib/open-iscsi/activate-storage.sh (code=exited, status=0/SUCCESS)
Main PID: 2867 (code=exited, status=0/SUCCESS)
Jan 03 11:33:14 initiator systemd[1]: Starting Anmeldung bei Standard-iSCSI-Zielen...
Jan 03 11:33:14 initiator iscsiadm[2861]: Anmeldung bei [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] (m>
Jan 03 11:33:14 initiator iscsiadm[2861]: Anmeldung bei [iface: default, target: iqn.2024-01.example.com:lun1, portal: 104.245.33.142,3260] erfolgreich>
Jan 03 11:33:14 initiator systemd[1]: Anmeldung bei Standard-iSCSI-Zielen abgeschlossen.
Sie können auch die iSCSI-Verbindung mit dem folgenden Befehl überprüfen:
iscsiadm -m session -o showSie sollten die folgende Ausgabe erhalten:
tcp: [2] 192.168.1.10:3260,1 iqn.2024-01.example.com:lun1 (non-flash)
Sie können auch das vom iSCSI-Ziel freigegebene Speichergerät mit dem folgenden Befehl überprüfen:
lsblkSie sollten das freigegebene Gerät sdb in der folgenden Ausgabe sehen:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
??sda1 8:1 0 80G 0 part /
sdb 8:16 0 1000M 0 disk
Erstellen eines Dateisystems auf dem freigegebenen Gerät
Um das freigegebene Gerät auf dem iSCSI-Initiator zu verwenden, müssen Sie ein Dateisystem auf dem freigegebenen Gerät (sdb) erstellen und es einhängen, um dieses Gerät nützlich zu machen.
Zuerst erstellen Sie ein Dateisystem auf dem freigegebenen Gerät (sdb) mit dem folgenden Befehl:
fdisk /dev/sdbBeantworten Sie alle Fragen wie unten gezeigt, um ein Dateisystem zu erstellen:
Willkommen bei fdisk (util-linux 2.34).
Änderungen bleiben nur im Speicher, bis Sie sich entscheiden, sie zu schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl verwenden.
Das Gerät enthält keine erkannte Partitionstabelle.
Eine neue DOS-Diskette mit der Festplattenkennung 0x9743ddcf wurde erstellt.
Befehl (m für Hilfe): n
Partitionstyp
p primär (0 primär, 0 erweitert, 4 frei)
e erweitert (Container für logische Partitionen)
Wählen Sie (Standard p):
Verwenden der Standardantwort p.
Partitionsnummer (1-4, Standard 1):
Erster Sektor (2048-2047999, Standard 2048):
Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2047999, Standard 2047999):
Eine neue Partition 1 vom Typ 'Linux' und von 999 MiB Größe wurde erstellt.
Befehl (m für Hilfe): w
Die Partitionstabelle wurde geändert.
Aufruf von ioctl(), um die Partitionstabelle erneut zu lesen.
Synchronisieren der Festplatten.
Als Nächstes formatieren Sie die Partition mit dem folgenden Befehl:
mkfs.ext4 /dev/sdb1Sie sollten die folgende Ausgabe erhalten:
mke2fs 1.45.5 (07-Jan-2020)
Erstellen eines Dateisystems mit 255744 4k-Blöcken und 64000 Inodes
Dateisystem-UUID: e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3
Superblock-Backups auf Blöcken gespeichert:
32768, 98304, 163840, 229376
Zuweisen von Gruppentabellen: abgeschlossen
Schreiben von Inode-Tabellen: abgeschlossen
Erstellen eines Journals (4096 Blöcke): abgeschlossen
Schreiben von Superblocks und Dateisystembuchhaltungsinformationen: abgeschlossen
Als Nächstes hängen Sie die Partition mit dem folgenden Befehl in das Verzeichnis /mnt ein:
mount /dev/sdb1 /mntSie können nun die eingehängte Partition mit dem folgenden Befehl überprüfen:
df -hSie sollten die folgende Ausgabe erhalten:
Dateisystem Größe Benutzt Verfügbar Benutzt% Eingehängt in
udev 972M 0 981M 0% /dev
tmpfs 199M 528K 199M 1% /run
/dev/sda1 79G 1.8G 74G 3% /
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 994M 0 994M 0% /sys/fs/cgroup
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb1 968M 2.5M 899M 1% /mnt
Häufig gestellte Fragen
Im Folgenden finden Sie die Antworten auf einige häufig gestellte Fragen zu iSCSI-Initiator und -Ziel.
Was ist iSCSI?
iSCSI, oder Internet Small Computer System Interface, ist ein Netzwerkprotokoll, das den Datentransfer über Intranets ermöglicht und die Speicherung über große Entfernungen verwaltet. Es erleichtert den Blockdatenverkehr zwischen einem iSCSI-Initiator auf einem Server und einem iSCSI-Ziel auf Speicherhardware.
Was sind iSCSI-Ziel und -Initiator?
Das iSCSI-Ziel fungiert als Speichereinheit, wie eine Festplatte, die über ein Netzwerk zugänglich ist. Der iSCSI-Initiator ist der Client, der sich mit dem Speicher auf dem Ziel verbindet und mit ihm interagiert.
Kann ich iSCSI über ein WAN verwenden?
Ja, iSCSI kann über ein Wide Area Network (WAN) verwendet werden, erfordert jedoch eine stabile und schnelle Netzwerkverbindung, um Leistung und Zuverlässigkeit sicherzustellen. Sicherheitsüberlegungen wie VPNs oder dedizierte Leitungen sind ebenfalls wichtig, wenn iSCSI über WAN verwendet wird.
Wie unterscheidet sich iSCSI von NFS oder SMB?
Im Gegensatz zu NFS (Network File System) oder SMB (Server Message Block), die dateibasierten Speicherprotokolle sind, arbeitet iSCSI auf Blockebene. Das bedeutet, dass es einem System ermöglicht, mit dem entfernten Speicher zu interagieren, als ob es sich um eine lokale Festplatte handelt, was mehr Flexibilität bei der Verwaltung des Speichers bietet.
Ist iSCSI sicher?
iSCSI selbst enthält keine hochgradigen Sicherheitsfunktionen. Sie können jedoch Ihre iSCSI-Verbindungen mit Methoden wie IPsec für die Sicherheit auf Netzwerkebene oder durch Konfiguration von CHAP (Challenge-Handshake Authentication Protocol) zur Authentifizierung sichern.
Was sind die Leistungsüberlegungen für iSCSI?
iSCSI-Leistung wird von der Netzwerkgeschwindigkeit, der Latenz, der Leistung der Speichergeräte und der Konfiguration des Netzwerks beeinflusst. Eine Hochgeschwindigkeitsnetzwerkverbindung und minimale Latenz sind entscheidend für eine optimale Leistung.
Benötige ich spezielle Hardware für iSCSI?
Es ist keine spezielle Hardware für iSCSI erforderlich. Es kann auf Standard-Netzwerkausrüstung betrieben werden. Dedizierte iSCSI-HBA (Host Bus Adapter) können jedoch für eine verbesserte Leistung verwendet werden.
Wie behebe ich iSCSI-Verbindungsprobleme unter Ubuntu?
Die Fehlersuche kann das Überprüfen der Netzwerkverbindung, das Überprüfen der Konfigurationsdateien für sowohl Initiator als auch Ziel, das Überprüfen der Systemprotokolle und das Sicherstellen, dass das Ziel die Speichergeräte ordnungsgemäß exportiert, umfassen. Darüber hinaus können Tools wie iscsiadm helfen, iSCSI-Verbindungen zu diagnostizieren und zu verwalten.
Fazit
Der obige Leitfaden hat Ihnen beigebracht, wie Sie ein iSCSI-Ziel und einen Initiator auf einem Ubuntu 22.04-Server einrichten. Sie haben auch gelernt, wie Sie ein Gerät auf dem Zielserver freigeben und von dem Initiator darauf zugreifen können.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.