2017/02/12

شرح SQL Server and RAID بالعربي

مقدمة

في هذا المقال سنتحدث عن انواع ال RAID المختلفة وعلاقتها بال SQL Server

من اكثر التحديات التي تواجه قواعد البيانات هي سرعة الكتابة والقراءة (IO) على ال Disk ولذلك الاعداد الجيد لل Storage وتوزيع ملفات قواعد البيانات قد يفيد جدا في تحسين الاداء


RAID (redundant array of independent disks)0

هل حدث معك يوما ان تعطل ال HardDisk الخاص بك وذهبت ملفاتك ولم تستطيع ارجاعها؟
الكثير حدث معه ذلك , ولكن هل تعتقد ان الخوادم Servers ايضا معرضة لهذا الحادث ؟
بالتأكيد ان كان فقدان البيانات سهل بهذه الطريقة في الخوادم الكبيرة سوف يؤدي الى مشاكل لا حصر لها

تقريبا كل الخوادم تكون مجهزة لتفعيل خاصية ال RAID
فال RAID هي طريقة لتخزين الملفات على اكثر من HardDisk مما يزيد من امان البيانات في حالة العطل في احد الDisks فنجدها متواجدة في Disk اخر. اي ان الملف الواحد قد يتم تخزينه بشكل تلقائي في اكثر من Disk .
وفي نفس الوقت يؤدي استخدام اكثر من HardDisk الى تحسين اداء الكتابة و القراءة من والى الملفات المختلفة .
والمتحكم في توزيع مهام الكتابة و القراءة هو Device (او Software) يسمى RAID Controller وغالبا ما يأتي متضمنا داخل ال Server
ولل RAID اكثر من مستوى نسرد اهمهم كالتالي

RAID 0

يتكون من عدد 2 Disks فاكثر
حيث يتم توزيع البيانات المكتوبة بالتساوي بين ال Disks المختلفة ولكن لا يقوم بتكرار البيانات.
مثال
اذا كان لدينا عدد 2 Disks وقمنا بتفعيل ال RAID 0 عليهم عند كتابة اي ملف يتم تقسيم الملف الى جزئين ويتم كتابة الجزء الاول على ال Disk الاول و الجزء الثاني على ال Disk الثاني وهكذا
ولكن هذا المستوى لا يعطي اي امان للبيانات حيث انه في حالة تلف اي Disk ستكون جميع البيانات المخزنة على باقي ال Disks بلا قيمة حيث انها غير مكتملة
وعلى الجانب الاخر هذا المستوى يعطي سرعة كبيرة في عملية القراءة و الكتابة حيث انه عند قراءة او كتابة اي ملف يستخدم اكثر من Disk مما يؤدي الى تحسين الاداء بشكل كبير.

RAID 1

يتكون هذا المستوى من عدد 2 Disks ومضاعفتها
كل بيان يتم كتابته على ال Disk الاول يتم تكراره على الDisk الثاني تماما حيث يعتبر ال Disk الثاني عبارة عن مرآه لل Disk الاول.
المزايا
ان البيانات يتم تكرارها فاذا حدث عطل في اي Disk فلا تحدث اي مشكلة لان ال Disk الاخر يحتوي كافة البيانات
يعطي سرعة في قراءة البيانات 
العيوب
كل شيء يتم كتابته اكثر من مرة مما يؤدي الى بطيء  في الكتابة
المساحة المستخدمة تقل بمقدار النصف حيث ان البيانات يتم تكرارها 

RAID 5

يتكون هذا المستوى من عدد 3 Disks فاكثر
يعتمد هذا المستوى على توزيع البيانات على ال Disks المتاحة مع عمل معادلة حسابية لاستنتاج البيانات في حالة تلف احد ال Disks
مثال
نفترض ان لدينا عدد 3 Disks لتفعيل RAID 5 عند كتابة الملف X يتم تقسيم الملف X الى جزئين X1 و X2
يتم كتابة X1 على ال Disk الاول
يتم كتابة X2 على ال Disk الثاني
يتم عمل معادلة حسابية على قيمة X1 و X2 واستنتاج قيمة تسمى Parity يتم كتابتها في ال Disk 3 وهذه المعادلة باستخدام XOR

عند تلف ال Disk الاول يتم عمل معادلة لاستنتاج البيانات الاصلية التي كانت مكتوبة على ال Disk الاول من ال Disk الثاني و الثالث
عند تلف ال Disk الثاني يتم عمل معادلة لاستنتاج البيانات الاصلية التي كانت مكتوبة على ال Disk الثاني من ال Disk الاول و الثالث
عند تلف ال Disk الثالث لا يوجد مشكلة حيث ان البيانات الاصلية متواجدة على ال Disk الاول و الثاني

مع الاخذ في الاعتبار ان القيمة المحسوبة Parity لا تكون دائما في Disk الثالث انما مرة في الثالث واخرى في الثاني واخرى في الاول وهكذا

المزايا
حفاظ البيانات من التلف في حالة عطل احد ال Disks
سرعة قراءة البيانات حيث ان البيانات موزعة على اكثر من Disk
استغلال اكبر قدر من المساحة حيث في حالة استخدام 3 Disks تكون المساحة المتاحة مجموع مساحة 2 Disks
العيوب
بطيء قي الكتابة نتيجة عملية حساب ال Parity
استرجاع البيانات في حالة تعطل احد ال Disks قد يأخذ وقت طويل نسبيا لاعادة احتساب البيانات الاصلية من ال Parity




RAID 10

يتكون هذا المستوى من 4 Disks فاكثر 
في الحقيقة هذا المستوى هو عبارة عن RAID 0 + RAID 1 وفي الحقيقة هو يعتبر معالجة لعيوب هذين المستويين
مثال 
في حالة استخدام 4 Disks
عند كتابة ملف يتم تقسيمه الى جزئين
الجزء الاول يتم كتابته على ال Disk 1 و ال Disk 2 ويكون ال Disk 2 بمثابة مرآه لل Disk 1
الجزء الثاني يتم كتابته على ال Disk 3 و ال Disk 4 ويكون ال Disk 4 بمثابة مرآه لل Disk 3

المزايا
سرعة قراءة البيانات
حماية البيانات في حالة تلف بعض ال Disks التي يكون مرآتها لم تتلف
سرعة كتابة البيانات حيث عملية الكتابة تحدث تزامنيه Parallel نتيجة لتقسيم بيانات الملفات
العيوب
يحتاج الى مساحة تخزين كبيرة حيث اقل عدد لل Disks هو 4 ويكون متاح للتخزين نصف المساحة



RAID And SQL Server

من الافضل الابتعاد عن ال RAID 0 حيث انه لا يوفر اي نوع من امان البيانات.
لقواعد البيانات النادرة الكتابة من الممكن استخدام RAID 5 حيث انه يعطي كفاءة عالية في القراءة ويستخدم المساحة بصورة افضل.
لقواعد البيانات كثيفة الكتابة والقراءة الافضل استخدام RAID 10.


مراجع 



===================
تمت بحمد الله

هناك 4 تعليقات:

khallaf sayed يقول...

السلام عليكم ورحمة الله وبركاتة مضوع جميل جدا وشكر جزيلا لك علي طرحة كنت اتمني ان تضيف له كيفية تنفيذ هذا الامر علي برنامج السيكول سيرفر (SQL Server) لتتم الفائدة ولكم جزيل الشكر

Mohamed Galal يقول...

وعليكم السلام ورحمة الله وبركاته
تنفيذ ال RAID يكون من اعدادات ال Server نفسه وليس من اعدادات ال SQL Server
فالشخص القائم باعداد ال Server يقوم بتحديد مستوى ال RAID طبقا للاستخدام الخاص بال Server

وشكرا لتعليقك

أحمد يقول...

موضوع جميل و شرح ممتاز
جزاكم الله خيرا

بس ليه البوستات الجامدة دي متابعدة اوي كدا ؟
لو تزودها شوية و تنزل اعلانات جوجل تكسب من المدونة شوية
:D :D

Mohamed Galal يقول...

جزانا واياكم
والله التباعد ده لانشغالي ليس اكثر

مقدمة عن الDevOps

في هذا المقال سوف اتحدث عن مقدمة بسيطة عن ال DevOps ولماذا لابد ان تهتم فرق تطوير البرمجيات به وما هي النتائج المترتبة عن استخدام اساليبه ...