🚀 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 Buckets hinweg

In diesem Thema wird beschrieben, wie eine Sammlung von einer Milvus-Instanz gesichert und in einer anderen wiederhergestellt werden kann, wobei jede Instanz verschiedene Buckets innerhalb desselben Objektspeichers verwendet.

Übersicht

Das folgende Diagramm veranschaulicht den Sicherungs- und Wiederherstellungsprozess unter Verwendung verschiedener Buckets innerhalb desselben Objektspeichers.

cross-bucket-backup-and-restore.png Bucket-übergreifende-Sicherung-und-Wiederherstellung.png

Angenommen, wir haben zwei Milvus-Instanzen, milvus_A und milvus_B, die beide die standardmäßige MinIO-Speicher-Engine für den Objektspeicher verwenden. Diese Instanzen verwenden unterschiedliche Buckets bucket_A und bucket_B innerhalb desselben Objektspeichers. In diesem Beispiel ist es unser Ziel, die folgenden Aufgaben zu erfüllen:

  1. Erstellen Sie ein Backup (my_backup) für die Sammlung coll in bucket_A und speichern Sie das Backup in bucket_B.

  2. Stellen Sie in bucket_B die Sicherung wieder her und nennen Sie die wiederhergestellte Sammlung coll_bak.

Vorraussetzungen**

  • Stellen Sie sicher, dass das Tool 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ürmilvus_A zu setzen:

  • Verbindungskonfigurationen

    # 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: localhost # 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_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
    
  • minio.bucketName: Name des Buckets, der für die Datenspeicherung in milvus_A verwendet wird. In diesem Beispiel wird 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 eingestellt.

  • minio.backupBucketName: Name des Bereichs, der für die Speicherung von Backups inmilvus_B verwendet wird. In diesem Beispiel verwenden milvus_A und milvus_B unterschiedliche Buckets. Setzen Sie daher auf bucket_B.

  • 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

Dieser Befehl erstellt die Sicherung bucket_B/backup/my_backup im Objektspeicher für die Sammlung coll.

Wiederherstellung des Backups 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 gesetzt wird.

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: localhost # 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 der Sicherung

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 eine neue Sammlung namens coll_bak in milvus_B wiederhergestellt, wobei die Daten in bucket_B/files/insert_log/[ID of new collection] 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?