بسم الله الرحمن الرحيم

تعرّف على الرايد (Raid) للأقراص الصلبة



الرايد (Raid)
هو اختصار جملة Redundant Array of independent Disks أي مصفوفة متكاملة أو مكررة من الأقراص الغير مترابطة أو اختصار جملة Redundant Array of Inexpensive Disks أي مصفوفة متكاملة أو مكررة من الأقراص الرخيصة.
وهي تعني ربط مجموعة من الأقراص بعضها ببعض في مصفوفة واحدة للحصول على موثوقية وأمان للبيانات المخزنة عند فقد أحد الأقراص، عن طريق تخزين البيانات على أكثر من قرص في نفس الوقت، بالاضافة الى الأداء الأفضل والاتاحة الدائمة للبيانات.
وللرايد عدة أنواع أو مستويات وكل نوع له رقم مُحدد له مثل رايد 0 و 1 و 5 و 6 وغيرها، و رايد 0 هو الوحيد الذي لا يوفر حماية للبيانات عند فقد أحد الأقراص، ويتم التحكم بالمصفوفة عن طريق جهاز محدد يسمى متحكم الرايد.

متحكم الرايد (Raid Controller)
وهو اما عتادي (Hardware) أو برمجي (Software) مهمته اجراء العمليات الضرورية لربط مجموعة الأقراص بعضها ببعض ، وجعلها تعمل وفقاً لمعيار الرايد المطلوب ، وتقديم المصفوفة الناتجة لنظام التشغيل على أنها قرص صلب واحد.

متحكم الرايد البرمجي (Software Raid)
وهذا ما نجده غالباً في المتحكمات المدمجة باللوحة الأم أو البطاقات الخارجية بسعر أقل من 250 أو 300 دولار وهذه المتحكمات تستخدم معالج الحاسب للقيام بالعمليات الخاصة بالمصفوفة، ولبعض أنواع الرايد هذه المتحكمات تكون مقبولة الأداء جداً واستهلاك المعالج يكون منخفض.

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

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

كيفية انشاء مصفوفة
لكل متحكم طريقته الخاصة لانشاء المصفوفة ولا يوجد أي تشابه بين المتحكمات المختلفة في خطوات انشاء المصفوفة وبالتالي فدليل استخدام المتحكم (أو دليل استخدام اللوحة الأم) يكاد يكون طريقك الوحيد للتعامل مع المتحكم من انشاء واعادة بناء الرايد واجراء العمليات الأخرى

ماذا يحدث بعد انشاء المصفوفة
بعد انشاء المصفوفة ستظهر المصفوفة لنظام التشغيل على أنها مساحة تخزينية معينة (حسب نوع الرايد) ويمكن التعامل معها كتعاملك مع أي قرص صلب اخر من التقسيم والتهيئة وخلافه

ما معنى مساحة الجزء (Stripe Size)
عند انشاء أغلب أنواع الرايد فانه سيُطلب منك تحديد مساحة الجزء (Stripe Size) وهي مساحة الجزء التي سيتم تقسيم البيانات اليه ومن ثم توزيعها على أقراص المصفوفة المختلفة، وكل متحكم يدعم عدة مساحات محددة، غالباً من 16 KB الى 256 KB مع قيمة افتراضية (Default) يُحددها المتحكم مُسبقاً، ولا يمكن تغيير مساحة الجزء بعد انشاء المصفوفة ولعمل ذلك يجب انشاء المصفوفة من جديد

ما هي أفضل مساحة للجزء (Stripe Size)
مُصنعي المتحكمات يقوموا باختبارات مكثفة لاختيار أفضل مساحة (Default) للجزء تتناسب مع متحكماتهم وتصلح لأغلب المستخدمين، ولكن بالتأكيد ليست هي الأفضل لكل المستخدمين، وبالتالي اذا كنت تريد أفضل أداء فعليك باختبار مساحات مختلفة لهذا الجزء مع ما سوف تقوم به مع الرايد

ما هو Hot Swap
هو القدرة على ازالة مكون أو اضافته من والى الحاسب أثناء عمله وبدون الاضطرار لغلقه
هذه الخاصية مفيدة للمصفوفات التي تتكون من أعداد كبيرة من الأقراص الصلبة حيث تمكنك من اضافة أقراص جديدة للمصفوفة أو تغيير قرص تالف بدون الحاجة الى غلق الجهاز كاملاً، أقراص ساتا تدعم هذه الخاصية في وضعية AHCI و Raid كما أن أغلب المتحكمات تدعمها

ما هو Hot Spare
مع هذه الخاصية يمكنك أن تجعل أحد الأقراص خارج المصفوفة كقرص احتياطي بحيث عند فشل أي قرص في الرايد يقوم المتحكم تلقائياً بضم هذا القرص للمصفوفة واصلاحها

أجهزة التحزين للشبكات (Network-attached storage) (NAS)
مع أنها ليست على علاقة مباشرة مع الرايد الا أن أغلبها يستخدم الرايد، وهذه الأجهزة عبارة عن حاوية تحتوي على مجموعة من الأقراص وبعض التجهيزات الاخرى لربطها بشبكات الحاسب غالباً عن طريق الايثرنت (Ethernet) وهي مجهزة للعمل من على الشبكة بدون شاشة وبدون لوحة مفاتيح، أغلب هذه الأجهزة تستخدم الرايد لربط أقراصها الداخلية بعضها ببعض

الان لنتحدث عن أشهر أنواع الرايد

رايد 0 (Raid 0)
رايد 0 هو أبسط أنواع الرايد الموجودة وطريقة عملها بسيط جداً فجميع الأقراص في هذه المصفوفة تعمل بشكل متزامن لقراءة أو كتابة البيانات. وبالتالي زيادة الأداء شيء متوقع من هذه المصفوفة، وأقل عدد من الأقراص لإنشاء هذه المصفوفة هو 2 أو أكثر
عند فقد أحد أقراص هذه المصفوفة تضيع كل البيانات المُخزنة
مساحة المصفوفة = مساحة جميع الأقراص مُجتمعة


الكتابة الى رايد 0
عند كتابة البيانات الى رايد 0 يتم تقسيمها الى أجزاء متساوية وثابتة المساحة (Stripe Size) (يتم تحديد هذه المساحة عند انشاء المصفوفة) عن طريق متحكم الرايد ومن ثم يقوم المتحكم بارسال هذه الأجزاء الى كل قرص بالترتيب حتى يتم كتابة جميع الأجزاء الى كل الأقراص. أي أن الملف الواحد قد تتم كتابته عن طريق أجزاء، الى جميع أقراص المصفوفة ولهذا عند فقد أحد أقراص هذه المصفوفة تضيع كل البيانات المُخزنة

القراءة من رايد 0
بنفس طريقة الكتابة، يرسل كل قرص الجزء من البيانات المُخزن عليه ويقوم المتحكم بدمج هذه الأجزاء للحصول على البيانات المطلوبة

//// قراءة الملفات الصغيرة ////
في عالم مثالي ستصل الأقراص (رؤوس القراءة) للبيانات في نفس الوقت وبالتالي فان سرعة قراءة الملفات الصغيرة هي نفسها لو كان قرص واحد ولكن هذا لا يحدث فحتماً سيكون هناك فرق في زمن الوصول بين الأقراص وسينتظر القرص الأسرع وصولاً للبيانات الأقراص الاخرى، وبالتالي سيكون زمن الوصول أطول، مما يؤدي الى سرعة قراءة أبطأ قليلاً مما لو كانت على قرص واحد

//// قراءة الملفات الكبيرة المساحة (قراءة تتابعية) ////
هنا تتحد أقراص هذه المصفوفة لقراءة البيانات في نفس الوقت، والوصول الى البيانات يعتبر لا شيء مقارنةً بوقت القراءة نفسه، وبالتالي سرعة القراءة تكون كبيرة جداً وتكاد تكون مُضاعفة وكلما زاد عدد الأقراص تزايدت السرعة.

/// الكتابة الى رايد 0هي نفس ما ذكرته عن القراءة من هذه المصفوفة ////

تلف أحد الأقراص
عندما يتلف قرص في هذه المصفوفة ستضيع ملفات المصفوفة الى الأبد

المتحكم مع رايد 0
كما ذكرت لا يوجد عمليات منطقية أو معقدة تحتاج الى متحكم عتادي فالمتحكم فقط يقوم بتجزئة الملفات للكتابة واعادة تجميعها للقراءة ولذلك فالمتحكم البرمجي سيكون كافي جداً لهذه المصفوقة واستهلاك معالج الحاسب يكاد لا يُذكر

عدد الأقراص وزيادة الأداء
2 قرص = زيادة 50 %
3 أقراص = 16 % عن 2 قرص
4 أقراص = 9 % عن 3 أقراص
5 أقراص = 5 % عن 4 أقراص

ملاحظة
حتى تحصل على أفضل أداء من هذه المصفوفة مع الأقراص الصلبة والملفات الكبيرة المساحة، يجب اجراء عملية ازالة التجزئة (Defragmentation) بشكل دوري

المميزات
*سرعة قراءة وكتابة كبيرة للملفات كبيرة المساحة
*استهلاك معالج الحاسب منخفض جداً مع المتحكمات البرمجية
*لا يوجد أي فقد في المساحة التخزينية

العيوب
*أداء ضعيف عند قراءة أو كتابة الملفات الصغيرة
*عند فقد أحد أقراص هذه المصفوفة تضيع كل البيانات المُخزنة


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


الكتابة الى رايد 1
الكتابة بسيطة كما ذكرنا فمتحكم الرايد يقوم بارسال نفس البيانات لكل من القرصين في نفس الوقت وبالتالي يتولد قرصان "توأم" يحتوي كل منهما نفس البيانات.
الكتابة الى رايد 1 الى حد ما بطيئة لأن عملية الكتابة تتم في نفس الوقت وسينتظر القرص الأسرع بالكتابة القرص الاخر حتى تتم الكتابة اليه أيضاً وبذلك سيستغرق وقت أطول من الكتابة الى قرص واحد فقط.

القراءة من رايد 1
هنا يأتي بعض التعقيد فاما أن تتم القراءة من قرص واحد أو تتم القراءة من القرصين في نفس الوقت والمتحكم هو المتحكم في طريقة القراءة:
*القراءة من قرص واحد فقط:وهذا ما يحدث مع متحكمات الرايد البدائية وبالتالي تكون سرعة القراءة للمصفوفة هي نفسها لو كانت على قرص واحد
*القراءة من القرصين للبيانات بوجه عام (Per Job Load Balancing):وهنا تعمل الأقراص في نفس الوقت، الأول يقوم بقراءة بعض البيانات، والاخر يقوم بقراءة بيانات أُخرى، مثلاً عند القيام بقراءة ملفين في نفس الوقت فكل قرص يقوم بقراءة ملف منهما. هذه الطريقة مُطبقة في أغلب المتحكمات البرمجية (Software Controller) واستهلاك المعالج في هذه الحالة غالباً سيكون منخفض (1-2 % تقريباً) وعيب هذه الطريقة هي أن أغلب مستخدمي الحاسب المكتبي يقوموا غالباً بتشغيل برنامج واحد في المرة الواحدة ولذلك مقدار استفادتهم من هذه الطريقة للقراءة من القرص محدودة ولكن هذه الطريقة ستفيد من يقومون بتشغيل أكثر من برنامج في نفس الوقت
*القراءة من القرصين على مستوى الملف الواحد:وهنا تتحد الأقراص لقراءة البيانات من الملف الواحد بأن يقوم قرص بقراءة جزء من بيانات الملف وفي نفس الوقت يقوم القرص الاخر بقراءة الجزء الاخر. وهذه الطريقة تعطي سرعة كبيرة للقراءة تتساوى مع سرعة قراءة رايد 0 ولكنها تحتاج الى متحكم جيد لكي يطبقها

بعض التحسينات التي من الممكن أن يُطبقها المتحكم لزيادة سرعة القراءة مثل:
*القراءة من القرصين Elevator Seek :وهنا عند وصول أمر القراءة واذا رأى المتحكم أن مكان القراءة في نفس وجهة رأس القراءة فانه يقوم بتوجيه رأس القراءة اليه للقراءة وإلا فان المتحكم ينتظر الأمر الذي يليه لعل رأس القراءة يكون في نفس وجهته ثم يعود الى الأمر الأول مرة أخرى بعد انتهائه من من هذا الأمر. وهذه الطريقة مُطبقة تقريباً في كل المتحكمات

//// قراءة الملفات الصغيرة ////
مع التحسينات المناسبة فإن سرعة القراءة تتم من جميع أقراص المصفوفة وستكون السرعة أفضل من القراءة من قرص واحد

//// قراءة الملفات الكبيرة ////
هنا تطبق أحد الطرق التي ذكرناها سابقاً

تلف أحد الأقراص
الرايد 1 يوفر حماية كاملة عند فقد أحد أقراص المصفوفة

المتحكم مع رايد 1
لا توجد حاجة كبيرة لمتحكم عتادي لهذه المصفوفة ولكن اذا كنت تبحث عن الأداء الأمثل فابحث عن متحكم عتادي يطبق طريقة "القراءة من القرصين على مستوى الملف الواحد" لأفضل أداء عند قراءة الملفات الكبيرة

المميزات
*حماية عند فقد أحد الأقراص
*لا حاجة لمتحكم خاص وبالتالي تكلفة أقل
*سرعة قراءة للملفات أفضل من رايد 0 لو تم تطبيق طريقة "القراءة من القرصين على مستوى الملف الواحد" و "Elevator Seek”

العيوب
*ستخسر نصف المساحة التخزينية
*سرعة كتابة أقل منها على قرص واحد


رايد 5 (Raid 5)
رايد 5 واحد من أكثر أنواع الرايد شعبية لأنه يقدم مزايا عديدة فهو يقدم أداءاً جيداً قراءة وكتابة، مع حماية عند فقد أحد أقراص المصوفة، بالاضافة لأقل فقد في المساحة التخزينية لأقراص المصفوفة.
رايد 5 يحتاج الى 3 أقراص على الأقل لإنشاء المصفوفة ولكن كلما زاد عدد الأقراص زاد معدل الأداء، وتوفر هذه المصفوفة الحماية عند فقد أحد هذه الأقراص.
المساحة الكلية للمصفوفة = مساحة أصغر قرص × (عددالأقراص – 1)


بيانات الاحتياط (Parity)
بعكس أنواع الرايد الأُخرى ، رايد 5 و 6 تستخدمان بيانات الاحتياط (parity information).
فائدة بيانات الاحتياط تظهر عند تلف أحد أقراص مصفوفة رايد 5 وتعمل على استعادة البيانات التي كانت موجودة على القرص التالف، وبيانات الاحتياط تشغل مساحة ما يعادل قرص صلب واحد في مصفوفة رايد 5
بيانات الاحتياط (parity information) هي جزء من البيانات يتم انشائه من بيانات الأجزاء الأخرى التي تمثل البيانات التي نريد تخزينها، وبمعنى اخر كما تحدثنا في رايد 0 فانه يتم تقسيم البيانات الى عدد من الأجزاء(Stripes) بعدد الأقراص ما عدا قرص واحد وهذا القرص يتم تخزين به جزء اخر يطلق عليه جزء الاحتياط(parity) ويتم توليده من الأجزاء الاخرى.

انشاء جزء الاحتياط يتم عن طريق مقارنة باقي الأجزاء عن طريق "أو الاستثانئية" (XOR) وهذه الدالة تقوم باجراء عملية حسابية على أجزاء البيانات الاخرى


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

ولنأخذ مثال لذلك:

هنا تم مقارنة عدد2 بايت (8 بت) لاستخراج جزء الاحتياط (بايت جديد) ومن خلال هذا الجزء الجديد يمكن استعادة أي من البايتات الاخرى بمقارنته مع أي بايت اخر

مشكلة بيانات الاحتياط أن توليدها معقد ويستهلك وقتاً وموارد للمعالجة فمثلاً لو قمت بكتابة مجموعة من البيانات على مصفوفة مكونة من 4 أقراص بسرعة 100 ميجابايت بالثانية فان متحكم الرايد في هذه الحالة سيقوم بحوالي 600 مليون عميلة "أو الاستثنائية" (XOR) في الثانية الواحدة !! ولذلك لا نستغرب أن رايد 5 و 6 هما أكثر مصفوفتان تحتاجان الى متحكم عتادي

الكتابة الى رايد 5

الكتابة الى رايد 5 تتم كالتالي:
*يقوم المتحكم بتقسيم البيانات المراد كتابتها الى أجزاء (Stripes)
*بالاعتماد على "أو الاستثنائية" يتم حساب بيانات الاحتياط وتوليد جزء الاحتياط (Parity Stripe)
*يتم تخزين أجزاء البيانات الى كل الأقراص ما عدا قرص واحد يتم تخزين عليه جزء الاحتياط
*يتم تدوير تخزين جزء الاحتياط بحيث يتم تخزينه على قرص اخر في المصفوفة في كل مرة وبشكل دوري
عملية تحديث بيانات الأجزاء تنطوي على القراءة ثم تعديل البيانات ثم كتابة البيانات مرة اخرى

القراءة من رايد 5
هنا القراءة أبسط كثيراً من الكتابة، بحيث يتم قراءة أجزاء البيانات فقط دون بيانات الاحتياط ومن ثم ارسالهم الى المتحكم ليتم دمجهم مرة اخرى

الأداء مع رايد 5
القراءة من رايد 5 ممتازة مثلها مثل رايد 0 بنفس عدد الأقراص ولكنها قد تكون أقل بنسبة بسيطة جداً لوجود جزء الاحتياط والذي يجب تجاوزه أثناء القراءة.
الكتابة العشوائية تتأثر كثيراً وخصوصاً مع أحمال الكتابة الكثيرة وخصوصاً قواعد البيانات
مشاكل الأداء قد تكون كبيرة لدرجة أن بعض المتخصصين في التعامل مع قواعد البيانات قاموا بتأسيس مجموعة لمحاربة رايد 5 (the Battle Against Any Raid Five)
ولكن مع متحكم عتادي يملك محرك مخصص لمعالجة بيانات الاحتياط فإن الأداء سيتحسن كثيراً مع الكتابة العشوائية

المميزات
*الحماية عند فقد أحد القراص
*سرعة قراءة جيدة جداً وتعادل تقريباً رايد 0 بنفس عدد الأقراص

العيوب
*الحاجة الى متحكم عتادي لأفضل أداء


رايد 6 (Raid 6)
رايد 6 شبيه رايد 5 والفرق الوحيد هو استخدام هذه المصفوفة لجزئين للاحتياط بدلاً من جزء واحد مع زيادة قرص اخر بالمصفوفة وبالتالي هذه المصفوفة تتحمل فقدان قرصين بدلاً من قرص واحد.
رايد 6 كما هو واضح سيكون معدل الكتابة وحساب بيانات الاحتياط مُضاعف عن رايد 5 وهو ما يجعله أكثر تعقيداً منه.



تابع الموضوع بالمشاركة القادمة...

خاص لمنتدى عرب هاردوير ولا يسمح بنقله الا بذكر ذلك بكل وضوح