🚀 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 à travers des environnements S3

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

Vue d'ensemble

Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide de différents stockages d'objets.

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

Supposons que nous ayons deux instances Milvus, milvus_A et milvus_B, qui utilisent un stockage d'objets différent. 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 du stockage d'objets demilvus_A.

  2. Transférer la sauvegarde my_backup vers bucket_B du stockage d'objets milvus_B.

Dans bucket_B, restaurez la sauvegarde et nommez 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

Étape 2 : Éditer le fichier de configuration

Modifiez le fichier backup.yaml pour définir les configurations appropriées pour milvus_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: 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: Nom du seau utilisé pour le stockage des données dans 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.

  • minio.backupBucketName: Nom du seau utilisé pour le stockage de sauvegarde. Dans cet exemple, il s'agit de bucket_A.

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

Étape 3 : Création de la 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_A/backup/my_backup dans le stockage d'objets de milvus_A.

Transférer manuellement la sauvegarde vers milvus_B

Étant donné que milvus_A et milvus_B utilisent un stockage d'objets différent, vous devez télécharger manuellement la sauvegarde à partir du stockage de milvus_A et la charger dans le stockage demilvus_B.

Utilisation de la console MinIO

  1. Connectez-vous à la console MinIO.

  2. Localisez le seau spécifié dans minio.address pour milvus_A.

  3. Sélectionnez les fichiers de sauvegarde dans le seau.

  4. Cliquez sur Télécharger pour télécharger les fichiers sur votre machine.

Utilisation du client mc

Vous pouvez également utiliser le client mc pour télécharger les fichiers de sauvegarde :

  1. Configurez un hôte MinIO :
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Dresser la liste des buckets disponibles :
# List the available buckets
mc ls my_minio
  1. Télécharger un conteneur de manière récursive :
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

Une fois les fichiers de sauvegarde téléchargés, vous pouvez les télécharger vers le stockage d'objets utilisé par milvus_B pour une restauration ultérieure. Vous pouvez également télécharger la sauvegarde vers Zilliz Cloud pour créer une base de données vectorielle gérée avec vos données. Pour plus de détails, voir Migrer de Milvus vers Zilliz Cloud.

Restauration à partir de la sauvegarde vers milvus_B

Étape 1 : Configuration des paramètres de restauration

Répétez l'étape 2 pour modifier les configurations pour la restauration vers milvus_B, en vous assurant que minio.bucketName est 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: 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

Étape 2 : Restauration à partir 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 dansmilvus_B, avec des données stockées dans bucket_B/files/insert_log/[ID of new collection] dans le stockage d'objets de milvus_B.

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 ?