Skip to content

버킷 및 객체 버전 관리

RustFS 객체 스토리지는 AWS S3 버전 관리 호환성을 제공

객체 수준 버전 관리는 SAN 및 NAS 버전 관리 방식에 비해 상당한 개선사항입니다. 버전 관리는 데이터 보호를 제공할 뿐만 아니라 객체 잠금, 불변성, 계층화 및 라이프사이클 관리와 같은 강력한 기능의 기반 역할을 합니다.

RustFS를 사용하면 객체는 Amazon의 S3 구조/구현에 따라 독립적으로 버전 관리됩니다. RustFS는 주어진 객체의 각 버전에 고유한 ID를 할당하며, 애플리케이션은 언제든지 버전 ID를 지정하여 해당 객체의 특정 시점 스냅샷에 액세스할 수 있습니다.

버전 관리를 통해 사용자는 동일한 버킷에서 객체의 여러 변형을 보존할 수 있으며, 버킷에 저장된 모든 객체의 모든 버전을 저장, 검색 및 복원하는 메커니즘을 제공하여 스냅샷의 필요성을 제거합니다. 버전 관리는 애플리케이션 및 인적 오류로 인한 장애를 포함한 일련의 장애를 통해 객체가 사용 가능한 상태로 유지되도록 보장합니다.

버전 관리는 버킷 수준에서 활성화됩니다. 활성화되면 RustFS는 객체에 대해 자동으로 고유한 버전 ID를 생성합니다. 동일한 객체가 여러 버전을 가질 수 있습니다.

버전 관리의 주요 이점 중 하나는 우발적인 덮어쓰기나 삭제를 방지하는 것입니다. 이는 삭제 마커라는 개념을 사용하여 구현됩니다. 버전이 관리되는 객체가 삭제되면 영구적으로 제거되지 않습니다. 대신 삭제 마커가 생성되어 해당 객체의 현재 버전이 됩니다. 해당 객체가 요청되면 RustFS는 404 Not Found 메시지를 반환합니다. 삭제 마커를 삭제하여 객체를 복원할 수 있습니다.

마찬가지로 버전이 관리되는 객체가 덮어쓰여지면 RustFS는 새 버전을 생성하고 이것이 현재 버전이 됩니다. 필요에 따라 이전 버전을 복원할 수도 있습니다.

RustFS는 세 가지 다른 버킷 상태로 객체 버전 관리를 지원

버킷 상태

버킷에 대해 버전 관리가 활성화되면 이 작업을 취소할 수 없으며, 일시 중단만 가능하다는 점에 유의하세요. 버전 관리는 버킷의 전역 설정이므로 모든 객체가 이제 버전 관리됩니다.

적절한 권한을 가진 사용자는 버전 관리를 일시 중단하여 객체 버전 누적을 중지할 수 있습니다. 버전 관리 활성화와 마찬가지로 이 작업은 버킷 수준에서 수행됩니다.

모든 RustFS 기능과 마찬가지로 버전 관리는 RustFS 콘솔, 클라이언트(mc), SDK 또는 명령줄 애플리케이션을 통해 적용할 수 있습니다.

버전 관리는 우발적인 작업으로부터 데이터를 보호하는 가장 간단한 방법입니다. 그러나 객체가 버전 관리되면 버킷 크기가 커지고 객체 간의 상호 의존성이 늘어나며 숨겨진 객체 종속성의 위험이 발생할 수 있습니다. 이러한 요인들은 라이프사이클 관리를 통해 완화할 수 있습니다.

핵심 기능 장점

데이터 보호 이점 외에도 RustFS의 객체 스토리지 버전 관리는 다른 주요 기능의 기반 역할을 합니다

주요 기능 특성

  • 버킷 복제 (Active-Active, Active-Passive)
  • Mc undo - 단일 명령으로 PUT/DELETE 객체 롤백
  • 객체 잠금
  • 지속적인 데이터 보호와 유사한 보호 스냅샷이나 전체 시스템 복제의 오버헤드 없이
  • Mc rewind - 버전 관리가 활성화된 후 언제든지 버킷이나 객체 보기

아키텍처

아키텍처 다이어그램

시스템 요구사항

버전 관리 요구사항: 소거 코딩과 최소 4개의 디스크

버전 관리 상태

RustFS는 세 가지 다른 버킷 버전 관리 상태를 지원합니다:

  1. 🔴 비버전화 - 기본 상태, 버전 관리 수행 안 함
  2. 🟢 활성화 - 전체 버전 관리 기능, 각 객체 버전에 고유 ID 할당
  3. 🟡 일시 중단 - 새 버전 누적 중지하지만 기존 버전 유지

주요 기능

  • 🆔 고유 버전 ID - 각 객체 버전이 고유한 식별자를 가짐
  • 🔄 특정 시점 복구 - 객체의 모든 기록 버전에 액세스 가능
  • 🛡️ 삭제 보호 - 삭제 마커를 사용하여 우발적 삭제 방지
  • 📊 라이프사이클 관리 - 버전 수와 스토리지 비용 자동 관리
  • 🔐 권한 제어 - 세밀한 액세스 권한 관리

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