Distribuisci il cluster Lustre HA e i client
Prepara il sistema operativo del server, installa NVIDIA DOCA-OFED, distribuisci il cluster HA Lustre e configura i client Lustre utilizzando i playbook Ansible di NetApp.
Prima di iniziare, completa e conserva l'inventario descritto in "Personalizza l'inventario di Lustre Ansible".
Distribuisci il cluster HA Lustre
-
Dalla `building_blocks/playbooks`directory nella tua copia di lavoro, prepara il sistema operativo sui server Lustre. Sostituisci `<inventory_path>`con il percorso della tua directory di inventario personalizzata:
ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml -
Installa NVIDIA DOCA-OFED su ogni server Lustre. Compila i moduli del kernel con il kernel che hai installato nel passaggio precedente. Segui la procedura per il tuo kernel in "Installazione e aggiornamento di NVIDIA DOCA-Host". Il seguente esempio mostra un'installazione di DOCA-OFED su RHEL o Rocky Linux.
-
Installa il pacchetto repository host DOCA e aggiorna la cache dei pacchetti. Sostituisci
<doca_host_package>con il pacchetto host DOCA per il tuo sistema operativo e architettura:dnf install -y wget tar wget https://www.mellanox.com/downloads/DOCA/<doca_host_package>.rpm rpm -i <doca_host_package>.rpm dnf clean all dnf makecache -
Compila i moduli del kernel DOCA per il kernel in esecuzione. Lo script stampa il percorso del pacchetto che crea:
dnf install -y doca-extra /opt/mellanox/doca/tools/doca-kernel-support -
Installa il pacchetto repository del modulo kernel creato dallo script, quindi aggiorna la cache dei pacchetti. Sostituisci
<doca_kernel_repo>con il percorso del passaggio precedente:rpm -Uvh <doca_kernel_repo>.rpm dnf makecache -
Installa lo spazio utente DOCA-OFED, il kernel e i pacchetti NVMe. Sostituisci
<kernel_version>con la versione del kernel in esecuzione:dnf install -y doca-ofed-userspace dnf install -y --disablerepo=doca doca-kernel-<kernel_version> dnf install -y kmod-mlnx-nvme
-
-
Esegui il playbook di distribuzione principale:
ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.ymlRegola --forksin base alle dimensioni della distribuzione per controllare quanti host Ansible configura in parallelo. Ad esempio, aggiungi--forks 20per un cluster più grande.
Il playbook esegue il provisioning di gruppi di volumi E-Series o pool e volumi DDP, configura la connettività host NVMe-oF, formatta e monta i target Lustre, configura LNet, applica l'ottimizzazione delle prestazioni e configura le risorse HA di Pacemaker.
|
|
Un'implementazione con un singolo building block forma un cluster a due nodi Pacemaker. Al nodo A viene assegnato un voto aggiuntivo in caso di failover. Per raggiungere il quorum in un cluster a due nodi, valuta la configurazione di un qdevice. Quando un'implementazione contiene più building block, ciascun building block contribuisce con una coppia di server a due nodi al cluster Pacemaker più grande, fino al limite di cluster documentato. Esamina la configurazione di fencing e quorum in "Guida utente all'amministrazione HA" così il cluster può ripristinare in sicurezza i target durante un errore di un nodo. |
Distribuisci i client Lustre
Distribuisci i client Lustre su qualsiasi sistema che richieda l'accesso al file system personalizzando il modello di distribuzione del client ed eseguendo il playbook del client.
-
Seleziona un sistema operativo client e un kernel compatibili da "Matrice di supporto Lustre". Compila e installa i pacchetti client Lustre per quel kernel da "netapp-lustre" se non sono già installati.
-
Crea una copia di lavoro della directory dei `clients`template, incluso il file `passwords.yml`condiviso, e seleziona il template che corrisponde al tuo fabric:
-
InfiniBand: "IB_lustre_cluster_clients"
-
-
Personalizza
lustre_client_inventory.yml,host_varsegroup_varsper i tuoi clienti. I riferimenti di riga nella tabella puntano ai file modello client RoCE nel tagansible-lustrerelease/1.0.0; il modello client InfiniBand utilizza le stesse variabili, salvo diversa indicazione.Campo variabile Ansible File modello ( release/1.0.0)Ambito Note Host client
lustre_clientsPer client
Elenca ogni host name del client.
Utente SSH del client e password di accesso
ssh_client_user/ssh_client_become_passa livello di cluster
Imposta la password become solo se l'utente SSH non è
root.Interfacce LNet
eseries_lustre_lneta livello di cluster
Nomi delle interfacce LNet lato client (valori a L13).
Monta NID MGS
lustre_client_mounts.mgsnodea livello di cluster
NID MGS utilizzati per montare il file system (valori a L20).
Nome file system
lustre_client_mounts.fsnamea livello di cluster
Deve corrispondere al cluster
fsname.Punto di mount
lustre_client_mounts.mount_pointa livello di cluster
Directory di mount del client.
IP di gestione client
ansible_hostRipeti per client
Un `host_vars/client_NN.yml`file per client.
Interfacce fabric di storage
eseries_roce_interfacesRipeti per client
Indirizzi dell'interfaccia frontend (valori a L15). Il template InfiniBand utilizza
eseries_ipoib_interfacesqui.Ripeti le impostazioni per ogni client. Crea un
host_vars/client_NN.ymlfile per ogni client e aggiungi l'host corrispondente alustre_client_inventory.yml. Popola il file condivisoclients/passwords.ymle crittografalo con Ansible Vault prima di eseguire il playbook del client. -
Esegui il playbook del client dalla directory del template del client:
ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml
Il playbook del client configura le interfacce di rete del client e LNet, e può creare un'unità di montaggio systemd persistente per il file system Lustre.