Distribuisci Lustre File System

La distribuzione dello storage di file OCI con Lustre comprende i passi riportati di seguito.
  • Creazione di uno storage di file OCI con un file system Lustre
  • Attivazione del file system
  • Configurazione di LNet
  • Test delle operazioni di lettura e scrittura

Crea file system Lustre

I passi riportati di seguito illustrano come creare uno storage di file OCI con il file system Lustre.

  1. Nel menu di navigazione di OCI Console, fare clic su Memorizzazione, quindi su File system di tipo Limite.
  2. Fare clic su Crea.
  3. Configurare i dettagli del file system Lustre:
    • Nome file system: accettare il nome predefinito o immettere un nome descrittivo per il file system.
    • Nome MOUNT: accettare il valore predefinito o immettere un nome descrittivo da utilizzare durante il MOUNT del file system.
    • Descrizione del file system: (facoltativo) immettere una descrizione per il file system.
    • Compartimento: accettare il compartimento predefinito o selezionare la lista per modificare i compartimenti.
    • Dominio di disponibilità: accettare il dominio di disponibilità predefinito o selezionare la lista per modificare i domini di disponibilità.
    • Tag: se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare tag in formato libero a tale risorsa. Per applicare una tag definita, è necessario disporre delle autorizzazioni per utilizzare lo spazio di nomi tag. Se non si è certi di applicare le tag, saltare questa opzione o chiedere a un amministratore. È possibile applicare le tag in un secondo momento.
    • Gruppo di posizionamento cluster: si consiglia di selezionare un gruppo di posizionamento cluster per posizionare fisicamente i file system e altre risorse in un dominio di disponibilità in modo da garantire una bassa latenza. Il gruppo di posizionamento del cluster non può essere modificato dopo la creazione del file system.
    • Livello prestazioni: selezionare il livello prestazioni per il file system. Il livello di prestazioni controlla il throughput del file system. Il throughput viene specificato per terabyte (TB) di storage di cui è stato eseguito il provisioning. Impossibile modificare il livello di prestazioni dopo la creazione del file system.
    • Capacità: selezionare la capacità di storage del file system. Se si seleziona una capacità superiore al limite del servizio, potrebbe essere necessario richiedere un aumento.

      Il throughput aggregato del file system viene calcolato in base al livello di prestazioni e alla capacità.

    • Networking: selezionare la VCN e la subnet in cui eseguire il MOUNT del file system. Per impostazione predefinita, la console mostra una lista di VCN e subnet nel compartimento in cui si sta lavorando. Modificare i compartimenti per selezionare una VCN o una subnet da un compartimento diverso.

      La subnet selezionata sarà la subnet utilizzata per distribuire i server Lustre. Assicurarsi che questa sottorete consenta la comunicazione da e verso la porta lato server Lustre 988 con porta lato client compresa tra la porta 512 e 1023.

    • Utilizzare i gruppi di sicurezza di rete per controllare il traffico: abilitare questa opzione e selezionare un gruppo di sicurezza di rete (NSG) per fungere da firewall virtuale per il file system. Selezionare + Un altro gruppo di sicurezza di rete per aggiungere il file system a un massimo di cinque gruppi NSG.
    • Squash root: queste impostazioni controllano se per i client che accedono al file system viene eseguito il mapping del relativo ID utente (UID) e ID gruppo (GID) in UID squash e GID squash.

      Squash: selezionare Nessuno o Radice. Il valore predefinito è None, pertanto non viene eseguito alcun remapping per impostazione predefinita.

      UID squash: se Squash è impostato su Root, viene eseguito il mapping dell'utente root (UID 0) a questo valore. Il valore predefinito per il server di amministrazione è 65534.

      GID squash: se Squash è impostato su Root, viene eseguito di nuovo il mapping dell'utente del gruppo root (GID 0) a questo valore. Il valore predefinito per il server di amministrazione è 65534.

    • Eccezioni allo squash radice: per escludere client specifici dalla configurazione dello squash radice, immettere l'indirizzo client come indirizzo IP o intervallo valido. Ad esempio, 10.0.2.4 o 10.0.[2-10].[1-255]. Selezionare + Altro indirizzo client per aggiungere fino a 10 eccezioni.
    • Chiave di cifratura: per impostazione predefinita, Oracle gestisce le chiavi utilizzate per cifrare un file system. Se si desidera un maggiore controllo sul ciclo di vita della chiave e su come viene utilizzata, è possibile selezionare la propria chiave di cifratura vault
Dopo l'avvio della creazione, il completamento del provisioning delle risorse backend richiederà molti minuti. Il tempo varia a seconda del livello di prestazioni e delle dimensioni del file system.

Attivazione di Lustre File System

  1. Andare ai dettagli del file system Lustre e trovare il comando di accesso dalla console.
  2. Da un client Linux con i moduli client Lustre installati, è possibile installare il file system. In questo client sono installati i moduli Lustre DKMS.
    [root@lustre-ol8-client ~]# rpm -qa | grep lustre
    lustre-client-2.15.5_oci1-1.el8.x86_64
    lustre-client-dkms-2.15.5_oci1-1.el8.noarch

    In alcuni ambienti con host GPU con rete RDMA gestita da Oracle Cloud Agent, l'aggiunta dell'interfaccia LNet inserisce una regola che impedisce la comunicazione dell'host tramite l'interfaccia predefinita (prima interfaccia dell'host). Ciò può causare problemi negli ambienti che utilizzano l'IP locale per la comunicazione interna, in particolare negli ambienti OKE. Il sistema immediato è che il ping all'IP locale non funzionerà. Per risolvere questo problema, utilizzare la seguente soluzione per disabilitare LNet dall'aggiunta di ulteriori instradamenti e regole.

    Eseguire questa operazione prima di aggiungere l'interfaccia LNet. Se l'interfaccia LNet non viene aggiunta in modo esplicito, applicarla prima di attivare il file system.

    echo 'options ksocklnd skip_mr_route_setup=1' >/etc/modprobe.d/lnet.conf && rmmod lnet; modprobe -v lnet
  3. Scaricare i moduli Lustre (se già caricati) per avviare senza problemi. Lo scaricamento dei moduli non funzionerà se è già stato attivato un file system. Se lustre_rmmod non scarica tutti i moduli, riavviare il sistema per iniziare di nuovo.
    [root@lustre-ol8-client ~]# lustre_rmmod 
  4. Attivare il file system Lustre. Se è necessario configurare un'interfaccia specifica per Lustre, utilizzare la configurazione lnetctl prima di tentare di caricare i moduli. Questo viene spiegato nella sezione successiva.
    [root@lustre-ol8-client ~]# modprobe lustre
    [root@lustre-ol8-client ~]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint

    Se l'attivazione non riesce con il messaggio di errore No such file or directory. Is the MGS specification correct?, è probabile che non sia in grado di eseguire la configurazione automatica di LNet (rete Lustre) a causa di più interfacce o di altre situazioni di rete nell'host. In questo caso, è necessario configurare manualmente LNet.

    L'errore assomiglia a:

    mount.lustre: mount 10.0.3.8@tcp:/lustrefs at /mnt/mymountpoint failed: No such file or directory
    Is the MGS specification correct?
    Is the filesystem name correct?
    If upgrading, is the copied client log valid? (see upgrade docs)

Configurare LNet (rete locale)

I seguenti passaggi sono necessari solo se i passaggi per l'installazione del file system non riescono e l'interfaccia corretta per Lustre non viene visualizzata in lnetctl net show. Se lnetctl net show mostra l'interfaccia corretta per Lustre, questi passaggi non sono necessari.
  1. Trovare il nome dell'interfaccia. Nel sistema possono essere presenti più interfacce. Scegliere l'interfaccia appropriata vicina al file system Lustre. Utilizzare il comando ip route per visualizzare le reti nel sistema e trovare un'interfaccia più appropriata per raggiungere il file system Lustre. Questa sarà l'interfaccia su cui avviene il trasferimento di dati principale. L'interfaccia utilizzata è enp0s5.
    [root@lustre-ol8-client ~]# ip addr
    L'output assomiglia a:
    ...
    2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc fq_codel state UP group default qlen 1000
        link/ether 02:00:17:12:91:e9 brd ff:ff:ff:ff:ff:ff
        inet 10.0.3.42/24 brd 10.0.3.255 scope global dynamic enp0s5
           valid_lft 84865sec preferred_lft 84865sec
        inet6 fe80::17ff:fe12:91e9/64 scope link
           valid_lft forever preferred_lft forever
  2. Eseguire i seguenti comandi:
    [root@lustre-ol8-client opc]# modprobe lnet
    [root@lustre-ol8-client opc]# lnetctl lnet configure
    [root@lustre-ol8-client opc]# lnetctl net add --net tcp --if enp0s5
    [root@lustre-ol8-client opc]# lnetctl net show
    L'output assomiglia a:
    net:
        - net type: lo
          local NI(s):
            - nid: 0@lo
              status: up
        - net type: tcp
          local NI(s):
            - nid: 10.0.3.42@tcp  <<<<<<<<<
              status: up
              interfaces:
                  0: enp0s5   <<<<<<<<

Attivare il file system

  1. Eseguire i comandi:
    [root@lustre-ol8-client opc]# mount -t lustre 10.0.3.8@tcp:/lustrefs /mnt/mymountpoint
    [root@lustre-ol8-client opc]# df -h /mnt/mymountpoint
    L'output assomiglia a:
    Filesystem Size Used Avail Use% Mounted on
    10.0.3.8@tcp:/lustrefs 31T 17M 30T 1% /mnt/mymountpoint
  2. Eseguire il comando:
    [root@lustre-ol8-client opc]# lfs df -h /mnt/mymountpoint
    L'output assomiglia a:
    UUID bytes Used Available Use% Mounted on
    lustrefs-MDT0000_UUID 563.4G 33.8M 513.4G 1% /mnt/mymountpoint[MDT:0]
    lustrefs-MDT0001_UUID 563.4G 33.7M 513.4G 1% /mnt/mymountpoint[MDT:1]
    lustrefs-OST0000_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:0]
    lustrefs-OST0001_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:1]
    lustrefs-OST0002_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:2]
    lustrefs-OST0003_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:3]
    lustrefs-OST0004_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:4]
    lustrefs-OST0005_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:5]
    lustrefs-OST0006_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:6]
    lustrefs-OST0007_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:7]
    lustrefs-OST0008_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:8]
    lustrefs-OST0009_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:9]
    lustrefs-OST000a_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:10]
    lustrefs-OST000b_UUID 2.6T 1.4M 2.4T 1% /mnt/mymountpoint[OST:11]
    
    filesystem_summary: 30.9T 16.4M 29.3T 1% /mnt/mymountpoint

Test delle operazioni di lettura e scrittura

Le metriche del servizio Storage di file con Lustre consentono di misurare le prestazioni, la capacità e lo stato di un file system. È possibile utilizzare i dati delle metriche per diagnosticare e risolvere i problemi.

Verrà eseguito un test delle operazioni di lettura e scrittura eseguendo un comando dd, quindi si passerà alla pagina delle metriche per visualizzare il dashboard delle metriche.

  1. Eseguire un comando dd simile al seguente:
    [root@hpc-client-0 test]# dd if=/dev/zero of=10G_file  bs=1M count=10240 oflag=direct ;sleep 120 ; dd of=/dev/null if=10G_file  bs=1M count=10240 iflag=direct
    L'output assomiglia a:
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 40.6989 s, 264 MB/s
    10240+0 records in
    10240+0 records out
    10737418240 bytes (11 GB, 10 GiB) copied, 39.2326 s, 274 MB/s
    In questo esempio, abbiamo una dimensione di blocco di 1 MB.
  2. Per visualizzare un set predefinito di grafici delle metriche nella console, fare clic sul menu di navigazione e fare clic su Memorizzazione.
  3. In Lustre, selezionare File system con Lustre.
  4. Selezionare il file system per il quale si desidera visualizzare le metriche.
  5. Nella pagina dei dettagli, in Risorse, selezionare Metriche.
Nella pagina Metriche viene visualizzato un set predefinito di grafici per il file system corrente. Lo storage di file con Lustre fornisce le metriche riportate di seguito.
  • ReadThroughput: espresso in byte letti al minuto.
  • WriteThroughput: espresso in byte letti al minuto.
  • DataReadOperations: numero di operazioni di lettura al minuto.
  • DataWriteOperation: numero di operazioni di scrittura al minuto.
  • MetadataOperations: numero di operazioni di metadati. 14 diverse operazioni di metadati disponibili, ad esempio getattr, setattr, mknod, link, unlink, mkdir e così via.
  • FileSystemCapacity: capacità totale e disponibile del file system.
  • FileSystemInodeCapacity: inodi totali e disponibili del file system.

Queste metriche possono essere esplorate utilizzando lo spazio di nomi oci_lustrefilesystem di OCI Metric Explorer, come mostrato nello screenshot riportato di seguito.


Segue la descrizione di lustre-metrics-explorer.png
Descrizione dell'immagine lustre-metrics-explorer.png

Di seguito è riportato un esempio di come le query nel linguaggio MQL (Monitoring Query Language) possono essere utilizzate nell'explorer delle metriche o in altri dashboard come Grafana.

Per ottenere il throughput di lettura:

ReadThroughput[1m]{resourceId = "your_filesystem_ocid", targetType = "OST", clientName ="all@all"}.grouping().sum()/60

Nota

60 viene utilizzato perché l'intervallo qui è di 1 minuto. Analogamente, è possibile utilizzare MQL per altre metriche.