🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Инструменты
  • Home
  • Docs
  • Инструменты

  • Резервное копирование Milvus

  • Распространенные случаи

  • Миграция между экземплярами в средах S3

Миграция между экземплярами в средах S3

В этой теме подробно описывается процесс резервного копирования коллекции из одного экземпляра Milvus и ее восстановления в другом экземпляре, причем каждый экземпляр использует разные хранилища объектов.

Обзор

На приведенной ниже диаграмме показан процесс резервного копирования и восстановления с использованием различных объектных хранилищ.

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

Предположим, что у нас есть два экземпляра Milvus, milvus_A и milvus_B, использующие разные хранилища объектов. В этом примере нам необходимо выполнить следующие задачи:

  1. Создать резервную копию (my_backup) для коллекции coll в bucket_A объектного хранилищаmilvus_A.

  2. Перенести резервную копию my_backup на bucket_B из milvus_B'объектного хранилища.

В bucket_B выполните восстановление из резервной копии и назовите восстановленную коллекцию coll_bak.

Предварительные условия

  • Убедитесь, что инструмент milvus-backup установлен.

  • Ознакомьтесь с настройками объектного хранилища Milvus. Подробнее см. в разделе "Объектное хранилище".

Резервное копирование коллекции из milvus_A

Шаг 1: Подготовьте конфигурацию

Перейдите в каталог проекта milvus-backup и создайте каталог с именем configs:

mkdir configs
cd configs

Загрузите резервный файл конфигурации backup.yaml:

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

Структура файла выглядит следующим образом:

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

Шаг 2: Редактирование файла конфигурации

Измените файл backup.yaml, чтобы установить соответствующие конфигурации для milvus_A:

  • Connection 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: IP-адрес или имя хоста сервера milvus_A.

    • milvus.port: TCP-порт, на котором прослушивается сервер Milvus (по умолчанию 19530).

  • Конфигурации хранилища (настройки 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: Имя ведра, используемого для хранения данных в milvus_A. В данном примере установлено значение bucket_A.

  • minio.rootPath: Корневой путь внутри ведра, где хранятся данные из milvus_A. В данном примере установлено значение files.

  • minio.backupBucketName: Имя ведра, используемого для хранения резервных копий. В данном примере установлено значение bucket_A.

  • minio.backupRootPath: Корневой путь в ведре, предназначенном для хранения файлов резервных копий milvus_B. В данном примере установлено значение backup.

Шаг 3: Создание резервной копии

После сохранения файла backup.yaml создайте резервную копию с именем my_backup:

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

Эта команда создает резервную копию bucket_A/backup/my_backup в объектном хранилище milvus_A.

Вручную перенесите резервную копию на milvus_B

Поскольку milvus_A и milvus_B используют разные объектные хранилища, вам нужно вручную загрузить резервную копию из хранилища milvus_A и выгрузить ее в хранилищеmilvus_B.

Использование консоли MinIO

  1. Войдите в консоль MinIO.

  2. Найдите ведро, указанное в minio.address для milvus_A.

  3. Выберите файлы резервных копий в этом ведре.

  4. Нажмите Download, чтобы загрузить файлы на свой компьютер.

Использование клиента mc

В качестве альтернативы можно использовать клиент mc для загрузки файлов резервных копий:

  1. Настройте хост MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Список доступных ведер:
# List the available buckets
mc ls my_minio
  1. Загрузите ведро рекурсивно:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

После загрузки файлов резервных копий их можно загрузить в хранилище объектов, используемое milvus_B, для последующего восстановления. Кроме того, можно загрузить резервную копию в Zilliz Cloud, чтобы создать управляемую векторную базу данных с вашими данными. Подробности см. в разделе Миграция из Milvus в Zilliz Cloud.

Восстановление из резервной копии на milvus_B

Шаг 1: Настройте параметры восстановления

Повторите шаг 2, чтобы изменить конфигурацию для восстановления на milvus_B, убедившись, что minio.bucketName установлен на bucket_B.

Вот пример конфигурации:

# 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

Шаг 2: Восстановление из резервной копии

Восстановите резервную копию на milvus_B:

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

Эта команда восстанавливает резервную копию в новую коллекцию с именем coll_bak вmilvus_B, с данными, хранящимися в bucket_B/files/insert_log/[ID of new collection] в хранилище объектов milvus_B.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?