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.
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:
Erstellen Sie ein Backup (
my_backup
) für die Sammlungcoll
inbucket_A
und speichern Sie das Backup inbucket_B
.Stellen Sie in
bucket_B
die Sicherung wieder her und nennen Sie die wiederhergestellte Sammlungcoll_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 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: 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 inmilvus_A
verwendet wird. In diesem Beispiel wird er aufbucket_A
gesetzt.minio.rootPath
: Root-Pfad innerhalb des Buckets, in dem die Daten vonmilvus_A
gespeichert werden. In diesem Beispiel auffiles
eingestellt.minio.backupBucketName
: Name des Bereichs, der für die Speicherung von Backups inmilvus_B
verwendet wird. In diesem Beispiel verwendenmilvus_A
undmilvus_B
unterschiedliche Buckets. Setzen Sie daher aufbucket_B
.minio.backupRootPath
: Root-Pfad innerhalb des Buckets, der für die Speicherung von Sicherungsdateien inmilvus_B
vorgesehen ist. In diesem Beispiel setzen Sie ihn 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
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.