- MinIO는 오픈소스로 제공되는 오브젝트 스토리지 서버
- AWS S3와 호환되는 클라우드 스토리지를 구축할 수 있는 도구
- MinIO는 Golang으로 제작되며, 단일 실행 파일 형태로 설치 방법이 매우 간단
- MinIO에서 데이터 보호를 위해서 Erasure Code를 사용
- MinIO의 기본 document URL : https://docs.min.io/docs/
- MiniO의 Console 참고 URL : https://docs.min.io/minio/baremetal/console/minio-console.html
MinIO를 제공하는 3가지 형태의 도구
- MinIO Server
- 클라우드 스토리지 서버(오브젝트 스토리지)를 구성 가능
- MinIO Client
- MinIO Server, AWS S3, GCS 등에 연결하여 파일 업로드 및 관리 등의 기능을 제공
- MinIO Library
- 개발자를 위하여 Golang, Java, Python 등 SDK를 제공하는 라이브러리
minIO의 성능
- minIO는 빠른 객체 스토리지
- 읽기 속도 : 183GB/s
- 쓰기 속도 : 171GB/s
minIO의 확장성
- minIO는 간단한 확장 모델을 사용
- 여러개의 minIO 인스턴스를 하나의 클러스터로 묶고, 클러스터들은 다시 글로벌 네임스페이스를 생성하며 병합
minIO기능
1. Erasure Coding
- minIO는 어셈블리 언어로 작성된 Erasure Coding을 통해 데이터를 보호
- minIO는 Reed-Solomon 알고리즘을 사용 → 여러 블럭으로 쪼개진 데이터 중 많은 부분이 손실되어도 복구가 가능
- minIO는 오브젝트 수준에서 데이터 복구가 가능
2. Bitort Protection
- 디스크 드라이브는 노후화된 디스크, 물리적 충격, 펌웨어의 버그 등의 문제로 데이터가 부패할 수 있지만, 사용자는 문제를 인식하지 못 할 수 있음
- 사용자가 인식하지 못하는 데이터 손실을 minIO는 해쉬 알고리즘을 통해서 쓰고 읽을 때의 데이터가 동일한지 검증
minIO의 Architecture
- minIO는 클라우드 친화적으로 설계되었으며, 경량의 컨테이너로 구동이 가능
- 컨테이너는 40MB이하의 바이너리 파일로 매우 가벼움
아키텍처 개념도
- 여러 노드에 분산된 minIO를 하나로 묶어서 사용 → 어플리케이션 수준에서는 S3 API를 이용하여 자원 접근 가능
- 클러스터 내부에 minIO간에는 RESTful API를 통해서 통신
- minIO는 내부적으로 3개의 Layer로 구성
- S3 Lyaer : 대외적인 네트워크를 처리하는 영역
- Object Layer : Cache, Compression, Encryption, Erasure code, Bitrot와 같이 minIO 기능들을 수행하는 영역
- Storage Layer : File System과 직접적으로 통신하는 영역
- 참고 URL : https://sarc.io/index.php/cloud/2174-minio
- 학습 URL : https://1week.tistory.com/106
'Opensource(오픈 소스) > MinIO' 카테고리의 다른 글
MinIO client 사용법 (0) | 2022.07.07 |
---|---|
MinIO 객체 스토리지 쿠버네티스 설치 (0) | 2022.07.07 |
MinIO 객체 스토리지 docker 설치 (0) | 2022.07.06 |
MinIO 객체 스토리지 설치 및 systemd에 등록 (0) | 2022.07.06 |