Migración entre instancias a través de cubos
Este tema detalla el proceso de hacer una copia de seguridad de una colección desde una instancia de Milvus y restaurarla en otra, con cada instancia utilizando diferentes cubos dentro del mismo almacenamiento de objetos.
Visión general
El siguiente diagrama ilustra el proceso de copia de seguridad y restauración utilizando diferentes buckets dentro del mismo almacenamiento de objetos.
cross-bucket-backup-and-restore.png
Supongamos que tenemos dos instancias Milvus, milvus_A
y milvus_B
, ambas utilizando el motor de almacenamiento predeterminado MinIO para el almacenamiento de objetos. Estas instancias utilizan diferentes buckets bucket_A y bucket_B
dentro del mismo almacenamiento de objetos. En este ejemplo, nuestro objetivo es completar las siguientes tareas:
Crear una copia de seguridad (
my_backup
) para la coleccióncoll
enbucket_A
y almacenar la copia de seguridad enbucket_B
.En
bucket_B
, restaurar desde la copia de seguridad y nombrar la colección restauradacoll_bak
.
Requisitos previos**
Asegúrese de que la herramienta milvus-backup está instalada.
Familiarícese con la configuración del almacenamiento de objetos de Milvus. Para más detalles, consulte Almacenamiento de objetos.
Copia de seguridad de una colección desde milvus_A
Paso 1: Preparar la configuración
Vaya al directorio del proyecto milvus-backup y cree un directorio llamado configs:
mkdir configs
cd configs
Descargue el archivo config de copia de seguridad backup.yaml
:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
La estructura del archivo es la siguiente
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
Paso 2: Editar el archivo de configuración
Modifique el archivo backup.yaml para establecer las configuraciones adecuadas paramilvus_A
:
Conexión 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
: Dirección IP o nombre de host del servidormilvus_A
.milvus.port
: Puerto TCP en el que escucha el servidor Milvus (por defecto 19530).
Configuración del almacenamiento (ajustes 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
: Nombre del bucket utilizado para el almacenamiento de datos enmilvus_A
. En este ejemplo, se establece enbucket_A
.minio.rootPath
: Ruta raíz dentro del cubo donde se almacenan los datos demilvus_A
. En este ejemplo, se establece enfiles
.minio.backupBucketName
: Nombre del bucket utilizado para el almacenamiento de copias de seguridad enmilvus_B
. En este ejemplo,milvus_A
ymilvus_B
utilizan cubos diferentes. Por lo tanto, establezcabucket_B
.minio.backupRootPath
: Ruta raíz dentro del cubo designado para almacenar los archivos de copia de seguridad enmilvus_B
. En este ejemplo, defínala comobackup
.
Paso 3: Creación de la copia de seguridad
Una vez guardado backup.yaml, cree una copia de seguridad denominada my_backup
:
./milvus-backup create -c coll -n my_backup
Este comando crea la copia de seguridad bucket_B/backup/my_backup
en el almacenamiento de objetos para la colección coll.
Restaurar la copia de seguridad en milvus_B
Paso 1: Configurar los ajustes de restauración
Repita el paso 2 para modificar las configuraciones para la restauración en milvus_B
, asegurándose de que minio.bucketName
se establece en bucket_B
.
Aquí tiene un ejemplo de configuración:
...
# 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
...
Paso 2: Restaurar la copia de seguridad
Restaure la copia de seguridad en milvus_B
:
./milvus-backup restore -c coll -n my_backup -s _bak
Este comando restaura la copia de seguridad en una nueva colección denominada coll_bak
en milvus_B
, con los datos almacenados en bucket_B/files/insert_log/[ID of new collection]
.