SeaweedFS
SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! Blob store has O(1) disk seek, cloud tiering. Filer supports Cloud Drive, cross-DC active-active replication, Kubernetes, POSIX FUSE mount, S3 API, S3 Gateway, Hadoop, WebDAV, encryption, Erasure Coding.
- 단순하고 확장성이 뛰어난 분산 파일 시스템
- 목표는 수십억 개의 파일을 저장하고 빠르게 제공하는 것
- Facebook의 Haystack 디자인과 f4: Facebook의 Warm BLOB 저장 시스템에서 아이디어를 얻어 구현됨
- Blob 저장소는 O(1) 디스크 검색 과 클라우드 계층화 기능이 있음
- Filer는 디렉토리와 POSIX 속성을 지원하며, 클라우드 드라이브, DC 간 액티브-액티브 복제, Kubernetes, POSIX FUSE 마운트, S3 API, S3 게이트웨이, Hadoop, WebDAV, 암호화, 이레이저 코딩 기능등을 포함
Demo
기능
- 복제 수준, 랙 및 데이터 센터 인식 등 다양한 복제 옵션 제공.
- 마스터 서버 자동 장애 전환으로 단일 실패 지점 없음.
- 파일 MIME 유형에 따른 자동 Gzip 압축 지원.
- 데이터 삭제 또는 업데이트 후 디스크 공간 회수를 위한 자동 압축.
- 서버 추가로 총 저장 공간 증가 가능.
- 서버 추가/제거 시 데이터 재균형 없음, 관리자 명령에 의해서만 트리거됨.
- 이미지 크기 조정, ETag, Accept-Range, Last-Modified 등 지원.
- 메모리/성능 균형을 위한 in-memory/leveldb/readonly 모드 튜닝 지원.
- 사용자 정의 가능한 다중 저장 계층 및 투명한 클라우드 통합 제공.
- 따뜻한 저장소를 위한 랙 인식 10.4 이레이저 코딩으로 저장 비용 절감 및 가용성 향상.
Filer 기능
- Filer 서버는 HTTP를 통해 "일반" 디렉토리 및 파일 제공.
- 파일 TTL로 파일 메타데이터 및 실제 파일 데이터 자동 만료.
- FUSE를 통해 마운트된 filer로 파일을 직접 읽고 쓸 수 있음.
- Filer 저장소 복제로 메타 데이터 저장소의 HA 가능.
- Amazon S3 호환 API로 S3 도구를 사용하여 파일 접근 가능.
- Hadoop 호환 파일 시스템으로 Hadoop/Spark/Flink 등에서 파일 접근 가능.
- AES256-GCM 암호화 저장소로 데이터 안전하게 저장.
- 수십 TB의 대용량 파일 저장 지원.
- 클라우드 드라이브로 클라우드 저장소를 로컬 클러스터에 마운트하여 빠른 읽기 및 쓰기 지원.
Kubernetes
- Kubernetes CSI 드라이버 및 SeaweedFS 운영자 지원.
Seaweed 객체 저장소 사용 예
- 마스터 노드와 볼륨 노드의 기본 포트 및 실행 방법 안내.
- 파일 쓰기, 읽기, 삭제 방법에 대한 예시 제공.
- 랙 인식 및 데이터 센터 인식 복제, 특정 데이터 센터에 파일 키 할당 방법 설명.
아키텍처
- SeaweedFS는 파일을 청크로 나누지 않고 데이터 볼륨을 관리함.
- 마스터 서버는 볼륨에 대한 메타데이터만 관리하고, 실제 파일 메타데이터는 볼륨 서버에서 관리함.
- 파일 쓰기 및 읽기 프로세스에 대한 자세한 설명 제공.
다른 파일 시스템과의 비교
- HDFS, GlusterFS, Ceph, MooseFS, MinIO 등과 비교하여 SeaweedFS의 장점 설명.
- SeaweedFS는 작은 파일에 최적화되어 있으며, O(1) 디스크 읽기 작업으로 빠른 파일 접근을 제공함.
List of Object Storage Softwares
- Cloud Service