Trawling

RustFS — Rust로 작성된 오픈소스 S3 호환 고성능 오브젝트 스토리지

RustFS는 Rust로 작성된 분산 오브젝트 스토리지 시스템으로, MinIO의 단순함과 Rust의 메모리 안전성·성능을 결합하는 것을 목표로 합니다. Apache 2.0 라이선스를 채택해 MinIO의 AGPL 대비 상업적 사용이 자유롭다는 점을 차별점으로 내세우며, S3 API 호환성과 데이터 레이크·AI 워크로드 최적화를 표방합니다.

본문

RustFS는 Rust로 구축된 고성능 분산 오브젝트 스토리지 시스템입니다. MinIO의 단순함을 계승하면서 Rust의 메모리 안전성과 성능을 결합하고, S3 API 호환성을 제공해 데이터 레이크, AI, 빅데이터 워크로드에 최적화되어 있다고 소개합니다. MinIO, Ceph 등 기존 S3 호환 플랫폼과의 마이그레이션 및 공존을 지원하는 것을 표방합니다.

주요 기능과 라이선스 포지셔닝

프로젝트가 내세우는 가장 큰 차별점은 라이선스입니다. RustFS는 Apache 2.0 라이선스로 배포되어, MinIO가 채택한 AGPL v3의 제약 없이 상업적 사용과 기여가 가능합니다. 비교표에서는 GC 일시정지나 메모리 누수 가능성이 있는 Go/C 기반 시스템 대비 Rust 기반의 안전성, 텔레메트리가 없어 GDPR·CCPA·APPI 등 규제 준수에 유리하다는 데이터 주권 측면, 그리고 엣지·IoT 환경에서의 경량성 등을 강조합니다. 기능 목록으로는 버저닝, Object Lock(WORM), 서버 측 암호화, RustFS KMS, 라이프사이클 관리(ILM)와 원격 S3 티어링, S3 Select, IAM/정책, OIDC/SSO, 멀티테넌시, 버킷 및 사이트 레플리케이션, 감사 로깅, 웹 콘솔, K8s Helm 차트, SFTP/FTPS/WebDAV 등이 'Available' 상태로 표시되어 있습니다. OpenStack Swift API와 Keystone 인증도 네이티브로 지원합니다.

Preview 상태와 주의 사항

모든 기능이 완성된 것은 아닙니다. S3 Tables(Iceberg REST Catalog 형태로 제공되며 PyIceberg, DuckDB로 자동 검증)와 MinIO 온디스크 호환성은 'Preview' 단계입니다. 특히 MinIO 온디스크 호환성은 rio-v2 피처 플래그 뒤에 있고 기본 빌드에 포함되지 않으며, MinIO가 암호화한 객체는 RustFS에서 읽을 수 없다고 명시되어 있습니다. Swift API와 SFTP는 opt-in cargo 피처로 빌드해야 합니다. KMS의 경우 Vault(KV2/Transit)와 AWS KMS 백엔드만 프로덕션용이고 Local/Static 백엔드는 개발·테스트 전용입니다. 풀 확장 규칙은 MinIO를 따르지만, 단일 노드 단일 드라이브(SNSD) 배포는 인플레이스 확장이 불가능하고 자동 패리티 선택이 MinIO와 다르다는 점도 주의 사항으로 적혀 있습니다.

배포와 운영

설치는 install_rustfs.sh 스크립트, Docker/Podman(포트 9000/9001, 기본 계정 rustfsadmin/rustfsadmin), Docker Compose, Kubernetes Helm 차트, Nix flake(NixOS 모듈 포함), x-cmd 등 다양한 경로를 제공합니다. 컨테이너는 UID/GID 10001의 비루트 사용자로 실행되므로 바인드 마운트 경로의 소유권을 맞춰야 한다는 운영상 주의가 강조됩니다. 웹훅 알림의 경우 1.0.0-beta.11부터 프라이빗·컨테이너 네트워크 엔드포인트가 기본 차단되어 RUSTFS_OUTBOUND_ALLOW_ORIGINS에 오리진을 명시해야 하며, TLS 검증 스킵 옵션은 MITM 위험 경고와 함께 제공됩니다. 공개된 스트레스 테스트 환경은 2코어 Xeon, 4GB 메모리, 15Gbps 네트워크, 40GB 드라이브 4개(IOPS 3800)로 비교적 소규모입니다. 스캐너 런타임 제어, 드라이브 타임아웃 튜닝 등 운영 문서도 별도로 마련되어 있습니다.

GitHub 반응

댓글이 없습니다.

원문: GitHub / 번역·요약: Trawling

참고 자료

오류 제보