Skip to content

バケットとオブジェクトのバージョン管理

RustFSオブジェクトストレージはAWS S3バージョン管理互換性を提供

SANおよびNASのバージョン管理アプローチと比較して、オブジェクトレベルのバージョン管理は大幅な改善です。バージョン管理はデータ保護を提供するだけでなく、オブジェクトロック、不変性、階層化、ライフサイクル管理などの強力な機能の基盤でもあります。

RustFSでは、オブジェクトはAmazonのS3構造/実装に従って独立してバージョン管理されます。RustFSは指定されたオブジェクトの各バージョンに一意のIDを割り当て、アプリケーションはいつでもバージョンIDを指定してそのオブジェクトのポイントインタイムスナップショットにアクセスできます。

バージョン管理により、ユーザーは同じバケット内で1つのオブジェクトの複数のバリアントを保持でき、バケットに格納されている各オブジェクトの各バージョンを保存、取得、復元するメカニズムを提供し、スナップショットの要件を排除します。バージョン管理により、アプリケーションおよび人的エラーによって引き起こされるものを含む一連の障害においてオブジェクトが利用可能であることが保証されます。

バージョン管理はバケットレベルで有効にします。有効にすると、RustFSは自動的にオブジェクトの一意のバージョンIDを作成します。同じオブジェクトに複数のバージョンを持つことができます。

バージョン管理の主な利点の1つは、偶発的な上書きや削除を防ぐことです。これは削除マーカーの概念を使用して実行されます。バージョン化されたオブジェクトが削除されても、永続的に削除されません。代わりに、削除マーカーが作成され、オブジェクトの現在のバージョンになります。そのオブジェクトが要求されると、RustFSは404 Not Foundメッセージを返します。削除マーカーを削除することでオブジェクトを復元できます。

同様に、バージョン化されたオブジェクトが上書きされると、RustFSは新しいバージョンを作成し、それが現在のバージョンになります。同様に、必要に応じて古いバージョンを復元できます。

RustFSは3つの異なるバケット状態でオブジェクトバージョン管理をサポート

バケット状態

注意してください。バケットのバージョン管理が一度有効になると、その操作は取り消すことができません - 一時停止のみできます。バージョン管理はバケット内のグローバル設定です - これは、すべてのオブジェクトがバージョン管理されることを意味します。

適切な権限を持つユーザーは、オブジェクトバージョンの蓄積を停止するためにバージョン管理を一時停止できます。バージョン管理の有効化と同様に、この操作はバケットレベルで実行されます。

すべてのRustFSと同様に、RustFSコンソール、クライアント(mc)、SDK、またはコマンドラインを通じてバージョン管理を適用できます。

バージョン管理は、偶発的な操作からデータを保護する最も簡単な方法です。しかし、オブジェクトのバージョン化により、より大きなバケットサイズにつながり、オブジェクト間のより多の相互依存性と隠れたオブジェクト依存性のリスクを引き起こす可能性があります。これらの要因はライフサイクル管理によって軽減できます。

コア機能の利点

データ保護の利点に加えて、RustFSのオブジェクトストレージバージョン管理は他の重要な機能の基盤でもあります

主な機能特性

  • バケットレプリケーション(アクティブ-アクティブ、アクティブ-パッシブ)
  • Mc undo - 単一のコマンドでPUT/DELETEオブジェクトをロールバック
  • オブジェクトロック
  • 継続的データ保護のような保護、スナップショットや完全レプリケーションシステムのオーバーヘッドなし
  • Mc rewind - バージョン管理有効後の任意の時点でバケットやオブジェクトを表示

アーキテクチャ

アーキテクチャ図

システム要件

バージョン管理には必要な要件があります:イレイジャーコーディングと最低4つのディスク。

バージョン管理状態

RustFSは3つの異なるバケットバージョン管理状態をサポートします:

  1. 🔴 無効 - デフォルト状態、バージョン管理なし
  2. 🟢 有効 - 完全なバージョン管理機能、各オブジェクトバージョンに一意のIDを割り当て
  3. 🟡 一時停止 - 新しいバージョンの蓄積を停止、既存のバージョンは保持

キー特徴

  • 🆔 一意のバージョンID - 各オブジェクトバージョンには一意の識別子があります
  • 🔄 ポイントインタイム復旧 - オブジェクトの任意の履歴バージョンにアクセス可能
  • 🛡️ 削除保護 - 削除マーカーを使用して偶発的な削除を防止
  • 📊 ライフサイクル管理 - バージョン数とストレージコストを自動管理
  • 🔐 権限制御 - きめ細かいアクセス権限管理

Apache License 2.0の下でリリースされています。