このリファレンスでは、クライアント仮想マシン (VM) と Azure Managed Lustre (AMLFS) ファイル システムのネットワーク構成が全体的なパフォーマンスに与える影響について説明します。
AMLFS とクライアント間のネットワーク スループットと待機時間は、ジョブの完了時間に直接影響します。 予測可能で高いパフォーマンスを得るには、次の設計原則に従います。
- すべてのクライアント VM で高速ネットワークを使用します。
- AMLFS とクライアント VM を、可用性ゾーンをサポートするリージョン内の同じ可用性ゾーンに配置します。
- クライアントと AMLFS の間のネットワーク ルーティングは、可能な限り直接的な状態に保ち、データ パス内の余分なホップを最小限に抑えるか、まったく使用しません。
環境の前提条件
これらの推奨事項は、次の環境を前提としています。
- 仮想ネットワーク (VNet) にデプロイされた Azure Managed Lustre ファイル システム。
- AMLFS の前提条件を満たす 1 つ以上の Linux クライアント VM。
- Lustre クライアントのインストールとファイル システムへのクライアントの接続に関する説明に従って、Lustre クライアントがインストールおよびマウントされています。
高速ネットワーク要件
高速ネットワークでは、単一ルート I/O 仮想化 (SR-IOV) を使用して、基本的なネットワーク アダプターと比較して、スループットの向上、待機時間の短縮、ジッターの削減を実現します。 I/O 集中型 AMLFS ワークロードの場合、Microsoft では、すべてのクライアント VM で高速ネットワークを有効にすることを強くお勧めします。 詳細については、 Azure 高速ネットワークの概要に関するページを参照してください。
AMLFS のクライアント VM を次のように計画します。
- 高速ネットワークをサポートする VM サイズに優先順位を付けます。 これには、すべての Azure HPC と AI VM のサイズが含まれます。
- ネットワーク インターフェイスを作成するときに高速ネットワークを有効にするか、VM サイズでサポートされている場合は高速ネットワークを有効にしてインターフェイスを更新します。 ポータル、Azure CLI、PowerShell の詳細なオプションについては、「 Azure Virtual Machines の高速ネットワークの管理」を参照してください。
- Azure CLI、Bicep、Terraform、または ARM テンプレートを使用してクライアント VM をデプロイする場合は、高速ネットワークが既定で有効になるようにネットワーク インターフェイスを構成します。
- Azure CycleCloud、Azure Batch、Azure Kubernetes Service (AKS) などのオーケストレーターを使用してクライアント プールをプロビジョニングする場合は、高速ネットワークをサポートして有効にする VM サイズと NIC 設定がノード プールまたは VM 定義で指定されていることを確認します。
次の方法で、高速ネットワークがクライアント VM で有効になっていることを検証できます。
- Azure portal で、ネットワーク インターフェイス リソースを開き、 高速ネットワーク が [有効] に設定されていることを確認します。
- VM で、ネットワーク インターフェイスがディストリビューションのドキュメントに従って高速ネットワーク ドライバーを使用していることを確認します。
スクリプトまたはコマンド ライン ツールから設定を確認するその他のオプションについては、「 高速ネットワークが有効になっていることを確認する」を参照してください。
すべての AMLFS クライアントで高速ネットワークを有効にすると、ノードごとのスループットを最大化し、ネットワーク処理の CPU オーバーヘッドを削減できます。これは、高度に並列の Lustre ワークロードにとって重要です。
可用性ゾーンに関する考慮事項
可用性ゾーンをサポートするリージョンでは、AMLFS は常に特定の可用性ゾーンにデプロイされます。 クライアント VM の配置を AMLFS ゾーンに合わせて調整して、待機時間を最小限に抑え、ゾーン間のトラフィックを回避します。 Azure の可用性ゾーンの概要については、「 可用性ゾーンの概要」を参照してください。
次のガイドラインに従ってください。
- クライアント VM をデプロイするときは、AMLFS ファイル システムと同じ可用性ゾーンに配置します。
- ゾーン間トラフィックによって待機時間が増加する可能性があるため、あるゾーン内のクライアントが主に別のゾーンの AMLFS にアクセスする設計は避けてください。
- 大規模なクラスターの場合は、ワークロードまたはジョブの種類別にクライアントをグループ化し、各グループを使用する AMLFS インスタンスと同じゾーンに保持します。
回復性または運用上の理由で複数のゾーンにまたがる必要があり、ゾーン間の待機時間によってパフォーマンスが低下する場合は、次の点を考慮してください。
- 待機時間の影響を受けやすいジョブや帯域幅を集中的に使用するジョブを AMLFS と同じゾーンに保持する。
- 別のゾーンで追加の AMLFS インスタンスを使用して、個別のワークロードのデータ アクセスをローカライズします。
特定のリージョンの各可用性ゾーンで使用可能な VM サイズを確認するには、「 VM SKU の可用性を確認する」の Azure CLI または PowerShell ガイダンスを使用します。
ネットワーク トポロジに関する考慮事項
クライアント VM と AMLFS の間のネットワーク ホップが増えるたびに、待機時間が増加し、スループットが低下し、ジッターが発生する可能性があります。 パフォーマンスを最大限に高めるには、AMLFS とクライアント VM を同じ仮想ネットワークにデプロイし、追加のネットワーク仮想アプライアンスやデータ パス上の中間ホップを使用せずに、サブネット間で直接ルーティングを使用します。 VNet でユーザー定義ルート (UDR) を使用する場合は、クライアント サブネットと AMLFS サブネットの間のシステム ルートがオーバーライドされないようにして、Lustre トラフィックが直接パスに留まらないようにします。
次のステップ
この記事では、ネットワーク構成、可用性ゾーンの配置、およびルーティングを調整して、AMLFS のパフォーマンスを最適化する方法について説明しました。
デプロイをさらに最適化するには、次を参照してください。