GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So richten Sie einen iSCSI-Speicherserver unter Ubuntu 20.04 LTS ein

iSCSI steht für Internet Small Computer System Interface und ist ein Storage Area Network-Protokoll, das verwendet werden kann, um Blockgeräte wie HDD/SSD-Partitionen oder LVM-Partitionen gemeinsam zu nutzen oder Dateien zu blockieren das Netzwerk. iSCSI arbeitet in einem Client-Server-Modell und stützt sich auf TCP/IP-Netzwerke, um SCSI-Befehle zwischen dem Initiator-Client und dem Ziel zu senden. Das iSCSI-Target 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 erklären wir, wie Sie iSCSI-Ziele und den iSCSI-Initiator auf einem Ubuntu 20.04-Server einrichten.

Anforderungen

  • Ein System mit Ubuntu 20.04 für iSCSI-Ziel mit 1 GB externer Festplatte.
  • Ein System mit frischem Ubuntu 20.04 für iSCSI-Initiator.
  • 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 sie mit dem folgenden Befehl aktualisieren:

apt-get update -y
apt-get upgrade -y

Sobald alle Pakete aktualisiert sind, starten Sie Ihr System neu, um die Änderungen zu übernehmen.

iSCSI-Target installieren

Standardmäßig ist das iSCSI-Target-Paket im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es installieren, indem Sie den folgenden Befehl auf dem iSCSI-Zielserver ausführen:

apt-get install tgt -y

Überprüfen Sie nach der Installation von iSCSI Target den Status des Servers mit dem folgenden Befehl:

systemctl status tgt

Sie sollten die folgende Ausgabe erhalten:

? tgt.service – (i)SCSI-Target-Daemon Geladen:geladen (/lib/systemd/system/tgt.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (läuft) seit Sa 2020-07-11 07:13:04 KOORDINIERTE WELTZEIT; vor 23s Dokumente:man:tgtd(8) Haupt-PID:7770 (tgtd) ​​Status:„Starting event loop...“ Tasks:1 Memory:1.1M CGroup:/system.slice/tgt.service ??7770 /usr/ sbin/tgtd -fJul 11 ​​07:13:04 ubuntu2004 systemd[1]:Starting (i)SCSI target daemon...Jul 11 ​​07:13:04 ubuntu2004 tgtd[7770]:tgtd:iser_ib_init(3431) RDMA konnte nicht initialisiert werden; Kernelmodule laden?Jul 11 ​​07:13:04 ubuntu2004 tgtd[7770]:tgtd:work_timer_start(146) use timer_fd based schedulerJul 11 ​​07:13:04 ubuntu2004 tgtd[7770]:tgtd:bs_init(387) use signalfd notificationJul 11 ​​07 :13:04 ubuntu2004 systemd[1]:(i)SCSI-Target-Daemon gestartet.

An diesem Punkt ist iSCSI Target auf Ihrem Server installiert, Sie können nun mit dem nächsten Schritt fortfahren.

iSCSI-Ziel konfigurieren

Zuerst müssen Sie ein LUN-Gerät (Logical Unit Number) auf Ihrem iSCSI-Server erstellen. LUN ist ein Backend-Speichergerät, das Teil eines physischen SCSI-Geräts ist. Alle dem iSCSI-Target zugeordneten LUNs sind virtuell mit dem Betriebssystem des Clients verbunden. 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.conf

Fügen Sie die folgenden Zeilen hinzu:

 backing-store /dev/sdb Initiator-Adresse 192.168.1.20 eingehender Benutzer iscsi-benutzerkennwort ausgehender Benutzer iscsi-target secretpass

Speichern und schließen Sie die Datei, 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-Target-Server.
  • 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/das Passwort, das das Ziel dem Initiator zur Verfügung stellt, damit eine gegenseitige CHAP-Authentifizierung stattfinden kann.

Starten Sie als Nächstes den iSCSI-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart tgt

Überprüfen Sie als Nächstes den iSCSI-Zielserver mit dem folgenden Befehl:

tgtadm --mode target --op show

Sie sollten die folgende Ausgabe erhalten:

Ziel 1:iqn.2020-07.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:Kontoinformationen:iscsi-user iscsi -Ziel (ausgehende) ACL-Informationen:192.168.1.10

An diesem Punkt wird 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 zum iSCSI-Initiator-Computer und installieren Sie das iSCSI-Initiator-Paket mit dem folgenden Befehl:

apt-get install open-iscsi -y

Ermitteln Sie nach Abschluss der Installation den iSCSI-Zielserver, um die freigegebenen Ziele mit dem folgenden Befehl zu ermitteln:

iscsiadm -m discovery -t st -p 192.168.1.10

Sie sollten die folgende Ausgabe sehen:

192.168.1.10:3260,1 iqn.2020-07.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.iscsi

Fügen Sie Ihren iSCSI-Ziel-LUN-Namen wie unten gezeigt hinzu:

InitiatorName=iqn.2020-07.example.com:lun1

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Als Nächstes müssen Sie die CHAP-Informationen definieren, die Sie auf dem iSCSI-Ziel konfiguriert haben, um vom iSCSI-Initiator auf das iSCSI-Ziel zuzugreifen. Die Knotenkonfigurationsdatei befindet sich im Verzeichnis „/etc/iscsi/nodes/“ und verfügt über ein Verzeichnis pro verfügbarer LUN.

Sie können es definieren, indem Sie die folgende Datei bearbeiten:

nano /etc/iscsi/nodes/iqn.2020-07.example.com\:lun1/192.168.1.10\,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 und starten Sie dann den iSCSI-Initiatordienst mit dem folgenden Befehl neu:

systemctl restart open-iscsi iscsid

Sie können den Status des Dienstes auch mit dem folgenden Befehl überprüfen:

systemctl status open-iscsi

Sie sollten die folgende Ausgabe erhalten:

? open-iscsi.service - Anmeldung bei Standard-iSCSI-Zielen Geladen:geladen (/lib/systemd/system/open-iscsi.service; aktiviert; Herstellervoreinstellung:aktiviert) Aktiv:aktiv (beendet) seit Sa 2020-07-11 07:24:19 UTC; Vor 10 Sekunden Dokumente:man:iscsiadm(8) man:iscsid(8) Prozess:3861 ExecStart=/sbin/iscsiadm -m node --loginall=automatic (code=exited, status=0/SUCCESS) Prozess:3867 ExecStart=/ lib/open-iscsi/activate-storage.sh (Code=beendet, Status=0/SUCCESS) Haupt-PID:3867 (Code=beendet, Status=0/SUCCESS)11. Juli 07:24:19 Initiator systemd[1]:Anmeldung bei Standard-iSCSI-Zielen starten ... 11. Juli 07:24:19 Initiator iscsiadm[3861]:Anmeldung bei [iface:default, target:iqn.2020-07.example.com:lun1, portal:104.245.33.142, 3260] (m> 11. Juli 07:24:19 Initiator iscsiadm[3861]:Anmeldung bei [iface:default, target:iqn.2020-07.example.com:lun1, portal:104.245.33.142,3260] success>Jul 11 07:24:19 Initiator systemd[1]:Anmeldung an Standard-iSCSI-Zielen abgeschlossen.

Sie können die iSCSI-Verbindung auch mit dem folgenden Befehl überprüfen:

iscsiadm -m session -o show

Sie sollten die folgende Ausgabe erhalten:

TCP:[2] 192.168.1.10:3260,1 iqn.2020-07.example.com:lun1 (kein Flash)

Sie können das vom iSCSI-Ziel freigegebene Speichergerät auch mit dem folgenden Befehl überprüfen:

lsblk

Sie sollten die gemeinsam genutzte Geräte-SDB in der folgenden Ausgabe sehen:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTSda 8:0 0 80G 0 disk ??sda1 8:1 0 80G 0 part /sdb 8:16 0 1000M 0 disk

Erstellen Sie ein Dateisystem auf einem gemeinsam genutzten Gerät

Um das gemeinsam genutzte Gerät auf dem iSCSI-Initiator zu verwenden, müssen Sie ein Dateisystem auf dem gemeinsam genutzten Gerät (sdb) erstellen und es mounten, um dieses Gerät nutzbar zu machen.

Erstellen Sie zuerst ein Dateisystem auf dem gemeinsam genutzten Gerät (sdb) mit dem folgenden Befehl:

fdisk /dev/sdb

Beantworten 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.Erstellte ein neues DOS-Disklabel mit Festplattenkennung 0x9743ddcf.Befehl (m für Hilfe):nPartitionstyp p Primary (0 Primary, 0 Extended, 4 Free) e Extended (Container für logische Partitionen)Select (Standard p):Using default response p.Partition number (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):Erstellt a neue Partition 1 vom Typ 'Linux' und mit einer Größe von 999 MiB.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 die Partition mit dem folgenden Befehl:

mkfs.ext4 /dev/sdb1

Sie sollten die folgende Ausgabe erhalten:

mke2fs 1.45.5 (07. Jan. 2020)Erstellen eines Dateisystems mit 255744 4k-Blöcken und 64000 InodesDateisystem-UUID:e7f06605-a0f5-41e1-b1b2-e85bd7a2d6a3Superblock-Sicherungen gespeichert auf Blöcken:32768, 98304, 163830, 163840 alle Tabellen erledigt Schreiben von Inode-Tabellen:fertig Erstellen von Journal (4096 Blöcke):fertig Schreiben von Superblöcken und Dateisystem-Buchhaltungsinformationen:fertig

Hängen Sie als Nächstes die Partition mit dem folgenden Befehl in das Verzeichnis /mnt ein:

Mount /dev/sdb1 /mnt

Sie können nun die gemountete Partition mit dem folgenden Befehl überprüfen:

df -h

Sie sollten die folgende Ausgabe erhalten:

Verwendete Dateisystemgröße Verfügbar Verwendung% Eingehängt onudev 981M 0 981M 0% /devtmpfs 199M 588K 199M 1% /run/dev/sda1 79G 1.8G 74G 3% /tmpfs 994M 0 994M 0% /dev/shmtmpfs 5.0M 0 5.0 M 0% /run/locktmpfs 994M 0 994M 0% /sys/fs/cgrouptmpfs 199M 0 199M 0% /run/user/0/dev/sdb1 968M 2.5M 899M 1% /mnt

Schlussfolgerung

In der obigen Anleitung haben Sie gelernt, wie Sie ein iSCSI-Ziel und einen Initiator auf einem Ubuntu 20.04-Server einrichten. Sie haben auch gelernt, wie Sie ein Gerät auf dem Zielserver freigeben und vom Initiator darauf zugreifen. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.


Ubuntu
  1. So richten Sie Kerberos-Server und -Client unter Ubuntu 18.04 LTS ein

  2. So richten Sie einen iSCSI-Speicherserver unter Ubuntu 18.04 LTS ein

  3. So richten Sie den Rsyslog-Server unter Ubuntu 18.04 LTS ein

  4. So richten Sie Elasticsearch unter Ubuntu 18.04 und 16.04 LTS ein

  5. Rsyslog-Server auf Ubuntu 20.04 einrichten - Wie geht das?

So richten Sie den Git-Server unter Ubuntu 20.04 ein

So richten Sie den Rsyslog-Server unter Ubuntu ein

So richten Sie einen DHCP-Server unter Ubuntu ein

So aktualisieren Sie auf Ubuntu Server 22.04 LTS

So installieren Sie Jellyfin Media Server auf Ubuntu 20.04 LTS Server/Desktop

So richten Sie NTP-Server und -Client unter Ubuntu 20.04 LTS ein