Volume 설정

Volume 설정

DDN/NVMe - Project Level Storage
DDN/NVMe - Project Level Storage
PVC(Persistent Volume Claim)란?
쿠버네티스 시스템에서 사용자가 저장 공간을 요청하는 'Storage 청구서' 입니다.
  • 사용자가 Volume 생성 버튼을 누르면, Kubernetes 내부에서는 PVC 객체가 만들어집니다.
  • Kubernetes는 실제 물리적인 디스크 공간인 PV 와 사용자의 요청인 PVC 를 분리해서 관리합니다.
    사용자가 "50GiB 공간이 필요해"라고 PVC 를 제출하면, 시스템이 조건에 맞는 PV 를 찾아 자동으로 연결해 줍니다.
  • Pod PVC 를 통해 안전하게 물리적 스토리지에 접근하고 데이터를 읽고 쓸 수 있게 됩니다.
사용자는 PVC를 작성하여 NKS에 제출하면, NKS에서 PVC를 보고 물리적 Storage를 할당합니다.
이를 PV라고 부르며, PVC와 PV를 Binding합니다.
사용자는 PVC 를 생성하며, NKS는 자동으로 조건에 맞는 PV 를 떼어와 연결해 주도록 Trigger 합니다.
MLXP에서는 PVC 생성을 위한 .yaml파일을 자동으로 생성하여 NKS에 전달하지만, 저희가 Terminal에서 따로 설정할 수도 있습니다.

저장소의 종류

Project의 volume 설정에서는 [ DDN / NVMe / NCS ]를 선택할 수 있습니다.
  • Workspace-level
    • Naver Cloud Storage
      Data Manager 와 Model Registry가 저장되는 공간입니다.
    • Object Storage
      Container 사용을 위한 Image 저장소입니다.
  • Project-level
    • NVMe
      • local-path로 표시되어있으며, Node(Server)와 연결되어있는 저장소입니다.
        실험 초기나 단일 노드 벤치마크에서만 사용하고, 실제 실험단계나 학습단계에서는 DDN에 데이터를 올려 작업해야 합니다.
      • ReadWriteOnce 모드를 지원합니다.
      • GPU와 바로 붙어있는 공간이기에 접근은 빠르지만, Pod가 다른 node로 연결되었을 때 접근이 불가능합니다.
        또한, 모종의 이유로 GPU사용이 불가능해지면, GPU 교체와 동시에 해당 NVMe 내용 또한 영구적으로 접근할 수 없습니다.
    • DDN
      • InfiniBand로 연결되어 있는 고성능 저장 공간입니다.
        여러 노드(다중 GPU 서버)에서 동시에 접근할 수 있으므로, 본격적인 분산 학습이나 실제 실험 단계에서는 반드시 데이터를 이 공간에 올려 작업해야 합니다.
      • ReadWriteOnceReadWriteMany 모드를 모두 지원합니다.
    • Object Storage
      Naver Cloud Storage와 같은 저장소입니다.
💡
다음은 Clush 측에서 제공하는 Project 별 DDN 공간에 대한 설명입니다.
DDN 스토리지는 프로젝트 단위로 할당됩니다.
따라서, 새 프로젝트 생성 후 DDN 할당을 받지 않은 경우, StorageClass 목록에 DDN이 표시되지 않습니다.
프로젝트별 DDN 용량을 아래 형식으로 요청하면, 네이버 클라우드에 DDN 재분배 요청이 진행됩니다.
  • 프로젝트 : 사용하실 DDN 용량
  • 총 DDN 용량 = 할당 받으신 노드 수 * 20TB

Volume Access Type

  • ReadWriteOnce
    한 번에 하나의 Node만 읽기/쓰기 권한을 가집니다.
    다른 Node에서는 접근이 불가능합니다.
  • ReadWriteMany
    다른 Node에서도 고속으로 동시 읽기/쓰기가 가능합니다.
    로컬 스토리지(NVMe)보다는 느릴 수 밖에 없으며 전체 노드에서 읽기/쓰기가 동시에 일어날 경우, 속도 저하가 발생 될 수 있습니다.

Volume Size

  • DDN은 서버당 20TB가 할당되며, 총 40TB입니다.
    NVMe는 서버당 7TB x 6개가 할당되어, 총 84TB입니다.
  • NVMe를 사용하게 된다면, “최대 용량의 80%의 까지만 사용”해야합니다.
    그 이상으로 쓰게된다면, 데이터가 유실되거나 학습되던 하드가 방출될 수 있습니다.

기타

  • NVMe는 Clush측에서 관리대상이 아니라고 합니다. 저희가 알아서 관리해야합니다.
  • Volume을 할당 한 이후, 용량을 증가시키는게 가능합니다. (DDN만 가능합니다.)

정리

  • Project에 할당하는 Project-level Storage(Volume)은 다른 Project에서 접근이 불가능합니다.
  • DDN의 RWO는 다른 pod이여도 같은 Node로 할당된 경우 동시사용이 가능합니다.
    하지만, DDN에서는 RWX로 설정하여 해당 project에서 생성한 모든 pod에서 동시사용이 가능하도록 설정하는게 보통입니다.