Montare un volume iSCSI su CloudLinux 8

Scoprite come montare un volume Block Storage for Classic su CloudLinux 8 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 con il sistema operativo CloudLinux 8. 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 definizione delle priorità dei percorsi.

Prima di iniziare

Se più host montano lo stesso volume Block Storage for Classic senza essere gestiti in modo cooperativo, i tuoi dati sono a rischio di danneggiamento. Il danneggiamento del volume può verificarsi se vengono apportate modifiche 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.

Consigliamo di eseguire il traffico di archiviazione su una VLAN che ignora il firewall. L'esecuzione del traffico di archiviazione tramite i firewall software aumenta la latenza e ha un impatto negativo sulle prestazioni dell'archiviazione. Per ulteriori informazioni sull'instradamento del traffico di archiviazione all'interfaccia VLAN, vedi le FAQ.

Prima di iniziare, assicurarsi che l'host che deve accedere al Block Storage for Classic volume sia autorizzato. Per ulteriori informazioni, vedere Autorizzazione dell'host nella console Autorizzazione dell'host dalla CLI Autorizzazione dell'host con Terraform.

Installa i programmi di utilità iSCSI e a più percorsi

Assicurarsi che il sistema sia aggiornato e che includa i pacchetti iscsi-initiator-utils e device-mapper-multipath.

  1. Utilizza il seguente comando per installare i pacchetti.

    dnf install iscsi-initiator-utils device-mapper-multipath
    
  2. Avviare i servizi.

    chkconfig multipathd on
    
    chkconfig iscsid on
    

Impostare il percorso multiplo

Impostare DM Multipath con il programma di utilità mpathconf, che crea il file di configurazione a più percorsi /etc/multipath.conf.

  • Se il file /etc/multipath.conf esiste, il programma di utilità mpathconf può modificarlo.
  • Se il file /etc/multipath.conf non esiste, il programma di utilità mpathconf crea il file /etc/multipath.conf da zero.
  1. Immettere il comando mpathconf con l'opzione --enable.

    # mpathconf --enable --user_friendly_names n
    
  2. Modifica il file /etc/multipath.conf inserendo la seguente configurazione minima.

    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 "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.

  1. Salvare il file di configurazione e uscire dall'editor, se necessario.

  2. Esegui il seguente comando:

    # systemctl start multipathd.service
    

    Se è necessario modificare il file di configurazione a più percorsi dopo aver avviato il daemon a più percorsi, è necessario immettere il comando systemctl reload multipathd.service per rendere effettive le modifiche.

Aggiornare il file /etc/iscsi/initiatorname.iscsi

Aggiornare il file /etc/iscsi/initiatorname.iscsi con l'IQN dalla console IBM Cloud®. Immetti il valore con lettere minuscole.

InitiatorName=<value-from-the-Portal>

Configura credenziali

Modifica le seguenti impostazioni 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>

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

Rileva il dispositivo di archiviazione e accedi

L'utility iscsiadm è uno strumento a riga di comando che aiuta a scoprire e accedere a target iSCSI, oltre che ad accedere e gestire il database open-iscsi. 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.

    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 <ip-value-from-IBM-Cloud-console>
    

    Se vengono visualizzate le informazioni IP e i dettagli di accesso, il rilevamento ha esito positivo.

  2. Accedi all'array iSCSI.

    iscsiadm -m node --login
    

Verifica della configurazione

  1. Convalidare che sia stata stabilita la sessione iSCSI.

    iscsiadm -m session -o show
    
  2. Convalidare che esistono 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.

    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 per il dispositivo connesso.

    fdisk -l | grep /dev/mapper
    

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

    Disk /dev/mapper/3600a0980383030523424457a4a695266: 73.0 GB, 73023881216 bytes
    

    Nell'esempio, la stringa 3600a0980383030523424457a4a695266 costituisce 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.

    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
    

    Il nome del disco restituito è simile a /dev/mapper/XXX.

  2. Crea una partizione sul disco.

    fdisk /dev/mapper/XXX
    

    XXX rappresenta il nome del disco restituito nel passo 1.

    Scorri più in basso per visualizzare i codici di comando elencati nella tabella dei comandi di " fdisk ".

  3. Crea un file system sulla nuova partizione.

    fdisk –l /dev/mapper/XXX
    
    • La nuova partizione è elencata insieme al disco, in modo simile a " XXXp1", seguita dalla dimensione, dal tipo (83) e da " Linux® ".
    • Prendi nota del nome della partizione; ti serve nel passo successivo. (XXXp1 rappresenta il nome della partizione).
    • Crea il file system:
    mkfs.ext3 /dev/mapper/XXXp1
    
  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. Aggiungi il nuovo file system al file /etc/fstab del sistema per abilitare il montaggio automatico all'avvio del computer.

    • 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
    

Creazione di un file system con parted

In molte distribuzioni Linux®, parted è preinstallato. Tuttavia, se necessario, è possibile installarlo eseguendo il comando riportato di seguito.

# dnf install parted

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

  1. Avviare la shell parted interattiva.

    parted
    
  2. Crea una partizione sul disco.

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

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

      print
      
    • Creare una tabella di partizione.

      mklabel gpt
      
    • Puoi usare Parted per creare partizioni disco primarie e logiche; la procedura prevista è la stessa. Per creare una partizione, parted utilizza mkpart. Puoi dargli dei parametri aggiuntivi come primary oppure logical, a seconda del tipo di partizione che vuoi creare. 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.

      mkpart
      
    • 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 l'avvio automatico dell'om di montaggio, 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
    

Gestione delle autorizzazioni utente per il contenuto del volume montato

In qualità di amministratore di sistema, puoi gestire l'accesso ai dati sul volume montato. Dopo che il file system è pronto, è possibile perfezionare il controllo degli accessi utilizzando i comandi chown e chmod per assegnare permessi di lettura, scrittura ed esecuzione a singoli utenti e gruppi. Per ulteriori informazioni, consultare la documentazione del prodotto CloudLinux.

Smontaggio dei volumi Block Storage for Classic

Quando il volume non ti serve più, smontalo prima di eliminarlo.

  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>