Einhängen von iSCSI unter Ubuntu OS

Erfahren Sie, wie Sie ein Block Storage for Classic Volume auf Ubuntu mit Multipath I/O für redundanten, leistungsstarken Speicherzugriff mounten.

Folgen Sie der Anleitung, um ein IBM Cloud® Block Storage for Classic-Volume auf einem Server mit einem Ubuntu-Betriebssystem zu mounten. Sie erstellen zwei Verbindungen von einer einzelnen Netzschnittstelle des Hosts zu zwei Ziel-IP-Adressen des Speicherarrays.

Weitere Informationen zur Funktionsweise des Dienstes „ iSCSI “ unter dem Betriebssystem „ Ubuntu “ finden Sie in der Dokumentation zum „ iSCSI-Initiator“(oder „Client“). Wenn Sie ein anderes Betriebssystem von Linux® verwenden, lesen Sie bitte die Dokumentation Ihrer jeweiligen Distribution und stellen Sie sicher, dass der Multipath-Dienst „Asymmetric Logical Unit Access“ (ALUA) für die Pfadpriorität unterstützt.

Vorbereitende Schritte

  1. Erstellen Sie einen virtuellen Server für Classic in der Konsole, über die CLI, mit der API oder Terraform.

  2. Bestellen Sie ein Blockspeicher-Volume im selben Rechenzentrum.

  3. Stellen Sie sicher, dass der Host berechtigt ist, auf das Volume Block Storage for Classic zuzugreifen. Weitere Informationen finden Sie unter Autorisieren des Hosts in der Konsole Autorisieren des Hosts über die CLI Autorisieren des Hosts mit Terraform. Nachdem die Autorisierung abgeschlossen ist, notieren Sie sich den Benutzernamen, das Passwort und die IQN-Informationen des Hosts.

Wenn mehrere Hosts denselben Block Storage for Classic-Datenträger anhängen, ohne kooperativ verwaltet zu werden, besteht das Risiko, dass Ihre Daten beschädigt werden. Eine Datenträgerbeschädigung kann auftreten, wenn mehrere Hosts gleichzeitig Änderungen am Datenträger vornehmen. Sie benötigen ein clusterfähiges Dateisystem mit gemeinsam genutzten Festplatten, um Datenverluste zu vermeiden, wie z. B. Microsoft Cluster Shared Volumes ( CSV ), Red Hat Global File System ( GFS2 ), VMware® VMFS und andere. Weitere Informationen finden Sie in der Dokumentation Ihres Betriebssystems.

Bevor Sie mit der Konfiguration von iSCSI, beginnen, vergewissern Sie sich, dass die Netzwerkschnittstellen korrekt eingestellt und konfiguriert sind, damit das open-iscsi-Paket korrekt funktioniert, insbesondere während der Startphase. In den neueren Versionen von Ubuntu ist Netplan das Hauptwerkzeug zum Einstellen von Netzwerkadressinformationen. Es verwendet eine YAML-Konfigurationsdatei, um Netzwerkeinstellungen zu definieren und ersetzt damit ältere Methoden wie /etc/network/interfaces. Netplan kann über die Kommandozeile oder über NetworkManager in Desktop-Umgebungen konfiguriert werden.

Es ist am besten, den Speicherdatenverkehr über ein VLAN zu leiten, das die Firewall umgeht. Wenn der Speicherdatenverkehr über Software-Firewalls geleitet wird, erhöht sich dadurch die Latenz und die Speicherleistung wird beeinträchtigt. Weitere Informationen zur Weiterleitung von Speicherdatenverkehr zur eigenen VLAN-Schnittstelle finden Sie bei den häufig gestellten Fragen.

iSCSI und Multipath-Dienstprogramme installieren

Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist und die Pakete „ open-iscsi “ und „ multipath-tools “ enthält. Verwenden Sie die folgenden Befehle, um die Pakete zu installieren.

  • Aktualisieren Sie das Betriebssystem:

    apt-get update
    
  • Installieren Sie open-iscsi.

    sudo apt install open-iscsi
    

    Wenn das Paket installiert ist, werden die beiden folgenden Dateien erstellt.

    • /etc/iscsi/iscsid.conf
    • /etc/iscsi/initiatorname.iscsi
  • Starten Sie die Dienste:

    systemctl enable open-iscsi
    
    systemctl enable iscsid
    
  • Installieren Sie multipath-tools.

    sudo apt install multipath-tools
    

ISCSI konfigurieren

Aktualisierung des Initiatornamens

  1. Vergewissern Sie sich, dass die Datei /etc/iscsi/initiatorname.iscsi vorhanden ist, und überprüfen Sie ihren Inhalt.

    cat /etc/iscsi/initiatorname.iscsi
    
    root@vsi4classicubuntu:~# cat /etc/iscsi/initiatorname.iscsi
    GenerateName=yes
    
  2. Aktualisieren Sie die Datei /etc/iscsi/initiatorname.iscsi mit Hilfe eines Texteditors mit der IQN aus der Konsole IBM Cloud®. Geben Sie den Wert im folgenden Format ein.

    InitiatorName=<IQN-value-from-the-portal>
    

Berechtigungsnachweise konfigurieren

  1. Stellen Sie sicher, dass die iscsid.conf Datei vorhanden ist, indem Sie ihren Inhalt überprüfen.

    cat /etc/iscsi/iscsid.conf
    
  2. Dekommentieren und bearbeiten Sie die folgenden Einträge mit dem Texteditor. Sie können den Benutzernamen und das Passwort in der Konsole IBM Cloud® finden.

    node.session.auth.authmethod = CHAP
    node.session.auth.username = <Username-value-from-Portal>
    node.session.auth.password = <Password-value-from-Portal>
    discovery.sendtargets.auth.authmethod = CHAP
    discovery.sendtargets.auth.username = <Username-value-from-Portal>
    discovery.sendtargets.auth.password = <Password-value-from-Portal>
    

    Lassen Sie die übrigen CHAP-Einstellungen auskommentiert. Der Speicher unter IBM Cloud® verwendet nur eine Einweg-Authentifizierung. Aktivieren Sie nicht die gemeinsame Nutzung von CHAP (Mutual CHAP).

  3. Starten Sie den iscsi-Service erneut, damit die Änderungen wirksam werden.

    systemctl restart iscsid.service
    

Weitere Informationen finden Sie unter Ubuntu manuals - iscsid und Ubuntu manuals - systemctl.

Multipath einrichten

  1. Nachdem Sie das Multipath-Dienstprogramm installiert haben, können Sie den Standardinhalt der Datei multipath.conf überprüfen.

    cat /etc/multipath.conf
    
  2. Ändern Sie die Standardwerte von /etc/multipath.conf mit einem Texteditor, indem Sie sie durch den Inhalt des folgenden Snippets ersetzen.

    defaults {
    user_friendly_names no
    max_fds max
    flush_on_last_del yes
    queue_without_daemon no
    dev_loss_tmo infinity
    fast_io_fail_tmo 5
    }
    # All data in the following section must be specific to your system.
    blacklist {
    wwid "SAdaptec*"
    devnode "^hd[a-z]"
    devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
    devnode "^cciss.*"
    }
    devices {
    device {
    vendor "NETAPP"
    product "LUN"
    path_grouping_policy group_by_prio
    features "3 queue_if_no_path pg_init_retries 50"
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    

    Der Abschnitt „Initial defaults“ der Konfigurationsdatei konfiguriert Ihr System so, dass die Namen der Multipath-Geräte die Form „ /dev/mapper/mpathn “ haben, wobei „ mpathn “ die WWID-Nummer (World Wide Identifier) des Geräts ist. Weitere Informationen finden Sie unter Ubuntu manuals - multipath.conf.

  3. Speichern Sie die Konfigurationsdatei und schließen Sie den Editor.

  4. Starten Sie den Multipath-Service.

    service multipath-tools start
    
    1. Aktivieren Sie die erforderlichen Services.

    Wenn Sie die Multipath-Konfigurationsdatei nach dem Start des Multipath-Daemons bearbeiten müssen, müssen Sie den Dienst „ multipathd “ neu starten, damit die Änderungen wirksam werden.

    Weitere Informationen zur Verwendung der Device-Mapper-Multipath-Funktion unter „ Ubuntu s 20“ finden Sie unter „ Einführung in Device-Mapper-Multipathing “.

Speichermedium kennenlernen und anmelden

Das Dienstprogramm „iscsiadm“ ist ein Befehlszeilentool, das zur Erkennung von und Anmeldung bei iSCSI-Zielen ( iSCSI ) sowie für den Zugriff auf und die Verwaltung der Open-iSCSI-Datenbank verwendet wird. Weitere Informationen finden Sie in den Handbüchern von Ubuntu – iscsiadm. In diesem Schritt ermitteln Sie das Gerät mithilfe der Ziel-IP-Adresse, die Sie von der Konsole IBM Cloud® erhalten haben.

  1. Führen Sie die Erkennung für das iSCSI-Array aus.

    Block Storage for Classic erfordert eine dynamische Zielerkennung, die die Methode „ SendTargets “ verwendet. Verwenden Sie keine statische Knotenkonfiguration, da diese nicht skalierbar ist und zu Verbindungsproblemen führen kann, wenn Änderungen am Speicher vorgenommen werden (z. B. beim Zuweisen oder Entziehen von Zugriffsrechten für Hosts auf LUNs). Die dynamische Erkennung stellt sicher, dass Ihr Host automatisch alle Änderungen an den Zielportalen erkennt.

    iscsiadm -m discovery -t sendtargets -p <ip-value-from-IBM-Cloud-console>
    

    Wenn die IP-Informationen und die Zugriffsdetails angezeigt werden, war die Erkennung erfolgreich.

    root@vsi4classicubuntu:~# iscsiadm -m discovery -t sendtargets -p 161.26.114.197
    161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304
    161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304
    
  2. Konfigurieren Sie die automatische Anmeldung.

    sudo iscsiadm -m node --op=update -n node.conn[0].startup -v automatic
    sudo iscsiadm -m node --op=update -n node.startup -v automatic
    
  3. Melden Sie sich beim iSCSI-Array an.

    sudo iscsiadm -m node --login
    

Konfiguration prüfen

  1. Überprüfen Sie, ob die iSCSI-Sitzung eingerichtet ist.

    iscsiadm -m session -o show
    
    root@vsi4classicubuntu:~# iscsiadm -m session -o show
    tcp: [3] 161.26.114.197:3260,1052 iqn.1992-08.com.netapp:stfdal1304 (non-flash)
    tcp: [4] 161.26.114.196:3260,1049 iqn.1992-08.com.netapp:stfdal1304 (non-flash)
    
  2. Prüfen Sie, ob mehrere Pfade vorhanden sind.

    multipath -ll
    

    Von diesem Befehl werden die Pfade gemeldet. Bei korrekter Konfiguration verfügt jedes Volume über eine einzige Gruppe, deren Anzahl an Pfaden der Anzahl der „ iSCSI “-Sitzungen entspricht. Es ist möglich, ein Volume über einen einzigen Pfad anzuschließen, doch ist es wichtig, dass auf beiden Pfaden Verbindungen hergestellt werden, um Betriebsunterbrechungen zu vermeiden.

    root@vsi4classicubuntu:~# multipath -ll
     3600a0980383056666424506a33426478 dm-0 NETAPP,LUN C-Mode
     size=500G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua'
     wp=rw
     |-+- policy='service-time 0' prio=50 status=active
     | `- 3:0:0:0 sdb 8:16 active ready running
     `-+- policy='service-time 0' prio=10 status=enabled
       `- 2:0:0:0 sda 8:0    active ready running
    

    Falls MPIO nicht korrekt konfiguriert ist, wird die Verbindung zum Speichermedium möglicherweise getrennt und es wird im Status 'offline' angezeigt, wenn ein Netzausfall auftritt oder wenn IBM Cloud®-Teams Wartungsarbeiten durchführen. MPIO sorgt bei solchen Ereignissen für eine zusätzliche Verbindungsebene und hält eine bestehende Verbindung zum Datenträger mit aktiven Lese- und Schreibvorgängen aufrecht.

    In diesem Beispiel ist „ 3600a0980383056666424506a33426478 “ die WWID, die so lange bestehen bleibt, wie das Volume existiert. Es wird empfohlen, dass Ihre Anwendung die WWID verwendet. Es ist auch möglich, besser lesbare Namen zu vergeben, indem man die Schlüsselwörter „user_friendly_names“ oder „alias“ in der Datei „ multipath.conf “ verwendet.

  3. Prüfen Sie dmesg, um sicherzustellen, dass die neuen Platten erkannt werden.

    dmesg
    

Partition und Dateisystem erstellen (optional)

Nachdem der Datenträger auf dem Host angehängt und zugänglich gemacht wurde, können Sie ein Dateisystem erstellen. Führen Sie die folgenden Schritte aus, um ein Dateisystem auf dem neu angehängten Datenträger zu erstellen.

  1. Erstellen Sie eine Partition.

    $ sudo fdisk /dev/mapper/mpatha
    
    Welcome to fdisk (util-linux 2.34).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
    
    Device does not contain a recognized partition table.
    Created a new DOS disklabel with disk identifier 0x92c0322a.
    
    Command (m for help): p
    Disk /dev/mapper/mpatha: 1 GiB, 1073741824 bytes, 2097152 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 65536 bytes
    Disklabel type: dos
    Disk identifier: 0x92c0322a
    
    Command (m for help): n
    Partition type
       p   primary (0 primary, 0 extended, 4 free)
       e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1):
    First sector (2048-2097151, default 2048):
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151):
    
    Created a new partition 1 of type 'Linux' and of size 1023 MiB.
    
    Command (m for help): w
    The partition table has been altered.
    
  2. Erstellen Sie das Dateisystem.

    $ sudo mkfs.ext4 /dev/mapper/mpatha-part1
    mke2fs 1.45.5 (07-Jan-2020)
    Creating filesystem with 261888 4k blocks and 65536 inodes
    Filesystem UUID: cdb70b1e-c47c-47fd-9c4a-03db6f038988
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376
    
    Allocating group tables: done
    Writing inode tables: done
    Creating journal (4096 blocks): done
    Writing superblocks and filesystem accounting information: done
    
  3. Hängen Sie die Blockeinheit an.

    sudo mount /dev/mapper/mpatha-part1 /mnt
    
  4. Greifen Sie auf die Daten zu, um sicherzustellen, dass die neue Partition und das neue Dateisystem einsatzbereit sind.

    ls /mnt
    

Block Storage for Classic-Datenträger abhängen

Wenn Sie das Volume nicht mehr benötigen, unmounten Sie es, bevor Sie es löschen.

  1. Hängen Sie das Dateisystem ab.

    umount /dev/mapper/XXXp1 /PerfDisk
    

    Weitere Informationen finden Sie in den Handbüchern von Ubuntu – umount.

  2. Wenn Sie über keine anderen Datenträger in diesem Zielportal verfügen, können Sie sich von dem Ziel abmelden.

    iscsiadm -m node -t <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. Wenn Sie über keine anderen Datenträger in diesem Zielportal verfügen, löschen Sie den Zielportaldatensatz, um künftige Anmeldeversuche zu verhindern.

    iscsiadm -m node -o delete -t <TARGET IQN> -p <PORTAL IP:PORT>
    

    Weitere Informationen finden Sie in den Handbüchern von Ubuntu – iscsiadm.