rclone リモート経由のGCSに適用されます。
前提条件
- 両方のプロバイダーについて、ストレージサポートポリシーとリリースノートを読む。
- リリースがプロバイダー中立の永続削除アウトボックスを使用することを確認する。履歴の MinIO専用削除ギャップは修正済みです。その古い 制限を新しい設計に持ち込まないでください。
- 宛先の容量、暗号化、バージョニング、保持、ライフサイクル、 オブジェクトサイズ、メタデータ、および命名動作を確認する。
- 最小権限のソース読み取りおよび宛先書き込み移行アイデンティティを作成する。
- TLS信頼を設定する。
--no-check-certificateを使用してはならない。 - PostgreSQLとソースストレージの一貫性バックアップを取得してテストする。
- オブジェクト数、合計バイト、ソースバージョン/スナップショット、および設定を記録する。
- 書き込み静止とロールバックを許可する変更ウィンドウを設定する。
source:casebender と destination:casebender を使用します。rclone
設定とログはリポジトリの外に置き、機密として保護します。
1. インベントリとドライラン
sync を使用してはなりません。宛先
オブジェクトを削除する可能性があるためです。
2. アプリケーション稼働中のシードコピー
3. 書き込みを静止し、一貫性ポイントを取得する
リリースのメンテナンス手順を使用して、ユーザーおよび統合の書き込みをブロックします。 キューがドレインされるか永続的に保持された後にのみ、取り込みとワーカーを一時停止します。 データベースのタイムスタンプ/LSN、ソースバケットバージョン/スナップショット、およびデプロイ レプリカを記録します。ストレージ書き込みが発生していないことを検証します。 最終差分を実行します。4. カットオーバー前の検証
rclone check --download はダウンロードした内容をハッシュし、プロバイダーETagの
曖昧さを避けます。欠損、変更、または読み取り不可オブジェクトがゼロであることを要求します。
プロバイダーマーカーオブジェクトまたはローカル .meta.json サイドカーによる件数差を調査し、
記録された説明なしに差を免除しないでください。
アプリケーションネットワークから宛先契約テストを実行します。
5. カットオーバー
- 暗号化された変更記録に、古いプロバイダー設定とSecretリソースバージョンを 保存する。
StorageMigrationLedgerエントリがVERIFIEDであることを確認する。移行 プロセッサーは先にコピーし、読み戻し、SHA-256を検証し、宛先 プロバイダーバージョンを記録してから、CUTOVERに遷移します。- 明示的なプロバイダープロファイルと資格情報のみを変更する。バケット 内容と永続キーを保全する。
- Webアプリケーションを再起動し、
/api/health/readyを待つ。 - アプリケーションのアップロード/ダウンロード/list/コピー/削除テストを実行し、SHA-256を検証する。
- 複数の経過時間とサイズにわたる既存の添付と証拠を検証する。
- ワーカーと取り込みを再開し、その後ユーザー書き込みを再開する。
- ロールバックウィンドウ中、ストレージエラー、失敗した削除、レイテンシ、スロットリング、キュー深度、および 監査イベントを継続的に監視する。
6. ロールバック
ロールバックは、古いソースが保持され、新しい書き込みを 調整できる間のみ安全です。- メンテナンスモードに再入り、書き込みを静止する。
- カットオーバー以降に宛先に書き込まれたすべてのオブジェクトを記録する。
- 削除なしで、逆差分をソースにコピーする。
- クリーンなチェックを要求してから、以前のプロバイダー設定と 資格情報バージョンを復元する。
- 再起動し、アプリケーションのライフサイクル/整合性テストを実行して、トラフィックを再開する。
- インシデント/変更レビューが完了するまで、両方のストアとすべてのエビデンスを保持する。
7. クローズアウト
- 最終件数/バイトを調整し、ハッシュ、ログ、ツールバージョン、承認、 設定バージョン、およびサンプリングしたアプリケーション結果をアーカイブする。
- 一時的な移行資格情報をローテーションする。
- 承認済みロールバック期間中、ソースを読み取り専用で保持する。
- 正式なサインオフと法務/保持レビューの後、 プロバイダーの監査済み廃棄プロセスを使用してソースデータを削除する。
- プロバイダー製品/バージョン、TLS/CA詳細、 契約結果、性能結果、バックアップ結果、およびロールバック演習でサポート記録を更新する。
プロバイダー固有の注意点
- S3/Ceph RGW: バージョンIDと削除マーカーを保全する。通常のコピーでは Object Lock/リーガルホールド状態が保持されない場合があります。正確な製品バージョンと プライベートCAを再適格性確認します。
- GCS: 数値世代を保全する。バケット保持、オブジェクト保持、 イベントベースホールド、およびCMEKポリシーは、別途宛先での証明が必要です。
- Azure: BlobバージョンIDを保全する。不変性とリーガルホールドは 宛先固有であり、コピーされたBlobは新しいバージョンIDを受け取ります。
- レガシーMinIO: 元のボリュームスナップショットとS3 APIエクスポートの両方を保持する。 MinIOの内部ファイルシステムレイアウトを別のプロバイダーにインポートしてはなりません。