rustfs 101
작성일:
rustfs 소개
rustfs는 Rust로 구축된 고성능 S3 호환 분산 객체 스토리지 시스템입니다. 성능, 메모리 안전성 및 보다 관대한 라이선스에 중점을 두어 MinIO와 같은 다른 객체 스토리지 솔루션에 대한 현대적인 대안으로 자리매김하고 있습니다.
- 웹사이트: https://rustfs.com/
- 핵심 기술: Rust로 구축되어 메모리 안전성과 고성능 보장.
- 라이선스: MinIO의 AGPLv3에 비해 비즈니스 친화적인 Apache 2.0.
- 호환성: 100% S3 호환.
rustfs 시작하기
rustfs는 Docker를 사용하여 빠르고 쉽게 시작할 수 있습니다.
Docker로 설치
-
Docker 이미지 다운로드
docker pull rustfs/rustfs -
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에 대한 매력적인 대안을 제시하며, 특히 다음을 우선시하는 조직에 적합합니다.
- 관대한 오픈 소스 라이선스 (Apache 2.0).
- 작은 객체 스토리지에 대한 고성능.
- Rust의 메모리 안전성 및 성능 이점.
MinIO가 성숙하고 널리 채택된 솔루션인 반면, rustfs는 라이선스 문제를 중심으로 MinIO에 대한 몇 가지 일반적인 우려를 해결하는 유망한 신규 솔루션입니다. 둘 중 어떤 것을 선택할지는 특정 요구 사항, 워크로드 특성 및 라이선스 선호도에 따라 달라질 것입니다.
댓글남기기