🚀 Testen Sie Zilliz Cloud, die vollständig verwaltete Milvus, kostenlos – erleben Sie 10x schnellere Leistung! Jetzt testen>>

milvus-logo
LFAI
Home
  • Werkzeuge

Migrieren zwischen Instanzen über S3-Umgebungen hinweg

Dieses Thema beschreibt den Prozess der Sicherung einer Sammlung von einer Milvus-Instanz und deren Wiederherstellung in einer anderen, wobei jede Instanz einen anderen Objektspeicher verwendet.

Übersicht

Das folgende Diagramm veranschaulicht den Sicherungs- und Wiederherstellungsprozess unter Verwendung verschiedener Objektspeicher.

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

Angenommen, wir haben zwei Milvus-Instanzen, milvus_A und milvus_B, die unterschiedliche Objektspeicher verwenden. In diesem Beispiel ist es unser Ziel, die folgenden Aufgaben zu erfüllen:

  1. Erstellen eines Backups (my_backup) für die Sammlung coll in bucket_A des Objektspeichers vonmilvus_A.

  2. Übertragen Sie die Sicherung my_backup in bucket_B des Objektspeichers von milvus_B.

Stellen Sie in bucket_B aus der Sicherung wieder her und benennen Sie die wiederhergestellte Sammlung coll_bak.

Voraussetzungen

  • Stellen Sie sicher, dass das Werkzeug milvus-backup installiert ist.

  • Machen Sie sich mit der Konfiguration der Milvus-Objektspeicher-Einstellungen vertraut. Details finden Sie unter Objektspeicher.

Sichern einer Sammlung von milvus_A

Schritt 1: Vorbereiten der Konfiguration

Wechseln Sie in das Verzeichnis des milvus-backup-Projekts und erstellen Sie ein Verzeichnis namens configs:

mkdir configs
cd configs

Laden Sie die Backup-Konfigurationsdatei backup.yaml herunter:

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

Die Dateistruktur sieht wie folgt aus:

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

Schritt 2: Konfigurationsdatei bearbeiten

Ändern Sie die Datei backup.yaml, um die entsprechenden Konfigurationen für milvus_A einzustellen:

  • Verbindung 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-Adresse oder Hostname des milvus_A-Servers.

    • milvus.port: TCP-Port, auf dem der Milvus-Server lauscht (Standard 19530).

  • Speicher-Konfigurationen (MinIO/S3-Einstellungen)

    # 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: Name des Buckets, der für die Datenspeicherung in milvus_A verwendet wird. In diesem Beispiel ist er auf bucket_A gesetzt.

  • minio.rootPath: Root-Pfad innerhalb des Buckets, in dem die Daten von milvus_A gespeichert werden. In diesem Beispiel auf files gesetzt.

  • minio.backupBucketName: Name des Buckets, der für die Backup-Speicherung verwendet wird. In diesem Beispiel auf bucket_A gesetzt.

  • minio.backupRootPath: Root-Pfad innerhalb des Buckets, der für die Speicherung von Sicherungsdateien in milvus_B vorgesehen ist. In diesem Beispiel setzen Sie ihn auf backup.

Schritt 3: Backup erstellen

Sobald backup.yaml gespeichert ist, erstellen Sie ein Backup mit dem Namen my_backup:

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

Mit diesem Befehl wird die Sicherung bucket_A/backup/my_backup im Objektspeicher von milvus_A erstellt.

Übertragen Sie das Backup manuell nach milvus_B

Da milvus_A und milvus_B unterschiedliche Objektspeicher verwenden, müssen Sie die Sicherung manuell aus dem Speicher von milvus_A herunterladen und in den Speicher vonmilvus_B hochladen.

Verwendung der MinIO-Konsole

  1. Melden Sie sich bei der MinIO-Konsole an.

  2. Suchen Sie den in minio.address angegebenen Bucket für milvus_A.

  3. Wählen Sie die Sicherungsdateien im Bucket aus.

  4. Klicken Sie auf Download, um die Dateien auf Ihren Rechner herunterzuladen.

Verwendung des mc-Clients

Alternativ können Sie auch den mc-Client verwenden, um die Sicherungsdateien herunterzuladen:

  1. Konfigurieren Sie einen MinIO-Host:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
  1. Auflisten der verfügbaren Buckets:
# List the available buckets
mc ls my_minio
  1. Einen Bucket rekursiv herunterladen:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>

Sobald die Sicherungsdateien heruntergeladen sind, können Sie sie für eine spätere Wiederherstellung in den von milvus_B verwendeten Objektspeicher hochladen. Alternativ können Sie das Backup in die Zilliz Cloud hochladen, um eine verwaltete Vektordatenbank mit Ihren Daten zu erstellen. Weitere Informationen finden Sie unter Migrieren von Milvus zu Zilliz Cloud.

Wiederherstellung aus dem Backup in milvus_B

Schritt 1: Konfigurieren Sie die Wiederherstellungseinstellungen

Wiederholen Sie Schritt 2, um die Konfigurationen für die Wiederherstellung auf milvus_B zu ändern, und stellen Sie sicher, dass minio.bucketName auf bucket_B eingestellt ist.

Hier finden Sie eine Beispielkonfiguration:

# 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

Schritt 2: Wiederherstellung aus dem Backup

Stellen Sie die Sicherung auf milvus_B wieder her:

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

Mit diesem Befehl wird die Sicherung in einer neuen Sammlung namens coll_bak inmilvus_B wiederhergestellt, wobei die Daten in bucket_B/files/insert_log/[ID of new collection] im Objektspeicher von milvus_B gespeichert werden.

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?