Skip to content

RustFS 아키텍처

RustFS는 잘 알려진 AWS S3와 유사한 객체 스토리지 시스템입니다. MinIO의 대안으로서 RustFS는 MinIO의 깔끔하고 가벼우며 확장 가능하고 우아한 아키텍처를 참조합니다.

객체는 문서, 비디오, PDF 파일 등이 될 수 있습니다. 객체 저장을 위해 MinIO는 데이터 저장, 액세스 및 관리를 위한 확장 가능하고 유연하며 효율적인 솔루션을 제공합니다. AWS S3 API와의 호환성을 통해 AWS S3 기반 애플리케이션과의 원활한 통합이 가능합니다.

아키텍처 다이어그램은 다음과 같습니다:

RustFS 아키텍처 다이어그램

이것은 RustFS의 기본 아키텍처입니다. 분산 메시는 단일 작업을 수행하기 위해 여러 노드를 사용하는 컴퓨터 아키텍처입니다. 노드들은 네트워크를 통해 서로 연결되어 상호 통신할 수 있습니다.

일관성 설계

분산 모드와 단일 머신 모드 모두에서 모든 읽기 및 쓰기 작업은 read-after-write 일관성 모델을 엄격히 따릅니다.

RustFS의 중요한 개념

객체(Object): RustFS에 저장되는 기본 객체로, 파일, 바이트 스트림 등 모든 것이 될 수 있습니다.

버킷(Bucket): 객체를 저장하는 데 사용되는 논리적 공간입니다. 각 버킷 간의 데이터는 상호 격리됩니다. 클라이언트에게는 파일을 저장하기 위한 최상위 폴더와 같습니다.

드라이브(Drive): 데이터를 저장하는 디스크로, RustFS 시작 시 매개변수로 전달됩니다. RustFS의 모든 객체 데이터는 드라이브에 저장됩니다.

세트(Set): 드라이브의 모음입니다. 분산 배포는 클러스터 규모에 따라 자동으로 하나 이상의 세트로 나누어지며, 각 세트의 드라이브는 서로 다른 위치에 분산됩니다. 객체는 하나의 세트에 저장됩니다.

따라서 아키텍처 설계 및 장비 배포 시 다음을 고려해야 합니다:

  1. 객체는 하나의 세트에 저장됩니다
  2. 클러스터는 여러 세트로 나뉩니다
  3. 세트의 드라이브 수는 고정되며, 기본적으로 시스템이 클러스터 규모에 따라 자동으로 계산합니다
  4. 세트 내의 드라이브는 가능한 한 다른 노드에 분산됩니다

특별한 감사

모든 노드는 피어-투-피어 관계에 있어 아키텍처 설계를 크게 단순화하고 메타데이터 손실에 대한 우려를 제거합니다. 단일 명령으로 시작할 수 있습니다.

우아함, 단순함, 신뢰성을 잃지 않으면서 RustFS는 MinIO와 동일한 아키텍처 설계를 채택합니다.

전 세계 사용자들에게 큰 편의를 제공하고 S3 프로토콜을 촉진한 아키텍처 개념을 제안한 MinIO에 감사드립니다.

Apache License 2.0 하에 출시되었습니다.