Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Penyimpanan sementara untuk tugas alur kerja HealthOmics
HealthOmics menyediakan penyimpanan sementara untuk tugas alur kerja menggunakan direktori/tmp. Penyimpanan ini bersifat sementara dan unik untuk setiap tugas dalam alur kerja. HealthOmics mengalokasikan 16 GiB penyimpanan sementara ke setiap instance tugas secara default. Anda dapat meningkatkan jumlah penyimpanan sementara yang dialokasikan untuk tugas individual dalam definisi alur kerja Anda, hingga maksimum 3.072 GiB per tugas. Semua data yang disimpan /tmp dienkripsi saat istirahat.
Topik
Manfaat utama
-
Eksekusi tugas yang lebih cepat: Penyimpanan sementara dapat meningkatkan kinerja berjalan dengan mengurangi sistem file bersama. I/O
-
Kinerja yang dapat diprediksi: Tugas tidak bersaing dengan tugas lain yang berjalan secara bersamaan untuk I/O bandwidth, mengurangi variabilitas dan pelambatan yang terkait dengan sistem file jaringan bersama.
-
Biaya lebih rendah: Eksekusi tugas yang lebih cepat secara langsung mengurangi waktu dan biaya komput I/O asi untuk tugas terikat yang
/tmpdigunakan. Untuk menjalankan menggunakan penyimpanan statis run, ini dapat mengurangi jumlah penyimpanan run yang disediakan yang Anda butuhkan. Berjalan dinamis tidak memerlukan perubahan.
Cara kerja penyimpanan fana
Saat Anda mengaktifkan penyimpanan sementara, HealthOmics pasang volume penyimpanan lokal khusus di /tmp untuk setiap instance tugas alur kerja. Penyimpanan sementara dimaksudkan untuk file sementara yang dihasilkan selama eksekusi tugas. Volume penyimpanan sementara selalu dihapus ketika tugas berakhir. Data yang ditulis tidak /tmp dipertahankan, diekspor, atau dapat diakses oleh tugas lain atau proses selanjutnya.
Dimana alur kerja menulis file sementara
Alur kerja mendapat manfaat dari penyimpanan sementara ketika proses tugas langsung ke awal. I/O /tmp Bahasa alur kerja bioinformatika menggunakan /tmp direktori (dan$TMP, variabel $TMPDIR lingkungan) untuk file perantara sementara berumur pendek selama pelaksanaan tugas. Pastikan perintah tugas Anda belum dipetakan $TMPDIR ke lokasi lain.
Proses tugas alur kerja yang menulis untuk /tmp secara otomatis menggunakan penyimpanan sementara saat diaktifkan, tanpa memerlukan perubahan alur kerja. Alur kerja yang tidak secara eksplisit mengarahkan proses scratch ke /tmp akan menulis data scratch ke direktori kerja pada sistem file bersama yang digunakan untuk menjalankan penyimpanan, meskipun alat yang digunakan mungkin memanfaatkan /tmp penyimpanan sementara.
Enkripsi saat diam
Semua penyimpanan sementara dienkripsi saat diam menggunakan kunci yang dikelola layanan. AWS KMS Instans komputasi yang dipercepat dienkripsi perangkat keras dengan kunci per volume unik yang dihancurkan saat instance dihentikan.
Izin
HealthOmics mengelola lampiran dan siklus hidup volume penyimpanan sementara atas nama Anda. Tidak ada izin IAM tambahan yang diperlukan dalam peran eksekusi tugas Anda.
Mengaktifkan penyimpanan sementara
Anda dapat mengarahkan scratch I/O ke penyimpanan lokal dengan meny scratchStorageMode etel di StartRun API. Peng scratchStorageMode aturan ini hanya berlaku untuk instans CPU dan berlaku untuk semua tugas dalam proses tersebut.
scratchStorageModemenentukan di mana alur kerja Anda menulis data awal. Kemungkinan nilai:
-
LOCAL— Penyimpanan sementara ditempatkan pada disk lokal. Scratch I/O memiliki IOPS dan throughput khusus. -
SHARED- Sistem file bersama digunakan (default). Scratch I/O bersaing dengan direktori kerja.
Untuk informasi selengkapnya, lihat Mulailah berlari HealthOmics.
catatan
Tugas GPU selalu menggunakan penyimpanan sementara NVMe lokal untuk data awal, dan scratchStorageMode selalu LOCAL untuk tugas GPU.
Bergabunglah dengan penyimpanan sementara
Untuk mengaktifkan penyimpanan sementara untuk menjalankan, setel scratchStorageMode ke LOCAL saat Anda memulai menjalankan.
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
Untuk proses batch, scratchStorageMode masukkandefaultRunSetting. Pengaturan berlaku untuk setiap proses dalam 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"} } ] }'
Memilih keluar dari penyimpanan sementara
Untuk menonaktifkan penyimpanan sementara untuk proses tertentu (misalnya, untuk mengisolasi kegagalan), set scratchStorageMode el ke. 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
Bila scratchStorageMode yaSHARED, semua disk dan arahan setara dalam definisi alur kerja diabaikan dan /tmp didukung oleh sistem file bersama. Pengaturan ini hanya berlaku untuk instans CPU. Tugas GPU selalu menggunakan penyimpanan sementara NVMe lokal dan tidak dapat dipilih keluar.
Periksa mode efektif
Penyimpanan sementara dinonaktifkan secara default. Ketika scratchStorageMode dihilangkan dari StartRun permintaan, scratchStorageMode disetel ke SHARED (default).
scratchStorageModehanya dikembalikan dalam GetRun respons jika secara eksplisit diteruskan dalam StartRun permintaan. SHAREDadalah nilai default jika dihilangkan. Panggil GetRun untuk mengonfirmasi mode penyimpanan yang efektif untuk menjalankan.
aws omics get-run --idrun-id
Alokasi penyimpanan default
Alokasi penyimpanan sementara default adalah 16 GiB per tugas untuk semua tipe Standar, Komputasi, dan instans. Memory-optimized Anda tidak perlu menentukan direktif disk untuk menerima default ini. Untuk mengkonfigurasi penyimpanan tambahan, gunakan direk disk tif. Anda dapat meningkatkan jumlah penyimpanan sementara yang dialokasikan untuk tugas individual dalam definisi alur kerja Anda, hingga maksimum 3.072 GiB per tugas. Anda ditagih untuk penyimpanan di atas standar 16 GiB.
Penyimpanan sementara dapat dikonfigurasi dengan penambahan 16 GiB. Untuk informasi selengkapnya, lihat Ukuran yang didukung.
Penyimpanan sementara untuk instans komputasi yang dipercepat
Kapasitas penyimpanan instans GPU ditetapkan per jenis instans dan disediakan tanpa biaya tambahan.
Tugas GPU selalu menggunakan penyimpanan sementara NVMe lokal. Peng scratchStorageMode aturan aktif StartRun tidak berlaku untuk tugas GPU dan menyetel nilai ini ke tidak SHARED akan berpengaruh pada instans GPU. Kapasitas tetap per jenis instans dan tidak dapat disesuaikan menggunakan direk disk tif. Kapasitas NVMe ditentukan sebelumnya oleh jenis instance yang dipilih untuk tugascpu,memory, dan acceleratorType persyaratan.
| Size | GPU | vCPU | Memori (GiB) | G4dn NVMe (T4) | G5 NVMe (A10G) | G6 NVMe (L4) | G6e NVMe (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 |
Mengkonfigurasi ukuran penyimpanan sementara
Bila scratchStorageMode disetel keLOCAL, Anda dapat meminta peningkatan penyimpanan sementara per tugas menggunakan arahan (atau setara) dalam definisi alur kerja Anda. disk HealthOmics memperlakukan disk arahan sebagai petunjuk dan menyediakan volume yang dibulatkan ke 16 GiB berikutnya. Penggunaan direktif disk tidak mempengaruhi pemilihan tipe instance. Jenis instance dipilih hanya berdasarkancpu,memory, danacceleratorType. Untuk informasi selengkapnya, lihat Sumber daya tugas dalam definisi HealthOmics alur kerja.
Jika tidak disk ada direktif, tugas menerima default 16 GiB. Tugas tidak boleh memiliki kurang dari penyimpanan sementara default.
Anda tidak perlu mengukur penyimpanan sementara Anda untuk gambar wadah yang ditarik, yang diperhitungkan secara terpisah. Untuk informasi selengkapnya, lihat Gambar kontainer untuk alur kerja pribadi.
Kapan menggunakan direktif disk
Gunakan direk disk tif dalam definisi tugas Anda jika penyimpanan sementara default untuk jenis instans yang Anda pilih tidak cukup untuk persyaratan tugas Anda. Misalnya, ketika tugas menulis volume besar data ke/tmp.
Kasus penggunaan umum untuk peningkatan penyimpanan sementara
-
RNA-Seq Deteksi Fusi: RNA-seq alur kerja menghasilkan BAM menengah yang besar dan proses tugas sering membutuhkan FastQ mentah dan output yang selaras untuk hadir secara bersamaan, membutuhkan cakram awal yang besar (misalnya, 512 GiB per tugas).
-
Perakitan Genom De Novo: Long-read alur kerja perakitan membutuhkan volume awal yang besar untuk memproses pembacaan mentah dan artefak perakitan sementara yang berulang kali ditulis ulang dan diatur ulang sebelum output. Tugas-tugas ini intensif memori dan disk, terkadang membutuhkan beberapa TiB penyimpanan sementara.
-
Pemrosesan panggilan varian/BAM: Alu r kerja pemanggilan varian memerlukan penyimpanan awal yang substansif untuk langkah-langkah penyelarasan dan penyortiran yang berulang kali membaca dan menulis ulang file BAM atau CRAM besar. Kebutuhan penyimpanan sementara biasanya ratusan GiB.
Sintaks direktif oleh mesin
Tabel berikut menunjukkan direktif yang setara untuk setiap bahasa alur kerja.
| Engine | Direktif | Contoh |
|---|---|---|
| WDL 1.1 | disks |
disks: "/tmp 700 GiB" |
| Alur Berikutnya | disk |
disk '700 GB' |
| CWL | tmpdirMin |
tmpdirMin: 716800(nilai dalam MiB) |
Contoh berikut menunjukkan cara mengkonfigurasi tugas yang meminta 700 GiB penyimpanan sementara. HealthOmics membulatkan ini ke tingkat 704 GiB.
Untuk informasi lebih lanjut tentang sintaks direktif yang didukung, lihat Spesifikasi definisi alur kerja WDL danSpesifikasi definisi alur kerja Nextflow.
Contoh: ukuran disk berbasis ekspresi
Alih-alih ukuran tetap, Anda dapat mengatur direk disk tif ke ekspresi yang dievaluasi mesin alur kerja untuk setiap tugas saat runtime. Proses Nextflow berikut menggunakan penutupan yang menskalakan permintaan dengan nomor percobaan tugas. Jika tugas gagal karena alasan apa pun dan Nextflow mencobanya lagi, percobaan ulang meminta volume yang lebih besar.
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)
Mesin alur kerja mengevaluasi ekspresi untuk setiap upaya tugas. HealthOmics kemudian membulatkan ukuran yang diselesaikan hingga kenaikan 16 GiB berikutnya.
catatan
Karena mesin menyelesaikan ekspresi saat runtime, HealthOmics tidak dapat memeriksa ukuran diCreateWorkflow. HealthOmics membatasi ukuran yang dievaluasi di atas 3.072 GiB saat tugas dimulai. Untuk informasi selengkapnya, lihat Ukuran yang didukung.
Alat bioinformatika umum dan penyimpanan sementara
Banyak alat bioinformatika menulis file sementara besar selama eksekusi. Ketika scratchStorageMode disetel keLOCAL, arahkan alat-alat ini untuk digunakan /tmp sehingga scratch I/O masuk ke volume lokal cepat alih-alih sistem file yang dijalankan bersama. Contoh berikut menunjukkan bendera yang relevan untuk alat yang umum digunakan.
Ukuran yang didukung
Ukuran yang diminta dibulatkan ke kenaikan 16 GiB terdekat, mulai dari default 16 GiB (16, 32, 48, 64,... hingga 3.072 GiB). Ukuran maksimum yang didukung adalah 3.072 GiB per tugas.
Jika ukuran yang diminta melebihi 3.072 GiB, menyediakan 3.0 HealthOmics 72 GiB dan menulis peringatan ke log run. Tugas tidak secara otomatis gagal.
catatan
Untuk arahan berbasis ekspresi disk — seperti penutupan Nextflow atau ekspresi WDL seperti disks: ceil(size(input_bam, "GiB") * 2.5) — nilainya dievaluasi saat runtime, bukan pada. CreateWorkflow Jika ukuran yang dievaluasi melebihi 3.072 GiB, tugas gagal saat runtime dan biaya komputasi yang dikeluarkan hingga saat itu akan dikenakan biaya. Sebagai contoh, lihat Contoh: ukuran disk berbasis ekspresi.
Bentuk disk WDL yang didukung
Untuk daftar lengkap formulir WDL yang disks diterima, lihatBentuk disk WDL yang didukung.
Menggunakan direktif Scratch Nextflow
Untuk alur kerja Nextflow, Anda dapat menggunakan direktif untuk scratch mengontrol di mana proses menulis file kerja sementara. Untuk informasi tentang nilai yang didukung dan penggunaan yang disarankan dengan penyimpanan sementara, lihat. Menggunakan penyimpanan gores secara efisien di Nextflow
Memantau penyimpanan sementara
HealthOmics menulis metrik penyimpanan sementara per tugas ke CloudWatch log manifes. Metrik mencakup data penyimpanan sementara per tugas dengan ukuran volume yang disediakan (sebagaiscratchStorageReservedGiB) dan penggunaan (sebagaiscratchStorageUtilizedGiB) untuk setiap tugas. Tinjau log manifes untuk menentukan apakah tugas sudah terlalu atau kurang disediakan tanpa menanyakan secara langsung. CloudWatch Untuk detail tentang log manifes, lihatPemantauan HealthOmics dengan CloudWatch Log.
Bagaimana penyimpanan sementara ditagih
Anda hanya ditagih untuk penyimpanan sementara yang disediakan di atas alokasi default. Permintaan di atas default dalam direk disk tif Anda dibulatkan ke tingkat yang didukung terdekat.
Instans GPU memiliki penyimpanan sementara yang sudah diperhitungkan dalam harga misalnya. Tidak ada biaya tambahan untuk penyimpanan sementara pada tugas GPU.
Pertimbangan dan batasan
| Pertimbangan | Detail |
|---|---|
| Penyimpanan sementara tidak persisten | Volume penyimpanan sementara selalu dihapus ketika tugas berakhir. Data di dalam tidak /tmp disimpan, diekspor, atau tersedia untuk tugas atau proses berikutnya. Data yang /tmp masuk pada penyimpanan sementara tidak dapat berupa output tugas atau output alur kerja; ini akan mengakibatkan kegagalan saat runtime. |
| Penyimpanan sementara tidak dibagikan di seluruh tugas | Setiap tugas menerima volume penyimpanan fana terisolasi sendiri. Tugas tidak dapat mengakses /tmp direktori satu sama lain. Data yang harus dibagikan antar tugas harus ditulis ke sistem file run bersama. |
| Penyimpanan tidak dapat diubah ukurannya di tengah tugas | Ukuran penyimpanan ditetapkan pada awal tugas. Anda tidak dapat menambah atau mengurangi penyimpanan yang dialokasikan saat tugas sedang berjalan. |
| Working-directory goresan tidak dialihkan secara otomatis | Alur kerja yang menulis scratch ke direktori kerja — misalnya,, input/./, atau out/ — tidak mendapat manfaat secara otomatis. Perbarui alur kerja Anda untuk mengarahkan awal I/O ke /tmp atau$TMPDIR. |
Data Scratch tidak ditulis /tmp seperti yang diharapkan |
Pastikan proses tugas Anda secara eksplisit menulis ke /tmp dan perintah tugas Anda belum dipetakan $TMPDIR ke lokasi lain. |
| Instans GPU selalu menggunakan penyimpanan sementara | Tugas GPU selalu dipasang /tmp di penyimpanan instans NVMe lokal. Pengaturan scratchStorageMode ke SHARED tidak menonaktifkan penyimpanan sementara untuk tugas GPU. |
| Instans GPU: Kapasitas NVMe diperbaiki | Ukuran disk khusus tidak didukung pada instans GPU. HealthOmics mengabaikan ar disk ahan dan menyediakan kapasitas NVMe default untuk jenis instance. |
| Maksimum 3.072 GiB per tugas (CPU) | Permintaan melebihi 3.072 GiB disediakan pada 3.072 GiB dengan peringatan run log. Tugas tidak gagal. |
| Hanya tingkatan yang didukung (CPU) | Ukuran yang diminta dibulatkan ke kenaikan 16 GiB terdekat (16, 32, 48, 64,... hingga 3.072 GiB). |
| Expression-based arahan dievaluasi saat runtime | disknilai yang dihitung dari ekspresi divalidasi pada awal tugas, bukan diCreateWorkflow. Biaya komputasi hingga saat itu dibebankan jika tugas gagal saat runtime. |
SHAREDmode mengabaikan semua arahan disk (hanya CPU) |
When scratchStorageMode isSHARED,disk,tmpdirMin, dan arahan yang setara diabaikan untuk tugas CPU. Tidak ada volume penyimpanan lokal yang disediakan. Tugas GPU tidak terpengaruh, mereka selalu menggunakan NVMe lokal. |
Memecahkan masalah penyimpanan sementara
Tugas gagal dengan penyimpanan sementara yang habis
Tugas gagal ketika penyimpanan sementara mencapai kapasitas. Tinjau log CloudWatch manifes Anda untuk menentukan berapa banyak penyimpanan yang sebenarnya digunakan tugas Anda, lalu tambahkan atau tingkatkan direk disk tif untuk meminta tingkat yang lebih besar.
# Before: 4-vCPU task using the 16 GiB default runtime { cpu: 4 } # After: explicitly request 400 GiB runtime { cpu: 4, disks: "400 GiB" }
Penyimpanan sementara tampaknya tidak digunakan
Hu GetRun bungi dan periksa scratchStorageMode lapangan. Jika nilainyaSHARED, penyimpanan sementara tidak diaktifkan untuk proses itu. A --scratch-storage-mode LOCAL tur start-run panggilan Anda berikutnya.
aws omics get-run --idrun-id