RustFS 아키텍처
RustFS는 잘 알려진 AWS S3와 유사한 객체 스토리지 시스템입니다. MinIO의 대체 제품으로서, RustFS는 MinIO의 간단하고 가볍고 확장 가능하며 우아한 아키텍처를 참고합니다.
객체는 문서, 비디오, PDF 파일 등이 될 수 있습니다. 객체를 저장하기 위해 MinIO는 데이터를 저장, 액세스 및 관리하기 위한 확장 가능하고 유연하며 효율적인 솔루션을 제공합니다. AWS S3 API와의 호환성은 AWS S3 기반 애플리케이션과의 원활한 통합을 가능하게 합니다.
아키텍처 다이어그램은 다음과 같습니다:
이것은 RustFS의 기본 아키텍처입니다. 분산 그리드는 단일 작업을 실행하기 위해 여러 노드를 사용하는 컴퓨터 아키텍처입니다. 노드들은 네트워크를 통해 서로 연결되어 있어 서로 통신할 수 있습니다.
일관성 설계
분산 모드와 단일 머신 모드 모두에서 모든 읽기 및 쓰기 작업은 read-after-write 일관성 모델을 엄격히 따릅니다.
RustFS의 중요한 개념
Object (객체): RustFS에 저장되는 기본 객체, 파일, 바이트 스트림, 모든 것...
Bucket (버킷): 객체를 저장하는 데 사용되는 논리적 공간. 각 버킷 간의 데이터는 상호 격리됩니다. 클라이언트에게는 파일을 배치하는 최상위 폴더와 같습니다.
Drive (드라이브): 데이터를 저장하는 디스크로, RustFS 시작 시 매개변수로 전달됩니다. RustFS의 모든 객체 데이터는 드라이브에 저장됩니다.
Set (세트): 드라이브의 그룹. 분산 배포는 클러스터 규모에 따라 자동으로 하나 이상의 세트로 나뉘며, 각 세트의 드라이브는 서로 다른 위치에 분산됩니다. 객체는 하나의 세트에 저장됩니다.
따라서 아키텍처를 설계하고 장비를 배포할 때 주의해야 할 점:
- 객체는 하나의 세트에 저장됩니다;
- 클러스터는 여러 세트로 나뉩니다;
- 세트에 포함된 드라이브 수는 고정되어 있으며, 기본적으로 시스템이 클러스터 규모에 따라 자동으로 계산합니다;
- 세트의 드라이브는 가능한 한 서로 다른 노드에 분산됩니다;
특별한 감사
모든 노드는 동등한 수준의 관계에 있어 아키텍처 설계를 크게 단순화하고 메타데이터 손실에 대한 우려를 제거하며, 하나의 명령으로 시작할 수 있습니다.
우아함, 단순함, 신뢰성을 잃지 않으면서 RustFS는 MinIO와 동일한 아키텍처 설계를 채택합니다.
제안된 아키텍처 개념으로 전 세계 사용자들을 크게 편리하게 하고 S3 프로토콜을 촉진한 MinIO에 감사드립니다.