Bereitstellung von i SCSI für Linux - FSx für ONTAP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bereitstellung von i SCSI für Linux

FSxfor ONTAP unterstützt das SCSI i-Protokoll. Sie müssen i sowohl SCSI auf dem Linux-Client als auch auf Ihrem Dateisystem bereitstellen, um SCSI das i-Protokoll für den Datentransport zwischen Clients und Ihrem Dateisystem verwenden zu können. Das SCSI i-Protokoll ist auf allen Dateisystemen mit 6 oder weniger Hochverfügbarkeitspaaren (HA) verfügbar.

Die Konfiguration von i SCSI auf Ihrem Amazon FSx for umfasst drei Hauptschritte NetApp ONTAP, die in den folgenden Verfahren behandelt werden:

  1. Installieren und konfigurieren Sie den SCSI i-Client auf dem Linux-Host.

  2. Konfigurieren Sie i SCSI auf den DateisystemenSVM.

    • Erstellen Sie eine SCSI i-Initiatorgruppe.

    • Ordnen Sie die Initiatorgruppe der zu. LUN

  3. Mounten Sie ein i SCSI LUN auf dem Linux-Client.

Bevor Sie beginnen

Bevor Sie mit der Konfiguration Ihres Dateisystems für i beginnenSCSI, müssen Sie die folgenden Punkte abgeschlossen haben.

  • Erstellen Sie ein ONTAP Dateisystem FSx für. Weitere Informationen finden Sie unter Dateisysteme erstellen.

  • Erstellen Sie ein i SCSI LUN im Dateisystem. Weitere Informationen finden Sie unter Ein i erstellen SCSI LUN.

  • Erstellen Sie eine EC2 Instance, auf der Amazon Linux 2 Amazon Machine Image (AMI) im selben VPC Dateisystem ausgeführt wird. Dies ist der Linux-Host, auf dem Sie ihn konfigurieren SCSI und auf Ihre Dateidaten zugreifen werden.

    Wenn sich der Host auf einem anderen Server befindet, können SieVPC, abgesehen vom Umfang dieser Verfahren, VPC Peering verwenden oder anderen AWS Transit Gateway Benutzern VPCs Zugriff auf die SCSI i-Endpunkte des Volumes gewähren. Weitere Informationen finden Sie unter Zugreifen auf Daten von außerhalb der Bereitstellung VPC.

  • Konfigurieren Sie die VPC Sicherheitsgruppen des Linux-Hosts so, dass eingehender und ausgehender Datenverkehr zugelassen wird, wie unter beschrieben. Dateisystem-Zugriffskontrolle mit Amazon VPC

  • Besorgen Sie sich die Anmeldeinformationen für den ONTAP Benutzer mit fsxadmin Rechten, die Sie für den Zugriff auf verwenden werden. ONTAP CLI Weitere Informationen finden Sie unter ONTAP Rollen und Benutzer.

  • Der Linux-Host, den Sie für i konfigurieren SCSI und den Sie FSx für den Zugriff auf das ONTAP Dateisystem for verwenden, befindet sich im selben VPC und AWS-Konto.

  • Wir empfehlen, dass sich die EC2 Instance in derselben Availability Zone wie das bevorzugte Subnetz Ihres Dateisystems befindet, wie in der folgenden Abbildung dargestellt.

    Das Bild zeigt ein Amazon FSx for NetApp ONTAP Dateisystem mit einem i SCSI LUN und einer EC2 Amazon-Instance, die sich in derselben Availability Zone wie die des bevorzugten Subnetzes des Dateisystems befinden.

Wenn auf Ihrer EC2 Instance ein anderes Linux AMI als Amazon Linux 2 ausgeführt wird, sind einige der in diesen Verfahren und Beispielen verwendeten Dienstprogramme möglicherweise bereits installiert, und Sie können andere Befehle verwenden, um die erforderlichen Pakete zu installieren. Abgesehen von der Installation von Paketen gelten die in diesem Abschnitt verwendeten Befehle auch für andere EC2 Linux-SystemeAMIs.

Installieren und konfigurieren Sie es SCSI auf dem Linux-Host

Um den SCSI i-Client zu installieren
  1. Bestätigen Sie das iscsi-initiator-utils und device-mapper-multipath sind auf Ihrem Linux-Gerät installiert. Stellen Sie über einen SSH Client eine Connect zu Ihrer Linux-Instance her. Weitere Informationen finden Sie unter Stellen Sie eine Verbindung zu Ihrer Linux-Instance her mit SSH.

  2. Installieren Sie multipath und den SCSI i-Client mit dem folgenden Befehl. Die Installation multipath ist erforderlich, wenn Sie einen automatischen Failover zwischen Ihren Dateiservern durchführen möchten.

    ~$ sudo yum install -y device-mapper-multipath iscsi-initiator-utils
  3. Um beim automatischen Failover zwischen Dateiservern bei der Verwendung eine schnellere Reaktion zu ermöglichenmultipath, legen Sie den Wert für das Ersatz-Timeout in der /etc/iscsi/iscsid.conf Datei auf den Wert von fest, 5 anstatt den Standardwert von zu verwenden. 120

    ~$ sudo sed -i 's/node.session.timeo.replacement_timeout = .*/node.session.timeo.replacement_timeout = 5/' /etc/iscsi/iscsid.conf; sudo cat /etc/iscsi/iscsid.conf | grep node.session.timeo.replacement_timeout
  4. Starten Sie den SCSI i-Dienst.

    ~$ sudo service iscsid start

    Beachten Sie, dass Sie je nach Ihrer Linux-Version möglicherweise stattdessen diesen Befehl verwenden müssen:

    ~$ sudo systemctl start iscsid
  5. Vergewissern Sie sich mit dem folgenden Befehl, dass der Dienst ausgeführt wird.

    ~$ sudo systemctl status iscsid.service

    Das System antwortet mit der folgenden Ausgabe:

    iscsid.service - Open-iSCSI Loaded: loaded (/usr/lib/systemd/system/iscsid.service; disabled; vendor preset: disabled) Active: active (running) since Fri 2021-09-02 00:00:00 UTC; 1min ago Docs: man:iscsid(8) man:iscsiadm(8) Process: 14658 ExecStart=/usr/sbin/iscsid (code=exited, status=0/SUCCESS) Main PID: 14660 (iscsid) CGroup: /system.slice/iscsid.service ├─14659 /usr/sbin/iscsid └─14660 /usr/sbin/iscsid
Um es SCSI auf Ihrem Linux-Client zu konfigurieren
  1. Damit Ihre Clients automatisch ein Failover zwischen Ihren Dateiservern durchführen können, müssen Sie Multipath konfigurieren. Verwenden Sie den folgenden Befehl:

    ~$ sudo mpathconf --enable --with_multipathd y
  2. Ermitteln Sie den Initiatornamen Ihres Linux-Hosts mit dem folgenden Befehl. Der Speicherort des Initiatornamens hängt von Ihrem SCSI i-Utility ab. Wenn Sie verwendeniscsi-initiator-utils, befindet sich der Initiatorname in der Datei. /etc/iscsi/initiatorname.iscsi

    ~$ sudo cat /etc/iscsi/initiatorname.iscsi

    Das System antwortet mit dem Initiatornamen.

    InitiatorName=iqn.1994-05.com.redhat:abcdef12345

Konfigurieren Sie i SCSI auf dem FSx ONTAP Dateisystem für

  1. Stellen Sie mit dem NetApp ONTAP CLI folgenden Befehl Connect zu dem ONTAP Dateisystem auf dem FSx for -Dateisystem her, auf dem Sie das i SCSI LUN erstellt haben. Weitere Informationen finden Sie unter Verwenden der NetApp ONTAP-CLI.

    ~$ ssh fsxadmin@your_management_endpoint_ip
  2. Erstellen Sie die Initiatorgruppe (igroup) mit dem NetApp ONTAP CLI lun igroup createBefehl. Eine Initiatorgruppe ist i zugeordnet SCSI LUNs und steuert, auf welche Initiatoren (Clients) Zugriff haben. LUNs host_initiator_nameErsetzen Sie es durch den Initiatornamen von Ihrem Linux-Host, den Sie im vorherigen Verfahren abgerufen haben.

    ::> lun igroup create -vserver svm_name -igroup igroup_name -initiator host_initiator_name -protocol iscsi -ostype linux

    Wenn Sie die dieser Igroup LUNs zugeordnete Igroup mehreren Hosts zur Verfügung stellen möchten, können Sie mehrere Initiatornamen angeben, die durch ein Komma getrennt sind. Weitere Informationen finden Sie im Documentation Center unter lun igroup create. NetApp ONTAP

  3. Vergewissern Sie sich mit dem folgenden Befehl, dass das igroup existiert: lun igroup show

    ::> lun igroup show

    Das System antwortet mit der folgenden Ausgabe:

    Vserver Igroup Protocol OS Type Initiators --------- ------------ -------- -------- ------------------------------------ svm_name igroup_name iscsi linux iqn.1994-05.com.redhat:abcdef12345
  4. In diesem Schritt wird davon ausgegangen, dass Sie bereits ein i erstellt haben SCSILUN. Falls nicht, finden Sie Ein i erstellen SCSI LUN step-by-step entsprechende Anweisungen unter.

    Erstellen Sie eine Zuordnung von der von LUN Ihnen erstellten zu der von Ihnen erstellten iGroup und geben Sie dabei die lun mapping createfolgenden Attribute an:

    • svm_name— Der Name der virtuellen Speichermaschine, die das SCSI i-Ziel bereitstellt. Der Host verwendet diesen Wert, um den zu erreichenLUN.

    • vol_name— Der Name des Volumes, auf dem sich der befindetLUN.

    • lun_name— Der Name, den Sie dem zugewiesen habenLUN.

    • igroup_name— Der Name der Initiatorgruppe.

    • lun_id— Die LUN ID-Ganzzahl ist spezifisch für das Mapping, nicht für das Mapping LUN selbst. Dies wird von den Initiatoren in der Igroup als Nummer der logischen Einheit verwendet. Verwenden Sie diesen Wert für den Initiator, wenn Sie auf den Speicher zugreifen.

    ::> lun mapping create -vserver svm_name -path /vol/vol_name/lun_name -igroup igroup_name -lun-id lun_id
  5. Verwenden Sie den lun show -pathBefehl, um zu bestätigen, dass der erstellt, online und zugeordnet LUN ist.

    ::> lun show -path /vol/vol_name/lun_name -fields state,mapped,serial-hex

    Das System antwortet mit der folgenden Ausgabe:

    Vserver Path serial-hex state mapped --------- ------------------------------- ------------------------ -------- -------- svm_name /vol/vol_name/lun_name 6c5742314e5d52766e796150 online mapped

    Speichern Sie den serial_hex Wert (in diesem Beispiel ist er das6c5742314e5d52766e796150). Sie werden ihn in einem späteren Schritt verwenden, um einen benutzerfreundlichen Namen für das Blockgerät zu erstellen.

  6. Verwenden Sie den network interface show -vserverBefehl, um die Adressen der iscsi_2 Schnittstellen iscsi_1 und der Schnittstellen abzurufen, SVM in denen Sie Ihr i erstellt haben SCSILUN.

    ::> network interface show -vserver svm_name

    Das System antwortet mit der folgenden Ausgabe:

    Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- svm_name iscsi_1 up/up 172.31.0.143/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.21.81/20 FSxId0123456789abcdef8-02 e0e true nfs_smb_management_1 up/up 198.19.250.177/20 FSxId0123456789abcdef8-01 e0e true 3 entries were displayed.

    In diesem Beispiel ist die IP-Adresse von iscsi_1 is 172.31.0.143 und iscsi_2 is172.31.21.81.

Mounten Sie ein i SCSI LUN auf Ihrem Linux-Client

Das Mounten des i SCSI LUN auf Ihrem Linux-Client umfasst drei Schritte:

  1. Ermitteln der SCSI Ziel-I-Knoten

  2. Partitionierung des i SCSI LUN

  3. Das i SCSI LUN auf dem Client montieren

Diese werden in den folgenden Verfahren behandelt.

Um die SCSI Ziel-I-Knoten zu ermitteln
  1. Verwenden Sie auf Ihrem Linux-Client den folgenden Befehl, um die SCSI Ziel-I-Knoten anhand iscsi_1 der IP-Adresse zu ermitteln iscsi_1_IP.

    ~$ sudo iscsiadm --mode discovery --op update --type sendtargets --portal iscsi_1_IP
    172.31.0.143:3260,1029 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 172.31.21.81:3260,1028 iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3

    In diesem Beispiel iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 entspricht das target_initiator für das i SCSI LUN in der bevorzugten Availability Zone.

  2. (Optional) Um Ihren i mit einem höheren Durchsatz als dem EC2 Amazon-Einzelclient-Maximum von 5 GB/s (~625 MB/s) zu versorgen SCSILUN, folgen Sie den unter Netzwerkbandbreite von Amazon EC2 Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux-Instances beschriebenen Verfahren, um zusätzliche Sitzungen für einen höheren Durchsatz einzurichten.

    Mit dem folgenden Befehl werden 8 Sitzungen pro Initiator und ONTAP Knoten in jeder Availability Zone eingerichtet, sodass der Client bis zu 40 GB/s (5.000 MB/s) Gesamtdurchsatz auf das i übertragen kann. SCSI LUN

    ~$ sudo iscsiadm --mode node -T target_initiator --op update -n node.session.nr_sessions -v 8
  3. Melden Sie sich bei den Zielinitiatoren an. Ihre i SCSI LUNs werden als verfügbare Festplatten angezeigt.

    ~$ sudo iscsiadm --mode node -T target_initiator --login
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3, portal: 172.31.14.66,3260] successful.

    Die obige Ausgabe ist gekürzt. Sie sollten für jede Sitzung auf jedem Dateiserver eine Login successful Antwort sehen. Logging in Bei 4 Sitzungen pro Knoten gibt es 8 Logging in und 8 Login successful Antworten.

  4. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die dm-multipath SCSI i-Sitzungen identifiziert und zusammengeführt wurden, indem Sie eine einzelne Sitzung LUN mit mehreren Richtlinien anzeigen. Es sollte die gleiche Anzahl von Geräten geben, die als aufgeführt sind, active und Geräte, die als aufgeführt sindenabled.

    ~$ sudo multipath -ll

    In der Ausgabe ist der Festplattenname wie folgt formatiertdm-xyz, wobei eine Ganzzahl xyz steht. Wenn es keine anderen Multipath-Festplatten gibt, ist dieser Wert. dm-0

    3600a09806c5742314e5d52766e79614f dm-xyz NETAPP ,LUN C-Mode size=10G features='4 queue_if_no_path pg_init_retries 50 retain_attached_hw_handle' hwhandler='0' wp=rw |-+- policy='service-time 0' prio=50 status=active | |- 0:0:0:1 sda 8:0 active ready running | |- 1:0:0:1 sdc 8:32 active ready running | |- 3:0:0:1 sdg 8:96 active ready running | `- 4:0:0:1 sdh 8:112 active ready running `-+- policy='service-time 0' prio=10 status=enabled |- 2:0:0:1 sdb 8:16 active ready running |- 7:0:0:1 sdf 8:80 active ready running |- 6:0:0:1 sde 8:64 active ready running `- 5:0:0:1 sdd 8:48 active ready running

    Ihr Blockgerät ist jetzt mit Ihrem Linux-Client verbunden. Es befindet sich unter dem Pfad/dev/dm-xyz. Sie sollten diesen Pfad nicht für Verwaltungszwecke verwenden. Verwenden Sie stattdessen den symbolischen Link, der sich unter dem Pfad /dev/mapper/wwid befindet. Dabei wwid handelt es sich um eine eindeutige Kennung für SieLUN, die geräteübergreifend einheitlich ist. Im nächsten Schritt geben Sie einen benutzerfreundlichen Namen für die an, wwid sodass Sie sie von anderen Festplatten mit mehreren Pfaden unterscheiden können.

Um dem Blockgerät einen benutzerfreundlichen Namen zuzuweisen
  1. Um deinem Gerät einen benutzerfreundlichen Namen zu geben, erstelle einen Alias in der /etc/multipath.conf Datei. Fügen Sie dazu mit Ihrem bevorzugten Texteditor den folgenden Eintrag zur Datei hinzu und ersetzen Sie dabei die folgenden Platzhalter:

    • serial_hexErsetzen Sie ihn durch den Wert, den Sie in der Konfigurieren Sie i SCSI auf dem FSx ONTAP Dateisystem für Prozedur gespeichert haben.

    • Fügen Sie dem serial_hex Wert 3600a0980 das Präfix hinzu, wie im Beispiel gezeigt. Dies ist eine einzigartige Präambel für den NetApp ONTAP Vertrieb, den Amazon FSx for NetApp ONTAP verwendet.

    • device_nameErsetzen Sie es durch den benutzerfreundlichen Namen, den Sie für Ihr Gerät verwenden möchten.

    multipaths { multipath { wwid 3600a0980serial_hex alias device_name } }

    Als Alternative können Sie das folgende Skript kopieren und als Bash-Datei speichern, z. B. multipath_alias.sh Sie können das Skript mit Sudo-Rechten ausführen, indem Sie es serial_hex (ohne das Präfix 3600a0980) und device_name mit Ihrer jeweiligen Seriennummer und dem gewünschten benutzerfreundlichen Namen ersetzen. Dieses Skript sucht nach einem multipaths unkommentierten Abschnitt in der Datei. /etc/multipath.conf Falls einer existiert, hängt es einen multipath Eintrag an diesen Abschnitt an; andernfalls wird ein neuer multipaths Abschnitt mit einem multipath Eintrag für Ihr Blockgerät erstellt.

    #!/bin/bash SN=serial_hex ALIAS=device_name CONF=/etc/multipath.conf grep -q '^multipaths {' $CONF UNCOMMENTED=$? if [ $UNCOMMENTED -eq 0 ] then sed -i '/^multipaths {/a\\tmultipath {\n\t\twwid 3600a0980'"${SN}"'\n\t\talias '"${ALIAS}"'\n\t}\n' $CONF else printf "multipaths {\n\tmultipath {\n\t\twwid 3600a0980$SN\n\t\talias $ALIAS\n\t}\n}" >> $CONF fi
  2. Starten Sie den multipathd Dienst neu, damit die Änderungen /etc/multipathd.conf wirksam werden.

    ~$ systemctl restart multipathd.service
Um das zu partitionieren LUN

Der nächste Schritt besteht darin, Ihre LUN Verwendung zu formatieren und zu partitionierenfdisk.

  1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Pfad zu Ihrem vorhanden device_name ist.

    ~$ ls /dev/mapper/device_name
    /dev/device_name
  2. Partitionieren Sie die Festplatte mitfdisk. Sie geben eine interaktive Eingabeaufforderung ein. Geben Sie die Optionen in der angegebenen Reihenfolge ein. Sie können mehrere Partitionen erstellen, indem Sie einen Wert verwenden, der kleiner als der letzte Sektor ist (20971519in diesem Beispiel).

    Anmerkung

    Der Last sector Wert hängt von der Größe Ihres i ab SCSI LUN (in diesem Beispiel 10 GB).

    ~$ sudo fdisk /dev/mapper/device_name

    Die fsdisk interaktive Eingabeaufforderung wird gestartet.

    Welcome to fdisk (util-linux 2.30.2). 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 0x66595cb0. 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): 1 First sector (2048-20971519, default 2048): 2048 Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): 20971519 Created a new partition 1 of type 'Linux' and of size 512 B. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

    Nach der Eingabe w wird Ihre neue Partition /dev/mapper/partition_name verfügbar. Das Tool partition_name hat das Format <device_name><partition_number>. 1wurde als Partitionsnummer verwendet, die im fdisk Befehl im vorherigen Schritt verwendet wurde.

  3. Erstellen Sie Ihr Dateisystem mit /dev/mapper/partition_name dem Pfad.

    ~$ sudo mkfs.ext4 /dev/mapper/partition_name

    Das System antwortet mit der folgenden Ausgabe:

    mke2fs 1.42.9 (28-Dec-2013) Discarding device blocks: done Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=16 blocks 655360 inodes, 2621184 blocks 131059 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2151677952 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Um das LUN auf dem Linux-Client zu mounten
  1. Erstellen eines Verzeichnisses directory_path als Einhängepunkt für Ihr Dateisystem.

    ~$ sudo mkdir /directory_path/mount_point
  2. Hängen Sie das Dateisystem mit dem folgenden Befehl ein.

    ~$ sudo mount -t ext4 /dev/mapper/partition_name /directory_path/mount_point
  3. (Optional) Wenn Sie einem bestimmten Benutzer den Besitz des Mount-Verzeichnisses übertragen möchten, ersetzen Sie username durch den Benutzernamen des Besitzers.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (Optional) Stellen Sie sicher, dass Sie Daten aus dem Dateisystem lesen und in das Dateisystem schreiben können.

    ~$ echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt ~$ cat directory_path/HelloWorld.txt Hello world!

    Sie haben erfolgreich ein i SCSI LUN auf Ihrem Linux-Client erstellt und bereitgestellt.