🚀 Essayez Zilliz Cloud, la version entièrement gérée de Milvus, gratuitement—découvrez des performances 10x plus rapides ! Essayez maintenant>>

milvus-logo
LFAI
Home
  • Outils

Migration entre instances et entre godets

Cette rubrique détaille le processus de sauvegarde d'une collection à partir d'une instance Milvus et sa restauration dans une autre instance, chaque instance utilisant différents godets dans le même stockage d'objets.

Vue d'ensemble

Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide de différents godets au sein du même stockage d'objets.

cross-bucket-backup-and-restore.png cross-bucket-backup-and-restore.png

Supposons que nous ayons deux instances Milvus, milvus_A et milvus_B, qui utilisent toutes deux le moteur de stockage MinIO par défaut pour le stockage d'objets. Ces instances utilisent différents buckets bucket_A et bucket_B dans le même stockage d'objets. Dans cet exemple, notre objectif est de réaliser les tâches suivantes :

  1. Créer une sauvegarde (my_backup) pour la collection coll dans bucket_A et stocker la sauvegarde dans bucket_B.

  2. Dans bucket_B, restaurer à partir de la sauvegarde et nommer la collection restaurée coll_bak.

Conditions préalables**

  • S'assurer que l'outil milvus-backup est installé.

  • Se familiariser avec la configuration des paramètres de stockage d'objets Milvus. Pour plus de détails, voir Stockage d'objets.

Sauvegarde d'une collection à partir de milvus_A

Etape 1 : Préparer la configuration

Aller dans le répertoire du projet milvus-backup et créer un répertoire nommé configs :

mkdir configs
cd configs

Télécharger le fichier de configuration de sauvegarde backup.yaml:

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

La structure du fichier ressemble à ceci :

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

Etape 2 : Editer le fichier de configuration

Modifiez le fichier backup.yaml pour définir les configurations appropriées pourmilvus_A:

  • Connexion 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: Adresse IP ou nom d'hôte du serveur milvus_A.

    • milvus.port: Port TCP sur lequel le serveur Milvus écoute (par défaut 19530).

  • Configurations de stockage (paramètres 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: Nom du seau utilisé pour le stockage des données dans milvus_A. Dans cet exemple, défini sur bucket_A.

  • minio.rootPath: Chemin d'accès à la racine du seau dans lequel les données de milvus_A sont stockées. Dans cet exemple, il s'agit de files.

  • minio.backupBucketName: Nom du godet utilisé pour le stockage des sauvegardes dansmilvus_B. Dans cet exemple, milvus_A et milvus_B utilisent des bacs différents. Par conséquent, la valeur est bucket_B.

  • minio.backupRootPath: Chemin d'accès à la racine du godet désigné pour le stockage des fichiers de sauvegarde dans milvus_B. Dans cet exemple, il s'agit de backup.

Étape 3 : Créer une sauvegarde

Une fois le fichier backup.yaml enregistré, créez une sauvegarde nommée my_backup:

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

Cette commande crée la sauvegarde bucket_B/backup/my_backup dans le stockage d'objets pour la collection coll.

Restaurer la sauvegarde vers milvus_B

Étape 1 : Configuration des paramètres de restauration

Répétez l'étape 2 pour modifier les configurations en vue de la restauration vers milvus_B, en veillant à ce que minio.bucketName soit défini sur bucket_B.

Voici un exemple de configuration :

...
# 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
...

Étape 2 : Restauration de la sauvegarde

Restaurer la sauvegarde sur milvus_B:

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

Cette commande restaure la sauvegarde dans une nouvelle collection nommée coll_bak dans milvus_B, avec des données stockées dans bucket_B/files/insert_log/[ID of new collection].

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?