Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Archiviazione temporanea per le attività del flusso di lavoro HealthOmics
HealthOmics fornisce uno spazio di archiviazione temporaneo per le attività del flusso di lavoro utilizzando la directory. /tmp Questa archiviazione è temporanea e univoca per ogni attività di un flusso di lavoro. HealthOmics per impostazione predefinita, assegna 16 GiB di spazio di archiviazione temporaneo a ciascuna istanza dell'attività. È possibile aumentare la quantità di spazio di archiviazione temporaneo allocato alle singole attività nella definizione del flusso di lavoro, fino a un massimo di 3.072 GiB per attività. Tutti i dati archiviati sono crittografati quando sono inattivi. /tmp
Argomenti
Vantaggi principali
-
Esecuzione più rapida delle attività: lo storage temporaneo può migliorare le prestazioni di esecuzione riducendo i file system condivisi. I/O
-
Prestazioni prevedibili: le attività non competono con altre attività eseguite contemporaneamente per quanto riguarda la I/O larghezza di banda, riducendo la variabilità e la limitazione associate a un file system di rete condiviso.
-
Costi ridotti: l'esecuzione più rapida delle attività riduce direttamente i tempi e i costi di calcolo per le attività vincolate che ne fanno uso. I/O
/tmpPer le esecuzioni che utilizzano lo storage a esecuzione statica, ciò può ridurre la quantità di storage di esecuzione predisposto di cui hai bisogno. Le esecuzioni dinamiche non richiedono modifiche.
Come funziona l'archiviazione effimera
Quando abiliti lo storage temporaneo, HealthOmics monta un volume di archiviazione locale dedicato /tmp per ogni istanza dell'attività del flusso di lavoro. L'archiviazione temporanea è destinata ai file temporanei generati durante l'esecuzione delle attività. I volumi di archiviazione temporanei vengono sempre eliminati al termine dell'attività. I dati scritti non /tmp vengono mantenuti, esportati o accessibili per altre attività o esecuzioni successive.
Dove i flussi di lavoro scrivono file temporanei
I flussi di lavoro traggono vantaggio dall'archiviazione temporanea quando i processi delle attività vengono eseguiti direttamente su. I/O /tmp I linguaggi dei flussi di lavoro bioinformatici utilizzano la /tmp directory (e le variabili di $TMPDIR ambiente) per i file $TMP intermedi temporanei e di breve durata durante l'esecuzione delle attività. Assicurati che i comandi delle tue attività non siano mappati in un'altra posizione. $TMPDIR
I processi di gestione dei flussi di lavoro su cui viene eseguita la scrittura utilizzano /tmp automaticamente l'archiviazione temporanea quando abilitata, senza richiedere modifiche al flusso di lavoro. I flussi di lavoro che non indirizzano esplicitamente i processi di scratch alla /tmp scrittura dei dati di scratch nella directory di lavoro del file system condiviso utilizzato per l'archiviazione in esecuzione, sebbene gli strumenti utilizzati potrebbero trarre vantaggio dall'archiviazione temporanea. /tmp
Crittografia dei dati a riposo
Tutto lo storage temporaneo è crittografato quando è inattivo utilizzando una chiave gestita dal servizio. AWS KMS Le istanze di elaborazione accelerata sono crittografate a livello hardware con una chiave univoca per volume che viene distrutta quando l'istanza termina.
Permissions
HealthOmics gestisce il collegamento e il ciclo di vita dei volumi di storage temporanei per conto dell'utente. Non sono richieste autorizzazioni IAM aggiuntive nel ruolo di esecuzione delle attività.
Abilitare lo storage temporaneo
Puoi reindirizzare scratch I/O allo storage locale impostandolo scratchStorageMode nell'API. StartRun L'scratchStorageModeimpostazione si applica solo alle istanze della CPU e si applica a tutte le attività in esecuzione.
scratchStorageModedetermina dove il flusso di lavoro scrive i dati scratch. Valori possibili:
-
LOCAL— L'archiviazione temporanea viene collocata su disco locale. Scratch I/O offre IOPS e throughput dedicati. -
SHARED— Viene utilizzato il file system condiviso (impostazione predefinita). Scratch I/O fa parte della cartella di lavoro.
Per ulteriori informazioni, consulta Inizia un run in HealthOmics.
Nota
Le attività GPU utilizzano sempre lo storage temporaneo NVMe locale per i dati scratch e scratchStorageMode lo fanno sempre per le attività GPU. LOCAL
Attiva lo storage temporaneo
Per abilitare l'archiviazione temporanea per una corsa, imposta su LOCAL quando inizi scratchStorageMode la corsa.
aws omics start-run \ --workflow-idworkflow-id\ --role-arnarn:aws:iam::123456789012:role/OmicsServiceRole\ --output-uri s3://amzn-s3-demo-bucket/output-folder/ \ --parameters file:///path/to/parameters.json\ --scratch-storage-mode LOCAL
Per le esecuzioni in batch, invia. scratchStorageMode defaultRunSetting L'impostazione si applica a tutte le esecuzioni del batch.
aws omics start-run-batch \ --batch-name "my-batch" \ --default-run-setting '{ "workflowId": "workflow-id", "roleArn": "arn:aws:iam::123456789012:role/OmicsServiceRole", "outputUri": "s3://amzn-s3-demo-bucket/output-folder/", "storageType": "DYNAMIC", "parameters": {"referenceUri": "s3://amzn-s3-demo-bucket/reference.fasta"}, "scratchStorageMode": "LOCAL" }' \ --batch-run-settings '{ "inlineSettings": [ { "runSettingId": "sample-A", "parameters": {"inputUri": "s3://amzn-s3-demo-bucket/sampleA.fastq"} }, { "runSettingId": "sample-B", "parameters": {"inputUri": "s3://amzn-s3-demo-bucket/sampleB.fastq"} } ] }'
Disattiva l'archiviazione temporanea
Per disabilitare l'archiviazione temporanea per un'esecuzione specifica (ad esempio, per isolare un errore), imposta su. scratchStorageMode SHARED
aws omics start-run \ --workflow-idworkflow-id\ --role-arnarn:aws:iam::123456789012:role/OmicsServiceRole\ --output-uri s3://amzn-s3-demo-bucket/output-folder/ \ --scratch-storage-mode SHARED
In tal caso scratchStorageModeSHARED, tutte le disk direttive equivalenti nella definizione del flusso di lavoro vengono ignorate e supportate dal /tmp filesystem condiviso. Questa impostazione si applica solo alle istanze della CPU. Le attività GPU utilizzano sempre lo storage temporaneo NVMe locale e non possono essere disattivate.
Verifica la modalità effettiva
L'archiviazione temporanea è disattivata per impostazione predefinita. Quando scratchStorageMode viene omesso da una StartRun richiesta, scratchStorageMode è impostato su SHARED (impostazione predefinita).
scratchStorageModeviene restituito nella GetRun risposta solo se è stato passato esplicitamente nella StartRun richiesta. SHAREDè il valore predefinito se omesso. Chiama GetRun per confermare la modalità di archiviazione effettiva per una corsa.
aws omics get-run --idrun-id
Allocazione di archiviazione predefinita
L'allocazione di archiviazione temporanea predefinita è di 16 GiB per attività per tutti i tipi Standard, Compute e di istanza. Memory-optimized Non è necessario specificare una disk direttiva per ricevere questo valore predefinito. Per configurare uno spazio di archiviazione aggiuntivo, utilizzare la disk direttiva. È possibile aumentare la quantità di spazio di archiviazione temporaneo allocato alle singole attività nella definizione del flusso di lavoro, fino a un massimo di 3.072 GiB per attività. Ti viene addebitato uno spazio di archiviazione superiore ai 16 GiB predefiniti.
Lo storage temporaneo può essere configurato con incrementi di 16 GiB. Per ulteriori informazioni, consulta Dimensioni supportate.
Storage temporaneo per istanze di elaborazione accelerate
La capacità di storage delle istanze GPU è fissa per tipo di istanza e viene fornita senza costi aggiuntivi.
Le attività GPU utilizzano sempre lo storage temporaneo NVMe locale. L'scratchStorageModeimpostazione attiva non StartRun si applica alle attività della GPU e l'impostazione di questo valore non SHARED avrà alcun effetto sulle istanze GPU. La capacità è fissa per tipo di istanza e non può essere personalizzata utilizzando la direttiva. disk La capacità NVMe è predeterminata dal tipo di istanza selezionato per l'attività e i cpu requisitimemory. acceleratorType
| Dimensione | GPU | VPCU | Memoria (GiB) | G4dn NVMe (T4) | G5 NVMe (A10G) | G6 NVMe (L4) | NVMe G6e (L40S) |
|---|---|---|---|---|---|---|---|
| xlarge | 1 | 4 | 16 | 125 GiB | 250 GiB | 250 GiB | 250 GiB |
| 2xlarge | 1 | 8 | 32 | 225 GiB | 450 GiB | 450 GiB | 450 GiB |
| 4xlarge | 1 | 16 | 64 | 225 GiB | 600 GiB | 600 GiB | 600 GiB |
| 8xlarge | 1 | 32 | 128 | 900 GiB | 900 GiB | 900 GiB | 900 GiB |
| 12xlarge | 4 | 48 | 192 | 900 GiB | 3.800 GiB | 3.760 GiB | 3.800 GiB |
| 16xlarge | 1 | 64 | 256 | 900 GiB | 1.900 GiB | 1.880 GiB | 1.900 GiB |
| 24xlarge | 4 | 96 | 384 | — | 3.800 GiB | 3.760 GiB | 3.800 GiB |
Configurazione delle dimensioni di archiviazione temporanee
Se scratchStorageMode è impostata suLOCAL, puoi richiedere un aumento dello spazio di archiviazione temporaneo per attività utilizzando la disk direttiva (o un equivalente) nella definizione del flusso di lavoro. HealthOmics considera la disk direttiva come un suggerimento e fornisce un volume arrotondato ai successivi 16 GiB. L'uso della disk direttiva non influisce sulla selezione del tipo di istanza. Il tipo di istanza viene selezionato esclusivamente in base a cpumemory, eacceleratorType. Per ulteriori informazioni, consulta Risorse delle attività in una definizione del flusso di lavoro HealthOmics.
Se non è presente alcuna disk direttiva, l'attività riceve i 16 GiB predefiniti. Le attività non possono avere una quantità di memoria temporanea inferiore a quella predefinita.
Non è necessario ridimensionare lo spazio di archiviazione temporaneo per le immagini estratte dai contenitori, che vengono contabilizzate separatamente. Per ulteriori informazioni, consulta Immagini di container per flussi di lavoro privati.
Quando usare la direttiva disk
Utilizzate la disk direttiva nella definizione dell'attività quando l'archiviazione temporanea predefinita per il tipo di istanza scelto non è sufficiente per i requisiti dell'attività. Ad esempio, quando un'attività scrive grandi volumi di dati su. /tmp
Casi d'uso comuni per una maggiore archiviazione temporanea
-
RNA-Seq Fusion Detection: RNA-seq i flussi di lavoro generano BAM intermedi di grandi dimensioni e i processi di attività spesso richiedono la presenza simultanea sia dei FastQ grezzi che degli output allineati, richiedendo dischi scratch di grandi dimensioni (ad esempio, 512 GiB per attività).
-
De Novo Genome Assembly: i flussi di lavoro di assemblaggio richiedono grandi volumi di Long-read memoria virtuale per elaborare le letture non elaborate e gli artefatti temporanei di assemblaggio che vengono ripetutamente riscritti e riorganizzati prima dell'output. Queste attività richiedono un uso intensivo della memoria e del disco e a volte richiedono diversi TiB di storage temporaneo.
-
Variant Calling/elaborazione BAM: i flussi di lavoro di Variant Calling richiedono un notevole spazio di archiviazione scratch per le fasi di allineamento e ordinamento che leggono e riscrivono ripetutamente file BAM o CRAM di grandi dimensioni. Le esigenze di storage temporaneo sono in genere di centinaia di GiB.
Sintassi della direttiva per motore
La tabella seguente mostra la direttiva equivalente per ogni linguaggio del flusso di lavoro.
| Motore | Direttiva | Esempio |
|---|---|---|
| WDL 1.1 | disks |
disks: "/tmp 700 GiB" |
| Flusso successivo | disk |
disk '700 GB' |
| CWL | tmpdirMin |
tmpdirMin: 716800(valore in MiB) |
Gli esempi seguenti mostrano come configurare un'attività che richiede 700 GiB di spazio di archiviazione temporaneo. HealthOmics arrotonda questo valore al livello di 704 GiB.
Per ulteriori informazioni sulla sintassi delle direttive supportate, vedere e. Specifiche di definizione del flusso di lavoro WDL Specifiche di definizione del flusso di lavoro Nextflow
Esempio: dimensionamento del disco basato su espressioni
Invece di una dimensione fissa, è possibile impostare la disk direttiva su un'espressione che il motore del flusso di lavoro valuta per ogni attività in fase di esecuzione. Il seguente processo Nextflow utilizza una chiusura che ridimensiona la richiesta in base al numero di tentativi di attività. Se l'operazione fallisce per qualsiasi motivo e Nextflow la riprova, il nuovo tentativo richiede un volume maggiore.
process sort_bam { disk { 200.GB * task.attempt } errorStrategy 'retry' maxRetries 2 script: """ samtools sort -T /tmp/sort_buffer ${input} -o ${output} """ } // First attempt requests 200 GiB (provisioned at the 208 GiB tier) // Second attempt requests 400 GiB (provisioned at the 400 GiB tier)
Il motore del flusso di lavoro valuta l'espressione per ogni tentativo di operazione. HealthOmics quindi arrotonda la dimensione risolta al successivo incremento di 16 GiB.
Nota
Poiché il motore risolve l'espressione in fase di esecuzione, HealthOmics non è possibile controllare la dimensione in. CreateWorkflow HealthOmics limita una dimensione stimata superiore a 3.072 GiB all'avvio dell'attività. Per ulteriori informazioni, consulta Dimensioni supportate.
Strumenti bioinformatici comuni e archiviazione effimera
Molti strumenti bioinformatici scrivono file temporanei di grandi dimensioni durante l'esecuzione. Se scratchStorageMode è impostato suLOCAL, reindirizza questi strumenti affinché vengano utilizzati /tmp in modo che scratch I/O vada al volume locale veloce anziché al filesystem a esecuzione condivisa. Gli esempi seguenti mostrano i flag pertinenti per gli strumenti di uso comune.
Dimensioni supportate
Le dimensioni richieste vengono arrotondate all'incremento di 16 GiB più vicino, a partire dal valore predefinito di 16 GiB (16, 32, 48, 64,... fino a 3.072 GiB). La dimensione massima supportata è di 3.072 GiB per operazione.
Se una dimensione richiesta supera i 3.072 GiB, fornisce 3.072 GiB e HealthOmics scrive un avviso nel registro di esecuzione. L'operazione non è automaticamente fallita.
Nota
Per le disk direttive basate su espressioni, come le chiusure Nextflow o le espressioni WDL simili, il valore viene valutato in fase di disks: ceil(size(input_bam, "GiB") * 2.5) esecuzione, non in. CreateWorkflow Se la dimensione valutata supera i 3.072 GiB, l'attività ha esito negativo in fase di esecuzione e gli eventuali costi di elaborazione sostenuti fino a quel momento vengono addebitati. Per un esempio, consulta Esempio: dimensionamento del disco basato su espressioni.
Moduli di dischi WDL supportati
Per l'elenco completo dei disks moduli WDL accettati, vedere. Dischi WDL supportati, moduli
Utilizzo della direttiva scratch Nextflow
Per i flussi di lavoro Nextflow, puoi usare la scratch direttiva per controllare dove i processi scrivono file di lavoro temporanei. Per informazioni sui valori supportati e sull'utilizzo consigliato con l'archiviazione temporanea, vedere. Usare lo scratch storage in modo efficiente in Nextflow
Monitoraggio dello storage temporaneo
HealthOmics Scrive metriche di archiviazione temporanee per attività nei registri manifest. CloudWatch Le metriche includono dati di archiviazione temporanei per attività relativi alle dimensioni del volume (as) e all'utilizzo (as) previsti per ciascuna attività. scratchStorageReservedGiB scratchStorageUtilizedGiB Esamina il registro del manifesto per determinare se il provisioning delle attività è stato eccessivo o insufficiente senza interrogarlo direttamente. CloudWatch Per informazioni dettagliate sui log del manifesto, vedere. Monitoraggio HealthOmics con CloudWatch registri
Come viene fatturato lo storage temporaneo
Ti viene addebitato solo lo spazio di archiviazione temporaneo fornito al di sopra dell'allocazione predefinita. Le richieste che superano il valore predefinito nella disk direttiva vengono arrotondate al livello supportato più vicino.
Lo storage temporaneo delle istanze GPU è già incluso nei prezzi delle istanze. Non sono previsti costi aggiuntivi per lo storage temporaneo sulle attività della GPU.
Considerazioni e limitazioni
| Considerazione | Dettaglio |
|---|---|
| L'archiviazione temporanea non è persistente | I volumi di archiviazione temporanei vengono sempre eliminati al termine dell'attività. I dati in ingresso non /tmp vengono salvati, esportati o disponibili per le attività o le esecuzioni successive. I dati /tmp in uno storage temporaneo non possono essere l'output di un'attività o un output del flusso di lavoro; ciò comporterà un errore in fase di esecuzione. |
| L'archiviazione temporanea non viene condivisa tra le attività | Ogni attività riceve il proprio volume di archiviazione temporaneo isolato. Le attività non possono accedere alle rispettive directory. /tmp I dati che devono essere condivisi tra le attività devono essere scritti nel filesystem a esecuzione condivisa. |
| L'archiviazione non può essere ridimensionata a metà attività | La dimensione dello spazio di archiviazione viene fissata all'inizio dell'attività. Non è possibile aumentare o diminuire lo spazio di archiviazione allocato mentre un'attività è in esecuzione. |
| Working-directory scratch non viene reindirizzato automaticamente | I flussi di lavoro che scrivono scratch nella directory di lavoro, ad esempio,, o input/ ./out/, non ne traggono vantaggio automaticamente. Aggiorna il flusso di lavoro per reindirizzare scratch I/O a o/tmp. $TMPDIR |
I dati di Scratch non vengono scritti /tmp come previsto |
Assicurati che i processi delle tue attività scrivano in modo esplicito /tmp e che i comandi delle attività non siano mappati in un'altra $TMPDIR posizione. |
| Le istanze GPU utilizzano sempre uno storage temporaneo | Le attività GPU vengono sempre installate nell'archivio di istanze /tmp NVMe locale. L'impostazione scratchStorageMode su SHARED non disabilita l'archiviazione temporanea per le attività GPU. |
| Istanze GPU: la capacità NVMe è fissa | Il dimensionamento personalizzato del disco non è supportato nelle istanze GPU. HealthOmics ignora le disk direttive e fornisce la capacità NVMe predefinita per il tipo di istanza. |
| Massimo 3.072 GiB per attività (CPU) | Il provisioning delle richieste superiori a 3.072 GiB viene eseguito a 3.072 GiB con un avviso di run log. Le attività non sono fallite. |
| Solo livelli supportati (CPU) | Le dimensioni richieste vengono arrotondate all'incremento di 16 GiB più vicino (16, 32, 48, 64,... fino a 3.072 GiB). |
| Expression-based direttive valutate in fase di esecuzione | diski valori calcolati dalle espressioni vengono convalidati all'inizio dell'attività, non a. CreateWorkflow I costi di calcolo fino a quel momento vengono addebitati se l'attività ha esito negativo in fase di esecuzione. |
SHAREDla modalità ignora tutte le direttive del disco (solo CPU) |
Le direttive SHARED When scratchStorageMode is disktmpdirMin, e equivalenti vengono ignorate per le attività della CPU. Non viene fornito alcun volume di archiviazione locale. Le attività della GPU non sono influenzate, utilizzano sempre NVMe locale. |
Risoluzione dei problemi relativi allo storage temporaneo
L'operazione ha esito negativo se lo spazio di archiviazione temporaneo è esaurito
Un'operazione ha esito negativo quando lo spazio di archiviazione temporaneo raggiunge la capacità. Esamina i log del CloudWatch manifesto per determinare la quantità di spazio di archiviazione effettivamente utilizzata dall'attività, quindi aggiungi o aumenta la disk direttiva per richiedere un livello più ampio.
# Before: 4-vCPU task using the 16 GiB default runtime { cpu: 4 } # After: explicitly request 400 GiB runtime { cpu: 4, disks: "400 GiB" }
Lo storage temporaneo non sembra essere utilizzato
Chiama GetRun e controlla il campo. scratchStorageMode Se il valore èSHARED, l'archiviazione temporanea non è abilitata per quella corsa. Impostato per --scratch-storage-mode LOCAL la tua prossima start-run chiamata.
aws omics get-run --idrun-id