Configuración de EFA clientes - FSxpara Lustre

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de EFA clientes

Utilice los siguientes procedimientos para configurar su cliente de Lustre para que acceda a un sistema EFA de archivos compatible con FSx Lustre.

Instalación de EFA módulos y configuración de interfaces

Para acceder a un FSx sistema de archivos de Lustre mediante una EFA interfaz, debe instalar los EFA módulos de Lustre y configurar EFA las interfaces. EFAactualmente es compatible con los clientes de Lustre que ejecutan Ubuntu 2.2 con una versión de kernel 6.8 o superior. Consulta el paso 3: Instalar el EFA software en la Guía del EC2 usuario de Amazon para ver los pasos para instalar el EFA controlador.

Para configurar su instancia de cliente en un sistema EFA de archivos habilitado
  1. Conéctate a tu EC2 instancia de Amazon.

  2. Copia el siguiente script y guárdalo como un archivo con el nombreconfigure-efa-fsx-lustre-client.sh.

    #!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin echo "Started ${0} at $(date)" eth_intf="$(ip -br -4 a sh | grep $(hostname -i)/ | awk '{print $1}')" efa_version=$(modinfo efa | awk '/^version:/ {print $2}' | sed 's/[^0-9.]//g') min_efa_version="2.12.1" # Check the EFA driver version. Minimum v2.12.1 supported if [[ -z "$efa_version" ]]; then echo "Error: EFA driver not found" exit 1 fi if [[ "$(printf '%s\n' "$min_efa_version" "$efa_version" | sort -V | head -n1)" != "$min_efa_version" ]]; then echo "Error: EFA driver version $efa_version does not meet the minimum requirement $min_efa_version" exit 1 else echo "Using EFA driver version $efa_version" fi echo "Loading Lustre/EFA modules..." sudo /sbin/modprobe lnet sudo /sbin/modprobe kefalnd ipif_name="$eth_intf" sudo /sbin/modprobe ksocklnd sudo lnetctl lnet configure echo "Configuring TCP interface..." sudo lnetctl net del --net tcp 2> /dev/null sudo lnetctl net add --net tcp --if $eth_intf # For P5 instance type which supports 32 network cards, # by default add 8 EFA interfaces selecting every 4th device (1 per PCI bus) echo "Configuring EFA interface(s)..." instance_type="$(ec2-metadata --instance-type | awk '{ print $2 }')" num_efa_devices="$(ls -1 /sys/class/infiniband | wc -l)" echo "Found $num_efa_devices available EFA device(s)" if [[ "$instance_type" == "p5.48xlarge" || "$instance_type" == "p5e.48xlarge" ]]; then for intf in $(ls -1 /sys/class/infiniband | awk 'NR % 4 == 1'); do sudo lnetctl net add --net efa --if $intf --peer-credits 32 done else # Other instances: Configure 2 EFA interfaces by default if the instance supports multiple network cards, # or 1 interface for single network card instances # Can be modified to add more interfaces if instance type supports it sudo lnetctl net add --net efa --if $(ls -1 /sys/class/infiniband | head -n1) --peer-credits 32 if [[ $num_efa_devices -gt 1 ]]; then sudo lnetctl net add --net efa --if $(ls -1 /sys/class/infiniband | tail -n1) --peer-credits 32 fi fi echo "Setting discovery and UDSP rule" sudo lnetctl set discovery 1 sudo lnetctl udsp add --src efa --priority 0 sudo /sbin/modprobe lustre sudo lnetctl net show echo "Added $(sudo lnetctl net show | grep -c '@efa') EFA interface(s)"
  3. Ejecute el script EFA de configuración.

    sudo apt-get install amazon-ec2-utils cron sudo chmod +x configure-efa-fsx-lustre-client.sh ./configure-efa-fsx-lustre-client.sh
  4. Utilice los siguientes comandos de ejemplo para configurar un trabajo cron que se reconfigure automáticamente EFA en las instancias cliente una vez reiniciadas:

    (sudo crontab -l 2>/dev/null; echo "@reboot /path/to/configure-efa-fsx-lustre-client.sh > /var/log/configure-efa-fsx-lustre-client-output.log") | sudo crontab -

EFAAñadir o eliminar interfaces

Cada sistema FSx de archivos de Lustre tiene un límite máximo de 1024 EFA conexiones en todas las instancias del cliente.

El configure-efa-fsx-lustre-client.sh script configura automáticamente el número de interfaces Elastic Fabric Adapter (EFA) de una EC2 instancia en función del tipo de instancia. Para las instancias P5 (p5.48xlargeop5e.48xlarge), configura 8 EFA interfaces de forma predeterminada. Para otras instancias con varias tarjetas de red, configura 2 interfaces. EFA Para las instancias con una sola tarjeta de red, configura 1 EFA interfaz. Cuando una instancia de cliente se conecta a un sistema FSx de archivos de Lustre, cada EFA interfaz configurada en la instancia de cliente se tiene en cuenta para el límite de 1024 EFA conexiones.

Las instancias de cliente con más EFA interfaces suelen admitir niveles de rendimiento más altos por instancia de cliente en comparación con las instancias de cliente con menos EFA interfaces. Siempre que no supere el límite de EFA conexión, puede modificar el script para aumentar o disminuir la cantidad de EFA interfaces por instancia y optimizar el rendimiento por cliente de sus cargas de trabajo.

Para añadir una interfaz: EFA

sudo lnetctl net add --net efa --if device_name --peer-credits 32

Dónde device_name aparece un dispositivo enls -1 /sys/class/infiniband.

Para eliminar una EFA interfaz:

sudo lnetctl net del --net efa --if device_name

Instalación del GDS controlador

Para usar GPUDirect Storage (GDS) on FSx for Lustre, debe usar una instancia de cliente Amazon EC2 P5 o G6 y el NVIDIA GDS controlador con una versión de lanzamiento 2.24.2 o superior.

Para instalar el controlador de NVIDIA GPUDirect almacenamiento en su instancia de cliente
  1. Clona el gds-nvidia-fs repositorioNVIDIA/que está disponible en GitHub.

    git clone https://github.com/NVIDIA/gds-nvidia-fs.git
  2. Tras clonar el repositorio, utilice los siguientes comandos para crear el controlador:

    cd gds-nvidia-fs/src/ export NVFS_MAX_PEER_DEVS=128 export NVFS_MAX_PCI_DEPTH=16 sudo -E make sudo insmod nvidia-fs.ko