クイック スタート - Marketplace を使用して Slurm 用の Azure CycleCloud ワークスペースをデプロイする

Azure CycleCloud Workspace for Slurm は無料の Marketplace アプリケーションであり、HPC ワークロードと AI ワークロードのコンピューティングリソースとストレージ リソースを管理するためのシンプルで安全でスケーラブルな方法を提供します。 このクイック スタートでは、Marketplace アプリケーションを使用して Slurm 用 CycleCloud ワークスペースをインストールします。

前提 条件

このクイック スタートでは、次のものが必要です。

  1. アクティブなサブスクリプションを持つ Azure アカウント
  2. サブスクリプション レベルの 共同作成者 ロールとユーザー アクセス管理者 ロールの

デプロイ方法

  • Azure portalにサインインします。
  • 左上の + Create a Resource オプションをクリックします
  • ボックスに「Slurm 入力し、Slurm用の Azure CycleCloud ワークスペース 選択します。
  • [Azure CycleCloud Workspace for Slurm] ページで、[の作成] 選択します。

Slurm マーケットプレースの Azure CycleCloud ワークスペースの画面 のスクリーンショット

基本

  • [Slurm アカウントの新しい Azure CycleCloud ワークスペース ] ページで、次の詳細を入力または選択します。
    • サブスクリプション: まだ選択されていない場合は、使用するサブスクリプションを選択します。
    • リージョン: Slurm 環境用の CycleCloud ワークスペースをデプロイする Azure リージョンを選択します。
    • リソース グループ: Slurm アカウント用の Azure CycleCloud ワークスペースのリソース グループを選択するか、新しいリソース グループを作成します。
    • CycleCloud VM サイズ: 新しい VM サイズを選択するか、既定値のままにします
    • 管理者ユーザー: CycleCloud 管理者アカウントの名前とパスワードを入力します。
    • 管理者 SSH 公開キー: 管理者アカウントの公開 SSH キーを直接選択するか、Azure の SSH キー リソースに格納されている場合に選択します。

[基本] オプション画面のスクリーンショット

ファイル システム

ユーザーのホーム ディレクトリ - 新規作成

ユーザーのホーム ディレクトリを配置する場所を指定します。 スケジューラ VM を接続されたデータディスクを持つ NFS サーバーとして使用する新しい 組み込み NFS を作成します。 /shared および /home Builtin NFS の [新しいオプションの作成] 画面のファイル システム マウントのスクリーンショット

Azure NetApp Files で新しい を作成すると、指定した容量とサービス レベルの ANF アカウント、プール、ボリュームが作成されます。 /shared ファイルと /home Azure NetApp ファイルのファイル システム マウントの [新しいオプションの作成] 画面のスクリーンショット

ユーザーのホーム ディレクトリ - 既存のディレクトリを使用する

既存の NFS マウント ポイントがある場合は、[既存の を使用] オプションを選択し、マウントする設定を指定します。 /shared および /home use external NFS オプション画面のファイル システム マウントのスクリーンショット

追加のファイル システム マウント - 新規作成

プロジェクト データ用に追加のファイル システムをマウントする必要がある場合は、新しいファイル システムを作成するか、既存のファイル システムを指定します。 新しい Azure NetApp Files ボリュームまたは Azure Managed Lustre ファイルシステムを作成できます。

新しい Azure NetApp Files を作成するための追加のファイル システム マウントのスクリーンショット

新しい Azure Managed Lustre を作成するための追加のファイル システム マウントのスクリーンショット

追加のファイル システム マウント - 既存のものを使用する

既存の外部 NFS マウント ポイントまたは Azure Managed Lustre ファイルシステムがある場合は、マウント オプションを指定できます。

既存の外部 NFS に対する追加のファイル システム マウントのスクリーンショット

ネットワーキング

新しい仮想ネットワークとサブネットを作成する場合、または既存の仮想ネットワークとサブネットを使用する場合は、ここで指定します。

新しい仮想ネットワークを作成する

新しい を作成するためのネットワーク オプションのスクリーンショット

  • 対象となるコンピューティング ノードの数と一致する CIDR を選択し、ベース IP アドレスを指定します。
  • 企業の IT によって提供される直接接続がない場合は、Bastion を作成することをお勧めします。
  • インターネットへの送信接続を提供するには、NAT ゲートウェイの作成が必要です。 これは2025年に必須となり、一部の企業によって既に思考ポリシーが適用されています。
  • Bastion や VPN ゲートウェイなどのサービスを提供できるピアリング先のハブが既にある場合は、既存の仮想ネットワークにピアリングします。 ピアリングされた VNET と互換性のあるベース IP アドレスを選択するように注意してください。 ピアリングされた VNET にゲートウェイがある場合は、[ゲートウェイ転送を許可する] を確認します。

既存の仮想ネットワークを使用する

既存の仮想ネットワークを使用する前に、「Plan your CycleCloud Workspace for Slurm Deployment の前提条件を確認してください

既存のものを使用するためのネットワーク オプションのスクリーンショット

Slurm の設定

Scheduler ノードとログイン ノードに使用する VM のサイズとイメージを指定します。 イメージは、関連付けられた URI を使用して Azure Marketplace で提供される HPC イメージです。

イメージ名 URI
Alma Linux 8.7 almalinux:almalinux-hpc:8_7-hpc-gen2:latest
Ubuntu 20.04 microsoft-dsvm:ubuntu-hpc:2004:latest
Ubuntu 22.04 microsoft-dsvm:ubuntu-hpc:2204:latest
カスタム イメージ イメージ URN またはイメージ ID を指定する必要があります

Custom Image 選択した場合は、既存のマーケットプレース イメージのイメージ URN、または Azure コンピューティング ギャラリー内のイメージのイメージ ID を指定する必要があります。

スケジューラ、ログイン ノード、コンピューティング ノードで同じイメージを使用する場合は、Use image on all nodes を確認することもできます。

起動時にプロビジョニングするログイン ノードの数と最大数を設定します。 最後に、正常性チェックを有効にすると、HPC と GPU パーティションのノード正常性チェックが実行され、起動時に異常なノードが自動的に削除されます。

[Slurm 設定] の スクリーンショット

Slurm ジョブ アカウンティングを有効にする場合は、チェック ボックスをオンにして接続オプションを表示します。 以前にデプロイした Azure Database for MySQL フレキシブル サーバー リソースが必要であることに注意してください。 独自の仮想ネットワークを提供するか、デプロイの一部として新しい仮想ネットワークを作成するときに VNET ピアリングを使用する場合は、FQDN またはプライベート IP を指定して接続できます。 さらに、新しい仮想ネットワークを作成する場合は、プライベート エンドポイント経由の接続を使用できます。

ジョブ アカウンティング データベースの [Slurm Setting]\(Slurm 設定\) オプションのスクリーンショット。直接 FQDN

プライベート エンドポイントを使用したジョブ アカウンティング データベースの Slurm 設定オプションのスクリーンショット

パーティション設定

Slurm 用の Azure CycleCloud ワークスペースには、次の 3 つの定義された Slurm パーティションが付属しています。

  • HTC : MPI 以外のジョブを取り入れ、
  • HPC: 主に INFiniBand サポートで VM の種類を使用する密結合 MPI ジョブの場合、
  • GPU : MPI および非 MPI GPU ジョブの場合

イメージと、各パーティションに対して CycleCloud によって動的にプロビジョニングされるノードの最大数を設定できます。 HPC および GPU ジョブにスポット インスタンスを使用することは通常はベスト プラクティスではないため、HTC パーティションのみがスポット インスタンスの使用を許可します。 ただし、これらの設定は、CycleCloud UI でのデプロイ後にオーバーライドできます。

[パーティション設定] オプションの スクリーンショット

タグ

必要なリソースに関連するタグを設定します。 Node Array タグは、CycleCloud によって動的にプロビジョニングされる Virtual Machines に適用されます。

[タグ] オプションの のスクリーンショット

確認と作成

オプションを確認します。 この手順では、いくつかの検証も処理されます。 レビュー の スクリーンショット

渡されたら、[ の作成] ボタンをクリックしてデプロイを初期化します 進行中のデプロイのスクリーンショット

デプロイの状態と手順に従います。

デプロイを確認する

デプロイ時に指定されたユーザー名と SSH キーを使用して Bastion を使用して ccw-cyclecloud-vm に接続します。

[Connect with Bastion]\(Bastion で接続\) メニューのスクリーンショット [Connect with Bastion connection options]\(Bastion 接続オプションを使用して接続\) のスクリーンショット

接続したら、cloud-init ログを確認して、すべてが正しいことを確認します。

$tail -f -n 25 /var/log/cloud-init-output.log
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Waiting for Azure.MachineType to be populated...
Starting cluster ccws....
----------------------------
ccws : allocation -> started
----------------------------
Resource group: 
Cluster nodes:
    scheduler: Off -- --  
Total nodes: 1
CC start_cluster successful
/
exiting after install
Cloud-init v. 23.4-7.el8_10.alma.1 running 'modules:final' at Wed, 12 Jun 2024 10:15:53 +0000. Up 11.84 seconds.
Cloud-init v. 23.4-7.el8_10.alma.1 finished at Wed, 12 Jun 2024 10:28:15 +0000. Datasource DataSourceAzure [seed=/dev/sr0].  Up 754.29 seconds

次に、クライアント マシンと CycleCloud VM の間の接続を確立します。 これは、会社の IT、VPN、Bastion トンネリング、会社で許可されている場合は接続されたパブリック IP から取得できます。 https://<cycleccloud_ip>を参照して Web インターフェイスに接続し、デプロイ中に指定されたユーザー名とパスワードで認証します。 Scheduler ノードと Login ノードの両方が実行されていることを確認します。

ログイン ノードに接続する

Bastion を使用する場合は、util/ssh_thru_bastion.sh または util/tunnel_thru_bastion.sh ユーティリティ スクリプトのいずれかを使用して接続します。ここで 提供されています。 Bastion を使用していない場合は、直接接続を自分で確立する必要があります。