Implementa el clúster de alta disponibilidad de Lustre y los clientes
Prepara el sistema operativo del servidor, instala NVIDIA DOCA-OFED, implementa el clúster Lustre de alta disponibilidad y configura los clientes de Lustre usando los playbooks de Ansible de NetApp.
Antes de empezar, completa y asegura el inventario que se describe en "Personaliza el inventario de Ansible de Lustre".
Implementa el clúster de alta disponibilidad de Lustre
-
Desde el directorio
building_blocks/playbooksde tu copia de trabajo, prepara el sistema operativo en los servidores Lustre. Sustituye<inventory_path>por la ruta de acceso a tu directorio de inventario personalizado:ansible-playbook -i <inventory_path>/lustre_inventory.yml deploy_lustre_os/deploy_lustre_os_playbook.yml -
Instala NVIDIA DOCA-OFED en cada servidor Lustre. Compila los módulos del kernel con el kernel que instalaste en el paso anterior. Sigue el procedimiento para tu kernel en "Instalación y actualización de NVIDIA DOCA-Host". El siguiente ejemplo muestra una instalación de DOCA-OFED en RHEL o Rocky Linux.
-
Instala el paquete del repositorio principal de DOCA y actualiza la caché de paquetes. Sustituye
<doca_host_package>por el paquete principal de DOCA correspondiente a tu sistema operativo y arquitectura: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 los módulos del kernel DOCA para el kernel que está en ejecución. El script muestra la ruta del paquete que crea:
dnf install -y doca-extra /opt/mellanox/doca/tools/doca-kernel-support -
Instala el paquete del repositorio de módulos del kernel que creó el script y luego actualiza la caché de paquetes. Reemplaza
<doca_kernel_repo>con la ruta del paso anterior:rpm -Uvh <doca_kernel_repo>.rpm dnf makecache -
Instala los paquetes de DOCA-OFED para el espacio de usuario, el kernel y NVMe. Sustituye
<kernel_version>por la versión del kernel que tengas en uso:dnf install -y doca-ofed-userspace dnf install -y --disablerepo=doca doca-kernel-<kernel_version> dnf install -y kmod-mlnx-nvme
-
-
Ejecuta el playbook de implementación principal:
ansible-playbook -i <inventory_path>/lustre_inventory.yml lustre_playbook.ymlAjusta --forkssegún el tamaño de la implementación para controlar cuántos hosts configura Ansible en paralelo. Por ejemplo, añade--forks 20para un clúster más grande.
El manual de procedimientos aprovisiona grupos de volúmenes E-Series o pools y volúmenes DDP, configura la conectividad de host NVMe-oF, formatea y monta los targets Lustre, configura LNet, aplica ajustes de rendimiento y configura los recursos HA de Pacemaker.
|
|
Una implementación con un bloque de construcción forma un clúster de dos nodos de Pacemaker. Al nodo A se le asigna un voto adicional en caso de conmutación por error. Para lograr el quórum en un clúster de dos nodos, considera configurar un qdevice. Cuando una implementación contiene varios bloques de construcción, cada bloque de construcción aporta un par de servidores de dos nodos al clúster de Pacemaker más grande, hasta el límite de clúster documentado. Revisa la configuración de fencing y quórum en el "Guía de usuario de la administración de HA" para que el clúster pueda recuperar de forma segura los objetivos durante una falla de nodo. |
Implementar clientes Lustre
Implementa clientes de Lustre en cualquier sistema que requiera acceso al sistema de archivos personalizando la plantilla de implementación del cliente y ejecutando el playbook del cliente.
-
Selecciona un sistema operativo cliente y un kernel compatibles en "Matriz de compatibilidad de Lustre". Compila e instala los paquetes del cliente Lustre para ese kernel desde "netapp-lustre" si aún no están instalados.
-
Crea una copia de trabajo del directorio de plantillas
clients, incluido su archivo compartidopasswords.yml, y selecciona la plantilla que coincida con tu fabric:-
InfiniBand: "IB_lustre_cluster_clients"
-
-
Personaliza
lustre_client_inventory.yml,host_varsygroup_varspara tus clientes. Las referencias de las líneas de la tabla apuntan a los archivos de plantilla de clientes RoCE en la etiquetaansible-lustrerelease/1.0.0; la plantilla de cliente InfiniBand usa las mismas variables salvo donde se indique lo contrario.Campo Variable de Ansible Archivo de plantilla ( release/1.0.0)Ámbito Notas Hosts cliente
lustre_clientsPor cliente
Enumera el nombre de host de cada cliente.
Usuario SSH del cliente y contraseña become
ssh_client_user/ssh_client_become_passA nivel de clúster
Establece la contraseña «become» solo si el usuario SSH no es
root.Interfaces LNet
eseries_lustre_lnetA nivel de clúster
Nombres de las interfaces LNet del lado del cliente (valores en L13).
Montar los NID de MGS
lustre_client_mounts.mgsnodeA nivel de clúster
NIDs de MGS utilizados para montar el sistema de archivos (valores en L20).
Nombre del sistema de archivos
lustre_client_mounts.fsnameA nivel de clúster
Debe coincidir con el clúster
fsname.Punto de montaje
lustre_client_mounts.mount_pointA nivel de clúster
Directorio de montaje del cliente.
Dirección IP de gestión de cliente
ansible_hostRepetir para cada cliente
Un archivo
host_vars/client_NN.ymlpor cliente.Interfaces de la estructura de red de almacenamiento
eseries_roce_interfacesRepetir para cada cliente
Direcciones de la interfaz front-end (valores en L15). La plantilla InfiniBand utiliza
eseries_ipoib_interfacesaquí.Repite la configuración para cada cliente. Crea un
host_vars/client_NN.ymlarchivo para cada cliente y añade el host correspondiente alustre_client_inventory.yml. Rellena el archivo compartidoclients/passwords.ymly encríptalo con Ansible Vault antes de ejecutar el playbook del cliente. -
Ejecuta el playbook del cliente desde el directorio de plantillas del cliente:
ansible-playbook -i lustre_client_inventory.yml lustre_client_playbook.yml
La guía de configuración del cliente configura las interfaces de red del cliente y LNet, y puede crear una unidad de montaje persistente de systemd para el sistema de archivos Lustre.