Включение InfiniBand

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

Виртуальные машины серииHB и N-серии RDMA взаимодействуют по низкой задержке и сети InfiniBand с высокой пропускной способностью. Поддержка RDMA в таком взаимодействии очень важна для повышения масштабируемости и производительности рабочих нагрузок распределенного узла HPC и ИИ. Виртуальные машины серии HB с поддержкой InfiniBand и виртуальные машины серии N подключены в неблокирующее дерево жира с низкой диаметром конструкции для оптимизированной и согласованной производительности RDMA.

Существует несколько способов включения InfiniBand на виртуальных машинах совместимого размера.

Образы виртуальных машин с драйверами InfiniBand

В разделе Образы виртуальных машин приведен список поддерживаемых образов виртуальных машин в Marketplace, которые уже имеют драйверы InfiniBand (для виртуальных машин SR-IOV или без SR-IOV) или которые можно настроить с помощью соответствующих драйверов для виртуальных машин с поддержкой RDMA. Образы виртуальных машин Ubuntu-HPC и AlmaLinux-HPC в Marketplace — самый простой способ приступить к работе.

Расширения драйвера InfiniBand для виртуальных машин

В Linux расширение виртуальной машины InfiniBandDriverLinux можно использовать для установки драйверов Mellanox OFED и включения InfiniBand на виртуальных машинах серии HB с поддержкой SR-IOV и серии N.

В Windows расширение виртуальных машин InfiniBandDriverWindows устанавливает драйверы Windows Network Direct (на виртуальных машинах без поддержки SR-IOV) или драйверы Mellanox OFED (на виртуальных машинах с поддержкой SR-IOV) для подключения RDMA. В некоторых развертываниях экземпляров A8 и A9 расширение HpcVmDrivers добавляется автоматически. Обратите внимание, что расширение виртуальной машины HpcVmDrivers не рекомендуется к использованию. Оно не будет обновляться.

Чтобы добавить в виртуальную машину расширение виртуальной машины, можно использовать командлеты Azure PowerShell. Дополнительные сведения см. в статье Обзор расширений и компонентов виртуальной машины под управлением Windows. Вы также можете работать с расширениями для виртуальных машин, развернутых в рамках классической модели развертывания.

Установка вручную

Драйверы Mellanox OpenFabrics (OFED) можно установить вручную на виртуальных машинах серии HB с поддержкойSR-IOV и серии N.

Linux

Драйверы OFED для Linux можно установить по приведенному ниже примеру. Хотя пример приведен для RHEL/CentOS, но шаги являются общими и могут использоваться для любой совместимой операционной системы Linux, такой как Ubuntu (18.04, 19.04, 20.04) и SLES (12 SP4+ и 15). Дополнительные примеры для других дистрибутивов находятся в репозитории azhpc-images. Также подходят встроенные драйверы, но драйверы Mellanox OFED предлагают больше возможностей.

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

Скачайте и установите драйверы Mellanox OFED для Windows.

Включение IP через InfiniBand (IB)

Если вы планируете выполнять задания MPI, обычно не требуется IPoIB. Библиотека MPI будет использовать интерфейс команд для связи по IB (если только вы явно не используете канал TCP/IP библиотеки MPI). Но если имеется приложение, использующее для обмена данными протокол TCP/IP, и вы хотите запускать его через IB, можно использовать IPoIB через интерфейс IB. Чтобы включить IP через InfiniBand используйте приведенные ниже команды (для RHEL/CentOS).

Внимание

Чтобы избежать проблем, убедитесь, что вы не работаете с более старыми версиями агента Microsoft Azure Linux (waagent). Перед включением IP-адреса по протоколу IB рекомендуется использовать по крайней мере версию 2.4.0.2 .

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

Следующие шаги