InfiniBand の有効化

注意

この記事では、間もなくサポート終了 (EOL) 状態になる Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

RDMA 対応HB シリーズおよび N シリーズ VM の通信は、低遅延で高帯域幅の InfiniBand ネットワークを介して行われます。 そのような相互接続を介した RDMA 機能は、分散ノードの HPC および AI ワークロードのスケーラビリティとパフォーマンスを向上させるために重要です。 InfiniBand 対応の HB シリーズおよび N シリーズの VM は、最適で一貫した RDMA のパフォーマンスのための、小直径設計の非ブロッキング ファット ツリーで接続されます。

対応する VM サイズで InfiniBand を有効にするには、さまざまな方法があります。

InfiniBand ドライバーが含まれる VM イメージ

Marketplace でサポートされている VM イメージの一覧については、「VM イメージ」を参照してください。これらは、InfiniBand ドライバーとともにあらかじめ読み込まれています (SR-IOV または非 SR-IOV の VM の場合)。または、RDMA 対応 VM に適切なドライバーを使用して構成できます。 マーケットプレースの Ubuntu-HPC および AlmaLinux-HPC VM イメージが、最も簡単な作業の開始方法です。

InfiniBand ドライバー VM 拡張機能

Linux の場合、SR-IOV 対応の HB シリーズと N シリーズの VM で、InfiniBandDriverLinux VM 拡張機能を使用して、Mellanox OFED ドライバーをインストールし、InfiniBand を有効にすることができます。

Windows では、InfiniBandDriverWindows VM 拡張機能は、RDMA 接続用に Windows Network Direct ドライバーを (SR-IOV に非対応の VM 上に) インストールするか、または Mellanox OFED ドライバーを (SR-IOV VM 上に) インストールします。 A8 インスタンスと A9 インスタンスの特定のデプロイでは、HpcVmDrivers 拡張機能は自動的に追加されます。 HpcVmDrivers VM 拡張機能は廃止される予定であり、更新されないことに注意してください。

VM に VM 拡張機能を追加するには、Azure PowerShell コマンドレットを使用できます。 詳しくは、仮想マシン拡張機能とその機能に関する記事をご覧ください。 クラシック デプロイ モデルにデプロイされている VM にも拡張機能を使用できます。

手動のインストール

Mellanox OpenFabrics ドライバー (OFED) は、SR-IOV 対応のHB シリーズN シリーズの VM に手動でインストールできます。

Linux

Linux 用 OFED ドライバーは、次の例を使用してインストールできます。 これらの例は RHEL/CentOS に対するものですが、手順は一般的で、Ubuntu (18.04、19.04、20.04)、SLES (12 SP4 以降、15) などの互換性のある Linux オペレーティング システムで使用できます。 他のディストリビューションのその他の例については、azhpc-images リポジトリを参照してください。 受信トレイドライバーも同様に機能しますが、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

Windows の場合は、Windows 用の Mellanox OFED ドライバーをダウンロードしてインストールします。

IP over InfiniBand (IB) を有効にする

MPI ジョブを実行する予定がある場合は、通常、IPoIB は必要ありません。 MPI ライブラリでは、IB 通信に動詞インターフェイスが使用されます (MPI ライブラリの TCP/IP チャネルを明示的に使用しない場合)。 ただし、通信に TCP/IP を使用するアプリがあり、IB 経由で実行したい場合は、IB インターフェイスで IPoIB を使用できます。 次のコマンド (RHEL/CentOS 用) を実行して、IP over InfiniBand を有効にします。

重要

問題を回避するには、古いバージョンの Microsoft Azure Linux エージェント (waagent) を実行していないことを確認します。 IB 経由で IP を有効にするには、少なくともバージョン 2.4.0.2 を使用することをお勧めします。

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

次のステップ