S3環境をまたがるインスタンス間の移行
このトピックでは、あるMilvusインスタンスからコレクションをバックアップし、別のインスタンスにリストアするプロセスの詳細を説明します。
概要
下図は異なるオブジェクトストレージを使用したバックアップとリストアのプロセスを示しています。
マルチストレージバックアップ・リストア.png
異なるオブジェクトストレージを使用する2つのMilvusインスタンス、milvus_A
とmilvus_B
があると仮定します。この例では、以下のタスクを完了することを目標とします:
milvus_A
のオブジェクトストレージのbucket_A
内のコレクションcoll
のバックアップ(my_backup)を作成する。バックアップ my_backup を
milvus_B
の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:コンフィギュレーションファイルの編集
milvus_Aに適切なコンフィギュレーションを設定するために、backup.yaml
ファイルを修正します:
接続設定
# 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: minio_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" # 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
に設定。minio.backupBucketName
:バックアップ用のバケット名。この例ではbucket_A
とする。minio.backupRootPath
:milvus_B
にバックアップファイルを保存するために指定されたバケット内のルートパス。 この例では、backup
に設定します。
ステップ 3: バックアップの作成
backup.yamlが保存されたら、my_backup
という名前のバックアップを作成します:
./milvus-backup create -c coll -n my_backup
このコマンドは、milvus_A
のオブジェクトストレージにbucket_A/backup/my_backup
というバックアップを作成します。
手動でバックアップをmilvus_Bに転送する。
milvus_A
とmilvus_B
は異なるオブジェクトストレージを使用しているため、milvus_A のストレージから手動でバックアップをダウンロードし、milvus_B
のストレージにアップロードする必要があります。
MinIOコンソールの使用
MinIOコンソールにログインします。
milvus_Aのminio.addressで指定されたバケットを見つけます。
バケット内のバックアップファイルを選択します。
ダウンロード]をクリックして、ファイルをマシンにダウンロードします。
mcクライアントの使用
mcクライアントを使用してバックアップファイルをダウンロードすることもできます:
- MinIOホストを設定します:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- 利用可能なバケットを一覧表示します:
# List the available buckets
mc ls my_minio
- バケットを再帰的にダウンロードします:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
バックアップファイルのダウンロードが完了したら、milvus_B
で使用するオブジェ クトストレージにアップロードして、将来のリストアに使用できます。または、バックアップをZilliz Cloudにアップロードして、データを含むマネージドベクターデータベースを作成することもできます。詳しくは、MilvusからZilliz Cloudへの移行をご参照ください。
バックアップから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: minio_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_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
bucket_B/files/insert_log/[ID of new collection]
milvus_B
このコマンドは、milvus_B
の coll_bak という名前の新しいコレクションにバックアップをリストアします。