13 أكتوبر 2020

استراتيجيات النسخ الاحتياطي والاسترداد لـ Proxmox

منصة افتراضية مفتوحة المصدر للمؤسسة ، تعود جذور Proxmox إلى الجزء الأول من القرن الحادي والعشرين وخضعت لتطوير واسع النطاق على مر السنين. يوفر Proxmox مجموعة من الخيارات المستخدمة لإجراء نسخ احتياطي للأجهزة الافتراضية باستخدام Proxmox Module وعلى وجه الخصوص Bacula Enterprise Edition.

عند استضافتها على Proxmox hypervisor ، يمكن استخدام Proxmox Module لتوفير نسخ احتياطي كامل واسترداد للأجهزة الافتراضية بما في ذلك QEMU و LXC. بعد ذلك ، سننظر في الميزات والإجراءات والعوامل المختلفة التي يجب أخذها في الاعتبار عند استخدام Proxmox Module و Bacula Enterprise Edition لإجراءات النسخ الاحتياطي والاسترداد.

قبل أن ننتقل ، إليك قائمة بالميزات الرئيسية لوحدة Proxmox:

  • يمكن نسخ أي جهاز افتراضي للضيف احتياطيًا كلقطة ، بما في ذلك ضيوف QEMU و LXC
  • يمكن إجراء النسخ الاحتياطي على مستوى الصورة بالكامل باستخدام وحدة Proxmox
  • يمكن استخدام وحدة Proxmox لاستعادة صورة الجهاز الظاهري بالكامل
  • يمكن استخدامها لاستعادة أرشيف QEMU VM (.vma) إلى موقع بديل
  • يمكن استعادة أرشيف LXC (.tar) وجميع التكوينات إلى دليل بديل
  • يمكن فحص مجموعة Proxmox لكل جهاز افتراضي بواسطة الوحدة النمطية ، مما يؤدي إلى إنشاء إصدار Bacula Enterprise لكل جهاز افتراضي.

قد يكون الملخص السريع لبعض المصطلحات المستخدمة أعلاه مفيدًا في هذه المرحلة:

  • QEMU هو برنامج Hypervisor يستخدم لتمكين المحاكاة الافتراضية للأجهزة وهو مفتوح المصدر.
  • يسمح LXC بتشغيل العديد من أنظمة Linux باستخدام نواة Linux واحدة. يوفر ظاهرية على مستوى نظام التشغيل لاستخدام وحدة Proxmox.
  • Proxmox هو نظام أساسي مفتوح المصدر لتصور الأجهزة الافتراضية للمؤسسات.
  • يعرّف VMID الضيف VM باستخدام وحدة Proxmox.
  • VMA هو أرشيف الجهاز الظاهري. يمكن استخدام VMA لتخزين أجهزة VM الخاصة بضيف QEMU عبر وحدة Bacula Proxmox عبر Proxmox hypervisor.

لماذا هناك حاجة إلى النسخ الاحتياطي لبرنامج Proxmox

يعد النسخ الاحتياطي للأجهزة الافتراضية أمرًا ضروريًا. مثلما تقوم أقسام تكنولوجيا المعلومات بعمل نسخ احتياطية منتظمة للآلات المادية ، يجب القيام بنفس الشيء مع الأجهزة الافتراضية. كان هناك وقت لم يكن من الممكن فيه عمل ذلك مع Linux. تغلبت Proxmox Module على هذه المشكلة وهي الآن الوحدة الأساسية للنسخ الاحتياطية لجهاز VM.

طريقة التفضيل هي استخدام Bacula Enterprise File Daemon. تم تصميم هذا للعمل مع كل جهاز افتراضي فردي بدلاً من الكل مرة واحدة ، ويتيح استخدام الميزات التالية داخل وحدة Bacula Enterprise Proxmox:

  • استعادة سريعة للملفات الفردية.
  • المجموع الاختباري للملفات الفردية للكشف عن الفيروسات وبرامج التجسس.
  • تحقق من الوظائف.
  • استبعاد الملفات أو الدليل (مثل الملفات المؤقتة أو المبادلة).
  • ضغط على مستوى الملف.
  • نسخ احتياطي دقيق.

كل ما سبق متاح عند استخدام طريقة Bacula Enterprise File Daemon للنسخ الاحتياطي.

طريقة النسخ الاحتياطي البديلة هي استخدام النسخة الاحتياطية على مستوى الصورة. هذا لا يتطلب إدراج File Daemon في كل جهاز افتراضي ويفضل من قبل بعض المستخدمين. فيما يلي نظرة سريعة على كيفية إجراء نسخ احتياطي واحد لجهاز VM.

كيفية عمل نسخة احتياطية من Proxmox

لأداء أ Proxmox النسخ الاحتياطي بالنسبة لضيف واحد VM ، يجب اتخاذ الخطوات التالية:

  • بالنسبة لـ LXC guest VM's ، يجب حفظ التكوين
  • يجب على المستخدم بعد ذلك إيقاف الجهاز الظاهري وإنشاء لقطة احتياطية جديدة عند الطلب
  • قم بتنفيذ تنفيذ vzdump لحفظ البيانات.

بينما ذكرنا إيقاف VM ، يمكن إجراء النسخ الاحتياطي أثناء تشغيله. لاحظ أن Proxmox Module يعمل تلقائيًا في إنشاء لقطة احتياطية - والتي ستتم إزالتها بمجرد اكتمال النسخ الاحتياطي - ولن تؤثر على أي أجهزة افتراضية أخرى ، فقط على تلك التي يتم نسخها احتياطيًا. سيتم إبقاء المستخدم على اطلاع دائم بالتقدم عبر رسائل مثل:

JobId 68: Start Backup JobId 68، Job = proxmox.2018-01-25_11.25.05_21

JobId 68: استخدام الجهاز "FileChgr1-Dev2" للكتابة.

JobId 68: المجلد "Vol-0002" المكتوب مسبقًا ، والانتقال إلى نهاية البيانات.

JobId 68: proxmox: بدء النسخ الاحتياطي vm: ubuntu-container (101)

معرف الوظيفة 68: proxmox: النسخ الاحتياطي لجهاز vm: حاوية ubuntu (101) موافق

سيتم نسخ أي جهاز VM ضيف QEMU احتياطيًا إلى ملف .vma ، بينما يقوم LXC guest VM بإنشاء ملف .conf و .tar. إذا تم نسخ العديد من أجهزة VM احتياطيًا في وقت واحد ، فسيتم إنشاء ملفات لكل منها. يمكن للمستخدمين العثور على الملفات المناسبة المحددة على النحو التالي:

/@proxmox/qm//VM.vma - لـ VMs ضيف QEMU

/@proxmox/lxc//VM.conf و /@proxmox/lxc//VM.tar - لـ LXC guest VMs

كيفية استعادة Proxmox

توفر وحدة Proxmox خيارين متميزين للاستعادة: الاستعادة إلى Proxmox hypervisor والاستعادة إلى الدليل المحلي.

استعادة إلى Proxmox

باستخدام هذه الطريقة ، يمكن استعادة vmid الضيف إلى الأصل إذا لم يتم تخصيصه بالفعل باستخدام الاستعادة حيث = المعلمة ، وإلا فسيتم تخزينه كضيف VM جديد عبر Proxmox hypervisor. ستمنح وحدة Bacula Proxmox Module لكل ضيف جديد VM قيمة +1 و +11 لتقليل احتمالية حدوث تعارض حيث يتم إنشاء اثنين من الضيفين الظاهريين في وقت واحد. Proxmox نفسه ليس لديه قرار للتعامل مع هذا الموقف ، وبالتالي فإن وحدة Bacula Proxmox تعمل على عملية التخفيف هذه. عادةً ، سيتم تخصيص VM الجديد لـ vmid التالي المتاح وبالتالي الحفاظ على التخصيصات إلى الحد الأدنى.

يجب أن يرى المشغل التقدم مدرجًا كما يلي:

JobId 76: ابدأ استعادة ملفات الوظيفة .2018-01-25_13.50.31_29

JobId 76: استخدام الجهاز "FileChgr1-Dev1" للقراءة.

JobId 76: جاهز للقراءة من المجلد "Vol-0004" على جهاز الملفات "FileChgr1-Dev1" (/ opt / bacula / archive).

JobId 76: proxmox: استعادة الجهاز الظاهري: lxc / ubuntu-container / VM101 كـ VM222

JobId 76: نهاية المجلد "Vol-0004" بالعنوان = 47137166325 على الجهاز "FileChgr1-Dev1" (/ opt / bacula / archive).

استعادة إلى دليل محلي

للاستعادة إلى دليل محلي ، يحتاج المستخدم إلى توجيه البيانات لتعيين موقع. وبالتالي ، يجب قراءة المعلمة مثل الاستعادة حيث = / tmp / bacula / استعادة. سيقرأ سجل التقدم على النحو التالي:

JobId 90: ابدأ استعادة ملفات الوظيفة .2018-01-30_15.04.12_05

JobId 90: استخدام الجهاز "FileChgr1-Dev1" للقراءة.

JobId 90: حجم التباعد الأمامي "Vol-0001" للعنوان = 45406565308

JobId 90: proxmox: الاستعادة المحلية للجهاز الظاهري: qm / ubuntu-server / VM108

ما ورد أعلاه يشير إلى أن الضيف VM قد تمت استعادته إلى دليل محلي ويحدد مكان العثور عليه.

يمكن الاطلاع على التفاصيل الكاملة لإجراءات النسخ الاحتياطي والاستعادة ومزيد من المعلومات حول وحدة Bacula Proxmox على www.baculasystems.com.

عن المؤلف 

بيتر هاتش


{"البريد الإلكتروني": "عنوان البريد الإلكتروني غير صالح" ، "عنوان URL": "عنوان موقع الويب غير صالح" ، "مطلوب": "الحقل المطلوب مفقود"}