Migración entre instancias a través de entornos S3
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 un almacenamiento de objetos diferente.
Visión general
El siguiente diagrama ilustra el proceso de copia de seguridad y restauración utilizando diferentes almacenamientos de objetos.
multi-storage-backup-and-restore.png
Supongamos que tenemos dos instancias Milvus, milvus_A
y milvus_B
, que utilizan diferentes almacenamientos de objetos. En este ejemplo, nuestro objetivo es completar las siguientes tareas:
Crear una copia de seguridad (my_backup) para la colección
coll
enbucket_A
del almacenamiento de objetos demilvus_A
.Transferir la copia de seguridad my_backup a
bucket_B
del almacenamiento de objetos demilvus_B
.
En bucket_B
, restaure a partir de la copia de seguridad y asigne a la colección restaurada el nombre coll_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 obtener más información, 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 apropiadas para milvus_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 servidor milvus_A.milvus.port
: Puerto TCP en el que escucha el servidor Milvus (por defecto 19530).
Configuración de almacenamiento (configuración 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
: Nombre del cubo utilizado para el almacenamiento de datos en milvus_A. En este ejemplo, se establece enbucket_A
.minio.rootPath
: Ruta raíz dentro del cubo donde se almacenan los datos de milvus_A. En este ejemplo, se establece enfiles
.minio.backupBucketName
: Nombre del cubo utilizado para el almacenamiento de la copia de seguridad. En este ejemplo, se establece enbucket_A
.minio.backupRootPath
: Ruta raíz dentro del cubo designado para almacenar los archivos de copia de seguridad enmilvus_B
. En este ejemplo, se establece enbackup
.
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_A/backup/my_backup
en el almacenamiento de objetos de milvus_A
.
Transfiera manualmente la copia de seguridad a milvus_B
Dado que milvus_A
y milvus_B
utilizan un almacenamiento de objetos diferente, debe descargar manualmente la copia de seguridad del almacenamiento de milvus_A y cargarla en el almacenamiento demilvus_B
.
Uso de la consola MinIO
Inicie sesión en la consola MinIO.
Localice el bucket especificado en minio.address para milvus_A.
Seleccione los archivos de copia de seguridad en el bucket.
Haga clic en Descargar para descargar los archivos en su equipo.
Utilizar el cliente mc
También puede utilizar el cliente mc para descargar los archivos de copia de seguridad:
- Configure un host MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- Enumerar los buckets disponibles:
# List the available buckets
mc ls my_minio
- Descargar un bucket de forma recursiva:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
Una vez descargados los archivos de copia de seguridad, puede cargarlos en el almacenamiento de objetos utilizado por milvus_B
para futuras restauraciones. Alternativamente, puede subir la copia de seguridad a Zilliz Cloud para crear una base de datos vectorial gestionada con sus datos. Para más detalles, consulte Migrar de Milvus a Zilliz Cloud.
Restaurar desde la copia de seguridad a milvus_B
Paso 1: Configurar los ajustes de restauración
Repita el paso 2 para modificar las configuraciones para la restauración a 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: 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
Paso 2: Restaurar desde 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 enmilvus_B
, con los datos almacenados en bucket_B/files/insert_log/[ID of new collection]
dentro del almacenamiento de objetos de milvus_B
.