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
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:
Erstellen eines Backups (my_backup) für die Sammlung
coll
inbucket_A
des Objektspeichers vonmilvus_A
.Übertragen Sie die Sicherung my_backup in
bucket_B
des Objektspeichers vonmilvus_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 aufbucket_A
gesetzt.minio.rootPath
: Root-Pfad innerhalb des Buckets, in dem die Daten von milvus_A gespeichert werden. In diesem Beispiel auffiles
gesetzt.minio.backupBucketName
: Name des Buckets, der für die Backup-Speicherung verwendet wird. In diesem Beispiel aufbucket_A
gesetzt.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
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
Melden Sie sich bei der MinIO-Konsole an.
Suchen Sie den in minio.address angegebenen Bucket für milvus_A.
Wählen Sie die Sicherungsdateien im Bucket aus.
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:
- Konfigurieren Sie einen MinIO-Host:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- Auflisten der verfügbaren Buckets:
# List the available buckets
mc ls my_minio
- 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.