Montare il volume iSCSI su Ubuntu OS

Scoprite come montare un volume Block Storage for Classic su Ubuntu 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 un sistema operativo Ubuntu. Creerai due connessioni da un'interfaccia di rete del tuo host a due indirizzi IP di destinazione dell'array di archiviazione.

Per ulteriori informazioni sul funzionamento del iSCSI servizio sul sistema Ubuntu operativo, consultare la iSCSI documentazione relativa all'iniziatore (o client). 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. Creare un server virtuale per Classic nella console, dalla CLI, con l'API o con Terraform.

  2. Ordinare un volume di archiviazione a blocchi nello stesso data center.

  3. Assicurarsi che l'host sia autorizzato ad accedere al volume Block Storage for Classic. Per ulteriori informazioni, vedere Autorizzazione dell'host nella console Autorizzazione dell'host dalla CLI Autorizzazione dell'host con Terraform. Una volta completata l'autorizzazione, prendere nota del nome utente, della password e delle informazioni sull'host IQN.

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.

Prima di iniziare la configurazione di iSCSI,, assicuratevi che le interfacce di rete siano impostate e configurate correttamente per il corretto funzionamento del pacchetto open-iscsi, soprattutto durante l'avvio. Nelle versioni più recenti di Ubuntu, lo strumento principale per impostare le informazioni sugli indirizzi di rete è Netplan. Utilizza un file di configurazione YAML per definire le impostazioni di rete, sostituendo i vecchi metodi come /etc/network/interfaces. Netplan può essere configurato con la riga di comando o attraverso il sito NetworkManager negli ambienti desktop.

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.

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

Assicurarsi che il sistema sia aggiornato e che includa i pacchetti open-iscsi e multipath-tools. Utilizzare i seguenti comandi per installare i package.

  • Aggiornare il sistema operativo:

    apt-get update
    
  • Installare open-iscsi.

    sudo apt install open-iscsi
    

    Quando il package è installato, vengono creati i seguenti due file.

    • /etc/iscsi/iscsid.conf
    • /etc/iscsi/initiatorname.iscsi
  • Avviare i servizi:

    systemctl enable open-iscsi
    
    systemctl enable iscsid
    
  • Installare multipath-tools.

    sudo apt install multipath-tools
    

Configurare ISCSI

Aggiornamento del nome dell'iniziatore

  1. Verificare l'esistenza del file /etc/iscsi/initiatorname.iscsi ed esaminarne il contenuto.

    cat /etc/iscsi/initiatorname.iscsi
    
    root@vsi4classicubuntu:~# cat /etc/iscsi/initiatorname.iscsi
    GenerateName=yes
    
  2. Utilizzando un editor di testo, aggiornare il file /etc/iscsi/initiatorname.iscsi con l'IQN dalla console IBM Cloud®. Inserisci il valore nel formato indicato di seguito.

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

Configurazione delle credenziali

  1. Assicurati che il iscsid.conf file esista controllandone il contenuto.

    cat /etc/iscsi/iscsid.conf
    
  2. Utilizzando l'editor di testo, decommentare e modificare le seguenti voci. Il nome utente e la password si trovano nella console IBM Cloud®.

    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.

  3. Riavviare il servizio iSCSI affinché le modifiche abbiano effetto.

    systemctl restart iscsid.service
    

Per maggiori informazioni, vedere i manuali Ubuntu- iscsid e manuali di Ubuntu- systemctl.

Impostare il percorso multiplo

  1. Dopo aver installato l'utilità multipath, è possibile verificare il contenuto predefinito del file multipath.conf.

    cat /etc/multipath.conf
    
  2. Modifica i valori predefiniti di /etc/multipath.conf con un editor di testo sostituendoli con il contenuto del seguente frammento di codice.

    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
    }
    

    La sezione iniziale del file di configurazione configura il sistema in modo che i nomi dei dispositivi multipath abbiano la forma /dev/mapper/mpathn, dove mpathn è il numero WWID (World Wide Identifier) del dispositivo. Per ulteriori informazioni, consultare i manuali Ubuntu- multipath.conf.

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

  4. Avviare il servizio a più percorsi.

    service multipath-tools start
    
    1. Abilitare i servizi necessari.

    Se è necessario modificare il file di configurazione a più percorsi dopo aver avviato il daemon a più percorsi, è necessario riavviare il servizio multipathd per rendere effettive le modifiche.

    Per ulteriori informazioni sull'uso della funzione Device Mapper Multipath su Ubuntu 20, vedere Introduzione al multipathing del device mapper.

Rileva il dispositivo di archiviazione e accedi

L'utility iscsiadm è uno strumento a riga di comando utilizzato per la scoperta e l'accesso a target iSCSI, oltre che per l'accesso e la gestione del database open-iscsi. Per ulteriori informazioni, consultare i manuali dell' Ubuntu: iscsiadm. In questa fase, scoprire il dispositivo utilizzando l'indirizzo IP di destinazione ottenuto dalla console dell' 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.

    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. Configurare il login automatico.

    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. Accedi all'array iSCSI.

    sudo iscsiadm -m node --login
    

Verifica della configurazione

  1. Convalidare che sia stata stabilita la sessione iSCSI.

    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. Convalidare che esistono più percorsi.

    multipath -ll
    

    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@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
    

    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 una sessione attiva sul volume con operazioni di lettura/scrittura in corso.

    Nell'esempio,3600a0980383056666424506a33426478 è il WWID persistente mentre il volume esiste. Si consiglia che l'applicazione utilizzi il WWID. È inoltre possibile assegnare nomi più intuitivi utilizzando le parole chiave "user_friendly_names" o "alias" nel file multipath.conf.

  3. Controllare dmesg per assicurarsi che i nuovi dischi siano rilevati.

    dmesg
    

Creazione di una partizione e di un file system (facoltativo)

Una volta montato e accessibile il volume sull'host, è possibile creare un filesystem. Segui questa procedura per creare un file system sul volume appena montato.

  1. Creare una partizione.

    $ 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. Creare il filesystem.

    $ 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. Montare l'unità a blocchi.

    sudo mount /dev/mapper/mpatha-part1 /mnt
    
  4. Accedere ai dati per verificare che la nuova partizione e il nuovo sistema di file siano pronti per l'uso.

    ls /mnt
    

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
    

    Per ulteriori informazioni, consultare i manuali dell' Ubuntu: umount.

  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 i manuali dell' Ubuntu: iscsiadm.