در سال 1987، سه تن از محققين دانشگاه بركلي كاليفرنيا با نام‌هاي Patterson، Gibson و Katz مقاله‌اي را تحت عنوان «A Case for Redundant Arrays of Inexpensive Disksم(RAID)» منتشر كردند. اين مقاله به تشريح انواع مختلفي از آرايه‌هاي ديسك پرداخته و به هر يك از آن‌ها با نام خلاصه شده RAID اشاره مي‌كرد

RAID و انواع پيكربندي‌هاي آن (قسمت اول)

::  7 شهريور 1391  ::

 

 

در سال 1987، سه تن از محققين دانشگاه بركلي كاليفرنيا با نام‌هاي Patterson، Gibson و Katz مقاله‌اي را تحت عنوان «A Case for Redundant Arrays of Inexpensive Disksم(RAID)» منتشر كردند. اين مقاله به تشريح انواع مختلفي از آرايه‌هاي ديسك پرداخته و به هر يك از آن‌ها با نام خلاصه شده RAID اشاره مي‌كرد.ايده ابتدايي RAID، تركيب چند هارد ديسك كوچك و ارزان‌قيمت در يك آرايه از هارد ديسك‌ها بود كه عملكردي بالاتر از يك درايو بزرگ و گران‌قيمت را فراهم مي‌كرد. از سوي ديگر، اين آرايه از ديد كامپيوتر به‌عنوان يك درايو يا واحد ذخيره‌سازي منطقي واحد در نظر گرفته مي‌شد. در واقع ايده بهره‌گيري از RAID در زماني مطرح شده كه محدوديت‌هاي فناوري امكان دستيابي به عملكرد بالايي را در زمينه ذخيره‌سازي اطلاعات فراهم نمي‌كردند. با اين‌حال حتي امروزه با ارايه اينترفيس‌هايي با پهناي باند بسيار بالا و هارد ديسك‌هاي سريع، هنوز از آرايه‌هاي RAID استفاده مي‌شود. پياده‌سازي آرايه‌هاي RAID با دو هدف اصلي انجام مي‌شود: افزايش عملكرد و محافظت از داده‌هاي مهم. هر يك از پيكربندي‌هاي RAID روي يكي از اين دو هدف يا هر دو آن‌ها تمركز دارد. اين پيكربندي‌ها كه تحت عنوان سطوح مختلف RAID نيز شناخته مي‌شوند، مي‌توانند داده‌ها را مابين چند هارد ديسك تقسيم و يا تكرار كنند. در هر صورت، همان‌طور كه قبلا هم اشاره كرديم هر چند كه يك آرايه RAID از چند هارد ديسك تشكيل شده است اما از ديد سيستم‌عامل به‌عنوان يك ديسك واحد در نظر گرفته مي‌شود. حال اجازه بدهيد با هر يك از پيكربندي‌ها يا سطوح RAID بيشتر آشنا شويم:

RAID 0
اين پيكربندي كه تحت عنوان Stripe نيز شناخته مي‌شود، داده‌ها را به بخش‌هايي تحت عنوان بلوك تقسيم مي‌كند. تعداد بلوك‌ها بر اساس اندازه Stripe تعيين مي‌شود كه يكي از پارامترهاي پيكربندي آرايه به‌شمار مي‌آيد. هر بلوك به‌طور هم‌زمان روي سكتور مشابهي از هارد‌ديسك متناظر خود نوشته مي‌شود. به اين ترتيب، امكان خواندن هم‌زمان قطعات كوچك‌تري از كل اطلاعات به‌صورت موازي از درايوهاي متعدد فراهم مي‌شود كه پهناي باند كلي را به‌طور چشمگيري افزايش مي‌دهد. اين تركيب، عملكرد ساختار ذخيره‌سازي را افزايش مي‌دهد اما هيچ قابليتي را در زمينه بهبود اعتمادپذيري داده‌هاي ذخيره‌ شده فراهم نمي‌كند. به‌عبارت ديگر، با افزايش تعداد هارد ديسك‌هاي حاضر در يك آرايه RAID 0، ظرفيت ذخيره‌سازي و عملكرد آن افزايش پيدا مي‌كند، اما هيچ افزونگي در چنين آرايه‌اي وجود ندارد. در اين شرايط، هرگونه خرابي در يكي از هارد ديسك‌ها مي‌تواند كل آرايه را نابود كند. افزايش تعداد هارد‌ديسك‌ها در چنين آرايه‌اي باعث افزايش سطح عملكرد آن مي‌شود، اما در عين حال احتمال بروز خرابي در آن را نيز افزايش مي‌دهد. RAID 0 هيچ روشي را براي بررسي خطا پياده‌سازي نمي‌كند و به همين دليل هر گونه خطايي غيرقابل اصلاح خواهد بود. به‌طور كلي RAID 0 در شرايطي مورد استفاده قرار مي‌گيرد كه شما به پهناي باند بالا و سرعت قابل ملاحظه‌اي براي خواندن و نوشتن اطلاعات نياز داريد، اما نمي‌خواهيد اطلاعات ارزشمند خود را روي چنين انباره‌اي ذخيره كنيد.


ظرفيت يك آرايه RAID 0 مساوي حاصل‌ضرب تعداد ديسك‌ها در ظرفيت كوچك‌ترين ديسك حاضر در آرايه خواهد بود. به‌عبارت ديگر اگر يك هارد ديسك 5/1 ترابايتي و يك هارد ديسك 1 ترابايتي را در يك پيكربندي RAID 0 قرار دهيد، ظرفيت كلي آرايه معادل 2 ترابايت خواهد بود. از سوي ديگر، MTBF (فاصله زماني مابين خرابي‌ها) يك آرايه RAID 0 معادل MTBF يك ديسك تقسيم بر تعداد هارد ديسك‌هاي حاضر در آرايه است. بنابراين اگر MTBF يك ديسك معادل 4 سال باشد، MTBF يك آرايهRAID 0 متشكل از چهار ديسك تنها يك‌سال خواهد بود. بايد توجه داشته باشيد كه شما براي ايجاد يك آرايه RAID 0 حداقل به دو هارد ديسك نياز خواهيد داشت.





RAID 1
اين آرايه تحت عنوان Mirror نيز شناخته مي‌شود زيرا داده‌ها به‌طور كاملا يكسان روي ديسك‌هاي متعددي نوشته يا منعكس مي‌شوند. با وجود آن‌كه بسياري از پياده‌سازي‌هاي RAID 1 تنها از دو ديسك براي ايجاد آرايه استفاده مي‌كنند، اما اين آرايه‌ها مي‌توانند شامل تعداد ديسك‌هاي بيشتري باشند. تا زماني كه حداقل يك ديسك در آرايه RAID 1 كار مي‌كند، اين آرايه تحمل خطا را داشته و به كار خود ادامه خواهد داد.به‌طور كلي آرايه RAID 1 در شرايطي مورد استفاده قرار مي‌گيرد كه امنيت و اعتمادپذيري داده‌هاي ذخيره شده از اهميت بسيار بالاتري نسبت به عملكرد آرايه يا ظرفيت ذخيره‌سازي برخوردار باشند. ظرفيت يك آرايه RAID 1 صرف‌نظر از تعداد ديسك‌هاي حاضر در آن تنها معادل ظرفيت كوچك‌ترين ديسك عضور آرايه خواهد بود.عملكرد يك آرايه RAID 1 تقريبا معادل يك ديسك واحد است، هر چند كه گاهي اوقات عملكرد اين آرايه در هنگام خواندن اطلاعات كمي بيشتر از يك ديسك واحد و در هنگام نوشتن اطلاعات كمي كمتر از يك ديسك واحد خواهد بود. براي ايجاد يك آرايه RAID 1 شما حداقل به دو هارد ديسك نياز خواهيد داشت.





RAID 2
در يك آرايه RIAD 2 كه Striping سطح بيت را به همراه تصحيح خطاي كد Hamming اختصاصي فراهم مي‌كند، چرخش تمام ديسك‌ها با يكديگر هماهنگ شده و داده‌ها طوري تقسيم مي‌شوند كه هر بيت متوالي روي يك ديسك متفاوت قرار گيرد. كد تصحيح خطاي Hamming بر اساس بيت‌هاي متناظر روي ديسك‌ها محاسبه شده و روي يك يا چند ديسك ذخيره مي‌شود. در اين پيكربندي امكان دستيابي به نرخ‌هاي داده فوق‌العاده بالايي وجود دارد.


RAID 2 تنها پيكربندي استاندارد RAID به‌شمار مي‌آيد (به استثناي بعضي از پياده‌سازي‌هاي RAID 6) كه مي‌تواند به‌طور خودكار خرابي‌هاي تك‌بيتي در داده‌ها را بازيابي كند. با اين‌حال، امروزه تمام هارد ديسك‌ها نوعي ساختار كد تشخيص خطا را پياده‌سازي مي‌كنند كه باعث مي‌شود مكانيزم تشخيص خطاي RAID 2 اضافي بوده و پيچيدگي غيرضروري را به ساختار ذخيره‌سازي شما تحميل كند. به همين دليل، RAID 2 تنها پيكربندي استانداردي است كه ديگر مورد استفاده قرار نمي‌گيرد. براي ايجاد يك آرايه RAID 2 شما حداقل به 3 هارد ديسك نياز خواهيد داشت.





RAID 3
اين پيكربندي، Striping سطح بايت را با يك ديسك Parity اختصاصي فراهم مي‌كند. امروزه شما به‌ندرت يك آرايه RAID 3 را در عمل مشاهده مي‌كنيد. يكي از تاثيرات جانبي پيكربندي آرايه به‌صورت RAID 3 اين است كه به‌طور همزمان نمي‌تواند به درخواست‌هاي متعددي سرويس دهد. دليل اين مساله آن است كه هر بلوك واحد از داده‌ها بر اساس تعريف در بين تمام ديسك‌هاي عضور آرايه تقسيم شده و بر روي موقعيت يكساني از آن‌ها قرار مي‌گيرد. به اين ترتيب، هر عمليات I/O به فعاليت روي هر يك از ديسك‌ها نياز خواهد داشت كه معمولا مستلزم چرخش هماهنگ آن‌ها است. مهم‌ترين كاربرد RAID 3، مواردي است كه به بالاترين نرخ انتقال در عمليات طولاني خواندن و نوشتن ترتيبي نياز دارند. براي مثال، تدوين ويديويي يكي از چنين مواردي است. كاربردهايي كه درخواست‌هاي خواندن و نوشتن كوچكي را از مكان‌هاي تصادفي روي ديسك صادر مي‌كنند، بدترين عملكرد را روي چنين آرايه‌اي ايجاد خواهند كرد.


ضرورت هماهنگي چرخش تمام ديسك‌ها در اين آرايه، پيچيدگي‌ها و ملاحظات فراواني را در هنگام طراحي به‌وجود مي‌آورد و همين موضوع باعث شده است كه آرايه‌هاي RAID 3 امروزه تقريبا منسوخ شده و ديگر مورد استفاده قرار نگيرند. در واقع اين آرايه به همراه برادر بزرگ‌تر آن يعني RAID 4 خيلي زود با پيكربندي RAID 5 جايگزين شدند. براي ايجاد يك آرايه RAID 3 حداقل به 3 هارد ديسك نياز داريد و اين آرايه تحمل بروز خرابي در يكي از ديسك‌هاي خود را دارد. ظرفيت كلي يك آرايه RAID 3 معادل حاصل‌ضرب ظرفيت كوچك‌ترين ديسك در n-1 است كه در آن n مجموع تعداد ديسك‌هاي آرايه خواهد بود.





RAID 4
آرايه RAID 4 از Striping سطح بلوك با يك ديسك Parity اختصاصي استفاده مي‌كند. اين تركيب به هر يك از اعضاي مجموعه امكان مي‌دهد كه وقتي تنها يك بلوك درخواست شده است، به‌طور مستقل عمل كند. اگر كنترلر RAID از چنين قابليتي پشتيباني كند، يك آرايه RAID 4 مي‌تواند به‌طور هم‌زمان به درخواست‌هاي متعددي براي خواندن اطلاعات سرويس دهد. ساختار كلي RAID 4 شباهت بسيار زيادي به RAID 5 دارد، با اين تفاوت كه از Parity توزيع شده استفاده نمي‌كند. از سوي ديگر، با وجود آن كه شباهت‌هايي مابين اين آرايه و RAID 3 وجود دارد، اما اطلاعات را در سطح بلوك تقسيم مي‌كند نه در سطح بايت.RAID 4 برخلاف RAID 3 نيازي به هماهنگي سرعت چرخش ديسك‌هاي آرايه ندارد. اما ديسك Parity در هنگام نوشتن اطلاعات به يك گلوگاه تبديل مي‌شود زيرا چند عمليات نوشتن اطلاعات به‌طور هم‌زمان، علاوه بر آن‌كه به نوشتن روي درايو‌هاي متناظر خود نياز دارند بايد اطلاعاتي را نيز روي درايو Parity بنويسند. به اين ترتيب، مشاهده مي‌كنيد كه RAID 4 فشار بسيار زيادي را بر درايو Parity تحميل مي‌كند. براي ايجاد يك آرايه RAID 4 حداقل به سه ديسك نياز خواهيد داشت. سطح تحمل خرابي و ظرفيت كلي اين آرايه معادل RAID 3 خواهد بود. امروزه تنها شركت NetApp به پياده‌سازي RAID 4 ادامه مي‌دهد كه مشكل عملكردي آن را با مكانيزم اختصاصي Write Anywhere File Layout خود برطرف كرده است.