ゼロダウンタイムマイグレーション
ゼロダウンタイムマイグレーションは、既存データをコピーし、増分変更をターゲットクラスターに同期している間も、ソースクラスターを利用可能な状態に保ちます。マイグレーションを完了するには、アプリケーションを切り替える前にソースのサービスと書き込みを停止する必要があります。このマイグレーションは次のステージで構成されます:
-
初期化:ソースデータベースとマイグレーション対象のコレクションを選択し、既存のターゲットクラスター内のデータベースを選択します。
-
マイグレーション:既存データをマイグレーションし、増分データを同期します。
-
ファイナライズ:ソースクラスターのサービスと書き込みを停止し、同期ラグが 10 秒未満になったらデータ同期を停止します。マイグレーションの完了後、マイグレーションされたコレクションを手動でロードし、アプリケーションをターゲットクラスターに切り替えます。

ゼロダウンタイムマイグレーションは Private Preview で利用できます。アクセスをリクエストするには、Zilliz Cloud サポート にお問い合わせください。ソースクラスターとターゲットクラスターでサポートされる Milvus のバージョン要件は ≥ 2.6.21 or ≥ 3.0.0 です。ターゲットクラスターのバージョンは、ソースクラスターのバージョンより低くすることはできません。
マイグレーション機能
クラスターの互換性
次の表は、クラスター間のマイグレーション機能と制約の概要です:
| ソースクラスター | ターゲットクラスター | マイグレーションスコープ |
|---|---|---|
| Dedicated | Dedicated クラスター | ソースデータベースを選択し、すべてのコレクションまたは選択したコレクションを、既存のターゲット Dedicated クラスター内のデータベースにマイグレーションします。 |
| Serverless / Free | Dedicated クラスター | Serverless/Free クラスターには最大 1 つのデータベースしか含まれないため、ソースクラスターから単一のデータベースをマイグレーションします。 |
マイグレーションスコープのオプション
| マイグレーションの種類 | 説明 | ユースケース |
|---|---|---|
| 同じプロジェクト内 | 同じ Zilliz Cloud プロジェクト内の既存クラスター間でマイグレーションします | クラスターのアップグレード、パフォーマンスの最適化、データの統合 |
| 同じ組織内のプロジェクト間 | 同じ Zilliz Cloud 組織内の異なるプロジェクトにある既存クラスター間でマイグレーションします。組織間のマイグレーションは現在サポートされていません。 | 組織内のプロジェクト間でデータを移動する |
直接データ転送
ゼロダウンタイムマイグレーションは、Zilliz Cloud クラスター間で直接データレプリケーションを実行します。主な特性は次のとおりです:
-
スキーマの保持:ソーススキーマは変更されずにターゲットクラスターに転送されます
-
フィールド変換なし:マイグレーションでは、フィールド名の変更、データ型の変更、フィールド属性の変更は行いません。増分同期中は、選択したコレクションのスキーマを変更しないでください。これらの変更はレプリケートされません。
-
自動インデックス作成:ターゲットクラスターのベクトルフィールドに対して AUTOINDEX が自動的に作成されます
制限事項
-
増分同期中は、選択したソースコレクションに対する Delete、Insert、Upsert 操作のみがレプリケートされます。スキーマ変更や一括インポートなど、これらのコレクションに対するその他の変更はレプリケートされず、データの不整合を引き起こす可能性があるため、避けてください。
-
マイグレーション中のターゲットコレクションへの直接書き込みは、データの不整合を引き起こす可能性があるため、避けてください。
-
マイグレーションが完了するまでソースクラスターを保持してください。マイグレーション中に削除すると、マイグレーションエラーが発生します。
-
AutoID が有効なソースコレクションでは、マイグレーション前に Allow Insert AutoID を有効にしてください。有効にしない場合、マイグレーションはディスパッチされません。
-
ネットワークの不安定さによる再試行のため、マイグレーション後にターゲットコレクションで
count(*)を実行した結果が、ソースコレクションの結果と異なる場合があります。
事前準備
ゼロダウンタイムマイグレーションを開始する前に、次の要件を満たしていることを確認してください:
一般的な要件
| 要件 | 詳細 |
|---|---|
| ユーザー権限 | ソースクラスターには SERVING_CLUSTER_DATA_READ、ターゲットクラスターには SERVING_CLUSTER_DATA_WRITE、関連するプロジェクトには OBSERVABILITY_MANAGE が必要です。権限設定を簡単にするには、Project Admin ロールを使用してください。 |
| ソースクラスターへのアクセス | ソースクラスターへのパブリックインターネットアクセスを有効にする必要はありません。マイグレーションではプライベートネットワーク接続を使用します。 |
| ターゲットクラスターの容量 | ターゲットクラスターにソースデータを収容できる十分な CU 容量があることを確認してください(CU 計算ツール を使用)。マイグレーション中に容量が不足した場合は、容量を増やし、マイグレーションの継続について Zilliz Cloud サポート にお問い合わせください。 |
認証と AutoID の要件
コンソールでソースクラスターとターゲットクラスターを選択します。アクセスは現在の権限に基づいて確認されます。マイグレーションにソースエンドポイント、API キー、クラスターのユーザー名とパスワードを入力する必要はありません。ソースとターゲットは同じ組織に属している必要があります。
AutoID が有効なコレクションでは、増分マイグレーションの前に allow_insert_auto_id を有効にする必要があります。
はじめに
ゼロダウンタイムマイグレーションのプロセスは、注意と操作が必要な3つの主要なフェーズで構成されます:
フェーズ 1: 初期化
ターゲットクラスターを含む組織とプロジェクトから開始します。次のデモでは、ソースデータとターゲットロケーションを選択し、マイグレーションを開始する方法を示します:
-
ターゲットプロジェクトの左側のナビゲーションで Migrations を選択します。Zilliz to Zilliz Migration で Zero Downtime をクリックします。
-
Select Source Location をクリックし、ソースの Organization、Project、Cluster、データベース を選択します。ソースとターゲットは同じ組織に属している必要があります。
-
マイグレーション対象のコレクションを選択します。All コレクション を選択したままにすると、選択したデータベース内のすべてのコレクションをマイグレーションできます。個々のコレクションを選択することもできます。
-
Select Target Location をクリックし、ターゲットクラスターとデータベースを選択します。ターゲット組織とプロジェクトは Current Location に設定されます。
-
ソースとターゲットのロケーション、および 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 ステージでは、選択したソースコレクションの既存データをターゲットデータベースにコピーします。所要時間は転送するデータ量によって異なり、大規模なデータセットの場合は数時間かかることがあります。
処理に時間がかかっている場合は、このページを離れて他のタスクを実行してかまいません。いつでも戻って増分データの同期の進行状況を引き続き監視できます。
ステージ 2: 増分データの同期
Sync incremental data 中、システムは選択したソースコレクションに対する Delete、Insert、Upsert 操作をターゲットクラスターに継続的にレプリケートします。ターゲットクラスターは Migrating 状態のままです。データの不整合を避けるため、選択したソースコレクションにその他の変更を加えたり、マイグレーション中のターゲットコレクションに直接書き込んだりしないでください。同期を完了するには、次の手順に従います:
-
同期ラグを監視する
-
Lag Behind Source(ミリ秒または秒単位で表示)を追跡して、同期の進行状況を監視します。このインジケーターは、ソースクラスターとターゲットクラスターの最新データ間の時間差を示します。
-
Lag Behind Source が 10 秒未満になると、データ同期を停止する準備ができたことを示すメール通知が届きます。
-
Important:妥当な待機時間が経過しても同期ラグが 10 秒未満にならない場合は、Zilliz Cloud サポート にお問い合わせください。
-
-
データ同期を停止する
-
ソースクラスターのサービスとすべての書き込みを停止します。データ同期を停止してアプリケーションをターゲットクラスターに切り替える間は、書き込みを停止したままにします。
-
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 秒未満であるというメール通知は、データ同期を停止する準備ができたことを示すものであり、マイグレーションが完了したことを意味するものではありません。
-
Migration Progress ダイアログでマイグレーションが完了するまで待ちます。完了したマイグレーションジョブには Success と表示されます。
-
View Connection Details And Close Dialog をクリックして、ターゲットクラスターの接続詳細を表示します。
-
以下で説明するように、検索またはクエリ操作の前に、マイグレーションされたコレクションを手動でロードします。アプリケーションコードのエンドポイントと認証情報を更新してターゲットクラスターに接続し、アプリケーションがデータを読み書きできることを確認します。
クラスターへの接続手順については、Connect to Cluster を参照してください。
-
マイグレーション後、ソースクラスターは自動的に削除されません。手動で削除する前にデータの整合性を確認できるよう、しばらく保持することをお勧めします。
-
マイグレーションされたコレクションは、検索またはクエリ操作にすぐには使用できません。検索およびクエリ機能を有効にするには、Zilliz Cloud でコレクションを手動でロードする必要があります。詳細は、Load & Release を参照してください。
マイグレーションをキャンセルする
マイグレーションを中止するには、Jobs を開き、マイグレーションジョブを見つけて、利用可能な場合はそのアクションメニューから Cancel を選択します。キャンセルすると同期が停止し、ジョブのステータスが Canceled に変わります。ターゲットにすでに同期されたデータは自動的に削除されません。必要に応じてそのデータを確認して処理してください。
アプリケーションを切り替える前にマイグレーションを完了するには、Migration Progress ダイアログの Stop Data Sync を使用します。完了したジョブには Success と表示されます。マイグレーションを中止するには Cancel を使用します。ジョブには Canceled と表示されます。