كيف تختار "خطة الوفرة" لضمان نسبة إتاحة أعلى (high availability) لخادومك


محمد هاني صباغ

سنشرح اليوم فكرة التوفّر أو تكرار البيانات (redundancy). البيانات المُكررة ليست نسخةً احتياطية، بل هي بيانات يمكن أن تساعدك على تجاوز عمليات فشل الأقراص (disks fail) في حال ما إذا تعذّر عليك الوصول إلى بيانات الأقراص الصلبة عبر الطريقة الأساسية التي تستعملها.

high-availibility_(1).thumb.png.5ce0715e

تعتمد طريقة تشغيل النسخ المتماثل (replication) على نظامك على كيفية استعمالك لبياناتك، الأخطاء التي تريد تجنّبها وكيفيّة تفاعل زوّارك مع خادومك.

الوفرة العالية عبر RAID

ربّما يكون أشهر أنواع النسخ المتماثل (replication) هو تقنية RAID. ترمز RAID إلى "مصفوفة تكرار الأقراص المستقلة - Redundant Array of Independent Disks". يعني هذا أنّه وفي غالب الأحيان، تعمل الأقراص كمرايا (mirrors) لبعضها البعض.

التطبيق الأكثر شيوعًا لتقنية RAID هو مصفوفة RAID 1. يقوم هذا النوع من المصفوفات بتمرير (mirror) قرصٍ صلب ما على قرصٍ صلبٍ آخر. يعني أنّه وفي حال فشل القرص الصلب الأوّل، فسيبقى القرص الصلب الثاني موجودًا للخدمة وكتابة البيانات. يسرّع هذا النوع من المصفوفات عملية القراءة من الأقراص بسبب توفّر البيانات في أكثر من مكان وبالتالي يستطيع النظام قراءتها من أيّ موقعٍ يريد من الموقعين المتوفّرين.

هذا المثال أيضًا هو مثالٌ جيّد لتوضيح السبب الذي من أجله تكون تقنية مثل RAID، أو عملية تكرار البيانات (redundancy) عمومًا مختلفة عن عملية النسخ الاحتياطي (backup). إذا قمتَ بحذف ملفّ ما فقد تمّ حذفه بالفعل ولن تتمكن من استرجاعه. يتم تطبيق التغييرات على جميع الأقراص مباشرةً بالوقت نفسه لضمان المزامنة بينها.

يتم تطبيق تقنية RAID في المستوى المنخفض (low-level)، هذا يعني أنّك لن تستطيع التحكّم بتقنية RAID وخصائصها أو تضمينها على خادومك الافتراضي الخاصّ على شركة DigitalOcean مثلا، إن كان خادومك على مزود آخر، فراجع دليل المساعدة الخاص بالمزود.

تكرار البيانات على مستوى الكتل Block-Level

من الطرق الأخرى للقيام بعملية تكرار البيانات (Redundancy) هي عبر تمرير هيكلة الكُتَل (Blocks) بالكامل. DRBD أو "جهاز الكُتَل المكررة الموزّع - Distributed Replicated Block Device"، هو عبارة عن طريقة يمكن تطبيقها للقيام بعملية تكرار البيانات على امتداد أجهزة الكُتَل (Block Devices).

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

DRBD على الجانب الآخر، مُعدّة بطريقة مختلفة تماًمًا. في DRBD، يتم تمرير محتويات كلّ خادوم بالكامل إلى خادومٍ آخر. يتم تمرير واجهة التطبيقات كذلك. هذا يعني أنّه يمكن التعامل مع فشل التطبيقات بسهولة بسبب وجود آلة أخرى منفصلة تمامًا عن الخادوم الرئيسي تحوي على نفس محتويات الخادوم الرئيسي. إذا فشل خادومك الأوّل مثلًا بسبب مشاكل بالطاقة، فسيتم تشغيل خادومك الثاني ليقوم بنفس المهام.

النسخ المتماثل في SQL

إذا كانت بياناتك المهمّة مخزّنة في قاعدة بيانات SQL (مثل MySQL ،MariaDB ،PostgreSQL، ..)، فيمكنك الاستفادة من بعض مزايا النسخ التكراري أو النسخ المتماثل المضمّنة بالفعل. يمكن لهذه المزايا أن توفّر لك نظام استرجاع في حال تعطّل نظامك الرئيسي.

النسخ المتماثل بـ Master-Slave

النوع الأساسي للنسخ التكراري أو المتماثل (replication) الخاصّ بـSQL هو إعداد Master-Slave. في هذا السيناريو، تمتلك خادوم قاعدة بيانات رئيسي، والذي يتم الإشارة إليه باسم السيّد أو "Master". هذا الخادوم هو المسؤول عن تنفيذ جميع مهام الكتابة والتحديثات. يتم نسخ البيانات من هذا الخادوم بشكلٍ مستمر إلى الخادوم الفرعي أو "slave". يمكن أيضًا القراءة من هذا الخادوم، ولكن لا يمكن الكتابة عليه.

يسمح لك هذا التثبيت بتوزيع البيانات على امتداد أجهزة متعددة، والذي يمكنه تحسين أداء تطبيقك بشكل ملحوظ.

في حين أنّ تحسين الأداء هذا يعتبر ميّزة مهمّة، واحدٌ من الأسباب الرئيسية التي قد تودّ من أجلها إعداد نسخٍ تكراري باستخدام Master-Slave هو لمعالجة الأعطاب ومشاكل الفشل. إذا أصبح خادومك الرئيسي غير متوفّر، فيمكنك القراءة من خادومك الفرعي. أيضًا من الممكن أن تقوم بتحويل الخادوم الفرعي إلى خادوم رئيسي في حال ما إذا كان خادومك الرئيسي معطّلًا لفترة معيّنة من الوقت.

نسخ Master-Slave المتماثل في الواقع هو مكان من الأماكن التي يمكننا أن نلاحظ فيها تكامل عمليتيّ النسخ الاحتياطي والنسخ المتماثل. في إعداد master-slave، يمكنك نسخ البيانات بشكلٍ متماثل من الخادوم السيّد أو الرئيسي إلى الخادوم الفرعي. يمكنك بعدها تعطيل النسخ المتماثل بشكلٍ مؤقّت لمعرفة حالة المعلومات وصيانتها على الخادوم الفرعي. من هنا، يمكنك عمل نسخة احتياطية من قاعدة البيانات باستخدام أيّ أداة نسخ احتياطي تريدها.

يمكنك قراءة المزيد عن: إعداد النسخ المتماثل بـMaster-Slave لـMySQL أو إعداد النسخ المتماثل بـMaster-Slave لـPostgreSQL.

النسخ المتماثل بـMaster-Master

النوع الثاني من النسخ المتماثل يدعى "Master-Master" أو من خادومٍ رئيسي إلى خادومٍ رئيسي آخر. يسمح هذا الإعداد لكلا الخادومين بامتلاك الميّزات "الرئيسية". يعني هذا أنّه يمكن لكلا الخادومين أن يقبلا الكتابة والتحديثات ونقل التغييرات إلى الخادوم الآخر. يرث هذا الإعداد مزايا إعداد master-slave، ولكنّه يستفيد أيضًا من التحسّن بأداء الكتابة على الأقراص إذا كانت طريقة الكتابة موزّعة بشكلٍ جيّدة عبر آلية موازنة حملٍ جيّدة.

هذا يعني أيضًا أنّه في حال تعطّل خادومٍ ما، سيبقى الآخر عامِلًا وقادرًا على استقبال الطلبات وخدمة الزوّار. صحيحٌ أنّ عملية الإعداد ستكون أكثر تعقيدًا هنا، ولكنّ عملية الاسترجاع في هذه الحالة هي أقل تعقيدًا من حالة الاسترجاع من الفشل في إعداد master-slave، لأنّه لا حاجة إلى نقل قاعدة البيانات من الخادوم الفرعي إلى الخادوم الرئيسي.

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

يمكنك قراءة المزيد عن: النسح المتماثل كـmaster-master.

التوزيع كبديل للنسخ لتكرار البيانات

تعرض الأنظمة الموزّعة العديد من المزايا مقارنةً بتضبيطات تكرار البيانات التقليدية.

شرحنا مراحل RAID الممررة عبر المرايا أعلاه (RAID 1). هناك مرحلة أخرى شائعة الاستخدام في RAID وهي RAID 5. تقوم هذه المرحلة بتوزيع البيانات على امتداد عددٍ من الأجهزة وتقوم أيضًا بكتابة بياناتٍ مساوية على امتداد كلّ جهاز. يعني هذا أنّه يمكن إعادة بناء أيّ نوع من الإجراءات (Transactions) عبر جمع المعلومات الموزّعة بشكلٍ متساوٍ من الأجهزة الأخرى في حال تعطّل جهازٍ ما.

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

لا يجب أن تتم الأنظمة الموزّعة على صعيد العتاد (hardware) فقط. هناك أيضًا عدّة قواعد بيانات وحلول برمجية أخرى مصممة للتعامل مع البيانات الموزّعة كميّزة أساسية لها.

من الأمثلة على هذا هو Riak، Riak هو عبارة عن قاعدة بيانات موزّعة. عُقَد Riak متطابقة جميعًا. لا يوجد أيّ علاقة master-slave بين الأجزاء المختلفة. تتم عملية النسخ المتماثل على الكائنات المخزّنة في قاعدة البيانات تلقائيًا، لذا فهناك عملية نسخ متماثل تلقيدية في هذا الجانب.

على كلّ حال، لا تقوم كلّ عقدة بتخزين قاعدة البيانات بأكملها داخلها، بل يتم توزيع البيانات على جميع العقد بطريقة مشابهة. يتم وضع الكائنات التي تمّ نسخها بشكلٍ متماثل على عقدٍ مختلفة للسماح بالتوفّر العالي في حال حصول أعطاب على مستوى العتاد.

مثالٌ آخر قائم على هذا المبدأ المُضمّن في قاعدة بيانات هو Cassandra. وهو مبني على نفس المبادئ الموجود في Riak، ولكنّها مضمّنة بطريقة مختلفة.

خاتمة

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

يجب أيضًا أن تكون قادرًا على أن ترى الآن أن إعداد النسخ المتماثل ليس بديلًا عن النسخ الاحتياطي.

للتطبيقات التي يكون فيها توافق البيانات والوصول أمرًا أساسيًا، سيكون النسخ الاحتياطي والنسخ المتماثل تقنيتين لا تقدرّان بثمن. تضمينٌ صحيح لهاتين التقنيتين سيضمن لك أنّ منتجك سيكون دومًا متوفرًا للمستخدمين وأنّ البيانات لن تضيع منك.

ترجمة -وبتصرف- للمقال: How To Choose a Redundancy Plan To Ensure High Availability لصاحبه: Justin Ellingwood.

حقوق الصورة البارزة: Designed by Freepik.





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن