🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 工具
  • Home
  • Docs
  • 工具

  • Milvus 備份

  • 常見案例

  • 在跨 S3 環境的 Instances 之間遷移

跨 S3 環境的實體間遷移

本主題詳述從一個 Milvus 實例備份資料集,並將其還原到另一個實例的過程,每個實例使用不同的物件儲存。

概述

下圖說明使用不同物件儲存的備份和還原程序。

multi-storage-backup-and-restore.png multistorage-backup-and-restore.png

假設我們有兩個使用不同物件儲存空間的 Milvus 實體milvus_Amilvus_B 。在這個範例中,我們的目標是完成下列任務:

  1. milvus_A 的物件儲存bucket_A 中的集合coll 建立備份 (my_backup)。

  2. 將備份 my_backup 傳輸到milvus_Bbucket_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: 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_Amilvus_B 使用不同的物件儲存空間,您需要手動從 milvus_A 的儲存空間下載備份,然後上傳到milvus_B 的儲存空間。

使用 MinIO 主控台

  1. 登入 MinIO 主控台。

  2. 找到 minio.address 中為 milvus_A 指定的儲存桶。

  3. 選取儲存桶中的備份檔案。

  4. 按一下「下載」,將檔案下載到您的電腦。

使用 mc 用戶端

您也可以使用mc 用戶端下載備份檔案:

  1. 設定 MinIO 主機:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. 列出可用的儲存桶:
# List the available buckets
mc ls my_minio
  1. 以遞迴方式下載儲存桶:
# 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

此命令將備份還原到milvus_B 中名為 coll_bak 的新集合中,資料儲存在milvus_B 的物件儲存空間內的bucket_B/files/insert_log/[ID of new collection] 中。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?