Habilitar InfiniBand

Precaución

En este artículo, se hace referencia a CentOS, una distribución de Linux que está cerca del estado Fin de vida (EOL). Tenga en cuenta su uso y planeación en consecuencia.

Se aplica a: ✔️ Máquinas virtuales Linux ✔️ Máquinas virtuales Windows ✔️ Conjuntos de escalado flexibles ✔️ Conjuntos de escalado uniformes

Las máquinas virtuales de la serie HB y la serie Ncompatibles con RDMA se comunican a través de la red InfiniBand de latencia baja y ancho de banda alto. La funcionalidad de RDMA sobre dicha interconexión es crítica para potenciar la escalabilidad y el rendimiento de las cargas de trabajo de inteligencia artificial y HPC de nodos distribuidos. Las máquinas virtuales de las series HB y S habilitadas con InfiniBand se conectan en una estructura de árbol grueso sin bloqueos y con poco diámetro para lograr un rendimiento de RDMA coherente y optimizado.

Hay varias maneras de habilitar InfiniBand en los tamaños de máquina virtual compatibles.

Imágenes de máquinas virtuales con controladores de InfiniBand

Consulte Imágenes de máquinas virtuales para obtener una lista de imágenes de máquinas virtuales compatibles en Marketplace, que se cargan previamente con los controladores de InfiniBand (para máquinas virtuales SR-IOV o que no son SR-IOV) o se pueden configurar con los controladores adecuados para VM compatibles con RDMA. Las imágenes de VM Ubuntu-HPC y AlmaLinux-HPC en Marketplace son la forma más fácil de comenzar.

Extensiones de máquina virtual del controlador de InfiniBand

En Linux, se puede usar la extensión de máquina virtual InfiniBandDriverLinux para instalar los controladores OFED de Mellanox y habilitar InfiniBand en las máquinas virtuales de las series HB y N compatibles con SR-IOV.

En Windows, la extensión de máquina virtual InfiniBandDriverWindows instala controladores Windows Network Direct (en máquinas virtuales sin SR-IOV) o controladores Mellanox OFED (en máquinas virtuales con SR-IOV) para la conectividad RDMA. En algunas implementaciones de las instancias A8 y A9, la extensión HpcVmDrivers se agrega automáticamente. Tenga en cuenta que la extensión de máquina virtual HpcVmDrivers está en desuso, por lo que no se actualizará.

Para agregar la extensión de máquina virtual a una máquina virtual, puede usar los cmdlets de Azure PowerShell. Para obtener más información, consulte el artículo de características y extensiones de las máquinas virtuales. También puede trabajar con las extensiones para las máquinas virtuales implementadas en el modelo de implementación clásica.

Instalación manual

Los controladores OpenFabrics (OFED) de Mellanox se pueden instalar manualmente en máquinas virtuales de la serie HB y serie Ncompatibles con SR-IOV.

Linux

Los controladores OFED para Linux se pueden instalar con el ejemplo siguiente. Aunque el ejemplo que se muestra aquí es para RHEL/CentOS, los pasos son generales y se pueden usar en cualquier sistema operativo de Linux compatible, como Ubuntu (18.04, 19.04, 20.04) y SLES (12 SP4+ y 15). En el repositorio azhpc-images puede encontrar más ejemplos de otras distribuciones. Los controladores incluidos también funcionan, pero los controladores OFED de Mellanox proporcionan más características.

MLNX_OFED_DOWNLOAD_URL=http://content.mellanox.com/ofed/MLNX_OFED-5.0-2.1.8.0/MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz
# Optionally verify checksum
wget --retry-connrefused --tries=3 --waitretry=5 $MLNX_OFED_DOWNLOAD_URL
tar zxvf MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64.tgz

KERNEL=( $(rpm -q kernel | sed 's/kernel\-//g') )
KERNEL=${KERNEL[-1]}
# Uncomment the lines below if you are running this on a VM
#RELEASE=( $(cat /etc/centos-release | awk '{print $4}') )
#yum -y install http://olcentgbl.trafficmanager.net/centos/${RELEASE}/updates/x86_64/kernel-devel-${KERNEL}.rpm
sudo yum install -y kernel-devel-${KERNEL}
sudo ./MLNX_OFED_LINUX-5.0-2.1.8.0-rhel7.7-x86_64/mlnxofedinstall --kernel $KERNEL --kernel-sources /usr/src/kernels/${KERNEL} --add-kernel-support --skip-repo

Windows

Para Windows, descargue e instale los controladores OFED de Mellanox para Windows.

Habilitación de IP sobre InfiniBand (IB)

Si tiene previsto ejecutar trabajos de MPI, normalmente no se necesita IPoIB. La biblioteca MPI usará la interfaz de verbos para la comunicación de IB (a menos que use explícitamente el canal TCP/IP de la biblioteca MPI). Sin embargo, si tiene una aplicación que usa TCP/IP para la comunicación y quiere realizar la ejecución sobre IB, puede usar IPoIB sobre la interfaz de IB. Use los siguientes comandos (para RHEL/CentOS) para habilitar IP sobre InfiniBand.

Importante

Para evitar problemas, asegúrese de que no está ejecutando versiones antiguas de Agente de Microsoft Azure Linux (waagent). Recomendamos usar al menos la versión 2.4.0.2 antes de habilitar IP sobre IB.

sudo sed -i -e 's/# OS.EnableRDMA=n/OS.EnableRDMA=y/g' /etc/waagent.conf
sudo systemctl restart waagent

Pasos siguientes