الترحيل بين المثيلات عبر الدلاء
يوضح هذا الموضوع بالتفصيل عملية النسخ الاحتياطي لمجموعة من مثيل Milvus واستعادتها إلى مثيل آخر، مع استخدام كل مثيل دلاء مختلفة داخل نفس مخزن الكائنات.
نظرة عامة
يوضح الرسم البياني أدناه عملية النسخ الاحتياطي والاستعادة باستخدام دلاء مختلفة داخل نفس وحدة تخزين الكائنات.
النسخ الاحتياطي والاستعادة عبر الدلو. png
لنفترض أن لدينا مثيلين من Milvus، milvus_A
و milvus_B
، وكلاهما يستخدم محرك التخزين الافتراضي MinIO لتخزين الكائنات. تستخدم هاتان المثيلتان دلاء مختلفة الدلو_A و bucket_B
داخل نفس مخزن الكائنات. في هذا المثال، هدفنا هو إكمال المهام التالية:
إنشاء نسخة احتياطية (
my_backup
) للمجموعةcoll
فيbucket_A
وتخزين النسخة الاحتياطية فيbucket_B
.في
bucket_B
، الاستعادة من النسخة الاحتياطية وتسمية المجموعة المستعادةcoll_bak
.
المتطلبات الأساسية**
تأكد من تثبيت أداة النسخ الاحتياطي Milvus-backup.
تعرف على تكوين إعدادات تخزين كائنات ميلفوس. للحصول على التفاصيل، راجع تخزين الكائنات.
النسخ الاحتياطي لمجموعة من milvus_A
الخطوة 1: إعداد التكوين
انتقل إلى دليل مشروع النسخ الاحتياطي لـ milvus-backup وأنشئ دليلاً باسم التكوينات:
mkdir configs
cd configs
قم بتنزيل ملف التكوين الاحتياطي backup.yaml
:
wget https://raw.githubusercontent.com/zilliztech/milvus-backup/main/configs/backup.yaml
تبدو بنية الملف هكذا:
├── configs
│ └── backup.yaml
├── milvus-backup
└── README.md
الخطوة 2: تحرير ملف التكوين
قم بتعديل ملف backup.yaml لتعيين التكوينات المناسبة لـmilvus_A
:
تكوينات الاتصال
# 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
: عنوان IP أو اسم المضيف للخادمmilvus_A
.milvus.port
: منفذ TCP الذي يستمع إليه خادم ميلفوس (الافتراضي 19530).
تكوينات التخزين (إعدادات 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
: اسم الدلو المستخدم لتخزين البيانات فيmilvus_A
. في هذا المثال، تم تعيينه إلىbucket_A
.minio.rootPath
: المسار الجذر داخل الدلو حيث يتم تخزين البيانات منmilvus_A
. في هذا المثال، تم التعيين إلىfiles
.minio.backupBucketName
: اسم الدلو المستخدم للتخزين الاحتياطي فيmilvus_B
. في هذا المثال، يستخدمmilvus_A
وmilvus_B
دلاء مختلفة. لذلك، قم بالتعيين إلىbucket_B
.minio.backupRootPath
: المسار الجذر داخل الدلو المخصص لتخزين ملفات النسخ الاحتياطي فيmilvus_B
. في هذا المثال، اضبط علىbackup
.
الخطوة 3: إنشاء نسخة احتياطية
بمجرد حفظ backup.yaml، قم بإنشاء نسخة احتياطية باسم my_backup
:
./milvus-backup create -c coll -n my_backup
ينشئ هذا الأمر النسخة الاحتياطية bucket_B/backup/my_backup
في تخزين الكائنات للمجموعة coll.
استعادة النسخة الاحتياطية إلى milvus_B
الخطوة 1: تكوين إعدادات الاستعادة
كرر الخطوة 2 لتعديل التكوينات للاستعادة إلى milvus_B
، مع التأكد من ضبط minio.bucketName
على bucket_B
.
إليك نموذج تكوين
...
# 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
...
الخطوة 2: استعادة النسخة الاحتياطية
استعادة النسخة الاحتياطية إلى milvus_B
:
./milvus-backup restore -c coll -n my_backup -s _bak
يستعيد هذا الأمر النسخة الاحتياطية إلى مجموعة جديدة باسم coll_bak
في milvus_B
، مع تخزين البيانات في bucket_B/files/insert_log/[ID of new collection]
.