Montaggio di LUN iSCSI su un client Linux - FSx per ONTAP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Montaggio di LUN iSCSI su un client Linux

Gli esempi presentati in queste procedure utilizzano la seguente configurazione:

  • Il LUN iSCSI che viene montato sull'host Linux è già stato creato. Per ulteriori informazioni, consulta Creazione di un LUN iSCSI.

  • L'host Linux che sta montando il LUN iSCSI è un'istanza Amazon EC2 che esegue Amazon Linux 2 Amazon Machine Image (AMI). Dispone di gruppi di sicurezza VPC configurati per consentire il traffico in entrata e in uscita come descritto in. Controllo degli accessi ai file system con Amazon VPC

  • L'host Linux e il file system FSx for ONTAP si trovano nello stesso VPC e. Account AWS Se l'host si trova in un altro VPC, è possibile utilizzare il peering VPC o concedere AWS Transit Gateway ad altri VPC l'accesso agli endpoint iSCSI del volume. Per ulteriori informazioni, consulta Accesso ai dati dall'esterno del VPC di implementazione.

    Se utilizzi un'istanza EC2 che esegue un'AMI Linux diversa, alcune delle utilità che vengono installate sull'host potrebbero essere preinstallate e potresti utilizzare comandi diversi per installare i pacchetti richiesti. Oltre all'installazione dei pacchetti, i comandi utilizzati in questa sezione sono validi per altre AMI Linux EC2.

    Consigliamo che l'istanza EC2 si trovi nella stessa zona di disponibilità della sottorete preferita del file system, come mostrato nella figura seguente.

Immagine che mostra un file system Amazon FSx for NetApp ONTAP con un LUN iSCSI e un'istanza Amazon EC2 situata nella stessa zona di disponibilità della sottorete preferita del file system.

Installare e configurare iSCSI sul client Linux

Per installare il client iSCSI
  1. Confermalo iscsi-initiator-utils e device-mapper-multipath sono installati sul tuo dispositivo Linux. Connect alla propria istanza Linux utilizzando un client SSH. Per ulteriori informazioni, vedi Connect alla tua istanza Linux usando SSH.

  2. Installa multipath e installa il client iSCSI utilizzando il seguente comando. L'installazione multipath è necessaria se si desidera eseguire automaticamente il failover tra i file server.

    ~$ sudo yum install -y device-mapper-multipath iscsi-initiator-utils
  3. Per facilitare una risposta più rapida in caso di failover automatico tra file server durante l'utilizzomultipath, impostate il valore di timeout sostitutivo nel /etc/iscsi/iscsid.conf file su un valore 5 anziché su quello predefinito di. 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. Avviare il servizio iSCSI.

    ~$ sudo service iscsid start

    Tieni presente che, a seconda della versione di Linux in uso, potrebbe essere necessario utilizzare invece questo comando:

    ~$ sudo systemctl start iscsid
  5. Verificate che il servizio sia in esecuzione utilizzando il comando seguente.

    ~$ sudo systemctl status iscsid.service

    Il sistema risponde con il seguente risultato:

    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
Per configurare iSCSI sul tuo client Linux
  1. Per consentire ai client di eseguire automaticamente il failover tra i file server, è necessario configurare multipath. Utilizza il seguente comando:

    ~$ sudo mpathconf --enable --with_multipathd y
  2. Determinate il nome dell'iniziatore del vostro host Linux utilizzando il comando seguente. La posizione del nome dell'iniziatore dipende dall'utilità iSCSI in uso. Se si utilizzaiscsi-initiator-utils, il nome dell'iniziatore si trova nel file. /etc/iscsi/initiatorname.iscsi

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

    Il sistema risponde con il nome dell'iniziatore.

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

Configurare iSCSI sul file system FSx for ONTAP

  1. Connect alla CLI NetApp ONTAP sul file system FSx for ONTAP su cui è stato creato il LUN iSCSI utilizzando il comando seguente. Per ulteriori informazioni, consulta Utilizzo della CLI NetApp ONTAP.

    ~$ ssh fsxadmin@your_management_endpoint_ip
  2. Crea il gruppo di iniziatori (igroup) utilizzando il comando NetApp ONTAP CLI. lun igroup create Un gruppo di iniziatori esegue il mapping sulle LUN iSCSI e controlla quali iniziatori (client) hanno accesso alle LUN. Sostituirlo host_initiator_name con il nome dell'iniziatore dell'host Linux recuperato nella procedura precedente.

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

    Se si desidera rendere le LUN mappate su questo igroup disponibili a più host, è possibile specificare più nomi di iniziatori separati da una virgola. Per ulteriori informazioni, consulta lun igroup create nel Centro documentazione ONTAP. NetApp

  3. Conferma che igroup esiste usando il comando: lun igroup show

    ::> lun igroup show

    Il sistema risponde con il seguente risultato:

    Vserver Igroup Protocol OS Type Initiators --------- ------------ -------- -------- ------------------------------------ svm_name igroup_name iscsi linux iqn.1994-05.com.redhat:abcdef12345
  4. Questo passaggio presuppone che sia già stato creato un LUN iSCSI. In caso contrario, consulta Creazione di un LUN iSCSI le step-by-step istruzioni in merito.

    Create una mappatura dal LUN creato all'igroup creato, utilizzando lun mapping create, specificando i seguenti attributi:

    • svm_name— Il nome della macchina virtuale di archiviazione che fornisce la destinazione iSCSI. L'host utilizza questo valore per raggiungere il LUN.

    • vol_name— Il nome del volume che ospita il LUN.

    • lun_name— Il nome assegnato al LUN.

    • igroup_name— Il nome del gruppo iniziatore.

    • lun_id— Il numero intero dell'ID LUN è specifico della mappatura, non del LUN stesso. Viene utilizzato dagli iniziatori dell'igroup poiché il numero di unità logica utilizza questo valore per l'iniziatore quando accede allo storage.

    ::> lun mapping create -vserver svm_name -path /vol/vol_name/lun_name -igroup igroup_name -lun-id lun_id
  5. Utilizzate il lun show -pathcomando per confermare che il LUN è stato creato, online e mappato.

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

    Il sistema risponde con il seguente output:

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

    Salva il serial_hex valore (in questo esempio lo è6c5742314e5d52766e796150), lo utilizzerai in un passaggio successivo per creare un nome descrittivo per il dispositivo a blocchi.

  6. Utilizzate il network interface show -vservercomando per recuperare gli indirizzi iscsi_1 e le iscsi_2 interfacce per l'SVM in cui avete creato il LUN iSCSI.

    ::> network interface show -vserver svm_name

    Il sistema risponde con il seguente output:

    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 questo esempio, l'indirizzo IP di iscsi_1 è 172.31.0.143 ed iscsi_2 è172.31.21.81.

Montare un LUN iSCSI sul client Linux

  1. Sul client Linux, utilizzare il comando seguente per individuare i nodi iSCSI di destinazione utilizzando l'indirizzo IP iscsi_1 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 questo esempio, iqn.1992-08.com.netapp:sn.9cfa2c41207a11ecac390182c38bc256:vs.3 corrisponde al target_initiator LUN iSCSI nella zona di disponibilità preferita.

  2. (Facoltativo) È possibile stabilire sessioni aggiuntive con. target_initiator Amazon EC2 ha un limite di larghezza di banda di 5 Gb/s (~625 MB/s) per il traffico a flusso singolo, ma puoi creare più sessioni per aumentare i livelli di throughput del tuo file system da un singolo client. Per ulteriori informazioni, consulta la larghezza di banda di rete delle istanze Amazon EC2 nella Guida per l'utente di Amazon Elastic Compute Cloud per istanze Linux.

    Il comando seguente stabilisce 8 sessioni per iniziatore per nodo ONTAP in ogni zona di disponibilità, consentendo al client di gestire fino a 40 GB/s (5.000 MB/s) di throughput aggregato verso il LUN iSCSI.

    ~$ sudo iscsiadm --mode node -T target_initiator --op update -n node.session.nr_sessions -v 8
  3. Accedere agli iniziatori di destinazione. Le LUN iSCSI vengono presentate come dischi disponibili.

    ~$ 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.

    L'output precedente è troncato; dovrebbe essere visualizzata una Logging in Login successful risposta per ogni sessione su ciascun file server. Nel caso di 4 sessioni per nodo, ci saranno 8 Logging in e 8 risposte. Login successful

  4. Utilizzare il comando seguente per verificare di aver dm-multipath identificato e unito le sessioni iSCSI mostrando un singolo LUN con più policy. Dovrebbe esserci un numero uguale di dispositivi elencati come active e quelli elencati come. enabled

    ~$ sudo multipath -ll

    Nell'output, il nome del disco è formattato comedm-xyz, dove xyz è un numero intero. Se non sono presenti altri dischi multipath, questo valore è. 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

    Il dispositivo a blocchi è ora connesso al client Linux. Si trova sotto il percorso/dev/dm-xyz. Non è consigliabile utilizzare questo percorso per scopi amministrativi, ma utilizzare il collegamento simbolico che si trova sotto il percorso/dev/mapper/wwid, dove si wwid trova un identificatore univoco per il LUN coerente tra i dispositivi. Nel passaggio successivo, fornirai un nome wwid descrittivo per distinguerlo dagli altri dischi a percorso multiplo.

Per assegnare al dispositivo a blocchi un nome descrittivo
  1. Per assegnare al dispositivo un nome descrittivo, crea un alias nel /etc/multipath.conf file. A tale scopo, aggiungi la seguente voce al file utilizzando il tuo editor di testo preferito, sostituendo i seguenti segnaposto:

    • Sostituisci serial_hex con il valore salvato nella Configurare iSCSI sul file system FSx for ONTAP procedura.

    • Aggiungete il prefisso 3600a0980 al serial_hex valore come mostrato nell'esempio. Questo è un preambolo unico per la distribuzione NetApp ONTAP utilizzata da Amazon FSx for ONTAP. NetApp

    • device_nameSostituiscilo con il nome descrittivo che desideri utilizzare per il tuo dispositivo.

    multipaths { multipath { wwid 3600a0980serial_hex alias device_name } }

    In alternativa, puoi copiare e salvare il seguente script come file bash, ad esempio. multipath_alias.sh È possibile eseguire lo script con i privilegi sudo, sostituendolo serial_hex (senza il prefisso 3600a0980) e device_name con il rispettivo numero di serie e il nome descrittivo desiderato. Questo script cerca una sezione non commentata nel file. multipaths /etc/multipath.conf Se ne esiste una, aggiunge una multipath voce a quella sezione; in caso contrario, creerà una nuova multipaths sezione con una multipath voce per il dispositivo a blocchi.

    #!/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. Riavvia il multipathd servizio per /etc/multipathd.conf rendere effettive le modifiche.

    ~$ systemctl restart multipathd.service
Per partizionare il LUN

Il passaggio successivo consiste nel formattare e partizionare il LUN utilizzando. fdisk

  1. Utilizzate il seguente comando per verificare che il percorso del vostro device_name sia presente.

    ~$ ls /dev/mapper/device_name
    /dev/device_name
  2. Partiziona il disco usandofdisk. Inserirai un prompt interattivo. Inserisci le opzioni nell'ordine mostrato. Si noti che il Last sector valore varia in base alla dimensione del LUN iSCSI (10 GB in questo esempio). È possibile creare più partizioni utilizzando un valore inferiore all'ultimo settore (20971519in questo esempio).

    ~$ sudo fdisk /dev/mapper/device_name

    Viene avviato il prompt fsdisk interattivo.

    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.

    Dopo l'accessow, la nuova partizione /dev/mapper/partition_name diventa disponibile. <device_name><partition_number>Il partition_name ha il formato. 1è stato utilizzato come numero di partizione utilizzato nel fdisk comando nel passaggio precedente.

  3. Crea il tuo file system utilizzando /dev/mapper/partition_name come percorso.

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

    Il sistema risponde con il seguente output:

    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
Per montare il LUN sul client Linux
  1. Create una directory directory_path come punto di montaggio per il file system.

    ~$ sudo mkdir /directory_path/mount_point
  2. Monta il file system usando il seguente comando.

    ~$ sudo mount -t ext4 /dev/mapper/partition_name /directory_path/mount_point
  3. (Facoltativo) È possibile modificare la proprietà della directory di montaggio per l'utente. usernameSostituiscila con il tuo nome utente.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (Facoltativo) Verifica di poter leggere e scrivere dati sul file system.

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

    È stato creato e montato correttamente un LUN iSCSI sul client Linux.