メインコンテンツまでスキップ

Zero Downtime Migration

Zero Downtime Migration は、既存データをコピーして増分変更をターゲットクラスターに同期している間も、ソースクラスターを利用可能な状態に保ちます。移行を完了するには、アプリケーションを切り替える前にソースサービスの停止とソースへの書き込みの停止が必要です。この移行は、次の各ステージで構成されます:

  1. 初期化: ソースデータベースと移行するコレクションを選択し、既存のターゲットクラスター内のデータベースを選択します。

  2. 移行: 既存データを移行し、増分データを同期します。

  3. 完了処理: ソースクラスターへのサービスと書き込みを停止し、同期ラグが 10 秒未満になったらデータ同期を停止します。移行の完了後、移行したコレクションを手動でロードし、アプリケーションをターゲットクラスターに切り替えます。

PTB0wxmm2hCBc3b2dj1cCCJgnRb

Notes

Zero Downtime Migration は Private Preview で提供されています。アクセスをリクエストするには、Zilliz Cloud サポート にお問い合わせください。ソースクラスターとターゲットクラスターでサポートされる Milvus のバージョン要件は ≥ 2.6.21 または ≥ 3.0.0 です。ターゲットクラスターのバージョンは、ソースクラスターのバージョンより低くしないでください。

移行機能​

クラスターの互換性​

次の表に、クラスター間で可能な移行と制約の概要を示します:

ソースクラスターターゲットクラスター移行範囲
DedicatedDedicated クラスターソースデータベースを選択し、すべてのコレクションまたは選択したコレクションを、既存のターゲット Dedicated クラスター内のデータベースに移行します。
Serverless / FreeDedicated クラスターServerless/Free クラスターにはデータベースが最大 1 つしか含まれないため、ソースクラスターから単一のデータベースを移行します。

移行範囲オプション​

移行タイプ説明ユースケース
同じプロジェクト内同じ Zilliz Cloud プロジェクト内の既存クラスター間で移行しますクラスターのアップグレード、パフォーマンスの最適化、データの統合
同じ組織内のクロスプロジェクト同じ Zilliz Cloud 組織内の異なるプロジェクトにある既存クラスター間で移行します。組織間の移行は現在サポートされていません。組織内のプロジェクト間でデータを移動します

ダイレクトデータ転送​

Zero Downtime Migration は、次の特性を持つ Zilliz Cloud クラスター間の直接データレプリケーションを実行します:

  • スキーマの保持: ソーススキーマを変更せずにターゲットクラスターへ転送

  • フィールド変換なし: 移行では、フィールド名の変更、データ型の変更、フィールド属性の変更は行いません。増分同期中に選択したコレクションのスキーマを変更しないでください。これらの変更はレプリケートされません。

  • 自動インデックス作成: ターゲットクラスターのベクトルフィールド用に AUTOINDEX が自動的に作成されます

制限​

  • 増分同期中は、選択したソースコレクションに対する Delete、Insert、Upsert 操作のみがレプリケートされます。スキーマ変更や一括インポートなど、これらのコレクションに対するその他の変更はレプリケートされず、データの不整合を引き起こす可能性があるため、避けてください。

  • 移行中のターゲットコレクションへの直接書き込みは、データの不整合を引き起こす可能性があるため、避けてください。

  • 移行が完了するまでソースクラスターを保持してください。移行の進行中に削除すると、移行エラーが発生します。

  • AutoID が有効なソースコレクションでは、移行前に Allow Insert AutoID を有効にします。有効にしない場合、移行はディスパッチされません。

  • 移行後のターゲットコレクションで count(*) を実行した結果は、ネットワークの不安定さによる再試行のため、ソースコレクションの結果と異なる場合があります。

事前準備​

Zero Downtime Migration を開始する前に、次の要件を満たしていることを確認してください:

一般要件​

要件詳細
ユーザー権限ソースクラスターに対する SERVING_CLUSTER_DATA_READ、ターゲットクラスターに対する SERVING_CLUSTER_DATA_WRITE、および関連プロジェクトに対する OBSERVABILITY_MANAGE が必要です。権限設定を簡素化するには、Project Admin ロールを使用します。
ソースクラスターへのアクセスソースクラスターへのパブリックインターネットアクセスを有効にする必要はありません。移行ではプライベートネットワーク接続が使用されます。
ターゲットクラスターの容量ターゲットクラスターに、ソースデータを収容するための十分な CU 容量があることを確認します(CU 計算ツール を使用してください)。移行中に容量が不足した場合は、容量を増やし、移行の継続について支援を受けるために Zilliz Cloud サポート にお問い合わせください。

認証と AutoID の要件​

コンソールでソースクラスターとターゲットクラスターを選択します。アクセスは現在の権限に基づいて確認されます。移行のためにソースのエンドポイント、API キー、またはクラスターのユーザー名とパスワードを入力する必要はありません。ソースとターゲットは同じ組織に属している必要があります。

AutoID が有効なコレクションでは、増分移行の前に allow_insert_auto_id を有効にする必要があります。

はじめに​

Zero Downtime Migration のプロセスは、注意して操作する必要がある 3 つの主要フェーズで構成されます:

フェーズ 1: 初期化​

ターゲットクラスターを含む組織とプロジェクトから開始します。次のデモでは、ソースデータとターゲットの場所を選択し、移行を開始する方法を示します:

  1. ターゲットプロジェクトで、左側のナビゲーションから Migrations を選択します。Zilliz to Zilliz Migration で、Zero Downtime をクリックします。

  2. Select Source Location をクリックし、ソースの Organization、Project、Cluster、データベース を選択します。ソースとターゲットは同じ組織に属している必要があります。

  3. 移行するコレクションを選択します。All コレクション を選択したままにすると、選択したデータベース内のすべてのコレクションが移行されます。個々のコレクションを選択することもできます。

  4. Select Target Location をクリックし、ターゲットクラスターとデータベースを選択します。ターゲットの組織とプロジェクトは Current Location に設定されます。

  5. ソースとターゲットの場所、および Selected Collections リストを確認してから、Migrate をクリックします。

移行中、ソースクラスターは Running 状態のままになり、ターゲットクラスターには Migrating と表示されます。移行が完了するまでソースクラスターを保持してください。移行中に削除すると、移行エラーが発生します。

フェーズ 2: 監視​

ターゲットクラスターの詳細ページで、移行バナーにある View Progress をクリックし、Migration Progress ダイアログを開きます。このダイアログを使用して既存データの移行と増分データの同期を監視し、アプリケーションを切り替える準備ができたらデータ同期を停止します。

Jobs からジョブを監視することもできます。移行ジョブのアクションメニューを開き、View Details を選択して Data タブを選択すると、Rows Written、Sync Delay、Data Synced Through、Metrics Updated、およびソースからターゲットへのコレクションマッピングを表示できます。

ステージ 1: 既存データの移行

Migrate Existing Data ステージでは、選択したソースコレクションの既存データをターゲットデータベースにコピーします。所要時間は転送するデータ量によって異なり、大規模なデータセットの場合は数時間かかることがあります。

Notes

処理に時間がかかっている場合は、このページを離れて他のタスクを進めてかまいません。いつでも戻って、増分データの同期の進行状況の監視を続行できます。

ステージ 2: 増分データの同期

Sync incremental data の実行中、システムは選択したソースコレクションに対する Delete、Insert、Upsert 操作をターゲットクラスターに継続的にレプリケートします。ターゲットクラスターは Migrating 状態のままです。データの不整合を避けるため、選択したソースコレクションにその他の変更を加えたり、移行中のターゲットコレクションに直接書き込んだりしないでください。同期を完了するには、次の手順に従います:

  1. 同期ラグの監視

    • Lag Behind Source(ミリ秒または秒で表示)を追跡して、同期の進行状況を監視します。このインジケーターは、ソースクラスターとターゲットクラスターの最新データ間の時間差を示します。

    • Lag Behind Source が 10 秒未満になると、データ同期の停止に進めることを示すメール通知が届きます。

    • 重要: 妥当な待機時間が経過しても同期ラグが 10 秒未満にならない場合は、Zilliz Cloud サポート にお問い合わせください。

  2. データ同期の停止

    • ソースクラスターへのサービスとすべての書き込みを停止します。データ同期を停止してアプリケーションをターゲットクラスターに切り替える間も、書き込みを停止したままにしてください。

    • Lag Behind Source が 10 秒未満 で、ソースへの書き込みが停止している場合は、I confirm that I have stopped writes to the source cluster を選択してから、Stop Data Sync をクリックします。これが通常の切り替え手順です。完了すると、移行ジョブに Success と表示されます。

    Notes

    増分同期は 最大 7 日間 サポートされます。この期間内に移行を完了するように計画してください。さらに時間が必要な場合は、Zilliz Cloud サポート にお問い合わせください。

フェーズ 3: 切り替え​

Stop Data Sync をクリックした後、アプリケーションをターゲットクラスターに切り替える前に、移行が完了するまで待ちます。同期ラグが 10 秒未満になったというメール通知は、データ同期を停止する準備ができたことを示すものであり、移行が完了したことを意味するものではありません。

  1. Migration Progress ダイアログで移行が完了するまで待ちます。完了した移行ジョブには Success と表示されます。

  2. View Connection Details And Close Dialog をクリックして、ターゲットクラスターの接続情報を表示します。

  3. 以下で説明するように、検索またはクエリ操作の前に、移行したコレクションを手動でロードします。アプリケーションコードのエンドポイントと認証情報を更新してターゲットクラスターに接続し、アプリケーションがデータを読み書きできることを確認します。

クラスターへの接続方法については、Connect to Cluster を参照してください。

Notes
  • 移行後、ソースクラスターは自動的に削除されません。手動で削除する前にデータの整合性を確認するため、一定期間保持することをお勧めします。

  • 移行したコレクションは、検索またはクエリ操作にすぐには使用できません。Zilliz Cloud でコレクションを手動でロードして、検索およびクエリ機能を有効にする必要があります。詳細については、Load & Release を参照してください。

移行のキャンセル​

移行を中止するには、Jobs を開き、移行ジョブを見つけて、使用可能な場合はそのアクションメニューから Cancel を選択します。キャンセルすると同期が停止し、ジョブのステータスが Canceled に変わります。ターゲットに既に同期されたデータは自動的には削除されません。必要に応じてそのデータを確認して処理してください。

アプリケーションを切り替える前に移行を完了するには、Migration Progress ダイアログで Stop Data Sync を使用します。完了したジョブには Success と表示されます。移行を中止するには Cancel を使用します。ジョブには Canceled と表示されます。