Migración entre instancias en un cubo (rutas raíz diferentes)
Este tema detalla el proceso de hacer una copia de seguridad de una colección desde una instancia de Milvus y restaurarla en otra mientras se utiliza un cubo compartido para el almacenamiento de objetos, con rutas raíz distintas para cada instancia.
Visión general
El siguiente diagrama ilustra el proceso de copia de seguridad y restauración utilizando un cubo compartido.
shared-bucket-backup-and-restore.png
Supongamos que tenemos instancias Milvus, milvus_A
y milvus_B
, ambas utilizando el motor de almacenamiento predeterminado MinIO para el almacenamiento de objetos. Estas instancias comparten el mismo cubo, bucket_A
, pero almacenan sus datos en diferentes rutas raíz: files_A
para milvus_A
y files_B para milvus_B
. En este ejemplo, nuestro objetivo es completar las siguientes tareas:
Crear una copia de seguridad (my_backup) para la colección coll que se almacena en la ruta
files_A
paramilvus_A
.Restaurar a partir de la copia de seguridad y almacenarla en files_B para
milvus_B
.
Requisitos previos
Asegúrese de que la herramienta milvus-backup está instalada.
Familiarícese con la configuración del almacenamiento de objetos Milvus. Para obtener más información, consulte Almacenamiento de objetos.
Copia de seguridad de una colección de 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 de configuración 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: 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
: Nombre del bucket utilizado para el almacenamientomilvus_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,files_A
.minio.backupBucketName
: Nombre del cubo utilizado para el almacenamiento. En este ejemplo,milvus_A
ymilvus_B
comparten el cubo. Por lo tanto, establezcabucket_A
.minio.backupRootPath
: Ruta raíz dentro del cubo designado para almacenar los archivos de copia de seguridad enmilvus_B
. En este ejemplo, utilice una ruta diferente demilvus_A
. Por lo tanto, defínala comobackup
.
Paso 3: Crear copia de seguridad
Una vez guardado backup.yaml
, cree una copia de seguridad llamada my_backup:
./milvus-backup create -c coll -n my_backup
Este comando crea la copia de seguridad bucket_A/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_A
y minio.rootPath
en files_B
para distinguir las ubicaciones de almacenamiento entre las dos instancias.
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: 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
...
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_A/files_B/insert_log/[ID of new collection]
.