跨儲存桶在不同實體間遷移
本主題詳述從一個 Milvus 實例備份資料集,並將其還原到另一個實例的過程,每個實例在相同的物件儲存中使用不同的儲存桶。
概述
下圖說明在同一個物件儲存空間中使用不同儲存桶的備份和還原程序。
cross-bucket-backup-and-restore.png
假設我們有兩個 Milvus 實體,milvus_A
和milvus_B
,兩者都使用預設的 MinIO 儲存引擎來儲存物件。這些實體在相同的物件儲存空間中使用不同的儲存桶 bucket_A 和bucket_B
。在這個範例中,我們的目標是完成下列任務:
在
bucket_A
中為集合coll
建立備份 (my_backup
) 並將備份儲存於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
設定適當的配置:
連線 configs
# 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]
。