つのバケット内のインスタンス間の移行(異なるルートパス)
このトピックでは、あるMilvusインスタンスからコレクションをバックアップし、別のMilvusインスタンスにリストアするプロセスについて詳しく説明します。
概要
以下の図は、共有バケットを使用したバックアップとリストアのプロセスを示しています。
共有バケットバックアップ・リストア.png
Milvusインスタンス、milvus_A
とmilvus_B
があり、どちらもオブジェクトストレージにデフォルトのMinIOストレージエンジンを使用しているとします。これらのインスタンスは、bucket_A
という同じバケットを共有していますが、milvus_A
はfiles_A
、milvus_B
は files_B という異なるルートパスにデータを保存しています。この例では、以下のタスクを完了することが目標です:
コレクション coll のバックアップ(my_backup)を作成し、
milvus_A
のfiles_A
パスに保存します。バックアップからリストアして、
milvus_B
の files_B に格納します。
前提条件
milvus-backupツールがインストールされていることを確認してください。
Milvusオブジェクトストレージの設定に慣れていること。 詳細については、オブジェクトストレージを参照してください。
からのコレクションのバックアップmilvus_A
ステップ1: 設定の準備
milvus-backupプロジェクトのディレクトリに移動し、configsというディレクトリを作成します:
mkdir configs
cd configs
バックアップ設定ファイルbackup.yamlをダウンロードします:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
ファイル構造は以下のようになります:
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
ステップ2:設定ファイルの編集
backup.yamlファイルを修正して、milvus_A
に適切なコンフィギュレーションを設定します:
接続設定
# milvus proxy address, compatible to milvus.yaml milvus: address: milvus_A port: 19530 authorizationEnabled: false # tls mode values [0, 1, 2] # 0 is close, 1 is one-way authentication, 2 is two-way authentication. tlsMode: 0 user: "root" password: "Milvus"
milvus.address
:milvus_A
サーバーの IP アドレスまたはホスト名。milvus.port
:MilvusサーバがリッスンしているTCPポート(デフォルト19530)。
ストレージ設定(MinIO/S3設定)
# Related configuration of minio, which is responsible for data persistence for Milvus. minio: # cloudProvider: "minio" # deprecated use storageType instead storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent) address: milvus_A # Address of MinIO/S3 port: 9000 # Port of MinIO/S3 accessKeyID: minioadmin # accessKeyID of MinIO/S3 secretAccessKey: minioadmin # MinIO/S3 encryption string useSSL: false # Access to MinIO/S3 with SSL useIAM: false iamEndpoint: "" bucketName: "bucket_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance rootPath: "files_A" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance # only for azure backupAccessKeyID: minioadmin # accessKeyID of MinIO/S3 backupSecretAccessKey: minioadmin # MinIO/S3 encryption string backupBucketName: "bucket_A" # Bucket name to store backup data. Backup data will store to backupBucketName/backupRootPath backupRootPath: "backup" # Rootpath to store backup data. Backup data will store to backupBucketName/backupRootPath
minio.bucketName
:milvus_A
ストレージに使用するバケット名。この例ではbucket_A
とする。minio.rootPath
:milvus_A
のデータが保存されるバケット内のルートパス。この例ではfiles_A
とします。minio.backupBucketName
:保存に使うバケツの名前。この例では、milvus_A
とmilvus_B
がバケツを共有している。したがって、bucket_A
.minio.backupRootPath
:milvus_B
この例では、milvus_A
と異なるパスを使用するため、backup
に設定します。
ステップ 3: バックアップの作成
backup.yaml
が保存されたら、my_backup という名前のバックアップを作成する:
./milvus-backup create -c coll -n my_backup
このコマンドは、コレクションcoll
のオブジェクトストレージにバックアップbucket_A/backup/my_backup
を作成します。
バックアップを以下にリストアします。milvus_B
ステップ 1: リストア設定の構成
milvus_B
minio.bucketName
が に設定され、 が に設定され、2つのインスタンス間でストレージの場所が区別されるようにします。bucket_A
minio.rootPath
files_B
以下は設定例です:
...
# milvus proxy address, compatible to milvus.yaml
milvus:
address: milvus_B
port: 19530
authorizationEnabled: false
# tls mode values [0, 1, 2]
# 0 is close, 1 is one-way authentication, 2 is two-way authentication.
tlsMode: 0
user: "root"
password: "Milvus"
# Related configuration of minio, which is responsible for data persistence for Milvus.
minio:
# cloudProvider: "minio" # deprecated use storageType instead
storageType: "minio" # support storage type: local, minio, s3, aws, gcp, ali(aliyun), azure, tc(tencent)
address: milvus_B # Address of MinIO/S3
port: 9000 # Port of MinIO/S3
accessKeyID: minioadmin # accessKeyID of MinIO/S3
secretAccessKey: minioadmin # MinIO/S3 encryption string
useSSL: false # Access to MinIO/S3 with SSL
useIAM: false
iamEndpoint: ""
bucketName: "bucket_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
rootPath: "files_B" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance
...
ステップ2:バックアップのリストア
バックアップをmilvus_B
にリストアします:
./milvus-backup restore -c coll -n my_backup -s _bak
このコマンドは、milvus_B
のcoll_bak
という名前の新しいコレクションにバックアップをリストアし、データはbucket_A/files_B/insert_log/[ID of new collection]
に保存されます。