Migration entre les instances d'un même bac (chemins d'accès différents)
Cette rubrique détaille le processus de sauvegarde d'une collection à partir d'une instance Milvus et sa restauration dans une autre instance tout en utilisant un bac partagé pour le stockage d'objets, avec des chemins racine distincts pour chaque instance.
Vue d'ensemble
Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide d'un seau partagé.
shared-bucket-backup-and-restore.png
Supposons que nous ayons des instances Milvus, milvus_A
et milvus_B
, qui utilisent toutes deux le moteur de stockage MinIO par défaut pour le stockage d'objets. Ces instances partagent le même seau, bucket_A
, mais stockent leurs données dans des chemins racine différents : files_A
pour milvus_A
et files_B pour milvus_B
. Dans cet exemple, notre objectif est de réaliser les tâches suivantes :
Créer une sauvegarde (my_backup) pour la collection coll qui est stockée sous le chemin
files_A
pourmilvus_A
.Restaurer la sauvegarde et la stocker dans files_B pour
milvus_B
.
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.
Sauvegarder 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échargez 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 pourmilvus_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 serveurmilvus_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: 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
: Nom du seau utilisé pour le stockage surmilvus_A
. Dans cet exemple, il s'agit debucket_A
.minio.rootPath
: Chemin racine dans le seau où les données demilvus_A
sont stockées. Dans cet exemple, il s'agit defiles_A
.minio.backupBucketName
: Nom du panier utilisé pour le stockage. Dans cet exemple,milvus_A
etmilvus_B
partagent le même panier. Par conséquent, la valeur estbucket_A
.minio.backupRootPath
: Chemin d'accès racine dans le seau désigné pour le stockage des fichiers de sauvegarde dansmilvus_B
. Dans cet exemple, utilisez un chemin différent de celui demilvus_A
. Par conséquent, définissezbackup
.
Étape 3 : Créer une sauvegarde
Une fois que backup.yaml
est sauvegardé, 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 pour la collection coll
.
Restaurer la sauvegarde à milvus_B
Étape 1 : Configurer les paramètres de restauration
Répétez l'étape 2 pour modifier les paramètres de restauration de milvus_B
, en veillant à ce que minio.bucketName
soit défini sur bucket_A
et minio.rootPath
sur files_B
afin de distinguer les emplacements de stockage entre les deux instances.
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: 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
...
Étape 2 : Restauration 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
dans milvus_B
, avec des données stockées dans bucket_A/files_B/insert_log/[ID of new collection]
.