🚀 Prueba Zilliz Cloud, el Milvus completamente gestionado, gratis—¡experimenta un rendimiento 10 veces más rápido! Prueba Ahora>>

milvus-logo
LFAI
Home
  • Herramientas

Migración entre instancias a través de entornos S3

Este tema detalla el proceso de hacer una copia de seguridad de una colección desde una instancia de Milvus y restaurarla en otra, con cada instancia utilizando un almacenamiento de objetos diferente.

Visión general

El siguiente diagrama ilustra el proceso de copia de seguridad y restauración utilizando diferentes almacenamientos de objetos.

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

Supongamos que tenemos dos instancias Milvus, milvus_A y milvus_B, que utilizan diferentes almacenamientos de objetos. En este ejemplo, nuestro objetivo es completar las siguientes tareas:

  1. Crear una copia de seguridad (my_backup) para la colección coll en bucket_A del almacenamiento de objetos demilvus_A.

  2. Transferir la copia de seguridad my_backup a bucket_B del almacenamiento de objetos de milvus_B.

En bucket_B, restaure a partir de la copia de seguridad y asigne a la colección restaurada el nombre coll_bak.

Requisitos previos

  • Asegúrese de que la herramienta milvus-backup está instalada.

  • Familiarícese con la configuración del almacenamiento de objetos de Milvus. Para obtener más información, consulte Almacenamiento de objetos.

Copia de seguridad de una colección desde milvus_A

Paso 1: Preparar la configuración

Vaya al directorio del proyecto milvus-backup y cree un directorio llamado configs:

mkdir configs
cd configs

Descargue el archivo config de copia de seguridad backup.yaml:

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

La estructura del archivo es la siguiente

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

Paso 2: Editar el archivo de configuración

Modifique el archivo backup.yaml para establecer las configuraciones apropiadas para milvus_A:

  • Conexión 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: Dirección IP o nombre de host del servidor milvus_A.

    • milvus.port: Puerto TCP en el que escucha el servidor Milvus (por defecto 19530).

  • Configuración de almacenamiento (configuración 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: Nombre del cubo utilizado para el almacenamiento de datos en milvus_A. En este ejemplo, se establece en bucket_A.

  • minio.rootPath: Ruta raíz dentro del cubo donde se almacenan los datos de milvus_A. En este ejemplo, se establece en files.

  • minio.backupBucketName: Nombre del cubo utilizado para el almacenamiento de la copia de seguridad. En este ejemplo, se establece en bucket_A.

  • minio.backupRootPath: Ruta raíz dentro del cubo designado para almacenar los archivos de copia de seguridad en milvus_B. En este ejemplo, se establece en backup.

Paso 3: Creación de la copia de seguridad

Una vez guardado backup.yaml, cree una copia de seguridad denominada my_backup:

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

Este comando crea la copia de seguridad bucket_A/backup/my_backup en el almacenamiento de objetos de milvus_A.

Transfiera manualmente la copia de seguridad a milvus_B

Dado que milvus_A y milvus_B utilizan un almacenamiento de objetos diferente, debe descargar manualmente la copia de seguridad del almacenamiento de milvus_A y cargarla en el almacenamiento demilvus_B.

Uso de la consola MinIO

  1. Inicie sesión en la consola MinIO.

  2. Localice el bucket especificado en minio.address para milvus_A.

  3. Seleccione los archivos de copia de seguridad en el bucket.

  4. Haga clic en Descargar para descargar los archivos en su equipo.

Utilizar el cliente mc

También puede utilizar el cliente mc para descargar los archivos de copia de seguridad:

  1. Configure un host MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Enumerar los buckets disponibles:
# List the available buckets
mc ls my_minio
  1. Descargar un bucket de forma recursiva:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

Una vez descargados los archivos de copia de seguridad, puede cargarlos en el almacenamiento de objetos utilizado por milvus_B para futuras restauraciones. Alternativamente, puede subir la copia de seguridad a Zilliz Cloud para crear una base de datos vectorial gestionada con sus datos. Para más detalles, consulte Migrar de Milvus a Zilliz Cloud.

Restaurar desde la copia de seguridad a milvus_B

Paso 1: Configurar los ajustes de restauración

Repita el paso 2 para modificar las configuraciones para la restauración a milvus_B, asegurándose de que minio.bucketName se establece en bucket_B.

Aquí tiene un ejemplo de configuración:

# 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

Paso 2: Restaurar desde la copia de seguridad

Restaure la copia de seguridad en milvus_B:

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

Este comando restaura la copia de seguridad en una nueva colección denominada coll_bak enmilvus_B, con los datos almacenados en bucket_B/files/insert_log/[ID of new collection] dentro del almacenamiento de objetos de milvus_B.

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?