Pages List
List view
Volume 설정
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합니다.
이를 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모드를 지원합니다.- DDN
- InfiniBand로 연결되어 있는 고성능 저장 공간입니다.
여러 노드(다중 GPU 서버)에서 동시에 접근할 수 있으므로, 본격적인 분산 학습이나 실제 실험 단계에서는 반드시 데이터를 이 공간에 올려 작업해야 합니다. ReadWriteOnce,ReadWriteMany모드를 모두 지원합니다.- Object Storage
Naver Cloud Storage와 같은 저장소입니다.
GPU와 바로 붙어있는 공간이기에 접근은 빠르지만, Pod가 다른 node로 연결되었을 때 접근이 불가능합니다.
또한, 모종의 이유로 GPU사용이 불가능해지면, GPU 교체와 동시에 해당 NVMe 내용 또한 영구적으로 접근할 수 없습니다.
다음은 Clush 측에서 제공하는 Project 별 DDN 공간에 대한 설명입니다.
DDN 스토리지는 프로젝트 단위로 할당됩니다.
따라서, 새 프로젝트 생성 후 DDN 할당을 받지 않은 경우, StorageClass 목록에 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에서 동시사용이 가능하도록 설정하는게 보통입니다.