Migrasi Antar Instance dalam Satu Bucket (Jalur Root yang Berbeda)
Topik ini merinci proses mencadangkan koleksi dari satu instans Milvus dan mengembalikannya ke instans lain saat menggunakan bucket bersama untuk penyimpanan objek, dengan jalur root yang berbeda untuk setiap instans.
Gambaran Umum
Diagram di bawah ini mengilustrasikan proses pencadangan dan pemulihan menggunakan shared bucket.
shared-bucket-backup-and-restore.png
Asumsikan kita memiliki instance Milvus, milvus_A
dan milvus_B
, keduanya menggunakan mesin penyimpanan MinIO default untuk penyimpanan objek. Kedua contoh ini berbagi bucket yang sama, bucket_A
, tetapi menyimpan datanya di jalur root yang berbeda: files_A
untuk milvus_A
dan files_B untuk milvus_B
. Pada contoh ini, tujuan kita adalah menyelesaikan tugas-tugas berikut:
Membuat cadangan (my_backup) untuk koleksi coll yang disimpan di bawah jalur
files_A
untukmilvus_A
.Pulihkan dari cadangan dan simpan ke files_B untuk
milvus_B
.
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 file konfigurasi pencadangan backup.yaml:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
Struktur file terlihat seperti ini:
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
Langkah 2: Edit file konfigurasi
Ubah file backup.yaml untuk mengatur konfigurasi yang sesuai untukmilvus_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 servermilvus_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: 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
: Nama bucket yang digunakan untuk penyimpananmilvus_A
. Dalam contoh ini, diatur kebucket_A
.minio.rootPath
: Jalur root di dalam bucket tempat data darimilvus_A
disimpan. Dalam contoh ini, setel kefiles_A
.minio.backupBucketName
: Nama bucket yang digunakan untuk penyimpanan. Pada contoh ini,milvus_A
danmilvus_B
berbagi bucket. Oleh karena itu, setel kebucket_A
.minio.backupRootPath
: Jalur root di dalam bucket yang ditetapkan untuk menyimpan file cadangan dimilvus_B
. Dalam contoh ini, gunakan jalur yang berbeda darimilvus_A
. Oleh karena itu, atur kebackup
.
Langkah 3: Buat cadangan
Setelah backup.yaml
disimpan, buat cadangan bernama my_backup:
./milvus-backup create -c coll -n my_backup
Perintah ini akan membuat cadangan bucket_A/backup/my_backup
di penyimpanan objek untuk koleksi coll
.
Kembalikan cadangan ke milvus_B
Langkah 1: Konfigurasikan pengaturan pemulihan
Ulangi langkah 2 untuk memodifikasi konfigurasi untuk pemulihan ke milvus_B
, memastikan minio.bucketName
diatur ke bucket_A
dan minio.rootPath
ke files_B
untuk membedakan lokasi penyimpanan di antara dua instans.
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: 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
...
Langkah 2: Pulihkan 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
di milvus_B
, dengan data yang disimpan di bucket_A/files_B/insert_log/[ID of new collection]
.