Archiviazione per carichi di lavoro HPC di Azure
L'accesso alle risorse di archiviazione è un fattore fondamentale da considerare quando si pianificano prestazioni del carico di lavoro HPC (High Performance Computing). I carichi di lavoro HPC su larga scala in determinati ambienti possono creare richieste di archiviazione e accesso ai dati che superano le funzionalità dei file system cloud tradizionali. Questo articolo fornisce consigli utili per scegliere lo spazio di archiviazione corretto per i carichi di lavoro HPC di Azure. Fornisce inoltre raccomandazioni sull'archiviazione per i carichi di lavoro HPC nei settori energetico, finanziario e manifatturiero.
Considerare i fattori seguenti correlati ai requisiti dell'applicazione per decidere quale soluzione di archiviazione usare:
- Latenza
- Operazioni di input/output al secondo (IOPS)
- Velocità effettiva
- Dimensioni e conteggio dei file
- Runtime del lavoro
- Costo
- Posizione di archiviazione: locale rispetto ad Azure
Per ulteriori informazioni, consultare Comprendere i fattori che influenzano la selezione dell'archiviazione HPC in Azure.
Il diagramma seguente mostra un albero delle decisioni per una specifica scelta del sistema di archiviazione HPC.
Considerazioni su HPC
Le società petrolifere e del gas devono essere in grado di gestire e archiviare efficacemente exabyte di dati sismici, dati dei pozzi, mappe e contratti di locazione. Per usare questi dati, hanno bisogno di un'infrastruttura ad alte prestazioni in grado di elaborare e distribuire analisi in tempo reale per ottimizzare la produzione, ridurre i rischi ambientali e migliorare la sicurezza operativa.
l'archiviazione dei dati e le esigenze di accesso variano notevolmente, a seconda della scala del carico di lavoro. Azure supporta diversi approcci per la gestione della velocità e della capacità delle applicazioni HPC.
I carichi di lavoro batch e HPC su larga scala nel settore energetico richiedono l'archiviazione dei dati e l'accesso che superano le funzionalità dei file system cloud tradizionali. I requisiti di input/output (I/O) ad alte prestazioni e esigenze di scalabilità elevate di HPC introduce sfide specifiche per l'archiviazione e l'accesso ai dati.
HPC risolve problemi complessi come le simulazioni sismiche e dei giacimenti e la modellazione, che non sono pratiche o convenienti da gestire con le tecniche di calcolo tradizionali. HPC risolve questi problemi tramite una combinazione di elaborazione parallela e scalabilità elevata per eseguire attività di elaborazione complesse e di grandi dimensioni in modo rapido, efficiente e affidabile.
Nei cluster HPC di Azure i nodi di calcolo sono macchine virtuali (VM) che è possibile creare rapidamente per eseguire processi assegnati al cluster. Questi nodi distribuiscono le attività di calcolo nel cluster. Questa distribuzione consente di ottenere l'elaborazione parallela ad alte prestazioni necessaria per risolvere problemi HPC complessi. I nodi di calcolo devono eseguire operazioni di lettura e scrittura sull'archiviazione di lavoro condivisa quando eseguono processi. I nodi accedono a questa risorsa di archiviazione in una serie di scenari che si trovano tra i due estremi seguenti:
Un set di dati verso molti nodi di calcolo. In questo scenario è presente una singola origine dati nella rete a cui accedono tutti i nodi di calcolo per i dati di lavoro. Anche se sono strutturalmente semplici, la capacità di I/O della posizione di archiviazione limita le operazioni di I/O.
Molti set di dati in molti nodi di calcolo. In questo scenario sono disponibili molte origini dati nella rete a cui accedono tutti i nodi di calcolo per i dati di lavoro. Anche se sono strutturalmente semplici, la capacità di I/O della posizione di archiviazione limita le operazioni di I/O.
Raccomandazioni per la progettazione HPC
Scegli la soluzione più adatta ai tuoi requisiti unici di I/O e capacità.
File system di rete
Il file system di rete (NFS) viene spesso usato per fornire l'accesso ai percorsi di archiviazione condivisi. Una macchina virtuale server che usa NFS condivide il file system locale. In Azure, questo file system viene archiviato in uno o più dischi rigidi virtuali (VHDs) ospitati in Azure Storage. I client possono quindi montare i file condivisi del server e accedere direttamente al percorso condiviso.
NFS viene spesso usato per le home directory e gli spazi di progetto che richiedono l'accesso in tutti i nodi. Può fornire uno spazio per i gruppi di ricerca che condividono i dati. In generale, i carichi di lavoro di throughput sono scalabili orizzontalmente con poca dipendenza tra le singole attività. Gli strumenti di pianificazione dei processi dividono il lavoro tra i nodi e coordinano l'attività. NFS è la tipica risorsa di archiviazione condivisa tra i nodi a cui si accede tramite reti TCP/IP.
NFS offre il vantaggio di essere facile da configurare e gestire ed è supportato nei sistemi operativi Linux e Windows. È possibile usare più server NFS per distribuire l'archiviazione in una rete, ma i singoli file sono accessibili solo tramite un singolo server.
Per i carichi di lavoro su piccola scala, prendere in considerazione l'esecuzione di NFS sul nodo principale usando una macchina virtuale ottimizzata per l'archiviazione , con dischi temporanei di grandi dimensioni, o macchine virtuali della serie D con Archiviazione Premium di Azure, a seconda dei requisiti. Questa soluzione è adatta ai carichi di lavoro con un massimo di 500 core.
Negli scenari HPC, il file server può spesso fungere da collo di bottiglia che limita le prestazioni complessive. Tentativi di accedere ai dati non memorizzati nella cache da un singolo server NFS a velocità superiori al massimo di IOPS e throughput documentati per macchina virtuale portano a limitazione del traffico.
In uno scenario in cui decine di client tentano di lavorare sui dati archiviati in un singolo server NFS, è possibile raggiungere facilmente questi limiti. Questi limiti possono causare un problema di prestazioni dell'intera applicazione. Più è vicino a uno scenario puro uno-a-molti l'applicazione HPC utilizzata, prima si riscontrano queste limitazioni.
File system paralleli in Azure
I file system paralleli distribuiscono l'archiviazione a livello di blocco tra più nodi di archiviazione in rete. I dati dei file vengono distribuiti tra questi nodi, il che significa che i dati dei file vengono distribuiti tra più dispositivi di archiviazione. Questa distribuzione raggruppa tutte le singole richieste di I/O di archiviazione in più nodi di archiviazione accessibili tramite uno spazio dei nomi comune.
Più dispositivi di archiviazione e più percorsi per i dati vengono usati per fornire un elevato grado di parallelismo. Questo approccio riduce il numero di colli di bottiglia imposti accedendo solo a un singolo nodo alla volta. Tuttavia, l'I/O parallelo può essere difficile da coordinare e ottimizzare se funziona direttamente a livello dell'API o dell'interfaccia I/O POSIX. Introducendo livelli intermedi di accesso ai dati e coordinamento, i file system paralleli forniscono agli sviluppatori di applicazioni un'interfaccia di alto livello tra il livello dell'applicazione e il livello di I/O.
I carichi di lavoro MPI (Energy Messaging Passing Interface) hanno requisiti univoci con la necessità di comunicazioni a bassa latenza tra nodi. I nodi sono connessi tramite interconnessione ad alta velocità e non sono facilmente adattabili per la condivisione con altri carichi di lavoro. Le applicazioni MPI usano le interconnessioni ad alte prestazioni nella modalità Pass-Through in ambienti virtualizzati. L'archiviazione per i nodi MPI è in genere un file system parallelo come Lustre accessibile anche tramite l'interconnessione ad alta velocità. Lustre e BeeGFS vengono in genere usati per gestire i requisiti elevati di velocità effettiva dell'elaborazione sismica. In misura minore, vengono usati anche per la simulazione di serbatoi.
I file system paralleli, ad esempio Lustre, vengono usati per carichi di lavoro di energia HPC che richiedono l'accesso a file di grandi dimensioni, l'accesso simultaneo da più nodi di calcolo e grandi quantità di dati. L'implementazione di file system paralleli semplifica la scalabilità in termini di funzionalità e prestazioni. Questi file system sfruttano i trasferimenti di accesso diretto alla memoria remota con larghezza di banda elevata e riducono l'utilizzo della CPU. Il file system parallelo viene spesso usato come spazio temporaneo e destinato al lavoro che richiede operazioni di I/O ottimizzate. Ad esempio, la configurazione del carico di lavoro, la pre-elaborazione, l'esecuzione e la post-elaborazione.
Un servizio file parallelo orchestrato, ad esempio Azure Managed Lustre, funziona per 50.000 o più core, con velocità di lettura/scrittura fino a 500 GBps e 2,5 PB di archiviazione. Per ulteriori informazioni, vedere file system virtuali paralleli su Microsoft Azure.
Componenti HPC
Azure NetApp Files e i dischi locali vengono in genere usati per gestire i carichi di lavoro sensibili alla latenza e alle operazioni di IOPS, ad esempio l'interpretazione sismica, la preparazione del modello e la visualizzazione. Valutare l'utilizzo di Azure NetApp Files per carichi di lavoro fino a 4.000 core, con una prestazione fino a 6,5 GiBps e carichi di lavoro che traggono vantaggio o richiedono l'accesso multiprotocollo NFS e SMB (Server Message Block) allo stesso set di dati.
Lustre gestito offre uno spazio di archiviazione più veloce e con capacità superiore per i carichi di lavoro HPC. Questa soluzione funziona per carichi di lavoro medio-grandi e può supportare 50.000 o più core, con velocità effettiva fino a 500 GBps e capacità di archiviazione fino a 2,5 PiB.
L'archiviazione BLOB di Azure Standard o Premium è conveniente perché è l'offerta cloud a costi più bassi. Questo servizio offre accesso su scala exabyte, alto throughput e bassa latenza nell'ambito dove necessario, un'interfaccia del file system familiare e accesso multi-protocollo (REST, HDFS, NFS). È possibile usare NFS v3.0 nell'endpoint del servizio blob per carichi di lavoro a elevato throughput e intensi in lettura. È possibile ottimizzare i costi passando ai livelli di archiviazione più freddi. Questo approccio consente la gestione del ciclo di vita in base all'ultimo aggiornamento o all'ora di accesso e alla suddivisione in livelli intelligenti con criteri personalizzabili.
I carichi di lavoro dell'energia petrolifera e del gas potrebbero richiedere il trasferimento di grandi dimensioni di dati e volumi tra sistemi locali e cloud. La migrazione offline usa servizi basati su dispositivi come Azure Data Box. La migrazione online usa servizi basati sulla rete come Azure ExpressRoute.
La tabella seguente fornisce un confronto tra Blob Storage, Azure Files, Lustre gestito e Azure NetApp Files.
Categoria | Archiviazione BLOB | File di Azure | Lustre gestito | Azure NetApp Files |
---|---|---|---|---|
Casi d'uso | Ideale per carichi di lavoro di accesso sequenziale con un numero elevato di operazioni di lettura su larga scala in cui i dati vengono inseriti una sola volta e modificati in modo minimo. Basso costo totale di proprietà, se è presente una manutenzione leggera. Alcuni scenari di esempio includono dati analitici su larga scala, calcolo ad alte prestazioni sensibile alla larghezza di banda, backup e archiviazione, guida autonoma, rendering multimediale e sequenziamento genomico. |
Un servizio a disponibilità elevata più adatto per carichi di lavoro ad accesso casuale. Per le condivisioni NFS, Azure Files offre il supporto completo al file system POSIX. Il driver CSI integrato consente di usarlo facilmente da piattaforme basate su macchine virtuali e piattaforme di contenitori come Azure Container Instances e Azure Kubernetes Service (AKS). Alcuni scenari di esempio includono file condivisi, database, home directory, applicazioni tradizionali, ERP, CMS, migrazioni NAS che non richiedono gestione avanzata e applicazioni personalizzate che richiedono l'archiviazione file con scalabilità orizzontale. |
Managed Lustre è un file system parallelo completamente gestito più adatto per carichi di lavoro HPC di medie e grandi dimensioni. Abilita le applicazioni HPC nel cloud senza interrompere la compatibilità delle applicazioni fornendo funzionalità familiari del file system parallelo Lustre, comportamenti e prestazioni. Questo servizio consente di proteggere gli investimenti delle applicazioni a lungo termine. |
Un servizio file completamente gestito nel cloud, basato su NetApp, con funzionalità di gestione avanzate. Azure NetApp Files è adatto per i carichi di lavoro che richiedono l'accesso casuale. Offre un ampio supporto del protocollo e una migliore protezione dei dati. Alcuni scenari di esempio includono la migrazione di sistemi NAS aziendali locali che richiedono capacità di gestione avanzate, carichi di lavoro sensibili alla latenza come SAP HANA, calcolo ad alte prestazioni sensibile alla latenza o intensivo in termini di IOPS, o carichi di lavoro che richiedono accesso simultaneo a più protocolli. |
Protocolli disponibili | NFS 3.0 RIPOSO Azure Data Lake Storage |
SMB NFS 4.1 (Nessuna interoperabilità tra uno dei due protocolli) |
Lustro | NFS 3.0 e 4.1 SMB |
Funzionalità principali | Integrato con Cache HPC di Azure per carichi di lavoro a bassa latenza. Gestione integrata, tra cui la gestione del ciclo di vita, i BLOB immodificabili, il failover dei dati e l'indicizzazione dei metadati. |
Ridondanza zonale per alta disponibilità. Latenza coerente di millisecondi a singola cifra. Prestazioni e costi prevedibili che crescono in modo scalabile con la capacità. |
Capacità di archiviazione elevata fino a 2,5 PB. Bassa latenza, circa 2 ms. Creare nuovi cluster in pochi minuti. Supporta i carichi di lavoro containerizzati con Azure Kubernetes Service (AKS). |
Latenza estremamente bassa, bassa come un sottomillisecondo. Ricche funzionalità di gestione di NetApp ONTAP, ad esempio SnapMirror Cloud. Esperienza cloud ibrida coerente. |
Prestazioni (per volume) | Fino a 20.000 IOPS. Fino a 100 GiBps velocità effettiva. | Fino a 100.000 IOPS. Velocità effettiva massima di 80 GiBps. | Fino a 100.000 IOPS. Fino a 500 GiBps velocità effettiva. | Fino a 460.000 operazioni di I/O al secondo. Fino a 36 GiBps velocità effettiva. |
Scala | Fino a 2 PiB per un singolo volume. Fino a circa 4,75 TiB per un singolo file. Nessun requisito minimo di capacità. |
Fino a 100 TiB per un singolo volume. Fino a 4 TiB per un singolo file. Capacità minima di 100 GiB. |
Fino a 2,5 PiB per un singolo volume. Fino a 32 PB per un singolo file. Capacità minima di 4 TiB. |
Fino a 100 TiB per un singolo volume. Fino a 16 TiB per un singolo file. Esperienza cloud ibrida coerente. |
Prezzi | Prezzi di Blob Storage | Prezzi di Azure Files | Prezzi di Lustre gestito | prezzi di Azure NetApp Files |
Consigli per la progettazione finanziaria
Usare di archiviazione BLOB Standard o Premium per l'archiviazione a bassa latenza e velocità effettiva elevata. Offre i vantaggi seguenti:
Offre accesso su scala exabyte, larghezza di banda elevata, accesso a bassa latenza, un file system familiare e accesso multi-protocollo, tra cui REST, HDFS, NFS.
È conveniente.
È possibile montare l'archiviazione BLOB come file system usando BlobFuse. In questo modo è facile consentire a più nodi di montare lo stesso contenitore per scenari di sola lettura.
Supporta NFS 3.0 nell'endpoint del servizio BLOB per carichi di lavoro con velocità effettiva elevata e con operazioni di lettura elevate.
Puoi ottimizzare i costi spostando i dati nei livelli di archiviazione più freddi. Questa ottimizzazione è possibile tramite la gestione del ciclo di vita basata sull'ultimo aggiornamento o l'ora di accesso e la suddivisione in livelli intelligente con criteri personalizzabili.
Usare di Azure NetApp Files per le applicazioni ReadWriteMany (univoco) o write-once, read-once. Offre i vantaggi seguenti:
Un'ampia gamma di protocolli di file, ad esempio NFSv3, NFSv4.1 e SMB3
Prestazioni paragonabili alle prestazioni locali, con più livelli (Ultra, Premium, Standard)
Distribuisce in pochi minuti e offre un'ampia gamma di livelli e flessibilità
Prestazioni e tipi di pool di capacità flessibili, in cui il QoS per volume viene assegnato automaticamente in base al livello del pool e alla quota del volume
Considerazioni sulla produzione
È importante assicurarsi che i dati necessari raggiungano i computer del cluster HPC al momento giusto. Si vuole anche assicurarsi che i risultati di tali singoli computer vengano salvati rapidamente e disponibili per ulteriori analisi.
Distribuzione del traffico di carico di lavoro
Prendere in considerazione i tipi di traffico che il vostro ambiente HPC genera e processa. Questo passaggio è particolarmente importante se si prevede di eseguire più tipi di carichi di lavoro e pianificare l'uso dell'archiviazione per altri scopi. Prendere in considerazione e registrare i tipi di traffico seguenti:
- Flusso singolo e più flussi
- Rapporto tra traffico di lettura e traffico di scrittura
- Dimensioni e conteggi medi dei file
- Modelli di accesso casuali e sequenziali
Località dei dati
Questa categoria rappresenta la posizione dei dati. La consapevolezza della località consente di determinare se è possibile usare la copia, la memorizzazione nella cache o la sincronizzazione come strategia di spostamento dei dati. Controllare in anticipo i seguenti elementi locali:
- Se i dati di origine sono locali, in Azure o in entrambi
- Se i dati dei risultati sono locali, in Azure o in entrambi
- Se i carichi di lavoro HPC in Azure devono essere coordinati con le sequenze temporali di modifica dei dati di origine
- Se sono inclusi dati sensibili o la legge sulla portabilità e responsabilità dell'assicurazione sanitaria
Requisiti di prestazioni
I requisiti di prestazioni per le soluzioni di archiviazione vengono in genere riepilogati nel modo seguente:
- Velocità effettiva a singolo canale
- Capacità di trasmissione multi-flusso
- IOPS massime previste
- Latenza media
Ogni fattore influisce sulle prestazioni, quindi questi numeri fungono da guida per i risultati previsti di una soluzione specifica. Ad esempio, un carico di lavoro HPC può includere la creazione e l'eliminazione di file estesi come parte del flusso di lavoro. Queste operazioni potrebbero influire sulla velocità effettiva complessiva.
Metodi di accesso
Tenere conto del protocollo di accesso client necessario ed essere chiari sulle funzionalità del protocollo di cui hai bisogno. Esistono versioni diverse di NFS e SMB.
Considerare i requisiti seguenti:
- Indica se sono necessarie versioni NFS/SMB
- Funzionalità del protocollo previste, ad esempio elenchi di controllo di accesso o crittografia
- Soluzione di file system parallela
Requisito di capacità totale
La capacità di archiviazione in Azure è la seguente considerazione. Aiuta a determinare il costo complessivo della soluzione. Se si prevede di archiviare una grande quantità di dati per molto tempo, è possibile prendere in considerazione la suddivisione in livelli come parte della soluzione di archiviazione. La suddivisione in livelli combina opzioni di archiviazione a costi inferiori con un'archiviazione a costi e prestazioni più elevati in un livello ad alte prestazioni. Considerare i requisiti di capacità seguenti:
- Capacità totale richiesta
- Capacità totale del livello ad accesso frequente necessaria
- Capacità totale del livello di riscaldamento richiesta
- Capacità totale di archiviazione a lungo termine richiesta
Autenticazione e metodo di autorizzazione
Per i requisiti di autenticazione e autorizzazione, ad esempio l'uso di un server LDAP o Di Windows Server Active Directory, assicurarsi di includere i sistemi di supporto necessari nell'architettura. Se è necessario supportare funzionalità come il mapping UID o GID agli utenti di Windows Server Active Directory, verificare che la soluzione di archiviazione supporti tale funzionalità.
Considerare i requisiti di rete seguenti:
- ** Locale (UID o GID solo sul file server)
- Directory (LDAP o Windows Server Active Directory)
- Mapping UID o GID agli utenti di Active Directory di Windows Server o no
Sistema di file parallelo fai-da-te
Analogamente a NFS, è possibile creare un file system BeeGFS a più nodi o Lustre. Le prestazioni di questi sistemi dipendono principalmente dal tipo di macchine virtuali scelte. È possibile usare le immagini disponibili in Azure Marketplace per BeeGFS o un'implementazione Lustre di DDN denominata Whamcloud. Se si usano immagini non Microsoft di fornitori come BeeGFS o DDN, è possibile acquistare i servizi di supporto. È possibile utilizzare BeeGFS e Lustre con le loro licenze GP senza costi aggiuntivi, a parte i costi per computer e dischi. Questi strumenti sono facili da implementare usando script HPC di Azure con dischi locali temporanei per scratch o SSD Premium di Azure o Archiviazione su disco Ultra di Azure per l'archiviazione permanente.
Cray ClusterStor
È una sfida per i carichi di lavoro di grandi dimensioni replicare i bare metal prestazioni di cluster di calcolo di grandi dimensioni con ambienti Lustre di grandi dimensioni. Altre sfide includono il raggiungimento di una velocità effettiva elevata in termini di TBps e la gestione potenziale di PB di archiviazione. È ora possibile eseguire questi carichi di lavoro usando la soluzione Cray ClusterStor in Azure. Questo approccio è una distribuzione Lustre completamente bare-metal che viene posizionata nel data center di Azure pertinente. I file system paralleli, ad esempio BeeGFS e Lustre, offrono le prestazioni più elevate grazie alla loro architettura. Ma l'architettura e l'uso di queste tecnologie hanno un prezzo di gestione elevato.
Passaggi successivi
Gli articoli seguenti forniscono indicazioni utili in vari punti durante il percorso di adozione del cloud.
- Introduzione allo scenario HPC (High Performance Computing) di Azure
- gestione delle identità e degli accessi per HPC di Azure
- topologia e connettività di rete per Azure HPC nell'energia
- Organizzazione delle risorse per HPC nel settore energetico
- calcolare carichi di lavoro di applicazioni HPC su larga scala nelle macchine virtuali di Azure
- Acceleratore di punto di atterraggio per HPC (calcolo ad alte prestazioni) di Azure