Migration entre instances à travers des environnements S3
Cette rubrique détaille le processus de sauvegarde d'une collection à partir d'une instance Milvus et sa restauration dans une autre, chaque instance utilisant un stockage d'objets différent.
Vue d'ensemble
Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide de différents stockages d'objets.
multi-storage-backup-and-restore.png
Supposons que nous ayons deux instances Milvus, milvus_A
et milvus_B
, qui utilisent un stockage d'objets différent. Dans cet exemple, notre objectif est de réaliser les tâches suivantes :
Créer une sauvegarde (my_backup) pour la collection
coll
dansbucket_A
du stockage d'objets demilvus_A
.Transférer la sauvegarde my_backup vers
bucket_B
du stockage d'objetsmilvus_B
.
Dans bucket_B
, restaurez la sauvegarde et nommez la collection restaurée coll_bak.
Conditions préalables
S'assurer que l'outil milvus-backup est installé.
Se familiariser avec la configuration des paramètres de stockage d'objets Milvus. Pour plus de détails, voir Stockage d'objets.
Sauvegarde d'une collection à partir de milvus_A
Etape 1 : Préparer la configuration
Aller dans le répertoire du projet milvus-backup et créer un répertoire nommé configs :
mkdir configs
cd configs
Télécharger le fichier de configuration de sauvegarde backup.yaml
:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
La structure du fichier ressemble à ceci :
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
Étape 2 : Éditer le fichier de configuration
Modifiez le fichier backup.yaml
pour définir les configurations appropriées pour milvus_A :
Connexion 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
: Adresse IP ou nom d'hôte du serveur milvus_A.milvus.port
: Port TCP sur lequel le serveur Milvus écoute (par défaut 19530).
Configurations de stockage (paramètres MinIO/S3)
# 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
: Nom du seau utilisé pour le stockage des données dans milvus_A. Dans cet exemple, il s'agit debucket_A
.minio.rootPath
: Chemin racine dans le seau où les données de milvus_A sont stockées. Dans cet exemple, il s'agit defiles
.minio.backupBucketName
: Nom du seau utilisé pour le stockage de sauvegarde. Dans cet exemple, il s'agit debucket_A
.minio.backupRootPath
: Chemin racine dans le seau désigné pour le stockage des fichiers de sauvegarde dansmilvus_B
. Dans cet exemple, il s'agit debackup
.
Étape 3 : Création de la sauvegarde
Une fois le fichier backup.yaml enregistré, créez une sauvegarde nommée my_backup
:
./milvus-backup create -c coll -n my_backup
Cette commande crée la sauvegarde bucket_A/backup/my_backup
dans le stockage d'objets de milvus_A
.
Transférer manuellement la sauvegarde vers milvus_B
Étant donné que milvus_A
et milvus_B
utilisent un stockage d'objets différent, vous devez télécharger manuellement la sauvegarde à partir du stockage de milvus_A et la charger dans le stockage demilvus_B
.
Utilisation de la console MinIO
Connectez-vous à la console MinIO.
Localisez le seau spécifié dans minio.address pour milvus_A.
Sélectionnez les fichiers de sauvegarde dans le seau.
Cliquez sur Télécharger pour télécharger les fichiers sur votre machine.
Utilisation du client mc
Vous pouvez également utiliser le client mc pour télécharger les fichiers de sauvegarde :
- Configurez un hôte MinIO :
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- Dresser la liste des buckets disponibles :
# List the available buckets
mc ls my_minio
- Télécharger un conteneur de manière récursive :
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
Une fois les fichiers de sauvegarde téléchargés, vous pouvez les télécharger vers le stockage d'objets utilisé par milvus_B
pour une restauration ultérieure. Vous pouvez également télécharger la sauvegarde vers Zilliz Cloud pour créer une base de données vectorielle gérée avec vos données. Pour plus de détails, voir Migrer de Milvus vers Zilliz Cloud.
Restauration à partir de la sauvegarde vers milvus_B
Étape 1 : Configuration des paramètres de restauration
Répétez l'étape 2 pour modifier les configurations pour la restauration vers milvus_B
, en vous assurant que minio.bucketName
est défini sur bucket_B
.
Voici un exemple de configuration :
# 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
Étape 2 : Restauration à partir de la sauvegarde
Restaurer la sauvegarde sur milvus_B
:
./milvus-backup restore -c coll -n my_backup -s _bak
Cette commande restaure la sauvegarde dans une nouvelle collection nommée coll_bak dansmilvus_B
, avec des données stockées dans bucket_B/files/insert_log/[ID of new collection]
dans le stockage d'objets de milvus_B
.