Upgrade to Pro — share decks privately, control downloads, hide ads and more …

고속 스토리지 통합하기 - 이상훈

Lablup Inc.
November 28, 2023
28

고속 스토리지 통합하기 - 이상훈

Lablup Conf 2023

Lablup Inc.

November 28, 2023
Tweet

More Decks by Lablup Inc.

Transcript

  1. 목차 § 고속 스토리지 § Backend.AI 의 스토리지 추상화와 구현

    – Backend.AI VFolder, Volume – Volume QuotaModel FSOpModel § Backend.AI 고속 스토리지 § GPU Direct Storage
  2. 고속 스토리지 § 고속 File access § 고속 File system

    scan § 고속 File scan § High IOPs, Throughput – 고성능 통신 장비 필수 !! § 대용량 데이터에 빠르게 접근 및 용이한 조작, 쉽게 관리 – 관리용 콘솔 UI, 자체 구현한 커맨드
  3. 고속 스토리지 § 고속 File access § 고속 File system

    scan § 고속 File scan § High IOPs, Throughput – 고성능 통신 장비 필수 !! § 대용량 데이터에 빠르게 접근 및 조작, 쉽게 관리 HPC AI
  4. Backend.AI VFolder VFolder 데이터 폴더 Backend.AI Storage Proxy Weka volume

    GPFS volume Vast data volume Netapp volume … volume Weka Storage Netapp Storage GPFS Storage Vast Data Storage ... Storage
  5. Backend.AI Storage Proxy Backend.AI Storage Proxy Weka volume GPFS volume

    Vast data volume Vast data Storage GPFS Storage Weka Storage Vast data client GPFS client Weka client
  6. Backend.AI VFolder VFolder 데이터 폴더 Backend.AI Storage Proxy Request GET

    usage Storage: Vast Data Vast data volume Vast Data Storage get fs usage create vfolder ... Weka volume Weka Storage get fs usage create vfolder ... … volume ... Storage get fs usage create vfolder ... Vast data client
  7. Backend.AI Storage Proxy AbstractVolume AbstractFSOpModel AbstractQuotaModel FSOpModel QuotaModel create vfolder

    clone vfolder delete vfolder get fs usage ... • Storage 고유의 File system operation 동작 함수를 정의 • Storage의 quota를 조작하는 함수 정의
  8. Backend.AI Storage Proxy AbstractVolume AbstractFSOpModel AbstractQuotaModel create vfolder clone vfolder

    delete vfolder get fs usage ... copy tree move tree delete tree scan tree ... create quota scope delete quota scope update quota scope unset quota ... BaseVolume BaseFSOpModel BaseQuotaModel
  9. Backend.AI 고속 스토리지 § Backend.AI에 새로운 스토리지를 붙여서 쓰고 싶다면?

    – BaseVolume을 상속받은 Volume 구현 – 고속 스토리지의 API 문서가 있을 경우 문서를 추적하여 최대한 많은 기능 커버 예 디렉토리 복사 기능이 있는가? 쿼타 기능이 있는가? 문서대로 동작하는지 테스트 예 REST API인 경우 cURL을 먼저 쏴본다. – 예외 처리는 필수! 언제나 스토리지가 오동작할 수 있음 스토리지에 다양한 명령이나 요청을 보내본다. create vfolder clone vfolder delete vfolder get fs usage ... BaseVolume NewVolume copy tree move tree delete tree scan tree ... BaseFSOpModel NewFSOpModel
  10. Backend.AI 고속 스토리지 § Vast Data 볼륨 구현 – Control

    plane은 REST API 서버 – Vast Data client 구현하여 REST 요청을 함수화 BaseFSOpModel VastDataVolume VastDataQuotaModel Vast data client
  11. Backend.AI 고속 스토리지 § Vast Data 볼륨 구현 문제 –

    Vast Data의 Quota는 고유 id 소유, id로만 조회 가능 Backend.AI의 Quota id와 Vast Data의 Quota id 매핑 정보를 어딘가에 저장해야 한다. Ø Backend.AI 중앙 DB에 저장하는 방법 • 단순히 Key-value 값을 저장하는데 DB 스키마까지 바꿔가면서 하기엔 굳이... Ø Vast Data DB를 쓰는 방법 • Vast Data Schema 만들고 table 만들고... 필요 이상으로 복잡 • Backend.AI의 Quota가 설정된 경로에 Vast Data Quota id를 파일로 저장 • 다행히도 일반 유저는 Quota 경로에 접근할 수 없음 • 기존 Backend.AI의 동작을 바꾸지 않고 구현도 단순 ✔
  12. GPU Direct Storage § AI 훈련 및 인퍼런스의 병목 GPU

    GPU Memory PCIe bus, Network card 등등... 그리고 Storage CPU GPU GPU Memory Storage Network card PCIe bus CPU Etc ...
  13. GPU Direct Storage § 기존 방식 – 데이터가 CPU를 거친다.

    – 큰 CPU 부하 – 느린 속도 § GDS – Storage와 GPU 메모리 사이에서 직접 데이터 접근 – Direct Memory Address를 통해 직접 접근 – 훨씬 더 넓은 대역폭, CPU 부하 감소
  14. GPU Direct Storage § 스토리지가 빨라도 접근이 느리면 결국 병목

    § GDS 호환 스토리지에서는 GDS를 적극 사용! – 쉽지 않은 인프라 구성 GPU 머신과 스토리지 사이 고성능 네트워크 필요 고속 광케이블 10G, 40G 고속 광케이블 스위치 은 는 기본! GDS 드라이버 설치 – GDS API 학습 Magnum IO, cuFILE API etc …
  15. GPU Direct Storage on NFS § GDS는 NFS에서도 사용 가능

    – 위 인프라가 모두 구성되었다면..! – NFS Client 에서도 – NFS Client에 생성된 컨테이너에서도 Ø 컨테이너 기반 세션을 제공하는 Backend.AI 에서도 OK