작성일:

rustfs 소개

rustfs는 Rust로 구축된 고성능 S3 호환 분산 객체 스토리지 시스템입니다. 성능, 메모리 안전성 및 보다 관대한 라이선스에 중점을 두어 MinIO와 같은 다른 객체 스토리지 솔루션에 대한 현대적인 대안으로 자리매김하고 있습니다.

  • 웹사이트: https://rustfs.com/
  • 핵심 기술: Rust로 구축되어 메모리 안전성과 고성능 보장.
  • 라이선스: MinIO의 AGPLv3에 비해 비즈니스 친화적인 Apache 2.0.
  • 호환성: 100% S3 호환.

rustfs 시작하기

rustfs는 Docker를 사용하여 빠르고 쉽게 시작할 수 있습니다.

Docker로 설치

  1. Docker 이미지 다운로드

    docker pull rustfs/rustfs
    
  2. Docker 컨테이너 실행

    로컬에 데이터를 저장할 디렉토리(예: /mnt/rustfs/data)를 생성한 후, 아래 명령어를 실행합니다.

      docker run -d \
        --name rustfs_local \
        -p 9000:9000 \
        -p 9001:9001 \
        -v /mnt/rustfs/data:/data \
        rustfs/rustfs:latest \
        /data
    
    • -p 9000:9000: S3 API 포트
    • -p 9001:9001: 웹 콘솔 포트
    • -v /mnt/rustfs/data:/data: 로컬 데이터 저장 경로 마운트

웹 콘솔 접속

  • 컨테이너가 실행되면 웹 브라우저에서 http://localhost:9001 주소로 접속할 수 있습니다.
  • 기본 사용자 이름과 비밀번호는 모두 rustfsadmin 입니다.

사용법

rustfs는 S3와 100% 호환되므로, 웹 콘솔 외에도 mc (MinIO Client)나 S3 SDK 등 모든 S3 호환 도구를 사용하여 상호작용할 수 있습니다. 버킷 생성, 객체 업로드/다운로드 등의 작업을 편리하게 수행할 수 있습니다.

rustfs vs. MinIO

주요 영역에서 rustfs와 MinIO를 비교한 내용은 다음과 같습니다.

핵심 기술 및 라이선스

기능 rustfs MinIO
언어 Rust Go
라이선스 Apache 2.0 AGPLv3

rustfs에 Rust를 선택하면 메모리 안전성 및 성능 측면에서 이점을 제공하며, MinIO와 같은 Go 기반 애플리케이션에 나타날 수 있는 가비지 컬렉션 일시 중지(garbage collection pauses)와 같은 문제를 피할 수 있습니다. Apache 2.0 라이선스는 AGPLv3의 카피레프트(copyleft) 특성에 대해 우려하는 기업에게 rustfs를 더욱 매력적인 옵션으로 만드는 중요한 차별점입니다.

성능

  • 작은 객체: rustfs는 작은 (4KB) 객체에 대해 MinIO보다 최대 2.3배 더 나은 성능을 제공한다고 주장합니다. 이는 IoT, 로그 및 썸네일과 같이 작은 파일이 많은 워크로드에 이상적입니다.
  • 큰 객체: MinIO는 큰 순차 읽기에서 뛰어난 성능을 발휘하는 것으로 알려져 있습니다.
  • 전반: 두 시스템 모두 고성능을 제공하지만, 더 나은 선택은 특정 워크로드에 따라 달라집니다. rustfs의 “메타데이터 코디네이터 없음(no metadata coordinator)” 및 “가비지 컬렉터 없음(no garbage collector)” 설계는 지연 시간 급증을 줄이는 것을 목표로 합니다.

아키텍처 및 확장성

rustfs와 MinIO는 모두 분산형, 확장 가능한 객체 스토리지 시스템으로 설계되었습니다.

  • 분산 아키텍처: 둘 다 여러 머신의 여러 드라이브를 단일 스토리지 서버로 통합할 수 있습니다.
  • 데이터 보호: 둘 다 데이터 보호 및 내구성을 위해 이레이저 코딩(erasure coding)을 사용합니다.
  • 확장성: 둘 다 페타바이트 이상으로 수평 확장이 가능하도록 설계되었습니다. rustfs는 노드 로드를 자동으로 균형 있게 조절하고 데이터가 고르게 분산되도록 보장하는 기능을 강조합니다.

기능

두 시스템 모두 풍부한 엔터프라이즈급 기능을 제공합니다.

  • S3 호환성: S3 API와 완벽하게 호환됩니다.
  • 보안:
    • rustfs: 고성능 암호화를 위해 RustyVault와 통합됩니다. 또한 규정 준수를 위해 WORM(Write Once Read Many)을 지원합니다.
    • MinIO: 내장 암호화를 제공하며 IAM/LDAP을 지원합니다.
  • 복제:
    • rustfs: 액티브-액티브(active-active) 교차 지역 복제를 지원합니다.
    • MinIO: 또한 다양한 복제 전략을 지원합니다.

사용 사례

둘 다 다음과 같은 용도에 적합합니다.

  • AI/ML 및 빅데이터 워크로드
  • 클라우드 네이티브 애플리케이션 및 Kubernetes
  • 백업 및 아카이브
  • 프라이빗 및 하이브리드 클라우드 스토리지

결론

rustfs는 MinIO에 대한 매력적인 대안을 제시하며, 특히 다음을 우선시하는 조직에 적합합니다.

  1. 관대한 오픈 소스 라이선스 (Apache 2.0).
  2. 작은 객체 스토리지에 대한 고성능.
  3. Rust의 메모리 안전성 및 성능 이점.

MinIO가 성숙하고 널리 채택된 솔루션인 반면, rustfs는 라이선스 문제를 중심으로 MinIO에 대한 몇 가지 일반적인 우려를 해결하는 유망한 신규 솔루션입니다. 둘 중 어떤 것을 선택할지는 특정 요구 사항, 워크로드 특성 및 라이선스 선호도에 따라 달라질 것입니다.

댓글남기기