스토리지 전략 및 성능 최적화
스토리지 전략 및 성능 최적화
3.1 HealthOmics 스토리지 아키텍처
공유 파일시스템 특성:
HealthOmics 런타임 환경:
- EFS (Elastic File System): 기본 공유 스토리지
- FSx for Lustre: 고성능 워크로드 옵션
- Run별 공유: 동일 Run 내 모든 Task가 파일시스템 공유
- 네트워크 레이턴시: 1-5ms (EFS), <1ms (FSx Lustre)
DYNAMIC vs STATIC 스토리지 전략:
DYNAMIC 스토리지 (권장 시작점):
- 장점: 사용량 기반 과금, 자동 확장, 관리 오버헤드 없음
- 성능: 최대 7,000 IOPS, 1GB/s 처리량
- 비용: $0.30/GB/월 (사용량 기반)
- 적용 시나리오: 대부분의 워크로드, 예측 불가능한 데이터 크기
STATIC 스토리지 (최적화 후 전환):
- 장점: 예측 가능한 비용, 높은 IOPS (최대 20,000)
- 성능: 프로비저닝된 처리량, 일관된 레이턴시
- 비용: $0.20/GB/월 (프로비저닝 기반)
- 적용 시나리오: 대용량 반복 워크로드, 성능 최적화 필요
3.2 워크플로우 수정 요구사항
공유 스토리지로 인한 WDL 수정 사항:
문제 상황 - 심볼릭 링크 오류:
# 기존 코드 (문제 발생)
elif [[ "$SUFFIX" == "gz" ]] ; then
ln -s ~{readFile} output/${PREFIX}.gz # 작업 디렉토리 외부 참조
fi
# 수정된 코드 (권장)
elif [[ "$SUFFIX" == "gz" ]] ; then
cp ~{readFile} output/${PREFIX}.gz # 파일 복사로 변경
fi
근본 원인:
- HealthOmics 보안 정책: 작업 디렉토리 외부 경로 참조 금지
- 심볼릭 링크가
/mnt/inputs/(외부) →output/(내부) 참조 시도 - OutputError 발생: "path outside working directory"
해결 전략:
- 파일 복사 방식: 안전하지만 스토리지 사용량 2배
- 하드 링크 방식: 동일 파일시스템 내에서 효율적
- 조건부 처리: 파일 형식에 따른 선택적 처리
3.3 성능 최적화 가이드라인
I/O 최적화:
파일 액세스 패턴 최적화:
- 순차 읽기: EFS 최적화 (prefetch 활용)
- 랜덤 액세스: FSx Lustre 권장
- 대용량 파일: 멀티스레드 I/O 활용
- 임시 파일: 로컬 SSD 활용 (/tmp)
네트워크 최적화:
- EFS 마운트 옵션:
nfsvers=4.1,rsize=1048576,wsize=1048576 - FSx Lustre: 병렬 파일시스템, 높은 처리량
- 데이터 지역성: 동일 AZ 내 리소스 배치
No comments to display
No comments to display