Montare il volume iSCSI su Red Hat Enterprise Linux 9

Scoprite come montare un volume Block Storage for Classic su RHEL 9 con I/O multipath per un accesso ridondante e ad alte prestazioni allo storage.

Seguire l'esercitazione per montare un volume IBM Cloud® Block Storage for Classic su un server virtuale con il sistema operativo Red Hat Enterprise Linux® 9. Creerai due connessioni da un'interfaccia di rete del tuo host a due indirizzi IP di destinazione dell'array di archiviazione.

Se utilizzi un altro sistema operativo Linux®, consulta la documentazione relativa alla tua distribuzione specifica e assicurati che il multipath supporti il protocollo ALUA (Asymmetric Logical Unit Access) per la priorità dei percorsi.

Prima di iniziare

  1. Assicurarsi che l'host che deve accedere al volume Block Storage for Classic sia autorizzato. Per ulteriori informazioni, vedere Autorizzazione dell'host nella consoleAutorizzazione dell'host dal CLIA Autorizzazionedell'host con Terraform.

  2. Una connessione VPN attiva è necessaria per accedere alla rete privata di IBM Cloud e per interagire con diversi servizi.

  3. Stabilire una connessione SSH al server. L'indirizzo IP, il nome utente e la password si trovano nella console. Dal sito menu Icona del menu, fare clic su Infrastrutture Icona VPC > Infrastruttura classica > Dispositivi. Individuare quindi il server nell'elenco e fare clic sul suo nome per visualizzarne i dettagli.

Se più host montano lo stesso volume Block Storage for Classic senza essere gestiti in modo cooperativo, i dati sono a rischio di corruzione. La corruzione del volume può verificarsi se le modifiche vengono apportate al volume da più host contemporaneamente. Per evitare la perdita di dati, è necessario un file system su disco condiviso che tenga conto del cluster, come Microsoft Cluster Shared Volumes ( CSV ), Red Hat Global File System ( GFS2 ), VMware® VMFS e altri. Per ulteriori informazioni, consultare la documentazione del sistema operativo.

Aggiornare il sistema operativo e installare le utility iSCSI e multipath

Assicurarsi che il sistema sia aggiornato e che includa i pacchetti iscsi-initiator-utils e device-mapper-multipath. Utilizzate i seguenti comandi per installare i pacchetti.

  1. Aggiornare il sistema operativo.

    sudo dnf update
    
  2. Installare l'utilità multipath

    sudo dnf -y install device-mapper-multipath
    

    Una volta installato il pacchetto, digitate il comando mpathconf --enable --user_friendly_names n per abilitarlo.

  3. Installare l'utilità ISCSI

    sudo dnf -y install iscsi-initiator-utils
    

    Una volta installato il pacchetto, avviatelo con il comando systemctl start iscsid.

Aggiornare i file di configurazione di iSCSI

  1. Aggiornare il file /etc/iscsi/initiatorname.iscsi con l'IQN dalla console IBM Cloud®.

    1. L'esempio seguente mostra come verificare il nome corrente dell'iniziatore.
    [root@vsi4classic ~]# cat /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.1994-05.com.redhat:7acdadcdc20
    
    1. Apri il file in un editor di testo:
    vi /etc/iscsi/initiatorname.iscsi
    
    1. Inserire l'IQN nel seguente formato InitiatorName=<value-from-the-Portal>, come si può vedere nell'esempio seguente. Sostituire il valore IQN con il proprio.
    InitiatorName=iqn.2025-11.com.ibm:sl02su1414935-v154455886
    
    1. Salvare il file (:w) e uscire (:x).
  2. Togliere il commento e aggiornare le seguenti voci in /etc/iscsi/iscsid.conf utilizzando il nome utente e la password della console IBM Cloud®. Utilizzare il maiuscolo per i nomi CHAP (Challenge-Handshake Authentication Protocol).

    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>
    

    Non modificare le altre impostazioni CHAP. IBM Cloud® utilizza solo l'autenticazione unidirezionale. Non abilitare Mutual CHAP.

  3. Riavviare il servizio iscsid.

    systemctl restart iscsid
    
  4. Convalidare la correttezza della configurazione eseguendo il discovery sull'array iSCSI.

    Block Storage for Classic richiede un rilevamento dinamico delle destinazioni che utilizzi il metodo SendTargets. Non utilizzare la configurazione statica dei nodi, poiché non è scalabile e può causare problemi di connettività quando vengono apportate modifiche allo storage (come l'autorizzazione o la revoca dell'autorizzazione degli host ai LUN). Il rilevamento dinamico garantisce che l'host rilevi automaticamente qualsiasi modifica ai portali di destinazione.

    iscsiadm -m discovery -t sendtargets -p TARGET IP
    

    Se vengono visualizzate le informazioni sull'indirizzo IP e i dettagli di accesso, il rilevamento è riuscito.

    [root@vsi4classic ~]# iscsiadm -m discovery -t sendtargets -p 161.26.99.113
     161.26.99.113:3260,1034 iqn.1992-08.com.netapp:stfdal1006
     161.26.99.110:3260,1030 iqn.1992-08.com.netapp:stfdal1006
    

Impostazione del multipath

La configurazione del DM Multipath si effettua con l'utility mpathconf, che crea il file di configurazione del multipath /etc/multipath.conf. Per ulteriori informazioni sull'utilità mpathconf, consultare la pagina man di mpathconf(8).

  1. Se non l'avete già fatto, digitate il comando mpathconf con l'opzione --enable.

    mpathconf --enable --user_friendly_names n
    
  2. Modificare il file /etc/multipath.conf con nano, vi, o un altro editor di vostra scelta.

    sudo vi /etc/multipath.conf
    
  3. Aggiungere la seguente configurazione minima.

    defaults {
    user_friendly_names no
    find_multipaths on
    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 "2 pg_init_retries 50"
    no_path_retry queue
    prio "alua"
    path_checker tur
    failback immediate
    path_selector "round-robin 0"
    hardware_handler "1 alua"
    rr_weight uniform
    rr_min_io 128
    }
    }
    

    La sezione iniziale del file di configurazione configura il sistema in modo che i nomi dei dispositivi multipath abbiano la forma /dev/mapper/mpath n, dove mpath n è il WWID (World Wide Identifier) del dispositivo.

  4. Salva il file di configurazione e chiudi l'editor.

  5. Immetti il seguente comando.

    systemctl start multipathd.service
    

    Se è necessario modificare il file di configurazione di multipath dopo aver avviato il demone multipath, è necessario lanciare il comando systemctl reload multipathd.service affinché le modifiche abbiano effetto.

Scoprire il dispositivo di archiviazione ed effettuare il login

L'utility iscsiadm è uno strumento a riga di comando utilizzato per il rilevamento e il login ai target iSCSI, nonché per l'accesso e la gestione del database open-iscsi. Per ulteriori informazioni, consultare la pagina man di iscsiadm(8). In questa fase, individuare il dispositivo utilizzando l'indirizzo IP di destinazione ottenuto dalla console IBM Cloud®.

  1. Esegui l'analisi di rilevamento sull'array iSCSI.

    iscsiadm -m discovery -t sendtargets -p TARGET IP
    

    Se vengono visualizzate le informazioni sull'indirizzo IP e i dettagli di accesso, il rilevamento è riuscito.

  2. Accedere all'array iSCSI.

    iscsiadm -m node --login
    
    [root@vsi4classic ~]# iscsiadm -m node --login
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.110,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:stfdal1006, portal: 161.26.99.113,3260] successful.
    

Verifica della configurazione

  1. Convalidare la sessione iSCSI.

    iscsiadm -m session -o show
    
  2. Convalidare l'esistenza di più percorsi.

    multipath -l
    

    Questo comando riporta i percorsi. Se la configurazione è corretta, ogni volume avrà un unico gruppo, con un numero di percorsi pari al numero di sessioni di iSCSI. È possibile collegare un volume utilizzando un solo percorso, ma è importante che le connessioni vengano stabilite su entrambi i percorsi per evitare interruzioni del servizio.

    [root@vsi4classic ~]# multipath -l
    3600a0980383056716724514550666270 dm-0 NETAPP,LUN C-Mode
    size=20G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
    |-+- policy='round-robin 0' prio=0 status=active
    | `- 2:0:0:0 sda 8:0  active undef running
    `-+- policy='round-robin 0' prio=0 status=enabled
      `- 3:0:0:0 sdb 8:16 active undef running
    

    Se MPIO non è configurato correttamente, il tuo dispositivo di archiviazione potrebbe disconnettersi e presentarsi come offline quando si verifica un'interruzione di rete oppure quando i team di IBM Cloud® eseguono la manutenzione. MPIO garantisce un ulteriore livello di connettività durante tali eventi e mantiene attiva una sessione con il volume in cui sono in corso operazioni di lettura/scrittura.

  3. Elenca le tabelle di partizione del dispositivo collegato.

    fdisk -l | grep /dev/mapper
    

    Per impostazione predefinita, il dispositivo di archiviazione viene collegato a /dev/mapper/<wwid>. Il WWID è persistente finché il volume esiste. Il comando restituisce un messaggio simile a quello riportato nell'esempio seguente.

    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    

    Nell'esempio, la stringa 3600a0980383056716724514550666270 è il WWID. L'applicazione deve utilizzare il WWID. È inoltre possibile assegnare nomi più intuitivi utilizzando le parole chiave "user_friendly_names" o "alias" nel file multipath.conf. Per ulteriori informazioni, consultare la pagina man di multipath.conf .

    Il volume è ora montato e accessibile sull'host. Puoi creare un file system successivamente.

Creazione di un file system (facoltativo)

Segui questa procedura per creare un file system sul volume appena montato. Un file system è necessario perché la maggior parte delle applicazioni utilizzi il volume. Utilizza fdisk per le unità inferiori a 2 TB e parted per un disco di dimensioni superiori a 2 TB.

Creazione di un file system con fdisk

  1. Ottieni il nome del disco.

    fdisk -l | grep /dev/mapper
    
    [root@vsi4classic ~]# fdisk -l | grep /dev/mapper
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    
    [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
    Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 65536 bytes
    
  2. Crea una partizione sul disco. L'esempio seguente mostra la creazione della partizione con i valori predefiniti.

    [root@vsi4classic ~]# fdisk /dev/mapper/3600a0980383056716724514550666270
    
    Welcome to fdisk (util-linux 2.37.4).
    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 0x2aa2e16c.
    
    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-41943039, default 2048): 2048
    Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 41943039
    
    Created a new partition 1 of type 'Linux' and of size 20 GiB.
    
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Invalid argument
    
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
    
  3. Crea un file system sulla nuova partizione.

    • La nuova partizione viene elencata insieme al disco, in modo simile a XXXp1, seguita dalle dimensioni, dal tipo (83) e da Linux®. Prendete nota del nome della partizione, che vi servirà nella fase successiva. (XXXp1 rappresenta il nome della partizione).

      [root@vsi4classic ~]# fdisk -l /dev/mapper/3600a0980383056716724514550666270
      Disk /dev/mapper/3600a0980383056716724514550666270: 20 GiB, 21474836480 bytes, 41943040 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 4096 bytes
      I/O size (minimum/optimal): 4096 bytes / 65536 bytes
      Disklabel type: dos
      Disk identifier: 0x2aa2e16c
      
      Device                                           Boot Start      End  Sectors Size Id Type
      /dev/mapper/3600a0980383056716724514550666270p1        2048 41943039 41940992  20G 83 Linu
      
    • Crea il file system:

      mkfs.ext3 /dev/mapper/XXXp1
      
      [root@vsi4classic ~]# mkfs.ext3 /dev/mapper/3600a0980383056716724514550666270p1
      mke2fs 1.46.5 (30-Dec-2021)
      Discarding device blocks: done
      Creating filesystem with 5242624 4k blocks and 1310720 inodes
      Filesystem UUID: 09e7f833-32b7-4c7f-ab68-8c6083cb8a63
      Superblock backups stored on blocks:
          32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
          4096000
      
      Allocating group tables: done
      Writing inode tables: done
      Creating journal (32768 blocks): done
      Writing superblocks and filesystem accounting information: done
      
  4. Crea un punto di montaggio per il file system e montalo.

    • Crea un nome partizione PerfDisk oppure dove vuoi montare il file system.

      mkdir /PerfDisk
      
    • Monta la memoria con il nome della partizione.

      mount /dev/mapper/XXXp1 /PerfDisk
      
    • Verifica che vedi elencato il tuo nuovo file system.

      df -h
      
      [root@vsi4classic ~]# mkdir /PerfDisk
      [root@vsi4classic ~]# mount /dev/mapper/3600a0980383056716724514550666270p1 /PerfDisk
      [root@vsi4classic ~]# df -h
      Filesystem                                       Size  Used Avail Use% Mounted on
      devtmpfs                                         4.0M     0  4.0M   0% /dev
      tmpfs                                            469M     0  469M   0% /dev/shm
      tmpfs                                            188M   11M  177M   6% /run
      /dev/xvda2                                        24G  2.0G   21G   9% /
      /dev/xvda1                                       974M  320M  588M  36% /boot
      tmpfs                                             94M     0   94M   0% /run/user/0
      /dev/mapper/3600a0980383056716724514550666270p1   20G  156K   19G   1% /PerfDisk
      
  5. Per abilitare il montaggio automatico all'avvio, aggiungere il nuovo file system al file /etc/fstab del sistema.

    • Accoda la seguente riga alla fine di /etc/fstab (con il nome partizione dal passo 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    Per ulteriori informazioni, vedere Introduzione al file Linux /etc/fstab.

Creazione di un file system con parted

Su Red Hat Enterprise Linux® 9, parted è preinstallato. Tuttavia, se ne avete bisogno, potete installarlo lanciando il seguente comando.

dnf install parted

Per creare un file system con parted, attieniti alla seguente procedura.

  1. Avvia la shell interattiva parted.

    parted
    
  2. Crea una partizione sul disco.

    1. Se non diversamente specificato, l'utilità parted utilizza l'unità principale, che nella maggior parte dei casi è l' /dev/sda. Passa al disco che vuoi partizionare utilizzando il comando select. Sostituisci XXX con il tuo nuovo nome dispositivo.

      select /dev/mapper/XXX
      
    2. Esegui il comando print per verificare di trovarti sul disco corretto.

      print
      
    3. Creare una tabella di partizione.

      mklabel gpt
      
    4. Puoi usare Parted per creare partizioni disco primarie e logiche; la procedura prevista è la stessa. Per creare una partizione, l'utilità utilizza mkpart. Puoi dargli dei parametri aggiuntivi come primary oppure logical, a seconda del tipo di partizione che vuoi creare.

      mkpart
      

      Le unità elencate hanno come valore predefinito i megabyte (MB). Per creare una partizione da 10-GB, inizia da 1 e finisci a 10000. Puoi anche modificare le unità di dimensione in terabyte immettendo unit TB, se vuoi.

    5. Esci da parted con quit.

      quit
      
  3. Crea un file system sulla nuova partizione.

    mkfs.ext3 /dev/mapper/XXXp1
    

    È importante selezionare il disco e la partizione corretti quando si esegue questo comando. Verifica il risultato stampando la tabella partizioni. Nella colonna "File system" è possibile vedere " ext3 ".

  4. Crea un punto di montaggio per il file system e montalo.

    • Crea un nome partizione PerfDisk oppure dove vuoi montare il file system.
    mkdir /PerfDisk
    
    • Monta la memoria con il nome della partizione.
    mount /dev/mapper/XXXp1 /PerfDisk
    
    • Verifica che vedi elencato il tuo nuovo file system.
    df -h
    
  5. Per abilitare il montaggio automatico all'avvio, aggiungere il nuovo file system al file /etc/fstab del sistema.

    • Accoda la seguente riga alla fine di /etc/fstab (utilizzando il nome partizione dal passo 3).
    /dev/mapper/XXXp1    /PerfDisk    ext3    defaults,_netdev    0    1
    

    Per ulteriori informazioni, vedere Introduzione al file Linux /etc/fstab.

Gestione delle autorizzazioni degli utenti al contenuto del volume montato

Come amministratore di sistema, è possibile gestire l'accesso ai dati sul volume montato. Dopo che il file system è pronto, è possibile perfezionare il controllo degli accessi usando i comandi chown e chmod per assegnare i permessi di lettura, scrittura ed esecuzione ai singoli utenti e gruppi. Per ulteriori informazioni, consultare l 'esercitazione di Red Hat: Come gestire i permessi di Linux per utenti, gruppi e altri.

Verifica della configurazione MPIO

Se MPIO non è configurato correttamente, il tuo dispositivo di archiviazione potrebbe disconnettersi e presentarsi come offline quando si verifica un'interruzione di rete oppure quando i team di IBM Cloud® eseguono la manutenzione. MPIO garantisce un ulteriore livello di connettività durante tali eventi e mantiene attiva una sessione con il volume in cui sono in corso operazioni di lettura/scrittura.

  • Per controllare se multipath sta rilevando i dispositivi, elenca la configurazione corrente. Se è configurato correttamente, esiste un singolo gruppo per ogni volume, con un numero di percorsi pari al numero di sessioni iSCSI.

    multipath -l
    
    root@server:~# multipath -l
    3600a09803830304f3124457a45757067 dm-1 NETAPP,LUN C-Mode
    size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
    |-+- policy='round-robin 0' prio=-1 status=active
    | `6:0:0:101 sdd 8:48 active ready running
    `-+- policy='round-robin 0' prio=-1 status=enabled
     `- 7:0:0:101 sde 8:64 active ready running
    

    La stringa 3600a09803830304f3124457a45757067 riportata nell'esempio è l'identificativo WWID univoco del volume. Ogni volume è identificato da un WWID univoco, che rimane invariato per tutta la durata del volume.

  • Conferma che siano presenti tutti i dischi. In una corretta configurazione, puoi aspettarti di vedere nell'output due dischi con lo stesso identificativo e un elenco /dev/mapper della stessa dimensione con lo stesso identificativo. Il dispositivo /dev/mapper è il solo che viene configurato da multipath.

    fdisk -l | grep Disk
    
    • Output di esempio di una configurazione corretta.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/mapper/3600a09803830304f3124457a45757066: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    

    Il WWID è incluso nel nome del dispositivo creato dal multipath. Si raccomanda l'utilizzo del WWID da parte dell'applicazione.

    • Output di esempio di una configurazione non corretta. Non esiste un disco /dev/mapper.
    root@server:~# fdisk -l | grep Disk
    Disk /dev/sda: 500.1 GB, 500107862016 bytes Disk identifier: 0x0009170d
    Disk /dev/sdc: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes Disk identifier: 0x2b5072d1
    
  • Per confermare che nessun disco locale è incluso nell'elenco dei dispositivi multipath, visualizzare la configurazione corrente con il livello di verbosità 3. L'output del comando seguente visualizza i dispositivi e mostra anche quali sono stati aggiunti alla blocklist.

    multipath -l -v 3 | grep sd <date and time>
    
  • Se un volume viene fornito e collegato mentre il secondo percorso è inattivo, l'host potrebbe vedere un singolo percorso quando la scansione di rilevamento viene eseguita per la prima volta. Se si verifica questo raro fenomeno, controllare la pagina di stato IBM Cloud® per verificare se è in corso un evento che influisce sulla capacità dell'host di accedere allo storage. Se non vengono segnalati eventi, eseguire nuovamente la scansione di rilevamento per assicurarsi che tutti i percorsi siano stati correttamente individuati. Se è in corso un evento, l'archivio può essere collegato con un unico percorso. Tuttavia, è fondamentale ripetere la scansione dei percorsi dopo il completamento dell'evento. Se dopo la nuova scansione non vengono rilevati entrambi i percorsi, apri una richiesta di assistenza affinché il problema possa essere esaminato in modo adeguato.

Smontaggio dei volumi Block Storage for Classic

  1. Smonta il file system.
    umount /dev/mapper/XXXp1 /PerfDisk
    
  2. Se non disponi di altri volumi in quel portale di destinazione, puoi scollegarti dalla destinazione.
    iscsiadm -m node -T <TARGET NAME> -p <PORTAL IP:PORT> --logout
    
  3. Se non disponi di altri volumi in quel portale di destinazione, elimina il record del portale di destinazione per impedire tentativi di login futuri.
    iscsiadm -m node -o delete -T <TARGET IQN> -p <PORTAL IP:PORT>
    
    Per ulteriori informazioni, consultare il manuale " iscsiadm ".