Migrieren zwischen Instanzen in einem Bucket (unterschiedliche Root-Pfade)
In diesem Thema wird beschrieben, wie eine Sammlung von einer Milvus-Instanz gesichert und in einer anderen wiederhergestellt werden kann, wobei ein gemeinsamer Bucket für die Objektspeicherung verwendet wird, mit unterschiedlichen Root-Pfaden für jede Instanz.
Übersicht
Das folgende Diagramm veranschaulicht den Sicherungs- und Wiederherstellungsprozess unter Verwendung eines Shared Buckets.
shared-bucket-backup-and-restore.png
Angenommen, wir haben Milvus-Instanzen, milvus_A
und milvus_B
, die beide die standardmäßige MinIO-Speicher-Engine für die Objektspeicherung verwenden. Diese Instanzen teilen sich denselben Bucket, bucket_A
, speichern ihre Daten aber in unterschiedlichen Root-Pfaden: files_A
für milvus_A
und files_B für milvus_B
. In diesem Beispiel ist es unser Ziel, die folgenden Aufgaben zu erfüllen:
Erstellen einer Sicherung (my_backup) für die Sammlung coll, die unter dem Pfad
files_A
fürmilvus_A
gespeichert ist.Wiederherstellung aus der Sicherung und Speicherung in files_B für
milvus_B
.
Voraussetzungen
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 Sie eine 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 Sicherungskonfigurationsdatei 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 desmilvus_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: milvus_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_A" # 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 Bereichs, der für die Speicherung vonmilvus_A
verwendet wird. In diesem Beispiel ist er aufbucket_A
gesetzt.minio.rootPath
: Root-Pfad innerhalb des Buckets, in dem die Daten vonmilvus_A
gespeichert werden. In diesem Beispiel auffiles_A
gesetzt.minio.backupBucketName
: Name des Buckets, der für die Speicherung verwendet wird. In diesem Beispiel teilen sichmilvus_A
undmilvus_B
den Bucket. Setzen Sie daher aufbucket_A
.minio.backupRootPath
: Root-Pfad innerhalb des Buckets, der für die Speicherung der Sicherungsdateien inmilvus_B
vorgesehen ist. In diesem Beispiel verwenden Sie einen anderen Pfad alsmilvus_A
. Setzen Sie ihn daher aufbackup
.
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 für die Sammlung coll
erstellt.
Wiederherstellen des Backups auf milvus_B
Schritt 1: Konfigurieren Sie die Wiederherstellungseinstellungen
Wiederholen Sie Schritt 2, um die Konfigurationen für die Wiederherstellung auf milvus_B
zu ändern. Stellen Sie dabei sicher, dass minio.bucketName
auf bucket_A
und minio.rootPath
auf files_B
gesetzt wird, um die Speicherorte zwischen den beiden Instanzen zu unterscheiden.
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: milvus_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_A" # Milvus Bucket name in MinIO/S3, make it the same as your milvus instance
rootPath: "files_B" # Milvus storage root path in MinIO/S3, make it the same as your milvus instance
...
Schritt 2: Backup wiederherstellen
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
in milvus_B
wiederhergestellt, wobei die Daten in bucket_A/files_B/insert_log/[ID of new collection]
gespeichert werden.