Migrasi Antar Instance di Seluruh Lingkungan S3
Topik ini merinci proses mencadangkan koleksi dari satu instans Milvus dan mengembalikannya ke instans lain, dengan masing-masing instans menggunakan penyimpanan objek yang berbeda.
Gambaran Umum
Diagram di bawah ini mengilustrasikan proses pencadangan dan pemulihan menggunakan penyimpanan objek yang berbeda.
pencadangan-dan-pemulihan multi-penyimpanan.png
Asumsikan kita memiliki dua instance Milvus, milvus_A
dan milvus_B
, yang menggunakan penyimpanan objek yang berbeda. Dalam contoh ini, tujuan kita adalah menyelesaikan tugas-tugas berikut:
Membuat cadangan (my_backup) untuk koleksi
coll
dibucket_A
dari penyimpanan objekmilvus_A
.Mentransfer cadangan my_backup ke
bucket_B
dari penyimpanan objekmilvus_B
.
Di bucket_B
, pulihkan dari cadangan dan beri nama koleksi yang dipulihkan coll_bak.
Prasyarat
Pastikan alat milvus-backup sudah terpasang.
Biasakan diri Anda dengan mengonfigurasi pengaturan penyimpanan objek Milvus. Untuk detailnya, lihat Penyimpanan Objek.
Mencadangkan koleksi dari milvus_A
Langkah 1: Siapkan konfigurasi
Masuk ke direktori proyek milvus-backup dan buat direktori bernama configs:
mkdir configs
cd configs
Unduh berkas konfigurasi pencadangan backup.yaml
:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
Struktur berkas terlihat seperti ini:
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
Langkah 2: Mengedit berkas konfigurasi
Ubah berkas backup.yaml
untuk mengatur konfigurasi yang sesuai untuk milvus_A:
Konfigurasi koneksi
# 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
: Alamat IP atau nama host dari server milvus_A.milvus.port
: Port TCP yang didengarkan server Milvus (default 19530).
Konfigurasi penyimpanan (pengaturan 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
: Nama bucket yang digunakan untuk penyimpanan data di milvus_A. Dalam contoh ini, diatur kebucket_A
.minio.rootPath
: Jalur root di dalam bucket tempat data dari milvus_A disimpan. Dalam contoh ini, setel kefiles
.minio.backupBucketName
: Nama ember yang digunakan untuk penyimpanan cadangan. Dalam contoh ini, diatur kebucket_A
.minio.backupRootPath
: Jalur root di dalam bucket yang ditetapkan untuk menyimpan file cadangan dimilvus_B
. Dalam contoh ini, atur kebackup
.
Langkah 3: Membuat cadangan
Setelah backup.yaml disimpan, buat cadangan bernama my_backup
:
./milvus-backup create -c coll -n my_backup
Perintah ini membuat cadangan bucket_A/backup/my_backup
dalam penyimpanan objek milvus_A
.
Transfer cadangan secara manual ke milvus_B
Karena milvus_A
dan milvus_B
menggunakan penyimpanan objek yang berbeda, Anda perlu mengunduh cadangan secara manual dari penyimpanan milvus_A dan mengunggahnya ke penyimpananmilvus_B
.
Menggunakan konsol MinIO
Masuk ke konsol MinIO.
Cari bucket yang ditentukan di minio.address untuk milvus_A.
Pilih file cadangan di dalam bucket.
Klik Unduh untuk mengunduh berkas ke mesin Anda.
Menggunakan klien mc
Sebagai alternatif, Anda dapat menggunakan klien mc untuk mengunduh file cadangan:
- Konfigurasikan host MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- Buat daftar bucket yang tersedia:
# List the available buckets
mc ls my_minio
- Unduh bucket secara rekursif:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
Setelah file cadangan diunduh, Anda dapat mengunggahnya ke penyimpanan objek yang digunakan oleh milvus_B
untuk pemulihan di masa mendatang. Atau, Anda dapat mengunggah cadangan ke Zilliz Cloud untuk membuat basis data vektor terkelola dengan data Anda. Untuk detailnya, lihat Migrasi dari Milvus ke Zilliz Cloud.
Memulihkan dari cadangan ke milvus_B
Langkah 1: Mengonfigurasi pengaturan pemulihan
Ulangi langkah 2 untuk memodifikasi konfigurasi untuk pemulihan ke milvus_B
, memastikan minio.bucketName
diatur ke bucket_B
.
Berikut ini contoh konfigurasinya:
# 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
Langkah 2: Pulihkan dari cadangan
Pulihkan cadangan ke milvus_B
:
./milvus-backup restore -c coll -n my_backup -s _bak
Perintah ini mengembalikan cadangan ke dalam koleksi baru bernama coll_bak dimilvus_B
, dengan data yang disimpan di bucket_B/files/insert_log/[ID of new collection]
dalam penyimpanan objek milvus_B
.