Aktivieren von InfiniBand

Achtung

Dieser Artikel bezieht sich auf CentOS, eine Linux-Distribution, die sich dem End-of-Life-Status (EOL) nähert. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.

Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen ✔️ Einheitliche Skalierungsgruppen

RDMA-fähige VMs der HB-Serie und der N-Serie kommunizieren über das InfiniBand-Netzwerk, das sich durch seine geringe Wartezeit und seine hohe Bandbreite auszeichnet. Die RDMA-Funktion über eine solche Verbindung ist entscheidend, um die Skalierbarkeit und Leistung von HPC- und KI-Workloads mit verteilten Knoten zu steigern. Die InfiniBand-fähigen VMs der HB-Serie und der N-Serie sind über einen nicht-blockierenden Fat-Tree mit einem geringen Durchmesser für eine optimierte und konsistente RDMA-Leistung verbunden.

Es gibt verschiedene Möglichkeiten, InfiniBand für die dazu geeigneten VM-Größen zu aktivieren.

VM-Images mit InfiniBand-Treibern

Unter Konfigurieren und Optimieren von virtuellen Computern finden Sie eine Liste der unterstützten VM-Images im Marketplace, die vorab mit InfiniBand-Treibern (für SR-IOV- oder Nicht-SR-IOV-VMs) geladen werden oder mit den entsprechenden Treibern für RDMA-fähige VMs konfiguriert werden können. Die Ubuntu-HPC- und AlmaLinux-HPC-VM-Images im Marketplace sind der einfachste Weg für den Einstieg.

InfiniBand-Treibererweiterungen für VMs

Unter Linux können Sie die InfiniBandDriverLinux-VM-Erweiterung verwenden, um die Mellanox OFED-Treiber zu installieren und InfiniBand auf den SR-IOV-fähigen VMs der HB-Serie und der N-Serie zu aktivieren.

Unter Windows installiert die VM-Erweiterung InfiniBandDriverWindows Windows Network Direct-Treiber (auf VMs ohne SR-IOV) oder Mellanox OFED-Treiber (auf VMs mit SR-IOV), um RDMA-Konnektivität herzustellen. In bestimmten Bereitstellungen von A8- und A9-Instanzen wird die Erweiterung HpcVmDrivers automatisch hinzugefügt. Beachten Sie, dass die VM-Erweiterung „HpcVmDrivers“ eingestellt wird. Sie wird nicht mehr aktualisiert.

Um die VM-Erweiterung einer VM hinzuzufügen, können Sie Azure PowerShell-Cmdlets verwenden. Weitere Informationen finden Sie unter Erweiterungen und Features für virtuelle Computer. Erweiterungen können auch für virtuelle Computer verwendet werden, die mit dem klassischen Bereitstellungsmodell bereitgestellt wurden.

Manuelle Installation

Mellanox OpenFabrics-Treiber (OFED) können manuell auf den SR-IOV-fähigen VMs der HB-Serie und der N-Serie installiert werden.

Linux

Die OFED-Treiber für Linux können mithilfe des folgenden Beispiels installiert werden. Obwohl das Beispiel hier für RHEL/CentOS gilt, sind die Schritte allgemein und können für jedes kompatible Linux-Betriebssystem wie Ubuntu (18.04, 19.04, 20.04) und SLES (12 SP4 oder höher und 15) verwendet werden. Weitere Beispiele für andere Distributionen finden Sie im azhpc-Images-Repository. Die enthaltenen Treiber funktionieren ebenfalls, die Mellanox OFED-Treiber bieten aber mehr Features.

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

Laden Sie für Windows den Mellanox OFED für Windows-Treiber herunter, und installieren Sie ihn.

Aktivieren von IP über InfiniBand (IB)

Wenn Sie planen, MPI-Aufträge auszuführen, wird IPoIB in der Regel nicht benötigt. Die MPI-Bibliothek verwendet die Verbenschnittstelle für die IB-Kommunikation (es sei denn, Sie verwenden explizit den TCP/IP-Kanal der MPI-Bibliothek). Wenn Sie jedoch über eine App verfügen, die TCP/IP für die Kommunikation verwendet und die Sie über IB ausführen möchten, können Sie IPoIB über die IB-Schnittstelle verwenden. Verwenden Sie die folgenden Befehle (für RHEL/CentOS), um IP über InfiniBand zu aktivieren.

Wichtig

Um Probleme zu vermeiden, stellen Sie sicher, dass Sie keine älteren Versionen des Microsoft Azure Linux-Agents (waagent) ausführen. Sie sollten mindestens Version 2.4.0.2 verwenden, bevor IP über IB aktiviert wird.

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

Nächste Schritte