الترحيل بين المثيلات عبر بيئات S3
يوضح هذا الموضوع بالتفصيل عملية النسخ الاحتياطي لمجموعة من مثيل Milvus واستعادتها إلى مثيل آخر، مع استخدام كل مثيل لمخزن كائنات مختلف.
نظرة عامة
يوضح الرسم البياني أدناه عملية النسخ الاحتياطي والاستعادة باستخدام وحدات تخزين كائنات مختلفة.
النسخ الاحتياطي والاستعادة متعدد المخازن. png
لنفترض أن لدينا مثيلين من Milvus، milvus_A
و milvus_B
، باستخدام وحدة تخزين كائنات مختلفة. في هذا المثال، هدفنا هو إكمال المهام التالية:
قم بإنشاء نسخة احتياطية (my_backup) للمجموعة
coll
فيbucket_A
من مخزن الكائناتmilvus_A
.انقل النسخة الاحتياطية my_backup إلى
bucket_B
من وحدة تخزين الكائناتmilvus_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 الذي يستمع إليه خادم Milvus (الافتراضي 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: 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
: اسم الدلو المستخدم لتخزين البيانات في milvus_A. في هذا المثال، تم تعيينه إلىbucket_A
.minio.rootPath
: المسار الجذر داخل الدلو حيث يتم تخزين البيانات من milvus_A. في هذا المثال، تم التعيين إلىfiles
.minio.backupBucketName
: اسم الدلو المستخدم للتخزين الاحتياطي. في هذا المثال، تم التعيين إلىbucket_A
.minio.backupRootPath
: : المسار الجذر داخل الدلو المخصص لتخزين ملفات النسخ الاحتياطي فيmilvus_B
. في هذا المثال، اضبط علىbackup
.
الخطوة 3: إنشاء نسخة احتياطية
بمجرد حفظ backup.yaml، قم بإنشاء نسخة احتياطية باسم my_backup
:
./milvus-backup create -c coll -n my_backup
ينشئ هذا الأمر النسخة الاحتياطية bucket_A/backup/my_backup
في مخزن الكائنات في milvus_A
.
قم بنقل النسخة الاحتياطية يدويًا إلى milvus_B
نظرًا لأن milvus_A
و milvus_B
يستخدمان وحدة تخزين كائنات مختلفة، فأنت بحاجة إلى تنزيل النسخة الاحتياطية يدويًا من وحدة تخزين ميلفوس_أ وتحميلها إلى وحدة تخزينmilvus_B
.
استخدام وحدة تحكم MinIO
قم بتسجيل الدخول إلى وحدة تحكم MinIO.
حدد موقع الدلو المحدد في minio.address لـ milvus_A.
حدد ملفات النسخ الاحتياطي في الدلو.
انقر فوق تنزيل لتنزيل الملفات إلى جهازك.
استخدام عميل mc
بدلاً من ذلك، يمكنك استخدام عميل mc لتنزيل ملفات النسخ الاحتياطية:
- تكوين مضيف MinIO:
# configure a Minio host
mc alias set my_minio https://<minio_endpoint> <accessKey> <secretKey>
- سرد الدلاء المتاحة:
# List the available buckets
mc ls my_minio
- تنزيل دلو بشكل متكرر:
# Download a bucket recursively
mc cp --recursive my_minio/<your-bucket-path> <local_dir_path>
بمجرد تنزيل ملفات النسخ الاحتياطية، يمكنك تحميلها إلى وحدة تخزين الكائنات التي يستخدمها milvus_B
للاستعادة المستقبلية. بدلاً من ذلك، يمكنك تحميل النسخة الاحتياطية إلى Zilliz Cloud لإنشاء قاعدة بيانات متجهة مُدارة ببياناتك. لمزيد من التفاصيل، راجع الترحيل من ميلفوس إلى زيليز كلاود.
الاستعادة من النسخة الاحتياطية إلى 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: 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
الخطوة 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]
داخل مخزن الكائنات milvus_B
.