النسخ الاحتياطي الجزء 7: الاستنتاجات


هذه المذكرة تكمل دورة النسخ الاحتياطي. سيتحدث عن التنظيم المنطقي لخادم مخصص (أو VPS) ، مناسب للنسخ الاحتياطي ، وسيقدم أيضًا خيار استعادة الخادم بسرعة من نسخة احتياطية دون أي توقف في حالة وقوع حادث.


مصدر البيانات


غالبًا ما يحتوي الخادم المخصص على محركي أقراص صلبة على الأقل يتم استخدامهما لتنظيم مجموعة RAID من المستوى الأول (النسخة المتطابقة). هذا ضروري لتتمكن من متابعة الخادم في حالة فشل محرك أقراص واحد. إذا كان خادمًا مخصصًا عاديًا ، فيمكن أن يكون هناك وحدة تحكم RAID منفصلة للأجهزة مزودة بتقنية التخزين المؤقت النشطة على محركات أقراص الحالة الصلبة ، بحيث يمكن توصيل واحد أو أكثر من محركات أقراص الحالة الصلبة بالإضافة إلى محركات الأقراص الصلبة العادية. في بعض الأحيان يتم تقديم خوادم مخصصة ، حيث يوجد SATADOM فقط من الأقراص المحلية (الأقراص الصغيرة ، الهيكلية - محرك أقراص فلاش USB متصل بمنفذ SATA) ، أو حتى محرك أقراص USB صغير عادي (8-16 جيجابايت) متصل بمنفذ داخلي خاص ، ويتم أخذ البيانات من نظام التخزين الخاص متصل عبر شبكة تخزين مخصصة (Ethernet 10G ، FC ، وما إلى ذلك) ، وهناك خوادم مخصصة يتم تحميلها مباشرة من نظام التخزين. لن أفكر في هذه الخيارات ، لأنه في مثل هذه الحالات ، تنتقل مهمة النسخ الاحتياطي للخادم بسلاسة إلى المتخصص الذي يخدم نظام التخزين ، وعادة ما تكون هناك العديد من التقنيات الاحتكارية لإنشاء لقطات الحالة ، وإلغاء البيانات المكررة المدمجة ، وغيرها من أفراح مسؤول النظام التي تمت مناقشتها في الأجزاء السابقة من هذه السلسلة. يمكن أن يصل حجم صفيف القرص الخاص بخادم مخصص إلى عدة عشرات من تيرابايت ، اعتمادًا على عدد وحجم الأقراص المتصلة بالخادم. في حالة VPS ، تكون وحدات التخزين أكثر تواضعا: عادة لا تزيد عن 100 جيجابايت (ولكن هناك المزيد) ، ويمكن بسهولة أن تكون التعريفات الخاصة بهذه VPS أكثر تكلفة من أرخص الخوادم المخصصة من نفس المضيف. يحتوي VPS غالبًا على محرك أقراص واحد ، لأنه أسفله سيكون التخزين (أو شيءًا شديد الارتباط). في بعض الأحيان ، يحتوي VPS على العديد من الأقراص ذات الخصائص المختلفة ، لأغراض مختلفة:


  • نظام صغير - لتثبيت نظام التشغيل ؛
  • تخزين كبير لبيانات المستخدم.

عند إعادة تثبيت النظام باستخدام لوحة التحكم ، لا يتم الكتابة على القرص الذي يحتوي على بيانات المستخدم ، ولكن يتم إعادة تحميل النظام بالكامل. أيضًا ، في حالة VPS ، يمكن للمضيف تقديم زر يأخذ لقطة من حالة VPS (أو القرص) ، ومع ذلك ، إذا قمت بتثبيت نظام التشغيل الخاص بك أو نسيت تنشيط الخدمة المطلوبة داخل VPS ، فقد تظل بعض البيانات مفقودة. بالإضافة إلى الزر ، يتم عادةً تقديم خدمة تخزين البيانات ، وغالبًا ما تكون محدودة للغاية. عادةً ما يكون هذا الحساب هو الوصول إلى FTP أو SFTP ، أحيانًا مع SSH ، مع قشرة مقطوعة (على سبيل المثال rbash) ، أو قيد على الأوامر قيد التشغيل من خلال مفاتيح Author_keys (عبر ForcedCommand).


يتم توصيل خادم مخصص بالشبكة عن طريق منفذين بسرعة 1 جيجابت / ثانية ، ويمكن أن يكون في بعض الأحيان بطاقات بسرعة 10 جيجابت / ثانية. يحتوي VPS غالبًا على واجهة شبكة واحدة. في أغلب الأحيان ، لا تحد مراكز البيانات من سرعة الشبكة داخل مركز البيانات ، ولكنها تحد من سرعة الوصول إلى الإنترنت.


التحميل النموذجي لمثل هذا الخادم المخصص أو VPS هو خادم ويب أو قاعدة بيانات أو خادم تطبيقات. في بعض الأحيان ، يمكن تثبيت العديد من خدمات الدعم الإضافية ، بما في ذلك خادم الويب أو قاعدة البيانات: محرك البحث ونظام البريد ، إلخ.


يعمل الخادم الذي تم إعداده خصيصًا كمساحة لتخزين النسخ الاحتياطية ، وسيتم شرحه بمزيد من التفاصيل أدناه.


تنظيم القرص المنطقي


إذا كانت هناك وحدة تحكم RAID ، أو كانت VPS مع قرص واحد ، ولا توجد أيضًا تفضيلات معينة للنظام الفرعي للقرص (على سبيل المثال ، قرص سريع منفصل لقاعدة البيانات) - يتم تقسيم كل المساحة الحرة على النحو التالي: يتم إنشاء قسم واحد ، يتم إنشاء مجموعة من وحدات تخزين LVM فوقه ، يخلق عدة مجلدات: 2 صغير من نفس الحجم يتم استخدامه كنظام الملفات الجذر (يتم تغييرهما بالتناوب مع التحديثات لتمكين التراجع السريع ، يتم تجسيد الفكرة من توزيع حساب Linux) ، والآخر مخصص لقسم المبادلة ، والباقي مجاني يتم تقسيم هذه المساحة إلى وحدات تخزين صغيرة ، يتم استخدامها كنظام الملفات الجذر للحاويات الكاملة ، والأقراص الخاصة بالأجهزة الظاهرية ، وأنظمة الملفات للحسابات في / المنزل (لكل حساب نظام ملفات خاص به) ، وأنظمة ملفات لحاويات التطبيقات.


ملاحظة مهمة: يجب أن تكون وحدات التخزين مكتفية ذاتيا بالكامل ، أي يجب أن لا تعتمد على بعضها البعض وعلى نظام الملفات الجذر. في حالة الأجهزة أو الحاويات الافتراضية ، تتم ملاحظة هذه النقطة تلقائيًا. إذا كانت هذه حاويات تطبيق أو أدلة منزلية ، فيجب عليك التفكير في فصل ملفات التكوين الخاصة بخادم الويب والخدمات الأخرى بطريقة تؤدي إلى الحد الأقصى من التبعيات في وحدات التخزين فيما بينها. على سبيل المثال ، يتم تشغيل كل موقع على المستخدم الخاص به ، وملفات التكوين الخاصة بالموقع موجودة في الدليل الرئيسي للمستخدم ، وفي إعدادات خادم الويب ، لا يتم تضمين ملفات تهيئة الموقع من خلال /etc/nginx/conf.d/ .conf ، ولكن ، على سبيل المثال ، / home / /configs/nginx/*.conf


إذا كان هناك العديد من الأقراص ، فيمكنك إنشاء RAID لبرنامج (وتكوين التخزين المؤقت على SSD ، إذا كانت هناك حاجة وفرصة) ، وعلى رأسها تجميع LVM وفقًا للقواعد المقترحة أعلاه. في هذه الحالة أيضًا ، يمكنك استخدام ZFS أو BtrFS ، ولكن من الجدير هنا التفكير عدة مرات: كلاهما يتطلب اتباع نهج أكثر خطورة للموارد ، بالإضافة إلى ذلك ، لا يأتي ZFS مع kernel Linux.


بغض النظر عن المخطط المستخدم ، من المفيد دائمًا تقدير السرعة التقريبية لكتابة التغييرات على الأقراص مسبقًا ، ثم حساب حجم المساحة الحرة التي سيتم حجزها لإنشاء لقطات. على سبيل المثال ، إذا كان خادمنا يكتب البيانات بسرعة 10 ميغابايت في الثانية ، وكان حجم صفيف البيانات بأكمله 10 تيرابايت - يمكن أن يصل وقت المزامنة إلى يوم واحد (22 ساعة - سيتم نقل هذا المبلغ عبر الشبكة 1 جيجابت / ثانية) - من المفيد الحجز حوالي 800 جيجابايت في الواقع ، سيكون الرقم أقل ؛ يمكنك تقسيمه بأمان على عدد وحدات التخزين المنطقية.


جهاز خادم تخزين النسخ الاحتياطي


الفرق الرئيسي بين الخادم لتخزين النسخ الاحتياطية هو الأقراص كبيرة الحجم ورخيصة وبطيئة نسبيًا. نظرًا لأن محركات الأقراص الصلبة الحديثة قد تجاوزت بالفعل شريط 10 تيرابايت في قرص واحد ، فمن الضروري استخدام أنظمة الملفات أو RAID مع عمليات الفحص ، لأنه أثناء إعادة إنشاء المصفوفة أو استعادة نظام الملفات (عدة أيام!) ، قد يفشل القرص الثاني بسبب زيادة التحميل. على الأقراص بسعة تصل إلى 1 تيرابايت ، لم يكن هذا حساسًا للغاية. من أجل بساطة الوصف ، افترض أن مساحة القرص مقسمة إلى جزئين من نفس الحجم تقريبًا (مرة أخرى ، على سبيل المثال ، باستخدام LVM):


  • وحدات التخزين المقابلة للخوادم المستخدمة لتخزين بيانات المستخدم (سيتم نشر آخر نسخة احتياطية تم التحقق منها) ؛
  • وحدات التخزين المستخدمة كمستودعات BorgBackup (ستحصل هنا على بيانات النسخ الاحتياطية مباشرة).

مبدأ العملية هو أنه يتم إنشاء وحدات تخزين منفصلة لكل خادم تحت مستودع BorgBackup ، حيث ستذهب البيانات من خوادم المعركة. تعمل المستودعات في وضع الإضافة فقط ، مما يلغي إمكانية الحذف المتعمد للبيانات ، ويرجع ذلك إلى إلغاء البيانات المكررة والتنظيف الدوري للمستودعات من النسخ الاحتياطية القديمة (توجد نسخ سنوية ، شهرية للعام الماضي ، أسبوعيًا للأسبوع الماضي ، يوميًا للأسبوع الماضي ، وربما خاصة الحالات - كل ساعة لليوم الأخير: إجمالي 24 + 7 + 4 + 12 + سنوي - حوالي 50 نسخة لكل خادم).
في مستودعات BorgBackup ، لا يتم تنشيط وضع الإضافة فقط ؛ وبدلاً من ذلك ، يتم استخدام ForcedCommand في .ssh / Author_keys من الخطة التالية:


from=" ",command="/usr/local/bin/borg serve --append-only --restrict-to-path /home/servername/borgbackup/",no-pty,no-agent-forwarding,no-port-forwarding,no-X11-forwarding,no-user-rc AAAAA....... 

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


يسمح لك هذا التصميم بتنظيف النسخ الاحتياطية غير الضرورية بشكل دوري ، كما لا يسمح لخوادم المعركة بحذف أي شيء على خادم تخزين النسخ الاحتياطي.


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


بادئ النسخة الاحتياطية هو الخادم المخصص نفسه أو VPS ، لأن مثل هذا المخطط يمنح مزيدًا من التحكم في عملية النسخ الاحتياطي من هذا الخادم. أولاً وقبل كل شيء ، يتم أخذ لقطة عن حالة نظام الملفات الجذر النشط ، والتي يتم تحميلها وتحميلها باستخدام BorgBackup إلى خادم تخزين النسخ الاحتياطي. بعد الانتهاء من التقاط البيانات ، يتم تثبيت الصورة وحذفها.


إذا كانت هناك قاعدة بيانات صغيرة (تصل إلى 1 جيجابايت لكل موقع) ، يتم إجراء تفريغ قاعدة بيانات ، يتم حفظه في وحدة التخزين المنطقية المقابلة ، حيث توجد بقية بيانات الموقع نفسه ، ولكن لا يمكن الوصول إلى التفريغ عبر خادم الويب. إذا كانت قواعد البيانات كبيرة ، فيجب عليك تكوين استخراج بيانات "ساخن" ، على سبيل المثال باستخدام xtrabackup لـ MySQL أو WAL مع archive_command في PostgreSQL. في هذه الحالة ، سيتم استعادة قاعدة البيانات بشكل منفصل عن هذه المواقع.


إذا تم استخدام الحاويات أو الأجهزة الظاهرية ، فيجب عليك تكوين qemu-guest-agent أو CRIU أو التقنيات الضرورية الأخرى. في حالات أخرى ، غالبًا ما لا تكون هناك حاجة إلى إعدادات إضافية - فقط قم بإنشاء لقطات من وحدات التخزين المنطقية ، والتي تتم معالجتها بعد ذلك بطريقة مماثلة لحالة نظام الملفات الجذر. بعد أخذ البيانات ، يتم حذف الصور.


يتم إجراء مزيد من العمل على خادم تخزين النسخ الاحتياطي:


  • يتم فحص النسخ الاحتياطي الأخير المحرز في كل مستودع.
  • يبحث عن ملف علامة يشير إلى أن عملية التقاط البيانات كاملة ،
  • يتم توسيع البيانات إلى وحدة التخزين المحلية المقابلة ،
  • يتم حذف ملف العلامة

عملية استرداد الخادم


في حالة وفاة الخادم الرئيسي ، يتم تشغيل خادم مخصص مماثل ، والذي يتم تحميله من بعض الصور القياسية. على الأرجح ، سيتم التنزيل عبر الشبكة ، ومع ذلك ، يمكن لفني مركز البيانات الذي يؤدي تكوين الخادم نسخ هذه الصورة القياسية على الفور إلى أحد الأقراص. يتم التنزيل في ذاكرة الوصول العشوائي (RAM) ، وبعد ذلك تبدأ عملية الاسترداد:


  • تم تقديم طلب لإرفاق جهاز الكتلة عبر iscsi \ nbd أو بروتوكول آخر مماثل لوحدة التخزين المنطقية التي تحتوي على نظام الملفات الجذر للخادم الميت ؛ نظرًا لأن نظام ملفات الجذر يجب أن يكون صغيرًا - يجب إكمال هذه الخطوة في بضع دقائق. كما يتم تنفيذ bootloader الانتعاش.
  • إعادة إنشاء بنية وحدات التخزين المنطقية المحلية ، يتم إرفاق وحدات التخزين المنطقية من خادم النسخ الاحتياطي باستخدام وحدة dm_clone kernel: بدء استعادة البيانات ، ويتم كتابة التغييرات على الفور إلى الأقراص المحلية
  • يتم تشغيل حاوية مع كافة الأقراص الفعلية المتوفرة - تتم استعادة الخادم بالكامل ، ولكن مع انخفاض الأداء ؛
  • بعد اكتمال مزامنة البيانات ، يتم فصل وحدات التخزين المنطقية من خادم النسخ الاحتياطي ، وإيقاف تشغيل الحاوية ، وإعادة تشغيل الخادم ؛

بعد إعادة التشغيل ، سيكون لدى الخادم جميع البيانات التي كانت في وقت النسخ الاحتياطي ، ويشمل أيضًا جميع التغييرات التي تم إجراؤها أثناء عملية الاسترداد.



أدعوكم لمناقشة الخيار المقترح في التعليقات ، شكرا لاهتمامكم!

Source: https://habr.com/ru/post/ar472776/


All Articles