مستويات RAID بلغة بسيطة: أيها يحمي بياناتك وأيها يسرّعها

RAID 0 يسرّع ولا يحمي، وRAID 1 يتحمل تعطل قرص بنصف السعة، وRAID 5 خطر على الأقراص الكبيرة وقت إعادة البناء، وRAID 10 أفضل توازن لقواعد البيانات، مع حقيقة ثابتة: RAID ليس نسخة احتياطية أبداً.
RAID طريقة لجمع عدة أقراص في وحدة تخزين واحدة، والهدف إما سرعة أعلى أو حماية من تعطل قرص أو الاثنين معاً. الخلاصة السريعة: RAID 0 يسرّع ولا يحمي شيئاً، فإذا تعطل قرص واحد ضاعت المصفوفة كلها. RAID 1 نسخة مرآة على قرصين، تفقد نصف السعة وتتحمل تعطل قرص واحد. RAID 5 يعطيك سعة كل الأقراص ناقص قرص واحد ويتحمل تعطل قرص، لكن الكتابة فيه أبطأ وإعادة بنائه على الأقراص الكبيرة مخاطرة حقيقية. RAID 6 يتحمل تعطل قرصين مقابل خسارة سعة قرصين. أما RAID 10 فهو مرايا مخططة، يفقد نصف السعة لكنه يجمع سرعة القراءة والكتابة مع إعادة بناء سريعة وآمنة نسبياً. لهذا السبب نستخدم في كلاود RAID 10 لأقراص بيانات العملاء وRAID 1 لقرص نظام التشغيل في كل سيرفر فعلي. النقطة الأهم في المقال كله: RAID يحميك من تعطل القرص فقط، ولا يحميك من حذف ملف بالخطأ أو من فيروس فدية أو من قاعدة بيانات تلفت، فهو ليس نسخة احتياطية أبداً. في الأقسام التالية تجد الأرقام الفعلية لكل مستوى على مثال من 4 أقراص سعة كل منها 4TB، وزمن إعادة البناء، وأوامر فحص المصفوفة على لينكس.
المستويات الخمسة بالأرقام
خذ مثالاً ثابتاً نقارن عليه: 4 أقراص، كل قرص 4TB، فالسعة الخام 16TB. الجدول التالي يوضح ما يتبقى لك فعلياً، وكم قرصاً تستطيع فقده قبل ضياع البيانات، وكم عملية كتابة فعلية تكلف كل عملية كتابة يطلبها التطبيق (ما يسمى عقوبة الكتابة).
| المستوى | أقل عدد أقراص | السعة الفعلية من 16TB | الأقراص الممكن فقدها | عقوبة الكتابة |
|---|---|---|---|---|
| RAID 0 | 2 | 16TB (100%) | 0 | 1 |
| RAID 1 | 2 | 4TB على قرصين (50%) | 1 من 2 | 2 |
| RAID 5 | 3 | 12TB (75%) | 1 | 4 |
| RAID 6 | 4 | 8TB (50%) | 2 | 6 |
| RAID 10 | 4 | 8TB (50%) | 1 مضمون، وحتى 2 إن كانا في مرآتين مختلفتين | 2 |
عقوبة الكتابة رقم يستحق الوقوف عنده. في RAID 5 كل كتابة صغيرة تتطلب قراءة البيانات القديمة وقراءة بيانات التكافؤ (parity) ثم كتابة الاثنين من جديد، أي 4 عمليات بدل عملية واحدة. إذا كان قرصك يعطي 200 عملية IOPS في الكتابة العشوائية، فأربعة أقراص في RAID 5 تعطيك نظرياً نحو 200 فقط في الكتابة، بينما تعطيك في RAID 10 نحو 400. قاعدة البيانات التي تكتب آلاف السجلات الصغيرة في الدقيقة تشعر بهذا الفرق مباشرة في زمن الاستعلام.
RAID 0: سرعة بلا شبكة أمان
يوزع RAID 0 البيانات على كل الأقراص بالتناوب، فتحصل على مجموع سرعتها وسعتها. المشكلة أن احتمال الفقد يتضاعف مع كل قرص تضيفه، فلو كان احتمال تعطل القرص الواحد في سنة 2%، فاحتمال تعطل أي قرص من أربعة يقترب من 8%، وتعطل أي قرص يعني ضياع كل شيء. استخدامه المقبول الوحيد هو بيانات مؤقتة يمكن توليدها من جديد، مثل ملفات cache أو مساحة معالجة مؤقتة.
RAID 1: المرآة البسيطة
كل بايت يُكتب على قرصين متطابقين. القراءة قد تتسارع لأن النظام يقرأ من أي القرصين، والكتابة بسرعة قرص واحد تقريباً. ميزته الكبرى البساطة، فإذا تعطل قرص يعمل الآخر وحده دون أي حساب، وإعادة البناء نسخ مباشر من قرص لقرص.
RAID 5 وRAID 6: توفير السعة بثمن
يحفظ RAID 5 كتلة تكافؤ موزعة تسمح بإعادة حساب أي قرص مفقود، ويضيف RAID 6 كتلة تكافؤ ثانية. يبدو RAID 5 مغرياً لأنه يعطيك 75% من السعة الخام في مثالنا، لكن ضعفه يظهر وقت التعطل بالذات، وهذا ما نشرحه في القسم التالي.
RAID 10: المرايا المخططة
تُقسم الأقراص الأربعة إلى مرآتين، ثم توزع البيانات بالتناوب بين المرآتين. تحصل على سرعة قراءة تقارب 4 أقراص وسرعة كتابة تقارب قرصين، وعقوبة كتابة 2 فقط، وإذا تعطل قرص فإعادة البناء نسخ من شريكه في المرآة لا أكثر.
إعادة البناء: الساعات الأخطر في عمر المصفوفة
حين يتعطل قرص وتضع بديله، تبدأ المصفوفة بإعادة بناء محتواه. في RAID 1 وRAID 10 هذا يعني قراءة قرص واحد فقط ونسخه. في RAID 5 يعني قراءة كل الأقراص المتبقية من أولها لآخرها وحساب التكافؤ لكل كتلة، وطوال هذه المدة لا تملك أي حماية، فتعطل قرص ثانٍ يعني ضياع المصفوفة.
لنحسب المدة. قرص ميكانيكي سعته 16TB يقرأ بنحو 150MB/s في أفضل الظروف، فقراءته كاملة تحتاج 16,000,000MB مقسومة على 150، أي نحو 106,000 ثانية، وهي قرابة 30 ساعة. تحت ضغط التشغيل الطبيعي للسيرفر تتباطأ إعادة البناء كثيراً فتمتد من يومين إلى أربعة أيام. الأقراص في المصفوفة غالباً من نفس الدفعة ونفس العمر، والضغط الكامل عليها لأيام هو بالضبط ما يدفع القرص التالي للتعطل.
هناك خطر ثانٍ أقل شهرة اسمه خطأ القراءة غير القابل للتصحيح (URE). مواصفات كثير من الأقراص الاستهلاكية تذكر خطأً واحداً لكل 10^14 بت مقروءة، أي نحو خطأ لكل 12.5TB. إعادة بناء RAID 5 من أربعة أقراص سعة كل منها 16TB تتطلب قراءة 48TB من الأقراص الثلاثة الباقية، فاحتمال مصادفة خطأ واحد على الأقل خلالها مرتفع جداً، وبعض بطاقات RAID توقف إعادة البناء كاملة عند أول خطأ. لهذا تعتبر RAID 5 على الأقراص الكبيرة اليوم خياراً لا ننصح به للبيانات المهمة، والبديل RAID 6 أو RAID 10.
على أقراص SSD الصورة أفضل بكثير. قرص SSD سعته 1TB يُقرأ بنحو 500MB/s فتنتهي إعادة بنائه في حدود 35 دقيقة، وهذا أحد أسباب اعتمادنا على SSD مع RAID 10 لبيانات العملاء.
لماذا RAID 10 للبيانات وRAID 1 لنظام التشغيل
في كل سيرفر فعلي لدينا نفصل نظام التشغيل عن بيانات العملاء. قرص النظام على RAID 1 من قرصين: حجمه صغير، والقراءة منه أكثر من الكتابة، والمطلوب فقط أن يبقى السيرفر يقلع إذا تعطل أحد القرصين. أما بيانات الخوادم السحابية فعلى RAID 10 لثلاثة أسباب:
- الكتابة العشوائية: قواعد بيانات ERP وCRM تكتب سجلات صغيرة باستمرار، وعقوبة الكتابة 2 بدل 4 تعني ضعف أداء الكتابة تقريباً على نفس الأقراص.
- إعادة بناء قصيرة: نسخ قرص واحد من شريكه بدل قراءة كل المصفوفة، فتقصر نافذة الخطر من أيام إلى دقائق أو ساعات قليلة.
- أداء ثابت أثناء التعطل: المصفوفة المتدهورة في RAID 10 تبقى قريبة من سرعتها الطبيعية، بينما RAID 5 المتدهور يحسب التكافؤ لكل قراءة فيتباطأ بوضوح.
صحيح أن RAID 10 يكلف نصف السعة الخام، لكن سعر التخزين اليوم أرخص بكثير من ساعة توقف لنظام شركة. لهذا عندما تشتري خادماً سحابياً من كلاود أو تضيف له 100GB SSD بـ500 ريال سنوياً، فالمساحة التي تراها مساحة فعلية محمية بـRAID 10، والسعة الخام خلفها ضعف ذلك.
فحص المصفوفة على لينكس بالأوامر
إذا كان لديك سيرفر فعلي أو بيئة فيها RAID برمجي عبر mdadm، فهذه الأوامر تعطيك الحالة خلال ثوانٍ:
cat /proc/mdstat
mdadm --detail /dev/md0
smartctl -a /dev/sda | grep -Ei "reallocated|pending|uncorrectable"
في مخرجات /proc/mdstat ابحث عن نمط مثل [UUUU]، فكل حرف U قرص سليم، وظهور شرطة سفلية مكان أي حرف يعني قرصاً مفقوداً. أمر mdadm --detail يعرض حالة المصفوفة (clean أو degraded) ونسبة إعادة البناء إن كانت جارية. أما smartctl فيعطيك مؤشرات مبكرة قبل التعطل، وارتفاع عدد القطاعات المعاد تخصيصها (Reallocated) من 0 إلى عشرات خلال أسابيع إنذار واضح باستبدال القرص.
لإنشاء مصفوفة RAID 10 من أربعة أقراص:
mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
ولا تكتفِ بالإنشاء، فعّل التنبيه بالبريد عبر السطر MAILADDR في ملف mdadm.conf، لأن مصفوفة متدهورة لا يعلم بها أحد ستبقى كذلك حتى يتعطل القرص الثاني.
على الخادم السحابي VPS لن ترى أقراصاً فعلية ولا تحتاج mdadm، لأن الحماية على مستوى السيرفر الفعلي تحتك ومراقبتها مسؤوليتنا نحن، لكن فهمها يساعدك على تقييم أي مزود تتعامل معه، فاسأله صراحة: ما مستوى RAID لبياناتي، وهل الأقراص SSD؟
RAID ليس نسخة احتياطية، أبداً
هذا الخلط يكلف شركات بياناتها كل سنة. RAID ينسخ كل عملية كتابة فوراً على كل الأقراص، الصحيحة منها والخاطئة. إذا نفّذ مطور أمر DELETE بلا شرط WHERE، ينحذف الجدول من القرصين في نفس الملّي ثانية. إذا شفّر فيروس فدية ملفاتك، تُشفَّر النسخ في كل المرايا. إذا كتب التطبيق بيانات تالفة بسبب خطأ برمجي، يحفظها RAID بأمانة تامة.
| السيناريو | هل يحميك RAID؟ | هل تحميك النسخة الاحتياطية؟ |
|---|---|---|
| تعطل قرص واحد | نعم | نعم، لكن مع وقت استرجاع |
| حذف ملف أو جدول بالخطأ | لا | نعم |
| فيروس فدية | لا | نعم، إن كانت معزولة |
| تحديث أفسد قاعدة البيانات | لا | نعم |
| تعطل بطاقة RAID أو السيرفر كاملاً | لا | نعم |
القاعدة العملية المعروفة 3-2-1: ثلاث نسخ من البيانات، على وسيطين مختلفين، وواحدة منها خارج السيرفر. للخادم السحابي في كلاود تستطيع إضافة نسخ احتياطي يومي بحفظ 7 أيام بـ800 ريال سنوياً، أو حفظ 30 يوماً بـ2,000 ريال سنوياً، أي أقل من 5.50 ريال في اليوم للخيار الأطول. أما الاستضافة السحابية المُدارة فتشمل نسخاً يومياً وأسبوعياً وكل 30 يوماً في كل باقاتها دون إضافة.
كيف تقرر
- بيانات مؤقتة يمكن إعادة توليدها: RAID 0 مقبول، ولا شيء غيره.
- قرص نظام تشغيل أو سيرفر صغير بقرصين: RAID 1.
- أرشيف كبير قليل الكتابة على أقراص ميكانيكية: RAID 6، وتجنب RAID 5 مع أقراص أكبر من 4TB.
- قواعد بيانات وأنظمة أعمال وأي حمل كتابة عشوائي: RAID 10 على SSD.
- في كل الحالات بلا استثناء: نسخة احتياطية خارج السيرفر، واختبار استرجاع فعلي مرة كل ربع سنة على الأقل.
إذا كنت تفضل ألا تدير أقراصاً ولا مصفوفات، فالخادم السحابي من كلاود يعمل على RAID 10 SSD في الرياض بزمن استجابة نحو 8ms، وتبدأ باقة أساس بـ3,450 ريالاً سنوياً شامل الضريبة. تفاصيل كل الباقات والإضافات في صفحة الأسعار.


