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 있는 경우에만 이동 명령을 실행합니다.

[ -f old_name ] && mv old_name new_name

디렉터리를 생성하려면 다음 명령을 사용합니다.

mkdir -p mydir/subdir/

정적 실행 스토리지

정적 실행 스토리지의 경우 실행은 Lustre 프로토콜을 사용하는 파일 시스템을 프로비저닝합니다. 이 프로토콜은 기본적으로 멱등성이 없는 파일 작업에 복원력이 있습니다. 멱등성이 없는 파일 작업을 처리하기 위해 워크플로 코드를 조정할 필요가 없습니다.

HealthOmics는 고정된 양의 실행 스토리지를 할당합니다. 실행을 시작할 때이 값을 지정합니다. 값을 지정하지 않으면 기본 실행 스토리지는 1200GiB입니다. StartRun API 요청에서 스토리지 크기 값을 지정하면 시스템은 값을 1200GiB의 가장 가까운 배수로 반올림합니다. 해당 스토리지 크기를 사용할 수 없는 경우 2,400GiB의 가장 가까운 배수로 반올림됩니다.

정적 실행 스토리지의 경우 HealthOmics는 다음과 같은 처리량 값을 프로비저닝합니다.

  • 프로비저닝된 스토리지 용량의 TiB당 200MB/s의 기준 처리량.

  • 프로비저닝된 스토리지 용량의 TiB당 최대 1,300MB/s의 버스트 처리량.

지정된 스토리지 크기가 너무 작으면 파일 시스템의 스토리지 부족 오류와 함께 실행이 실패합니다. 정적 실행 스토리지는 알려진 스토리지 요구 사항이 있는 예측 가능한 워크플로에 적합합니다.

정적 실행 스토리지는 작업 동시성이 높은 대규모의 급증하는 워크로드(예: 병렬로 처리되는 대량의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(정적 실행 스토리지의 최소 용량)로 충분합니다.