🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

milvus-logo
LFAI
Casa
  • Strumenti

Migrare tra istanze in ambienti S3

Questo argomento illustra il processo di backup di una raccolta da un'istanza di Milvus e il suo ripristino in un'altra istanza, con ciascuna istanza che utilizza uno storage di oggetti diverso.

Panoramica

Il diagramma seguente illustra il processo di backup e ripristino utilizzando diversi archivi di oggetti.

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

Si supponga di avere due istanze Milvus, milvus_A e milvus_B, che utilizzano diversi archivi di oggetti. In questo esempio, l'obiettivo è completare le seguenti operazioni:

  1. Creare un backup (my_backup) per la collezione coll in bucket_A dell'archivio oggetti dimilvus_A.

  2. Trasferire il backup my_backup in bucket_B dell'archivio oggetti di milvus_B.

In bucket_B, ripristinare dal backup e nominare la collezione ripristinata coll_bak.

Prerequisiti

  • Assicurarsi che lo strumento milvus-backup sia installato.

  • Familiarizzare con la configurazione delle impostazioni di archiviazione degli oggetti di Milvus. Per i dettagli, consultare Archiviazione degli oggetti.

Eseguire il backup di una raccolta da milvus_A

Passo 1: Preparare la configurazione

Andare nella directory del progetto milvus-backup e creare una directory denominata configs:

mkdir configs
cd configs

Scaricare il file di configurazione di backup backup.yaml:

wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml

La struttura del file è la seguente:

├── configs
│   └── backup.yaml
├── milvus-backup
└── README.md

Passo 2: modificare il file di configurazione

Modificare il file backup.yaml per impostare le configurazioni appropriate per milvus_A:

  • Connection 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: Indirizzo IP o nome host del server milvus_A.

    • milvus.port: Porta TCP su cui il server Milvus è in ascolto (default 19530).

  • Configurazioni di archiviazione (impostazioni 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: Nome del bucket utilizzato per l'archiviazione dei dati in milvus_A. In questo esempio, è impostato su bucket_A.

  • minio.rootPath: Percorso principale all'interno del bucket in cui sono memorizzati i dati di milvus_A. In questo esempio, impostato su files.

  • minio.backupBucketName: Nome del bucket utilizzato per l'archiviazione di backup. In questo esempio, impostato su bucket_A.

  • minio.backupRootPath: Percorso radice all'interno del bucket designato per l'archiviazione dei file di backup in milvus_B. In questo esempio, impostato su backup.

Passo 3: Creare il backup

Una volta salvato backup.yaml, creare un backup denominato my_backup:

./milvus-backup create -c coll -n my_backup

Questo comando crea il backup bucket_A/backup/my_backup nell'archivio oggetti di milvus_A.

Trasferire manualmente il backup a milvus_B

Poiché milvus_A e milvus_B utilizzano uno storage di oggetti diverso, è necessario scaricare manualmente il backup dallo storage di milvus_A e caricarlo sullo storage dimilvus_B.

Uso della console MinIO

  1. Accedere alla console di MinIO.

  2. Individuare il bucket specificato in minio.address per milvus_A.

  3. Selezionare i file di backup nel bucket.

  4. Fare clic su Download per scaricare i file sul computer.

Utilizzo del client mc

In alternativa, è possibile utilizzare il client mc per scaricare i file di backup:

  1. Configurare un host MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Elencare i bucket disponibili:
# List the available buckets
mc ls my_minio
  1. Scaricare un bucket in modo ricorsivo:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

Una volta scaricati i file di backup, è possibile caricarli nell'object storage utilizzato da milvus_B per un futuro ripristino. In alternativa, è possibile caricare il backup su Zilliz Cloud per creare un database vettoriale gestito con i propri dati. Per ulteriori informazioni, consultare Migrazione da Milvus a Zilliz Cloud.

Ripristino dal backup a milvus_B

Passo 1: Configurare le impostazioni di ripristino

Ripetere il passo 2 per modificare le configurazioni per il ripristino su milvus_B, assicurandosi che minio.bucketName sia impostato su bucket_B.

Ecco un esempio di configurazione:

# 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

Passo 2: Ripristino dal backup

Ripristinare il backup in milvus_B:

./milvus-backup restore -c coll -n my_backup -s _bak

Questo comando ripristina il backup in una nuova raccolta denominata coll_bak inmilvus_B, con i dati archiviati in bucket_B/files/insert_log/[ID of new collection] all'interno dello storage degli oggetti di milvus_B.

Tradotto daDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?