HealthOmics ワークフローでストレージタイプを実行する - AWS HealthOmics

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

HealthOmics ワークフローでストレージタイプを実行する

実行を開始すると、HealthOmics はワークフローエンジンが実行中に使用する一時実行ストレージを割り当てます。HealthOmics は、一時実行ストレージをファイルシステムとして提供します。

特定のワークフローまたはワークフロー実行では、動的または静的実行ストレージを選択できます。デフォルトでは、HealthOmics は静的実行ストレージを提供します。

注記

ストレージの使用を実行すると、アカウントに料金が発生します。静的および動的実行ストレージの料金情報については、HealthOmics の料金」を参照してください。

以下のセクションでは、使用する実行ストレージタイプを決定する際に考慮すべき情報を提供します。

動的実行ストレージ

起動時間の短縮が必要な実行、ストレージのニーズが事前にわからない実行、反復的な開発テストサイクルなど、ほとんどの実行には動的実行ストレージを使用することをお勧めします。

実行に必要なストレージやスループットを見積もる必要はありません。HealthOmics は、実行中のファイルシステムの使用率に基づいて、ストレージサイズを動的にスケールアップまたはスケールダウンします。HealthOmics は、ワークフローのニーズに基づいてスループットを動的にスケーリングします。ファイルシステムエラーのストレージ不足が原因で実行が失敗することはありません。

動的実行ストレージは、静的実行ストレージよりもプロビジョニング/プロビジョニング解除の時間を短縮します。セットアップの高速化は、ほとんどのワークフローにとって利点であり、開発/テストサイクル中の利点でもあります。

実行が完了すると (成功パスまたは失敗パス)、getRun API オペレーションは storageCapacity フィールドで実行で使用される最大ストレージを返します。この情報は、ロググループにある実行マニフェストomicsログでも確認できます。2 時間以内に完了する動的ストレージ実行の場合、最大ストレージ値は使用できない場合があります。

動的実行ストレージの場合、実行は NFS プロトコルを使用するファイルシステムをプロビジョニングします。NFS は、CREATE、DELETE、および RENAME ファイルオペレーションをべき等ではないものとして扱います。これにより、コードが適切に処理する必要があるオペレーションの競合状態が発生することがあります。たとえば、存在しないファイルを削除しようとすると、コードが失敗することはありません。動的実行ストレージを採用する前に、冪等性のないファイルオペレーションに強いようにワークフローコードを調整することをお勧めします。「べき等でない操作を安全に処理するためのコード例」を参照してください。

べき等でない操作を安全に処理するためのコード例

次の Python の例は、ファイルが存在しない場合に失敗せずにファイルを削除する方法を示しています。

import os import errno def remove_file(file_path): try: os.remove(file_path) except OSError as e: # If the error is "No such file or directory", ignore it (or log it) if e.errno != errno.ENOENT: # Otherwise, raise the error raise # Example usage remove_file("myfile")

次の例では、Bash シェルを使用します。ファイルが存在しない場合でも安全に削除するには、以下を使用します。

rm -f my_file

ファイルを安全に移動 (名前変更) するには、現在のディレクトリにファイルold_nameが存在する場合にのみ move コマンドを実行します。

[ -f old_name ] && mv old_name new_name

ディレクトリを作成するには、次のコマンドを使用します。

mkdir -p mydir/subdir/

静的実行ストレージ

静的実行ストレージの場合、実行は Lustre プロトコルを使用するファイルシステムをプロビジョニングします。このプロトコルは、デフォルトで冪等性のないファイルオペレーションに対して回復力があります。べき等でないファイルオペレーションを処理するようにワークフローコードを調整する必要はありません。

HealthOmics は、一定量の実行ストレージを割り当てます。この値は、実行を開始するときに指定します。値を指定しない場合、デフォルトの実行ストレージは 1200 GiB です。StartRun API リクエストでストレージサイズの値を指定すると、システムは値を最も近い 1200 GiB の倍数に切り上げます。そのストレージサイズが利用できない場合は、2400 GiB の最も近い倍数に切り上げられます。

静的実行ストレージの場合、HealthOmics は次のスループット値をプロビジョニングします。

  • ベースラインスループットは、プロビジョニングされたストレージ容量の 1 TiB あたり 200 MB/秒です。

  • プロビジョニングされたストレージ容量の TiB あたり最大 1300 MB/秒のバーストスループット。

指定されたストレージサイズが小さすぎると、実行は失敗し、ファイルシステムエラーのストレージ不足が発生します。静的実行ストレージは、既知のストレージ要件を持つ予測可能なワークフローに適しています。

静的実行ストレージは、タスクの同時実行性が高い大規模でバースト的なワークロード (大量の RNASeq サンプルが並行して処理されるなど) に適しています。動的実行ストレージよりも、GiB あたりのファイルシステムのスループットが高く、GiB あたりのコストが低くなります。

必要な静的実行ストレージの計算

ベースファイルシステムのインストールでは静的ファイルシステム容量の 7% を使用するため、静的実行ストレージ (動的実行ストレージと比較) を使用する場合、ワークフローには追加の容量が必要です。

動的実行ストレージワークフローを実行して実行で使用される最大ストレージを測定する場合は、次の計算を使用して必要な静的ストレージの最小量を決定します。

static storage required = maximum storage in GiB used by the dynamic run storage + (total static file system size in GiB * 0.07)

例:

Maximum storage measured from a dynamic run storage workflow run: 500GiB File system size: 1200GiB 7% of the file system size: 84GiB 500 + 84 = 584GiB of static run storage required for this run.

したがって、この実行には 1200GiB (静的実行ストレージの最小容量) で十分です。