OCI上のオンデマンドHPCおよびAIプラットフォームの詳細
主要な本番テーマは、認証されたブラウザ受入れ、GPU Lustreポジショニング、ゴールデン・イメージの標準化、共有対話型アプリケーション・ランタイム、およびプロジェクト・ガバナンスの自動化です。
このソリューション・プレイブックでは、Open OnDemand(OOD)、Slurmワークロード管理、GPU自動スケーリング、および多層ストレージ・アーキテクチャを使用して、オンデマンドのHPCおよびAIプラットフォームをOCIに導入する方法を学習します。研究者、データサイエンティスト、エンジニアは、Webブラウザを介してインタラクティブなAIおよびHPC環境に安全にアクセスできます。このプラットフォームは、ワークロードの需要に基づいてGPUとコンピュート・リソースを動的にスケーリングします。
このアーキテクチャは、次の機能を組み合せています。
- Open OnDemandを使用したブラウザベースのHPCおよびAIアクセス。
- Microsoft Entra IDおよびOpenID Connect (OIDC)を使用したセキュアなシングル・サインオン(SSO)統合。
- 対話型およびバッチ・ジョブ用のスラムベースのワークロード・オーケストレーション。
- AI、ML、リモート・デスクトップおよびHPCワークロード用のCPUおよびGPUパーティションの自動スケーリング。
- OCI Object Storage、OCI File Storage (FSS)、JuiceFSおよびFile Storage with Lustreを使用した階層型ストレージ。
- FreeIPAを使用した一元化されたLinuxアイデンティティ管理。
- PrometheusおよびGrafanaを使用した統合監視。
- マルチユーザー・プロジェクトの分離と割当ての管理。
開始する前に
- OCI Computeのドキュメント
- File Storage with Lustreのドキュメント
- OCI Load Balancerのドキュメント
- OCI Identity and Access Managementのドキュメント
- OCI Network Security Groupsのドキュメント
デリバリ・チームは、次のことに精通している必要があります。
- Slurmワークロード・マネージャおよびパーティション設計。
- Linux高パフォーマンス・コンピューティング(HPC)環境と共有ファイル・システム。
- OCIネットワーキング、コンピュート、グラフィックス・プロセッシング・ユニット(GPU)シェイプ、ストレージ・サービス。
- OnDemandおよびBatch Connectアプリケーションを開きます。
- GPUベースのAIおよびMLワークロード。
- PrometheusやGrafanaなどのスタックを監視します。
- 自動スケール・ノードのゴールデン・イメージ・ライフサイクル管理。
アーキテクチャ
次のアーキテクチャは、OCIインフラストラクチャ・サービスと実績のあるオープン・ソースのHPCツールを組み合せて、バッチおよび対話型のワークロードにセキュアでスケーラブルなプラットフォームを提供します。
需要プラットフォーム-hpc-oci-arch-oracle.zip#GUID-6AF78407-525D-4CF8-A7FD-6AC4A30F0C12
概要レベルでは、ユーザーはHTTPS経由でODに到達し、Microsoft Entra IDを介して認証されます。OODでは、ブラウザからファイル、シェル・セッション、ジョブ・コンポーザおよび対話型アプリケーションにアクセスできます。Slurmスケジュールは、永続および自動スケーリングのCPUおよびGPUパーティション間で機能します。OCIの自動化により、コンピュート容量をオンデマンドでプロビジョニングし、ノード・ブートストラップ・ロジックにより、ユーザー・ワークロードが開始される前に、ID、Slurmランタイム、GPUデバイス、共有アプリケーション・パス、ストレージ・マウントを準備します。
このアーキテクチャは、OD 4.2、Slurm自動スケールCPUノード、Remote Desktop/noVNC、Job Composerパーティション選択、GPUノード・ブートストラップ・フロー、/odataデータ・マウント、/lustreアクセス・パターンおよびOOD /rnodeルーティングにハンズオン実装パターンを適用します。
ユーザーおよびアクセス・レイヤー
- OCIロード・バランサは、OODエンドポイントへのHTTPSアクセスを提供します。
- オプションのWebアプリケーション・ファイアウォール(WAF)、NSGまたは許可リストでは、境界制御が強制されます。
- Microsoft Entra IDは、ブラウザ・ユーザーにOIDC認証を提供します。
- 要塞または制限されたSSHパスにより、管理者アクセスが制御されます。
OnDemandサーバを開く
- OODダッシュボードでは、HPCユーザーのブラウザ・エントリが提供されます。
- ファイルおよびシェルアプリケーションは、ファイルおよびシェル操作を提供します。
- ジョブ・コンポーザはSlurmジョブを発行します。
- バッチ接続アプリケーションは、リモート・デスクトップ、VSコード、JupyterLabおよびRStudioセッションを提供します。
/nodeおよび/rnodeは、計算ノードでプロキシ対話型サービスをルーティングします。
HPCクラスタ
Slurm 25.11.0は、コントローラ・ノード、ログイン・ノード、永続コンピュート・パーティション、CPUパーティションの自動スケーリングおよびGPUパーティションの自動スケーリングを含むHPC環境を管理します。
- Slurmコントローラは、
slurmctld、slurmdbd、アカウンティング・データおよび自動スケール統合スクリプトをホストします。 - ログイン・ノードは、制御されたコマンドライン送信およびトラブルシューティング・アクセスを提供します。
- 永続コンピュート・パーティションは、即時容量を必要とするワークロードをホストします。
- CPUパーティションの自動スケーリングは、バッチおよび対話型のワークロードに柔軟なCPU容量を提供します。
- GPUパーティションの自動スケーリングは、ワークロード・タイプおよびイメージ・レーンごとに柔軟なGPU容量を提供します。
多層ストレージ・アーキテクチャ
| パス | バッキング・レイヤー | 主な目的 |
|---|---|---|
/home
|
OCI File Storage | ユーザーホームディレクトリとOOD状態 |
/scratch
|
OCI File Storageまたは高パフォーマンスの共有ストレージ | 勤務データと臨時職務の出力 |
/apps
|
OCI File Storage | 共有アプリケーションおよびモジュール・ツリー |
/odata
|
OCI Object Storageに支えられたJuiceFS | 耐久性のある共有データセットとプロジェクト・データ |
/lustre
|
Lustreを使用したファイル・ストレージ | 高スループットのAIトレーニング、チェックポイント、HPCシミュレーションI/O |
アイデンティティ管理
FreeIPAは、HPCレイヤーに一元化されたLinuxアイデンティティおよびアクセス管理を提供します。プロジェクト・グループは、マルチテナント・アクセス制御、割当て制限、チャージバック・モデルまたはショーバック・モデルを適用するために、Slurmアカウントにマップされます。
監視と自動化
PrometheusおよびGrafanaは、OOD、Slurm、コンピュート・ノード、GPUランタイムおよびストレージにわたって運用シグナルを収集します。バックグラウンドの自動化により、クラスタの容量スケールに応じて、ノードのブートストラップ、ホストの同期およびクリーンアップ・ワークフローの一貫性が保たれます。
レコメンデーション
次の推奨事項は、OCI HPCおよびOOD環境の実践的な実装パターンに基づいています。
専用コンパートメントの使用
ネットワーキング、アイデンティティ、ストレージ、共有サービス、GPUコンピュート、およびモニタリングのために、インフラストラクチャ・リソースをOCIコンパートメントに分割します。
ワークロード・タイプ別のGPUプールのデプロイ
インタラクティブなAI開発、本番トレーニング、推論ワークロード、バッチHPCジョブ、およびLustreで必要なGPUワークロード用に、個別のSlurmパーティションを作成します。
自動スケーリングの積極的な使用
- 高価なGPUノードには短い中断間隔を使用します。
- 待機時間依存のワークロードにのみウォームプールを使用します。
- パーティションおよびGPUタイプごとに個別のスケーリング・ポリシーを設定します。
- ヘルス・チェックを使用して、
munge、slurmd、ノード名の登録、汎用リソース(GRES)、マウントおよび対話型ランタイムの準備状況を確認します。
ストレージ・ワークロードの分離
- ホームディレクトリ、OOD状態、および対話型開発にはFSSを使用します。
- 永続共有データセットには、JuiceFSとともにObject Storageを使用します。
- 高スループットのトレーニング、チェックポイント、およびシミュレーション出力には、Lustreを使用します。
セキュアな対話型アクセス
- OODには、OIDCベースのSSOとMicrosoft Entra IDの統合を使用します。
- HTTPSのみのアクセスと制限付きSSH管理を使用します。
- コンピュート・ノードにプライベート・サブネットを使用します。
- 可能な場合は、広範なセキュリティ・リストよりもNSGを優先します。
- 最小権限のOracle Cloud Infrastructure Identity and Access Management (OCI IAM)ポリシーを使用します。
- プロジェクトベースのFreeIPAグループおよびSlurmアカウントを使用します。
- OODシェルの許可リストおよび
/rnodeホストの正規表現制御を強制します。
ユーザー・ワークフローの可観測性の実装
- Slurmノードの状態と失敗したジョブの理由を追跡します。
- 自動スケール履歴書および修復ログを追跡します。
- GPUヘルスおよび
nvidia-smi出力を追跡します。 mungeおよびslurmdサービスの状態を追跡します。- FSS、JuiceFS、および Lustreマウントの健全性を追跡します。
- OOD Apache、Passenger、およびユーザーごとのPUNエラーを追跡します。
- FreeIPA、DNS、LDAP、および Kerberosサービスの健全性を追跡します。
アップグレード時のOODカスタマイズの保持
OODアップグレードをアプリケーション・リリースとして処理し、カスタム・ウィジェット、ジョブ・コンポーザのパーティション処理、バッチ接続アプリケーション、シェルおよびファイル許可リスト、および各アップグレード後のプロキシ・ホスト制御を検証または再適用します。
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
パフォーマンス
GPUを大量に消費するAIワークロードにより、ネットワークおよびストレージのトラフィックが大幅に増加する可能性があります。
- 可能な場合は、GPUノード、Lustreおよびストレージ・パスを同じリージョンおよび可用性ドメインに配置します。
- GPUおよびストレージ負荷の高いワークロードに高帯域幅のネットワークを使用します。
- リージョン間のデータ移動を最小限に抑えます。
- GPUのローカリティおよびパーティション固有の動作について、Slurmスケジューリング・ポリシーをチューニングします。
- 安定したランタイム依存関係を持つGPUイメージを事前に作成して、コールドスタート時間を短縮します。
セキュリティ
コンピュート・ノードにプライベート・サブネットを使用し、SSHアクセスを制限し、最小権限のOCI IAMポリシーを適用し、ストレージ層を暗号化し、一元化されたアイデンティティ管理を統合し、監査ロギングと監視を有効にすることで、機密性の高いAIと調査ワークロードを保護します。
可用性
Slurmコントローラ、OOD Webバックエンド、FreeIPAサービス、共有ストレージ・システムおよび監視インフラストラクチャの高可用性を考慮します。
冗長コントローラの導入、Slurm Accountingデータベースのバックアップ、FreeIPAサービスの自動起動の検証、アップグレード前のOODロールバック・バックアップの保持により、回復力を向上させます。
コスト
GPUインフラストラクチャは、最大の運用コストを表すことができます。
- 自動スケーリングGPUパーティションを使用します。
- アイドル状態のGPUノードを自動的に一時停止します。
- 個別の開発、対話型および本番トレーニング・パーティション。
- 非アクティブなデータセットの耐久性のあるOCIオブジェクト・ストレージを優先します。
- ゴールデン・イメージを使用して、開始時間を短縮し、失敗したコールドスタート・サイクルを削減します。
工程
運用の最も重要な章では、クラウド・コンソールからだけでなく、ユーザー・ワークフローからも準備状況を測定する必要があります。
対話型ジョブの場合は、Slurmジョブの状態、ノード・サービスの状態、ストレージ・マウント、対話型アプリケーション・リスナー、OOD /nodeおよび/rnodeルーティング、および認証後のブラウザの起動動作を確認します。
本番準備状況チェックリスト
- 冗長なWebバックエンドにわたるOODデプロイメント。
- Microsoft Entra ID OIDCのルーティングおよびログアウト動作。
- すべての公開済Slurmパーティションにわたるジョブ・コンポーザのパーティション選択。
- リモートデスクトップの起動、noVNC接続、および
/rnodeプロキシルーティング。 - 自動スケールCPUノードのブートストラップおよび対話型ワークロードの受け入れ。
- GPUノードのブートストラップ、NVIDIAランタイム・チェック、GRES登録およびSlurmのヘルス。
- コード・サーバーおよびJupyterLabの
/appsにある共有対話型アプリケーション・ランタイム。 - バージョン・アップグレード後のOODカスタム・ヘルパー互換性。
必要なサービスおよびロールについて
- OCI Identity and Access Management/アイデンティティ・ドメイン
- OCIネットワーキング
- OCI DNS
- OCIロード・バランサ
- OCI Bastion
- OCIコンピューティング
- OCIブロック・ボリューム
- OCI File Storage
- Lustreを使用したファイル・ストレージ
- OCIオブジェクト・ストレージ
- OCIレジストリ
- OCI Vault
- OCIモニタリング、OCIロギング、OCI通知およびOCI監査
- オプションのOCI Web Application FirewallおよびOracle Cloud Guard
- プラットフォーム・サービス: Open OnDemand、Slurm、FreeIPA、Linux/POSIXアイデンティティおよび共有ランタイム・ツール
各サービスに必要なロールは次のとおりです。
| サービス名: ロール | 必須... |
|---|---|
OCI IAM/アイデンティティ・ドメイン: manage groups、manage dynamic-groups、manage policies |
UAT管理者グループ、動的グループおよび最小権限のIAMポリシーを作成および保守します。このロールをテナンシまたはアイデンティティ管理者に制限します。 |
OCIネットワーキング: manage virtual-network-family |
VCN、パブリック/プライベート・サブネット、ルート表、インターネット・ゲートウェイ、NAT Gateway、サービス・ゲートウェイ、NSGおよびセキュリティ・リストを作成およびメンテナンスします。 |
OCI DNS: manage dns |
OODエンドポイントおよび関連するイングレス名のパブリックまたは委任DNSレコードを管理します。 |
OCIロード・バランサ: manage load-balancers |
OOD用のパブリックHTTPSイングレス層を作成および操作し、トラフィックをプライベートOODバックエンドにルーティングします。 |
OCI Web Application Firewall (オプション): manage waf-family |
WAFがUATに対して有効になっている場合、WAFポリシー、アクセス・ルールおよびWebイングレス・コントロールを使用してパブリック・アプリケーション・エンドポイントを保護します。 |
OCI要塞: manage bastion-family |
プライベートログイン、コントローラ、または管理ホストへの監査済みの期限付き管理SSHセッションを作成します。 |
OCI Compute: manage instance-familyおよびmanage compute-management-family |
OODホスト、ログイン・ノード、Slurmコントローラ、FreeIPA、CPU/GPUワーカー、自動スケーリング・プールおよびイメージ・パイプライン・インスタンスをプロビジョニングおよび操作します。 |
OCIブロック・ボリューム: manage volume-family |
プラットフォーム、コントローラ、ログインおよびコンピュート・ノードのブート・ボリュームおよびアタッチされたブロック・ボリュームを管理します。 |
OCIファイル・ストレージ: manage file-family |
/home、/scratchおよび/appsの共有POSIXファイル・システム、マウント・ターゲット、エクスポート・セットおよびエクスポートを管理します。
|
Lustreを使用したファイル・ストレージ: manage lustre-file-family |
有効な場合、アクティブなHPC/AIワークロードI/Oに対して高スループットの/lustreファイル・システムを操作します。
|
OCI Object Storage: manage object-familyまたはスコープ指定manage bucketsおよびmanage objects |
JuiceFSバッキング・データ、耐久性のあるプロジェクト・データ、バックアップ、ライフサイクル・データ、およびオプションのLustreインポート/エクスポート・コンテンツを格納します。 |
OCIレジストリ: manage reposまたはスコープ指定read repos |
ゴールデン・イメージ・パイプラインおよび共有プラットフォーム・ランタイムで使用されるランタイム・イメージおよびアプリケーション・イメージをプッシュまたはプルします。 |
OCI Vault/Keys/Secrets: manage vaults、manage keys、manage secret-family。ランタイム・ノードは、必要な場合にのみread secret-familyを使用する必要があります
|
資格証明、キー、トークンおよび統合シークレットをインスタンスまたはスクリプトにハードコードせずに格納します。 |
OCIモニタリング: read metricsおよびmanage alarms |
UAT容量/パフォーマンス・メトリックを表示し、運用アラームを構成します。 |
OCIロギング: manage log-groups、read log-content、use unified-configuration |
ログ・グループの管理、ログの検索、およびログ・エージェントまたは統合エージェント設定の構成を行います。 |
OCI通知: manage ons-family |
操作通知用のアラーム・トピックおよびサブスクリプションを作成します。 |
OCI監査: read audit-events |
ガバナンス、トラブルシューティングおよびアクティビティのレビューについては、OCI APIアクティビティをレビューしてください。 |
クラウド・ガード(オプション): read cloud-guard-family、ガバナンス承認のあるmanage cloud-guard-familyのみ
|
セキュリティ・ポスチャおよび結果を確認します。明示的に承認された場合にのみ、レスポンダ管理を有効にします。 |
コンピュート/OOD/スラーム・インスタンスの動的グループ: read buckets、スコープ指定manage objects、read repos、use metrics、use log-content、オプションread secret-family |
プラットフォーム・インスタンスが、承認されたOCIオブジェクト・ストレージ・バケットへのアクセス、イメージのプル、テレメトリの発行およびインスタンス・プリンシパルを使用した承認済シークレットの取得を許可します。 |
イメージ・パイプラインの動的グループ: manage instance-family、manage volume-family、read object-family、スコープ指定manage repos、オプションread secret-family |
存続期間が長いユーザーAPIキーを使用せずに、ゴールデン・イメージまたはランタイム・アーティファクトを構築、検証、プロモートおよび公開します。 |
Lustreを使用したファイル・ストレージ同期の動的グループ(使用する場合): read bucketsおよびスコープ指定manage objects |
Lustreを使用したファイル・ストレージのインポート/エクスポートまたは承認済OCIオブジェクト・ストレージ・バケットとの同期を許可します。 |
OODアプリケーション・ロール: OOD user / OOD admin |
ユーザーがファイル、シェル、デスクトップ、コード・サーバー、JupyterLabおよびジョブにアクセスできるようにし、プラットフォーム管理者がOOD構成およびアプリケーションを管理できるようにします。 |
Slurmロール: user, account/partition admin, or scheduler admin |
ジョブの発行、アカウント/パーティション/QOSの管理、およびCPU/GPUスケジューリング・ポリシーの運用を行います。 |
Linux/POSIXロール: POSIXユーザー/グループおよび制御されたsudo |
プラットフォームノードでのシェルログイン、ファイルアクセス権、プロジェクトグループアクセス、および緊急管理を制御します。 |
FreeIPA/アイデンティティ・サービス・ロール: identity administrator |
POSIX ID、グループ、HBAC/DNS (該当する場合)、およびUATのホスト/ユーザーの登録を管理します。 |
必要なものを得るには、Oracle製品、ソリューションおよびサービスを参照してください。
