الترحيل بين المثيلات في دلو واحد (مسارات جذر مختلفة)
يوضح هذا الموضوع بالتفصيل عملية النسخ الاحتياطي لمجموعة من مثيل Milvus واستعادتها إلى مثيل آخر أثناء استخدام دلو مشترك لتخزين الكائنات، مع وجود مسارات جذر مختلفة لكل مثيل.
نظرة عامة
يوضح الرسم البياني أدناه عملية النسخ الاحتياطي والاستعادة باستخدام دلو مشترك.
دلو مشترك للنسخ الاحتياطي والاستعادة. png
لنفترض أن لدينا مثيلات Milvus، milvus_A
و milvus_B
، وكلاهما يستخدم محرك التخزين الافتراضي MinIO لتخزين الكائنات. يشترك هذان المثيلان في نفس الدلو، bucket_A
، ولكنهما يخزنان بياناتهما في مسارات جذر مختلفة: files_A
ل milvus_A
والملفات_B ل milvus_B
. في هذا المثال، هدفنا هو إكمال المهام التالية:
إنشاء نسخة احتياطية (my_backup) للمجموعة coll المخزنة تحت مسار
files_A
لـmilvus_A
.الاستعادة من النسخة الاحتياطية وتخزينها في files_B لـ
milvus_B
.
المتطلبات الأساسية
تأكد من تثبيت أداة النسخ الاحتياطي Milvus-backup.
تعرف على تكوين إعدادات تخزين كائنات Milvus. للحصول على التفاصيل، راجع تخزين الكائنات.
قم بعمل نسخة احتياطية من مجموعة من 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: 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
: اسم الدلو المستخدم للتخزينmilvus_A
. في هذا المثال، اضبط علىbucket_A
.minio.rootPath
: المسار الجذر داخل الدلو حيث يتم تخزين البيانات منmilvus_A
. في هذا المثال، تم التعيين إلىfiles_A
.minio.backupBucketName
: اسم الدلو المستخدم للتخزين. في هذا المثال،milvus_A
وmilvus_B
يشتركان في الدلو. لذلك، قم بالتعيين إلىbucket_A
.minio.backupRootPath
: المسار الجذر داخل الدلو المخصص لتخزين ملفات النسخ الاحتياطي فيmilvus_B
. في هذا المثال، استخدم مسارًا مختلفًا عنmilvus_A
. لذلك، قم بالتعيين إلىbackup
.
الخطوة 3: إنشاء نسخة احتياطية
بمجرد حفظ backup.yaml
، قم بإنشاء نسخة احتياطية باسم my_backup:
./milvus-backup create -c coll -n my_backup
يقوم هذا الأمر بإنشاء نسخة احتياطية bucket_A/backup/my_backup
في مخزن الكائنات للمجموعة coll
.
استعادة النسخة الاحتياطية إلى milvus_B
الخطوة 1: تكوين إعدادات الاستعادة
كرر الخطوة 2 لتعديل التكوينات للاستعادة إلى milvus_B
، مع التأكد من تعيين minio.bucketName
إلى bucket_A
و minio.rootPath
إلى files_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: 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
...
الخطوة 2: استعادة النسخة الاحتياطية
استعادة النسخة الاحتياطية إلى milvus_B
:
./milvus-backup restore -c coll -n my_backup -s _bak
يستعيد هذا الأمر النسخة الاحتياطية إلى مجموعة جديدة باسم coll_bak
في milvus_B
، مع تخزين البيانات في bucket_A/files_B/insert_log/[ID of new collection]
.