バケットをまたいだインスタンス間の移行
このトピックでは、あるMilvusインスタンスからコレクションをバックアップし、別のインスタンスにリストアするプロセスについて説明します。
概要
以下の図は、同じオブジェクトストレージ内の異なるバケットを使用したバックアップとリストアのプロセスを示しています。
クロスバケットバックアップ&リストア.png
オブジェクトストレージにデフォルトのMinIOストレージエンジンを使用する2つのMilvusインスタンス、milvus_A
とmilvus_B
があるとします。これらのインスタンスは、同じオブジェクトストレージ内で異なるバケット bucket_A とbucket_B
を使用しています。この例では、以下のタスクを完了することが目標です:
コレクション
coll
のバックアップ(my_backup
)をbucket_A
に作成し、そのバックアップをbucket_B
に保存します。bucket_B
で、バックアップからリストアし、リストアされたコレクションにcoll_bak
という名前を付けます。
前提条件
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: localhost # 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" # 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_B" # 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
に設定。minio.backupBucketName
:milvus_B
のバックアップ保存に使われるバケツの名前。この例では、milvus_A
とmilvus_B
は異なるバケットを使用しています。したがって、bucket_B
.minio.backupRootPath
:milvus_B
この例では、backup
に設定します。
ステップ3:バックアップの作成
backup.yamlが保存されたら、my_backup
という名前のバックアップを作成する:
./milvus-backup create -c coll -n my_backup
このコマンドは、コレクションcollのオブジェクトストレージにバックアップbucket_B/backup/my_backup
を作成します。
バックアップをmilvus_Bにリストアします。
ステップ1:リストア設定の構成
ステップ2を繰り返して、milvus_B
にリストアするためのコンフィグを変更します。minio.bucketName
がbucket_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: localhost # 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_B" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
rootPath: "files" # 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_B" # 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
...
ステップ2:バックアップのリストア
バックアップをmilvus_B
にリストアします:
./milvus-backup restore -c coll -n my_backup -s _bak
このコマンドは、milvus_B
のcoll_bak
という新しいコレクションにバックアップをリストアし、データはbucket_B/files/insert_log/[ID of new collection]
に保存されます。