반응형
MinIO 시리즈
팀내에서 사용하는 데이터 양이 많아지면서 개별 관리의 어려움과 중복 데이터 발생 등으로 인하여 데이터 인프라의 필요성을 느끼고, 구축하는 과정을 적어보고자 합니다.
데이터 인프라를 구성하는데 쉬운 방법 중 하나는 Amazon S3를 선택하는것 이겠지만, 지속적인 비용 지출의 어려움이 있어, Amazon S3 클라우드 스토리지 서비스와 완벽하게 호환되는 MinIO를 선택하게 되었습니다.
MinIO 선택 이유
- AWS S3 API와 호환되기 때문에 마이그레이션이 쉬움
- WebUI를 통하여 쉽게 업로드와 다운로드가 가능 ( NAS와 비슷하게 사용할 수 있음 )
- FS(File System)과 EC(Erasure Code) 두가지 모드 제공
- FS를 이용하여 용량이 작은 문서, Dockerfile 등의 파일을 저장할 예정
- EC를 이용하여 용량이 큰 학습 데이터 등을 저장할 예정
참고 : https://www.youtube.com/watch?v=gY090GEDdu8
1. What is MinIO?
- 오픈 소스로 제공되는 분산 스토리지 솔루션
- Object Storage를 사용하기 때문에 파일에 대한 직접적인 수정은 불가능하며, 항상 덮어 쓰는 방식이 사용
2. What is an Object?
이진 대형 객체(문서, 사진, 영상) - or BLOB 라고 한다.
- 문서, 사진, 영상 등
- BLOBs는 size, format, structure, type의 제한이 없음
- 특정한 계층 구조 접근 방식에 의존하지 않음
- BLOBs는 object의 메타데이터와 함께 저장됨
거의 모든 항목이 Blob이 될 수 있음 ( 도커이미지, 모델 weight 파일 등등 ) 이러한 Blob은 Bucket에 저장된다.
3. What is a Bucket?
- 버켓은 볼륨과 비슷하다 ( 데이터베이스, NFS Mount )
- Aws는 계정당 100개 이내로 제한, 각 버켓은 고유한 DNS가 있음
- MinIO는 버켓제한이 없지만 여전히 개별 드라이브(볼륨)와 같음
어플리케이션 사용자는 볼륨을 생성할 필요 없이, 사용만 하면 되며, Object Storage 관리자는 어플리케이션을 사용하는데 필요한 다양한 기능이 모두 포함된 버킷을 생성함.
버킷에는 Put을 사용하여 전역적으로 고유한 DNS를 통해 제약조건 없이 데이터를 넣을 수 있다.
4. What is Object Storage?
유연한 네임스페이스를 제공함.
- 유니크한 ID로 구성되며 일부 데이터와 전체 메타데이터로 구성된다. ( 원자 데이터 조각 )
- 확장에 제한이 없다.
- HTTP-based의 RESTful API로 쉽게 접근 가능하다.
- 모든 인프라에 배포 가능 ( 도커, 쿠버네티스, 로컬 등등 )
구현 사항
- 현재 보유하고 있는 데이터 서버는 2대
( 각 3T, 2T HDD, 2T, 2T HDD로 구성되어 있음 ) - 3T의 경우 파티셔닝을 통해 FS(1T)와 EC(2T)를 동시에 사용할 계획
( FS에 대한 백업은 타 서버로 진행 )
반응형
'MLOps > MinIO' 카테고리의 다른 글
MinIO 부하 테스트 with NginX (1) | 2024.07.16 |
---|---|
MinIO MNMD on Kubernetes with Prometheus (0) | 2024.07.09 |
Minio SNSD on Kubernetes (2/2) (1) | 2024.07.08 |
Minio SNSD on Kubernetes (1/2) (0) | 2024.07.04 |
MinIO SNSD, SNMD (2) | 2024.06.11 |