Migration entre instances et entre godets
Cette rubrique détaille le processus de sauvegarde d'une collection à partir d'une instance Milvus et sa restauration dans une autre instance, chaque instance utilisant différents godets dans le même stockage d'objets.
Vue d'ensemble
Le diagramme ci-dessous illustre le processus de sauvegarde et de restauration à l'aide de différents godets au sein du même stockage d'objets.
cross-bucket-backup-and-restore.png
Supposons que nous ayons deux 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 utilisent différents buckets bucket_A et bucket_B
dans le même stockage d'objets. Dans cet exemple, notre objectif est de réaliser les tâches suivantes :
Créer une sauvegarde (
my_backup
) pour la collectioncoll
dansbucket_A
et stocker la sauvegarde dansbucket_B
.Dans
bucket_B
, restaurer à partir de la sauvegarde et nommer la collection restauréecoll_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
Etape 2 : Editer 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: 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
: Nom du seau utilisé pour le stockage des données dansmilvus_A
. Dans cet exemple, défini surbucket_A
.minio.rootPath
: Chemin d'accès à la racine du seau dans lequel les données demilvus_A
sont stockées. Dans cet exemple, il s'agit defiles
.minio.backupBucketName
: Nom du godet utilisé pour le stockage des sauvegardes dansmilvus_B
. Dans cet exemple,milvus_A
etmilvus_B
utilisent des bacs différents. Par conséquent, la valeur estbucket_B
.minio.backupRootPath
: Chemin d'accès à la racine du godet désigné pour le stockage des fichiers de sauvegarde dansmilvus_B
. Dans cet exemple, il s'agit debackup
.
Étape 3 : Créer une 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_B/backup/my_backup
dans le stockage d'objets pour la collection coll.
Restaurer la sauvegarde vers milvus_B
Étape 1 : Configuration des paramètres de restauration
Répétez l'étape 2 pour modifier les configurations en vue de la restauration vers milvus_B
, en veillant à ce que minio.bucketName
soit 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: 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
...
É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_B/files/insert_log/[ID of new collection]
.