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

milvus-logo
LFAI
Home
  • Outils

Migration entre les instances d'un même bac (chemins d'accès différents)

Cette rubrique détaille le processus de sauvegarde d'une collection à partir d'une instance Milvus et sa restauration dans une autre instance tout en utilisant un bac partagé pour le stockage d'objets, avec des chemins racine distincts pour chaque instance.

Vue d'ensemble

Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide d'un seau partagé.

shared-bucket-backup-and-restore.png shared-bucket-backup-and-restore.png

Supposons que nous ayons des 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 partagent le même seau, bucket_A, mais stockent leurs données dans des chemins racine différents : files_A pour milvus_A et files_B pour milvus_B. Dans cet exemple, notre objectif est de réaliser les tâches suivantes :

  1. Créer une sauvegarde (my_backup) pour la collection coll qui est stockée sous le cheminfiles_A pour milvus_A.

  2. Restaurer la sauvegarde et la stocker dans files_B pour milvus_B.

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.

Sauvegarder 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échargez 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

Étape 2 : Éditer 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: milvus_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_A" # 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: Nom du seau utilisé pour le stockage sur milvus_A. Dans cet exemple, il s'agit de bucket_A.

    • minio.rootPath: Chemin racine dans le seau où les données de milvus_A sont stockées. Dans cet exemple, il s'agit de files_A.

    • minio.backupBucketName: Nom du panier utilisé pour le stockage. Dans cet exemple, milvus_A et milvus_B partagent le même panier. Par conséquent, la valeur estbucket_A.

    • minio.backupRootPath: Chemin d'accès racine dans le seau désigné pour le stockage des fichiers de sauvegarde dans milvus_B. Dans cet exemple, utilisez un chemin différent de celui de milvus_A. Par conséquent, définissez backup.

Étape 3 : Créer une sauvegarde

Une fois que backup.yaml est sauvegardé, créez une sauvegarde nommée my_backup :

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

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

Restaurer la sauvegarde à milvus_B

Étape 1 : Configurer les paramètres de restauration

Répétez l'étape 2 pour modifier les paramètres de restauration de milvus_B, en veillant à ce que minio.bucketName soit défini sur bucket_A et minio.rootPath sur files_B afin de distinguer les emplacements de stockage entre les deux instances.

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: milvus_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_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
  rootPath: "files_B" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance
  ...

É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_A/files_B/insert_log/[ID of new collection].

Traduit parDeepL

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 ?