Amazon Web Services 한국 블로그

Amazon FSx for Lustre 서비스 신규 출시 – 슈퍼 컴퓨터를 위한 파일 시스템

피비바이트(PiB – 1,125,899,906,842,624바이트)는 인간 두뇌의 추정 메모리 용량의 절반에 약간 못 미치는 엄청난 양의 데이터입니다. 데이터 레이크, HPC(고성능 컴퓨팅) 및 EDA(전자 설계 자동화) 애플리케이션은 전통적으로 이 규모에서 작동하며 기계 학습 및 미디어 처리 같은 최신의 데이터 집약적 애플리케이션도 마찬가지입니다.

Amazon FSx for Lustre 서비스

오늘 이러한 애플리케이션과 앞으로 나올 새로운 애플리케이션의 요구 사항을 충족하는 Amazon FSx for Lustre를 출시합니다. Lustre 오픈 소스 프로젝트를 기반으로 하는 Amazon FSx for Lustre는 고도의 병렬 파일 시스템으로, 페타바이트 규모 파일 시스템에 대한 1밀리초 미만의 액세스를 지원합니다. 수천 대의 동시 클라이언트(EC2 인스턴스 및 온프레미스 서버)에서 수백 만 IOPS(초당 입력/출력 작업)를 구동하고 초당 수백 기가바이트의 데이터를 전송할 수 있습니다.

https://d1.awsstatic.com/r2018/b/FSX-Lustre/FSx_Lustre_diagram.9f3f9ca4ea7827b296033b17f885543d4c3ca778.png

몇 분 안에 파일 시스템을 생성하고, 원하는 수의 클라이언트에 탑재하고, 즉시 액세스를 시작할 수 있습니다. 완전관리형 서비스이므로 유지 관리 및 관리가 필요하지 않습니다. 독립 실행형 파일 시스템을 구축해 단기간 사용하거나 이러한 파일 시스템을 원활하게 S3 버킷에 조인한 후 Lustre 파일 시스템인 것처럼 버킷의 콘텐츠에 액세스할 수 있습니다. 각 파일 시스템은 NVMe SSD 스토리지로 지원됩니다. 이 스토리지는 3.6TiB 단위로 증분 프로비저닝되며 프로비저닝된 1TiB 용량당 10,000IOPS에서 총 200Mbps의 처리량을 제공합니다.

Lustre 파일 시스템 생성

AWS Management Console 또는 CLI를 사용하거나 CreateFileSystem 함수를 호출하여 Lustre 파일 시스템을 생성할 수 있습니다. 저는 오늘 CLI를 사용하여 간단히 Lustre 엔드포인트의 서브넷과 원하는 스토리지 용량을 지정하겠습니다.

$ aws fsx create-file-system --file-system-type LUSTRE --storage-capacity 3600 --subnet-ids subnet-009a1149
----------------------------------------------------------------------------------------------
|                                      CreateFileSystem                                      |
+--------------------------------------------------------------------------------------------+
||                                        FileSystem                                        ||
|+-----------------+------------------------------------------------------------------------+|
||  CreationTime   |  1542666225.28                                                         ||
||  DNSName        |  fs-00a2e062546ff4fce.fsx.us-east-1.amazonaws.com                      ||
||  FileSystemId   |  fs-00a2e062546ff4fce                                                  ||
||  FileSystemType |  LUSTRE                                                                ||
||  Lifecycle      |  CREATING                                                              ||
||  OwnerId        |  012345678912                                                          ||
||  ResourceARN    |  arn:aws:fsx:us-east-1:012345678912:file-system/fs-00a2e062546ff4fce   ||
||  StorageCapacity|  3600                                                                  ||
||  VpcId          |  vpc-e68d9c81                                                          ||
|+-----------------+------------------------------------------------------------------------+|
|||                                   LustreConfiguration                                  |||
||+----------------------------------------------------------------+-----------------------+||
|||  WeeklyMaintenanceStartTime                                    |  5:09:00              |||
||+----------------------------------------------------------------+-----------------------+||
|||                                        SubnetIds                                       |||
||+----------------------------------------------------------------------------------------+||
|||  subnet-009a1149                                                                       |||
||+----------------------------------------------------------------------------------------+||

여기까지 약 5분이 소요된 후 AVAILABLE 상태가 됩니다.

$ aws fsx describe-file-systems --file-system-id fs-00a2e062546ff4fce | grep Lifecycle
||  Lifecycle      |  AVAILABLE                                                             ||

제 EC2 인스턴스에는 이미 Lustre 커널 모듈과 Lustre 클라이언트가 설치되어 있습니다.

탑재 지점을 생성하고 Lustre 파일 시스템을 탑재합니다.

$ sudo mkdir /fsx
$ sudo mount -t lustre fs-00a2e062546ff4fce.fsx.us-east-1.amazonaws.com@tcp:/fsx /fsx

이제 3.4TiB의 Lustre 파일 시스템을 사용할 수 있습니다.

S3 버킷의 전면(또는 S3 버킷의 접두 섹션)에 배치될 파일 시스템을 생성할 수도 있습니다. 그렇게 하면 버킷을 데이터 레이크처럼 다루고 파일 기반 도구 및 애플리케이션을 사용하여 처리할 수 있습니다. 파일 시스템을 생성할 때 버킷 이름을 ImportPath로 포함하면 됩니다.

$ aws fsx create-file-system --file-system-type LUSTRE --storage-capacity 3600 \
  --subnet-ids subnet-009a1149 --lustre-configuration ImportPath=s3://jbarr-src

제 버킷 안에는 약 1백만 개의 파일이 있으므로 생성 프로세스는 약 30분이 소요됩니다(팀의 이야기에 따르면 초당 약 500개 파일). 버킷은 다음과 같습니다.

EC2 인스턴스에서 보는 버킷은 다음과 같습니다.

이 시점에서 Lustre 파일 시스템에는 객체에 대한 모든 메타데이터(이름, 날짜, 크기 등)가 포함되지만 실제 파일 데이터는 없습니다. 이 데이터는 S3에서 필요할 때 복사됩니다. 따라서 다음 명령은 S3에 액세스하지 않습니다.

$ find . -type f

다음 명령은 S3에 액세스합니다. 객체가 S3에서 필요에 따라 파일 시스템으로 복사되므로 약간의 지연 시간 패널티가 발생합니다.

$ find . -type f -exec grep -l -i main {} \;

코드의 액세스 패턴을 알면 lfs 명령의 hsm_restore 옵션을 사용하여 미리 로드할 수 있습니다. 저는 모든 C 헤더 파일을 분석할 계획입니다.

$ find . -type f -name '*.h' -print0 | \
  xargs -0 -n 50 -P 8 sudo lfs hsm_restore

파일에 대한 모든 변경은 파일 시스템 안에 보존됩니다. lfs 명령의 hsm_archive 옵션을 사용하면 변경된 파일을 다시 S3로 내보낼 수 있습니다.

$ sudo lfs hsm_archive README.md
$ sudo lfs hsm_action README.md

첫 번째 명령은 내보내기 작업을 나타내고 두 번째 명령은 NOOP를 인쇄하여 내보내기 작업이 완료되었음을 나타냅니다. 변경된 파일은 동일한 버킷에 기록되며 파일 시스템의 ExportPath 접두사가 추가됩니다.

명령줄에서 ExportPath를 검색할 수 있습니다.

$ aws fsx describe-file-systems --file-system-id fs-086f5160a68bc158b | grep Path
||||  ExportPath       |  s3://jbarr-src/FSxLustre20181120T005845Z                        ||||
||||  ImportPath       |  s3://jbarr-src                                                  ||||

각 파일 시스템은 풍부한 지표 세트를 CloudWatch에 게시합니다.

훨씬 더 많은 기능이 있지만 지면이 부족해 다 보여드릴 수 없는 게 아쉽습니다. 예를 들어 Amazon FSx for Lustre를 사용하여 크기 조정을 수행할 수 있습니다. 이 게시물에서는 단일 클라이언트를 사용했지만 수천 대의 클라이언트로 손쉽게 확장할 수 있습니다.

정식 출시 정보

다음은 Amazon FSx for Lustre와 관련하여 숙지해야 할 몇 가지 유용한 정보입니다.

  • 콘솔 액세스 – 이 글을 작성할 때 CLI를 사용했지만 전체 콘솔을 사용할 수도 있습니다.
  • 리전미국 동부(버지니아 북부), 미국 서부(오레곤), 미국 동부(오하이오)EU(아일랜드) 리전에서 Lustre 파일 시스템을 생성할 수 있습니다.
  • 요금 – 요금은 프로비저닝한 스토리지의 양을 기준으로 부과되며 미국 동부(버지니아 북부), 미국 서부(오레곤)EU(아일랜드) 리전에서 GiB당 월 0.14 USD부터 시작됩니다.
  • 액세스 – EC2 인스턴스에서 파일 시스템에 액세스할 수 있습니다. 또한 AWS Direct Connect를 사용하여 기존 데이터 센터 또는 코로케이션을 AWS에 연결하고 거기서 파일 시스템에 액세스할 수 있습니다.
  • 보안 – 각 파일 시스템에 대한 액세스는 보안 그룹을 통과하며 세분화된 액세스 제어를 위해 IAM 정책이 사용됩니다. 저장된 데이터는 256비트 블록 암호화 및 Amazon FSx for Lustre로 관리되는 키를 사용하여 암호화됩니다.

Amazon FSx for Lustre는 지금 이용 가능하며 오늘부터 사용을 시작할 수 있습니다.

Jeff;