🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
Home
  • Ferramentas

Migrar entre instâncias em ambientes S3

Este tópico detalha o processo de fazer o backup de uma coleção de uma instância do Milvus e restaurá-la em outra, com cada instância usando um armazenamento de objetos diferente.

Visão geral

O diagrama abaixo ilustra o processo de cópia de segurança e restauro utilizando diferentes armazenamentos de objectos.

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

Suponhamos que temos duas instâncias do Milvus, milvus_A e milvus_B, utilizando diferentes armazenamentos de objectos. Neste exemplo, o nosso objetivo é concluir as seguintes tarefas:

  1. Criar uma cópia de segurança (my_backup) para a coleção coll em bucket_A do armazenamento de objectos demilvus_A.

  2. Transferir a cópia de segurança my_backup para bucket_B do armazenamento de objectos de milvus_B.

Em bucket_B, restaurar a partir do backup e nomear a coleção restaurada coll_bak.

Pré-requisitos

  • Certifique-se de que a ferramenta milvus-backup está instalada.

  • Familiarize-se com a configuração do armazenamento de objetos do Milvus. Para obter detalhes, consulte Armazenamento de objetos.

Fazer backup de uma coleção do milvus_A

Etapa 1: Preparar a configuração

Vá para o diretório do projeto milvus-backup e crie um diretório chamado configs:

mkdir configs
cd configs

Descarregue o ficheiro de configuração de backup backup.yaml:

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

A estrutura do ficheiro tem o seguinte aspeto:

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

Passo 2: Editar o ficheiro de configuração

Modificar o ficheiro backup.yaml para definir as configurações apropriadas para milvus_A:

  • Conexão 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: Endereço IP ou nome do host do servidor milvus_A.

    • milvus.port: Porta TCP em que o servidor Milvus está a ouvir (predefinição 19530).

  • Configurações de armazenamento (definições 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 do contentor utilizado para o armazenamento de dados em milvus_A. Neste exemplo, definido como bucket_A.

  • minio.rootPath: Caminho raiz dentro do bucket onde os dados de milvus_A são armazenados. Neste exemplo, defina como files.

  • minio.backupBucketName: Nome do compartimento utilizado para armazenamento de cópias de segurança. Neste exemplo, definido como bucket_A.

  • minio.backupRootPath: Caminho de raiz dentro do contentor designado para armazenar ficheiros de cópia de segurança em milvus_B. Neste exemplo, definido para backup.

Etapa 3: Criar backup

Depois que backup.yaml for salvo, crie um backup chamado my_backup:

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

Este comando cria a cópia de segurança bucket_A/backup/my_backup no armazenamento de objectos de milvus_A.

Transferir manualmente a cópia de segurança para milvus_B

Uma vez que milvus_A e milvus_B utilizam um armazenamento de objectos diferente, é necessário transferir manualmente a cópia de segurança do armazenamento de milvus_A e carregá-la para o armazenamento demilvus_B.

Utilizar a consola do MinIO

  1. Inicie sessão na consola MinIO.

  2. Localize o bucket especificado em minio.address para milvus_A.

  3. Selecione os ficheiros de cópia de segurança no bucket.

  4. Clique em Download para transferir os ficheiros para a sua máquina.

Utilizar o cliente mc

Em alternativa, pode utilizar o cliente mc para transferir os ficheiros de cópia de segurança:

  1. Configurar um anfitrião MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Listar os buckets disponíveis:
# List the available buckets
mc ls my_minio
  1. Descarregar um bucket recursivamente:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

Assim que os ficheiros de cópia de segurança forem transferidos, pode carregá-los para o armazenamento de objectos utilizado por milvus_B para restauro futuro. Em alternativa, pode carregar a cópia de segurança para o Zilliz Cloud para criar uma base de dados vetorial gerida com os seus dados. Para obter detalhes, consulte Migrar do Milvus para o Zilliz Cloud.

Restaurar a partir da cópia de segurança para milvus_B

Passo 1: Configurar as definições de restauro

Repita a etapa 2 para modificar as configurações para restauração para milvus_B, garantindo que minio.bucketName esteja definido como bucket_B.

Aqui está um exemplo de configuração:

# 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: Restaurar a partir da cópia de segurança

Restaure o backup para milvus_B:

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

Este comando restaura a cópia de segurança para uma nova coleção denominada coll_bak emmilvus_B, com dados armazenados em bucket_B/files/insert_log/[ID of new collection] no armazenamento de objectos de milvus_B.

Try Managed Milvus for Free

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

Get Started
Feedback

Esta página foi útil?