Scopri di più sulle piattaforme HPC e AI on-demand su OCI
I temi di produzione principali sono l'accettazione autenticata del browser, il posizionamento di GPU Lustre, la standardizzazione delle immagini d'oro, i runtime delle applicazioni interattive condivise e l'automazione della governance dei progetti.
In questo playbook di soluzioni, scopri come distribuire una piattaforma HPC e AI su richiesta su OCI utilizzando Open OnDemand (OOD), gestione dei carichi di lavoro Slurm, scalabilità automatica GPU e un'architettura di storage multilivello. Ricercatori, data scientist e ingegneri possono accedere in modo sicuro agli ambienti interattivi di intelligenza artificiale e HPC tramite un browser Web. La piattaforma ridimensiona dinamicamente le risorse GPU e di computazione in base alla domanda del carico di lavoro.
L'architettura combina le seguenti funzionalità:
- Accesso HPC e AI basato su browser mediante Open OnDemand.
- Integrazione sicura Single Sign-On (SSO) mediante Microsoft Entra ID e OpenID Connect (OIDC).
- Orchestrazione dei carichi di lavoro basata su slurm per processi interattivi e batch.
- Ridimensionamento automatico delle partizioni CPU e GPU per carichi di lavoro AI, ML, desktop remoto e HPC.
- Storage a più livelli mediante OCI Object Storage, OCI File Storage (FSS), JuiceFS e File Storage con Lustre.
- Gestione centralizzata delle identità Linux con FreeIPA.
- Monitoraggio integrato con Prometheus e Grafana.
- Isolamento dei progetti multiutente e gestione delle quote.
Operazioni preliminari
- Documentazione su OCI Compute
- Documentazione sullo storage di file con Lustre
- Documentazione di OCI Load Balancer
- Documentazione di OCI Identity and Access Management
- Documentazione sui gruppi di sicurezza di rete OCI
Il team di consegna dovrebbe avere familiarità con:
- Gestione del carico di lavoro slurm e progettazione delle partizioni.
- Ambienti HPC (High-Performance Computing) Linux e file system condivisi.
- Forme di rete, computazione, unità di elaborazione grafica (GPU) OCI e servizi di storage.
- Aprire le applicazioni OnDemand e Batch Connect.
- Carichi di lavoro AI e ML basati su GPU.
- Monitoraggio di stack come Prometheus e Grafana.
- Golden Image lifecycle management per i nodi di scala automatica.
Architettura
La seguente architettura combina i servizi dell'infrastruttura OCI con strumenti HPC open source collaudati per fornire una piattaforma sicura e scalabile per carichi di lavoro batch e interattivi:
domanda-piattaforma-hpc-oci-arch-oracle.zip#GUID-6AF78407-525D-4CF8-A7FD-6AC4A30F0C12
A livello avanzato, gli utenti raggiungono OOD tramite HTTPS e eseguono l'autenticazione tramite Microsoft Entra ID. OOD fornisce l'accesso browser a file, sessioni shell, Job Composer e applicazioni interattive. Le pianificazioni Slurm funzionano su partizioni CPU e GPU permanenti e di ridimensionamento automatico. L'automazione OCI fornisce capacità di computazione su richiesta e la logica di bootstrap dei nodi prepara identità, runtime di slot, dispositivi GPU, percorsi delle applicazioni condivise e accessi di storage prima dell'avvio dei carichi di lavoro degli utenti.
Questa architettura applica pattern di implementazione pratici su OOD 4.2, nodi CPU a scala automatica Slurm, Desktop remoto/noVNC, selezione delle partizioni di Job Composer, flussi di bootstrap dei nodi GPU, installazione dei dati /odata, pattern di accesso /lustre e instradamento OOD /rnode.
Utenti e livello di accesso
- OCI Load Balancer fornisce l'accesso HTTPS all'endpoint OOD.
- Web Application Firewall (WAF), NSG o liste di inclusione facoltativi applicano controlli perimetrali.
- Microsoft Entra ID fornisce l'autenticazione OIDC per gli utenti del browser.
- I percorsi SSH bastion o limitati forniscono l'accesso controllato all'amministratore.
Apri server OnDemand
- Il dashboard OOD fornisce la voce del browser per gli utenti HPC.
- Le applicazioni File e Shell forniscono operazioni su file e shell.
- Job Composer sottomette i job Slurm.
- Le applicazioni Batch Connect offrono sessioni Remote Desktop, VS Code, JupyterLab e RStudio.
/nodee/rnodeinstrada i servizi interattivi proxy sui nodi di calcolo.
Cluster HPC
Slurm 25.11.0 gestisce l'ambiente HPC, che include nodi controller, nodi di login, partizioni di calcolo permanenti, partizioni CPU di ridimensionamento automatico e partizioni GPU di ridimensionamento automatico.
- Il controller Slurm ospita gli script di integrazione
slurmctld,slurmdbd, dati contabili e scala automatica. - Il nodo di login fornisce accesso controllato alla riga di comando per l'invio e la risoluzione dei problemi.
- La partizione di computazione permanente ospita carichi di lavoro che richiedono capacità immediata.
- La scala automatica delle partizioni della CPU fornisce capacità elastica della CPU per carichi di lavoro batch e interattivi.
- Le partizioni GPU di scala automatica offrono capacità GPU elastica in base al tipo di carico di lavoro e alla corsia delle immagini.
Architettura di storage su più livelli
| Percorso | Livello di supporto | Scopo principale |
|---|---|---|
/home
|
OCI File Storage | Directory home utente e stato OOD |
/scratch
|
Storage di file OCI o storage condiviso ad alte prestazioni | Dati di lavoro e output job temporaneo |
/apps
|
OCI File Storage | Alberi di applicazioni e moduli condivisi |
/odata
|
JuiceFS supportato da OCI Object Storage | Data set condivisi e dati di progetto durevoli |
/lustre
|
Storage di file con Lustre | Formazione AI ad alto throughput, checkpoint e simulazione I/O HPC |
Identity Management
FreeIPA fornisce la gestione centralizzata delle identità e degli accessi Linux per il livello HPC. I gruppi di progetti eseguono il mapping ai conti Slurm per applicare controlli di accesso multi-tenant, quote e modelli di chargeback o showback.
Monitoraggio e automazione
Prometheus e Grafana raccolgono segnali operativi su OOD, Slurm, nodi di calcolo, runtime GPU e storage. L'automazione in background mantiene il bootstrap dei nodi, la sincronizzazione degli host e i flussi di lavoro di cleanup coerenti con la scalabilità della capacità del cluster.
Suggerimenti
I suggerimenti riportati di seguito si basano su modelli di implementazione pratici per gli ambienti HPC e OOD OCI.
Usa compartimenti dedicati
Separa le risorse dell'infrastruttura in compartimenti OCI per networking, identità, storage, servizi condivisi, computazione GPU e monitoraggio.
Distribuisci pool GPU per tipo di carico di lavoro
Crea partizioni Slurm separate per lo sviluppo interattivo dell'intelligenza artificiale, la formazione alla produzione, i carichi di lavoro di inferenza, i processi HPC in batch e i carichi di lavoro GPU richiesti da Lustre.
Usa scala automatica in modo aggressivo
- Utilizzare intervalli di sospensione brevi per i costosi nodi GPU.
- Utilizza pool caldi solo per carichi di lavoro sensibili alla latenza.
- Imposta criteri di scala separati per partizione e tipo GPU.
- Utilizzare i controlli dello stato che verificano
munge,slurmd, la registrazione dei nomi dei nodi, le risorse generiche (GRES), gli accessi e la disponibilità interattiva del runtime.
Isola carichi di lavoro di storage
- Utilizzare FSS per directory home, stato OOD e sviluppo interattivo.
- Utilizzare lo storage degli oggetti con JuiceFS per i data set condivisi permanenti.
- Utilizza Lustre per l'allenamento ad alto rendimento, il checkpoint e l'output di simulazione.
Accesso interattivo sicuro
- Utilizzare l'integrazione SSO basata su OIDC con Microsoft Entra ID per OOD.
- Utilizzare l'accesso solo HTTPS e l'amministrazione SSH con limitazioni.
- Usa subnet private per i nodi di calcolo.
- Preferire i gruppi NSG rispetto ad ampie liste di sicurezza, ove possibile.
- Utilizza i criteri di Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) con privilegi minimi.
- Utilizza gruppi FreeIPA e account Slurm basati su progetti.
- Applica gli elenchi di inclusione della shell OOD e i controlli delle espressioni regolari host
/rnode.
Implementare l'osservabilità per i flussi di lavoro degli utenti
- Tenere traccia dello stato del nodo Slurm e dei motivi del job non riusciti.
- Traccia i registri di ripresa e riparazione della scala automatica.
- Monitora lo stato della GPU e gli output
nvidia-smi. - Tenere traccia dello stato del servizio
mungeeslurmd. - Monitora lo stato di FSS, JuiceFS e Lustre.
- Tieni traccia degli errori OOD Apache, Passenger e PUN per utente.
- Tenere traccia dello stato dei servizi FreeIPA, DNS, LDAP e Kerberos.
Mantieni personalizzazioni OOD durante gli aggiornamenti
Considera gli aggiornamenti OOD come release delle applicazioni e verifica o riapplica widget personalizzati, gestione delle partizioni di Job Composer, applicazioni Batch Connect, liste di inclusione Shell e file e controlli host proxy dopo ogni aggiornamento.
Considerazioni
Quando si distribuisce questa architettura di riferimento, considerare i punti riportati di seguito.
Prestazioni
I carichi di lavoro AI a uso intensivo di GPU possono generare un traffico di rete e storage significativo.
- Posiziona nodi GPU, Lustre e percorsi di storage nella stessa area e nello stesso dominio di disponibilità, ove possibile.
- Utilizza la rete a larghezza di banda elevata per carichi di lavoro GPU e storage-heavy.
- Riduci lo spostamento dei dati tra più aree.
- Ottimizza i criteri di pianificazione dello slurm per la località della GPU e il comportamento specifico della partizione.
- Pre-esecuzione di immagini GPU con dipendenze di runtime stabili per ridurre i tempi di avvio a freddo.
Sicurezza
Proteggi i carichi di lavoro sensibili di intelligenza artificiale e ricerca utilizzando subnet private per i nodi di calcolo, limitando l'accesso SSH, applicando criteri IAM OCI con meno privilegi, cifrando i livelli di storage, integrando la gestione centralizzata delle identità e abilitando la registrazione e il monitoraggio dell'audit.
Disponibilità
Considera l'alta disponibilità per i controller Slurm, i backend Web OOD, i servizi FreeIPA, i sistemi di storage condiviso e l'infrastruttura di monitoraggio.
Migliora la resilienza implementando controller ridondanti, eseguendo il backup dei database di contabilità Slurm, convalidando l'avvio automatico del servizio FreeIPA e mantenendo i backup di rollback OOD prima degli aggiornamenti.
Costo
L'infrastruttura GPU può rappresentare la spesa operativa più grande.
- Usa partizioni GPU di ridimensionamento automatico.
- Sospendi automaticamente i nodi GPU inattivi.
- Separa le partizioni di sviluppo, di formazione interattiva e di produzione.
- Preferisci lo storage degli oggetti OCI duraturo per i set di dati inattivi.
- Utilizza immagini dorate per abbreviare l'ora di inizio e ridurre i cicli di avviamento a freddo non riusciti.
Operazioni
La lezione operativa più importante è che la disponibilità deve essere misurata dal flusso di lavoro dell'utente, non solo dalla console cloud.
Per i job interattivi, verificare lo stato del job Slurm, lo stato del servizio nodo, gli accessi di storage, i listener delle applicazioni interattivi, l'instradamento OOD /node e /rnode e il comportamento di avvio del browser dopo l'autenticazione.
Lista di controllo disponibilità produzione
- Distribuzione OOD tra backend Web ridondanti.
- Comportamento di instradamento e logout di Microsoft Entra ID OIDC.
- Selezione delle partizioni di Job Composer in tutte le partizioni Slurm esposte.
- Avvio del desktop remoto, connettività noVNC e instradamento del proxy
/rnode. - Bootstrap del nodo CPU di scala automatica e accettazione del carico di lavoro interattivo.
- Bootstrap dei nodi GPU, controlli runtime NVIDIA, registrazione GRES e stato di Slurm.
- Runtime delle applicazioni interattive condivise in
/appsper Code Server e JupyterLab. - Compatibilità dell'applicazione di supporto personalizzata OOD dopo gli aggiornamenti della versione.
Informazioni sui servizi e i ruoli richiesti
- OCI Identity and Access Management/Dominio di Identity
- Rete OCI
- DNS OCI
- Load balancer OCI
- OCI Bastion
- Computazione OCI
- Volumi a blocchi OCI
- OCI File Storage
- Storage di file con Lustre
- Memorizzazione degli oggetti OCI
- OCI Registry
- OCI Vault
- Monitoraggio OCI, Log OCI, Notifiche OCI e audit OCI
- OCI Web Application Firewall e Oracle Cloud Guard opzionali
- Servizi di piattaforma: identità Open OnDemand, Slurm, FreeIPA, Linux/POSIX e strumenti runtime condivisi
Questi sono i ruoli necessari per ogni servizio.
| Nome servizio: ruolo | Obbligatorio per... |
|---|---|
Dominio IAM/Identity OCI: manage groups, manage dynamic-groups, manage policies |
Crea e gestisce i gruppi di amministratori UAT, i gruppi dinamici e i criteri IAM con meno privilegi. Limitare questo ruolo alla tenancy o agli amministratori di identità. |
Networking OCI: manage virtual-network-family |
Crea e gestisce VCN, subnet pubbliche/private, tabelle di instradamento, gateway Internet, gateway NAT, gateway di servizi, NSG e liste di sicurezza. |
DNS OCI: manage dns |
Gestisce i record DNS pubblici o delegati per l'endpoint OOD e i nomi di entrata correlati. |
OCI Load Balancer: manage load-balancers |
Crea e gestisce il livello di entrata HTTPS pubblico per OOD e instrada il traffico ai backend OOD privati. |
Web Application Firewall OCI (opzionale): manage waf-family |
Proteggi l'endpoint dell'applicazione pubblica con criteri WAF, regole di accesso e controlli di entrata Web quando WAF è abilitato per UAT. |
Base OCI: manage bastion-family |
Creare sessioni SSH amministrative controllate e associate in termini di tempo per gli host di login privati, controller o amministrazione. |
Computazione OCI: manage instance-family e manage compute-management-family |
Provisioning e gestione di host OOD, nodo di login, controller Slurm, operatori FreeIPA, CPU/GPU, pool di ridimensionamento automatico e istanze della pipeline di immagini. |
Volumi a blocchi OCI: manage volume-family |
Gestire i volumi di avvio e i volumi a blocchi collegati per piattaforma, controller, login e nodi di calcolo. |
Storage di file OCI: manage file-family |
Gestisce file system POSIX condivisi, destinazioni di installazione, set di esportazione ed esportazioni per /home, /scratch e /apps.
|
Storage di file con Lustre: manage lustre-file-family |
Gestire il file system /lustre ad alto throughput per l'I/O del carico di lavoro HPC/AI attivo quando abilitato.
|
Storage degli oggetti OCI: manage object-family o manage buckets e manage objects con ambito |
Memorizza i dati di backup JuiceFS, i dati duraturi del progetto, i backup, i dati del ciclo di vita e i contenuti opzionali di importazione/esportazione Lustre. |
Registro OCI: manage repos o read repos con ambito |
Esecuzione push o pull e immagini delle applicazioni utilizzate dalla pipeline di immagini d'oro e dai runtime della piattaforma condivisa. |
OCI Vault/Keys/Secrets: manage vaults, manage keys e manage secret-family; i nodi runtime devono utilizzare read secret-family solo quando necessario
|
Memorizza credenziali, chiavi, token e segreti di integrazione senza hardcoding sulle istanze o negli script. |
Monitoraggio OCI: read metrics e manage alarms |
Visualizzare le metriche di capacità/prestazioni UAT e configurare gli allarmi operativi. |
Log OCI: manage log-groups, read log-content, use unified-configuration |
Gestire i gruppi di log, cercare i log e configurare gli agenti di log o le impostazioni degli agenti unificati. |
Notifiche OCI: manage ons-family |
Creare argomenti di allarme e sottoscrizioni per le notifiche operative. |
audit OCI: read audit-events |
Esamina l'attività dell'API OCI per la governance, la risoluzione dei problemi e la revisione delle attività. |
Cloud Guard (facoltativo): read cloud-guard-family; manage cloud-guard-family solo con approvazione della governance
|
Esame della postura e dei risultati della sicurezza. Abilita l'amministrazione del rispondente solo se approvata in modo esplicito. |
Gruppo dinamico per le istanze di computazione/OOD/Slurm: read buckets, ambito manage objects, read repos, use metrics, use log-content, facoltativo read secret-family |
Consenti alle istanze di piattaforma di accedere ai bucket OCI Object Storage approvati, estrarre le immagini, emettere la telemetria e recuperare i segreti approvati utilizzando i principal delle istanze. |
Gruppo dinamico per la pipeline di immagini: manage instance-family, manage volume-family, read object-family, ambito manage repos, facoltativo read secret-family |
Crea, convalida, promuovi e pubblica immagini d'oro o artifact runtime senza utilizzare chiavi API utente di lunga durata. |
Gruppo dinamico per la sincronizzazione Storage di file con Lustre (se utilizzato): read buckets e manage objects con ambito |
Consente l'importazione/esportazione o la sincronizzazione di Storage di file con Lustre con i bucket OCI Object Storage approvati. |
Ruolo applicazione OOD: OOD user / OOD admin |
Consente agli utenti di accedere a file, shell, desktop, code server, JupyterLab e job; consente agli amministratori della piattaforma di gestire la configurazione e le applicazioni OOD. |
Ruolo di slurm: user, account/partition admin, or scheduler admin |
Invia job, gestisci account/partizioni/QOS e gestisci i criteri di pianificazione CPU/GPU. |
Ruolo Linux/POSIX: utente/gruppo POSIX e sudo controllato |
Controlla il login alla shell, le autorizzazioni dei file, l'accesso al gruppo di progetti e l'amministrazione delle emergenze sui nodi della piattaforma. |
Ruolo del servizio FreeIPA / Identity: identity administrator |
Gestisci identità POSIX, gruppi, HBAC/DNS, ove applicabile, e la registrazione di host/utente per UAT. |
Consulta i prodotti, le soluzioni e i servizi Oracle per ottenere ciò di cui hai bisogno.
