آشنائی با RAID، انوع آن و کاربردها
با جستجو در فرهنگ لغت اين معاني را ميتوانيم براي واژهيraid بيابيم:تاخت و تاز ،يورش ،ورود ناگهاني پليس ،حملهي مسلحانه ،جريمه ،اختلاس ،مورد حمله و تاخت و تاز قراردادن ،در حمله شركت كردن ، هجوم آوردن و ... .
واژهيraidمعمولاً براي افسران پليس دورنمايي از يك حادثهاست براي غافلگيركردن و دستگيري مجرمان. اما در صنعت كامپيوتر ،معناي RAID بسيار متفاوت است. كه در اينجا استفاده ميشود نيرويي است براي بهبود كارآيي در يك سيستم.
چند اصطلاح :
Fault tolerance يا تحمل خطا :
براي اينكه ما بتوانيم به طور مداوم و بدون هيچ مشكلي سيستم خود را فعال نگه داشته و از دادههاي باارزش محافظت كنيم ،روش هاي مختلفي وجود دارد. برخي از اين روشها آن كارهايي است كه ما بهطور معمول انجام ميدهيم . مثلاً ذخيره دادهها بر روي CD و يا ايجاد فلاپي ديسكهاي سيستمي و ديسكهاي نجات (Rescue Disk ) . و يا امكاناتي كه به ويژه در ويندوز 2000 وجود دارد تا ما بتوانيم در صورت خرابي بخشي از فايلهاي سيستم عامل ،آنها را دوباره بازسازي كنيم. با اين كارها در حقيقت ما ميخواهيم تحمل سيستم را در برابر مشكلات افزايش دهيم. ولي ميدانيم كه اين كارها به تنهايي كافي نيست.
تحمل خطا : هر مكانيسم يا فناوري كه به يك كامپيوتر يا يك سيستم عامل امكان ميدهد تا در صورت ازكارافتادن بتواند دوباره Recover شود (بهبود يابد). در سيستمهاي تحمل خطا وقتي يكي از اجزا از كار افتاد ،دادهها باز هم قابل دسترسي هستند.
چند نمونه از روشهاي تحمل خطا:
**فايلهاي گزارش عملكرد (Transactional log files) كه در رجيستري ويندوز نگهداري ميشوند و امكان بازيابي را به ما ميدهند.
**UPS ) مولد بدون وقفه برق ) براي محافظت سيستم در برابر نوسان يا قطع برق
** RAID) آرايهاي از ديسكها (
RAID (Redundancy array of inexpensive disk ) :
RAID يكي از موارد افزايش تحمل خطاي سيستم است. RAID (آرايهاي افزايشي از ديسكهاي ارزان) در سال 1987 در دانشگاه بركلي كاليفرنيا بنيانگذاري شد. در مقالهي با عنوان ” بررسي آرايههاي افزايشي از ديسكهاي ارزان ” كه توسط katz ، Gibson و Patterson معرفي شد. ( البته در خيلي جاها ، مانند كتابهاي مايكروسافت ، واژهي ” ارزان” با واژي ”مستقل” جايگزين ميشود ،كه به نظر ميرسد به دليل اهميت آن در بحث RAID استفاده از آن بهتر باشد ، اما قديميترين آنها همان چيزي است كه در سال 1987 ارايه شده است.) موضوع موردبحث اين مقاله ارايه يك ميانگين براي بهبود قابليت اعتماد و نيز كارآيي در سيستمهاي ذخيرهسازي بود. و مفهوم آغازين آن شامل گروهبندي درايوهاي ديسك ارزان و كوچك در يك آرايه است به طوري كه در سيستم عامل به صورت يك SLED (ديسك منفرد بزرگ وگران ) ديده ميشوند. RAID نقطهي مقابل SLED است و كارايي ، ظرفيت و قابليت اعتماد بيشتري نسبت به آن دارد.
روشهاي مختلفي براي تركيب چند هارد ديسك در يك آرايه ، بسته به نياز برنامههاي كاربردي ، وجود دارد. اما در همهي حالات استفاده از چندين درايو نتايجي چون : افزايش گنجايش ، امنيت داده و كارآيي درايوها (exceed the capacity, data security, and performance) را به دنبال خواهد داشت. به ياد داشته باشيد كه اين روشها روشهاي خيلي ارزاني نيستند و هميشه با پيچيدگي و هزينههاي زيادي همراهند.
از زمان اختراع كامپيوتر تا به حال كدهاي نرمافزاري رشد زيادي داشتهاند. و اين رشد نياز به يك محيط ذخيرهسازي بزرگ را افزايش دادهاست و ابداع شبكههاي محلي و اينترنت نيز اين نياز را شديدتر كردهاست. مبناي كار RAID فضاي ديسك است و توانستهاست با تركيب فضاي هاردديسكهاي كوچك با هم در يك مخزن بسيار بزرگ مشكلات را برطرف كند.
MTBF (ميانگين زماني كه از يك Fail تا Fail ديگر صرفميشود ) در آرايه برابر است با MTBF يك درايو منحصر بفرد تقسيم بر تعداد درايوهاي موجود در آرايه. در اين صورت MTBF يك آرايه غير افزايشي خيلي كم است. و RAID با ارايهي روشهاي مختلف و با ذخيرهي اطلاعات افزايشي ميتواند در اين مورد نيز سودمند واقع شود.
RAID با توزيع عمليات خواندن / نوشتن روي چند ديسك ميتواند كارآيي هاردديسكها را افزايش دهد.( ما در اين مبحث فقط در مورد هارد ديسك بحث ميكنيم چون اين اصطلاحها براي ساير حافظههاي جانبي از قبيل CD_ROM ، zip drive ، floppyبه كار نميرود.)
پيش از اينRAIDبه دليل هزينههاي بسيار بالاي سختافزار مورد نياز آن ، بيشتر براي كاربردهاي تجاري با حوزهاي محدود بهكار ميرفت. ولي در چند سالها اخير اين امر دچار تغيير شدهاست ، از ميان تمام سروصداهايي كه براي بهبود كارايي و استفاده بهتر از زمان ميشود ، RAID توانسته راه خود را باز كند و يك پله بالاتر از همه قراربگيرد. افزايش كنترلرهاي RAID ارزان كه ميتوانند با نسخهي مصرفكنندهي IDE/ATA كاركنند ( مانند آنچه واحدهاي گرانقيمت SCSI انجام ميدهند) اشتياق همگان را به RAID افزايش دادهاست. و اين گرايش شايد ادامه يابد.در حال حاضر نيز تعداد زيادي از سازندگان مادربورد ،بوردهاي خود را با حمايت از استاندارد RAID به بازار عرضه ميكنند . متاسفانه RAID در زمينهي كامپيوتر به طور واقعي اشكالات را برطرف نمي كند. با اين حال اگر به طور صحيح اجراشود ، ميتواند زمان از كارافتادگي را از بين ببرد.
Striping
Striping اساس كار RAID است. در اين روش چندين هارد ديسك يا به طور كلي چندين درايو طوري با هم تركيب ميشوند كه به صورت يك واحد ذخيرهسازي منطقي ديده شوند. در Striping فضاي ذخيرهسازي هر درايو در نوارهايي ،كه ميتوانند كمتر از يك سكتور (512 بايت ) يا بيشتر از چندين مگابايت باشند ، بخشبندي ميشود. اين Stripe ها ،كه ما آن را ” نوار ” ترجمه كردهايم ، در يك تناوب چرخشي كنار هم قرارميگيرند ، در نتيجه فضاي نهايي به دست آمده تركيبي است از نوارهاي هر درايو. به بياني سادهتر دادهها به جاي اينكه به طور كامل در يك درايو ذخيرهشوند و در صورت نياز ادامهي عمليات ذخيرهسازي آنها در درايوهاي ديگر دنبال شود ، به صورت نواري در سرتاسر آرايه ذخيرهميشوند. نوع محيط عملياتي تعيين ميكند كه ما بايد از نوارهاي كوچك استفاده كنيم يا بزرگ.
امروزه بيشتر سيستم عاملها ازعمليات I/O همزمان روي چند درايو حمايت ميكنند.با اين حال براي بهدست آوردن حداكثر توان خروجي براي يك زيرسيستم ديسك ، سنگيني بار عمليات I/O بايد روي چند درايو توزيع شود ،تا اينكه هر درايو تا جاي ممكن مشغول فعاليت باشد و هيچ درايوي بدون استفاده يا با فعاليت كمتر وجود نداشته باشد. در سيستم هاي چند درايوي كه از Striping استفاده نميكنند بار I/O ديسك هيچگاه به طور كامل متوازن نميشود. چون برخي درايوها شامل فايلهاي داده خواهندبود كه مكرراً به آنها مراجعه ميشود و برخي درايوها به ندرت مورد استفاده قرارميگيرند.
بوسيلهي نواري كردنِ (Striping) درايوهاي آرايه و ايجاد نوارهايي كه به اندازهي كافي بزرگ هستند ، به طوري كه هر گروه از ركوردها به طور كامل در يك نوار قرارگيرند ، تعداد ركوردهاي بيشتري ميتوانند در تمام درايوها به طور مساوي توزيع شوند. اين كار در مواقعي كه load سنگين وجود دارد تمام درايوها را مشغول نگه ميدارد. و به تمام درايوها اجازه ميدهد تا به طور همزمان عمليات مختلف ورودي/خروجي انجام دهند. و به اين صورت تعداد عمليات ورودي/خروجي كه ميتواند در آرايه انجام شود افزايش مييابد.
سطوح مختلف RAID
سطوح مختلفي براي RAID در نطرگرفته شدهاست. اما بايد توجه داشت كه وقتي از سطوح مختلف RAID صحبت ميكنيم منظور ما كيفيت ذخيرهسازي دادهها نيست.بلكه منظور ما شيوهاي است كه براي ذخيرهي دادهها در آرايههاي هارد ديسك به كارگرفته ميشود.
RAID 0
به اين نوع از RAID ، Striping نيز گفته ميشود. در RAID 0 شامل آرايهاي از درايوهاي ديسك به صورت غير افزايشي است. ( يعني علاوه بر دادههاي اصلي ، هيچ درايو ديگري براي نگهداري نسخهي ديگري از دادهها وجود ندارد) در RAID 0پريتي نيز وجود ندارد.براساس آنچه در مورد Striping گفتيم براي يك مجموعهي RAID 0 ،كنترل كنندهي RAID دادهةا را به صورت نواري روي چند درايو قرارميدهد. اما اساساً چه دليلي وجود دارد كه دادهها را در بلوكهايي از چندين درايو بنويسيم. بخشي از پاسخ اين پرسش در توضيح Striping گفته شد ،اما بگذاريد بيشتر در اين مورد بحث كنيم. فرض كنيد شما 10 بلوك داده داريد ( A , B ,C , ... ) . در يك هارد ديسك استاندارد ، دادهها بايد به اين صورت ذخيره شوند : ابتدا بلوك A ، سپس بلوك B، سپس بلوك C و ... در اينصورت اگر نياز به دستيابي به 10 بلوك داشته باشيم ،كنترل كننده بايد تمام دادهها را فقط يك هارد ديسك داشتهباشد. در RAID 0،دادهها بين هارد ديسكها تقسيم ميشوند. پس اگر شما 3 ديسك Stripe شده داشتهباشيد ، دادههاي بلوك Aدرهاردديسك صفر ، دادههاي بلوك B در هارد ديسك يك و دادههاي بلوك C در هارد ديسك سوم بايد ذخيرهشوند. در اين روش به طور همزمان ميتوانيم عمليات نوشتن را بر تمام درايوها انجام دهيم و نيز عمليات خواندن دادهها نيز ميتواند بهطور موازي انجام شود. پس مدت زمان خواندن و نوشتن ، بسته به تعداد درايوهاي موجود در آرايه كم و كمتر ميشود.توجه كنيد كه در اينجا دادهي افزايشي وجود ندارد. تا زمانيكه دادهها به صورت نواري شكل در تمامي هارد ديسكها قراردارند ، RAID 0 سريعترين و مناسبترين روش از ميان تمامي حالات RAID است. و بهترين كارمفيد و كارآيي را در ذخيرهسازي دادهها ارايه ميدهد. ولي بايد گفت كه هيچگونه تحمل خطايي ندارد. اگر يكي از ديسكها دچار مشكل شود ، تمام آرايه از كار ميافتد و هيچ راهي براي بازگرداندن دادههاي از دست رفته وجود ندارد.در RAID 0 ،كارآيي به اندازهي بلوكها بستگي دارد . اگر اندازهي آنها خيلي كوچك باشد دستورات براي اجرا در عمليات نوشتن متمركز ميشوند ، علاوه بر آن به دستورات واسط سختافزاري بيشتري نياز است. بهينه سازي اندازهي بلوكها باعث ميشود كه افزايش توان عملياتي كار ميشود ، به ويژه براي درخواستهاي موازي براي خواندن دادهها. اندازهي بلوكها قابل تنظيم است . ولي شما بايد بيت به بيت آزمايش كنيد تا به نتيجهي مطلوب برسيد. اما يكي از تقاط شروع خوب براي حداقل اندازهي بلوك 16 كيلوبايت است. براي محيطهاي چندكاربره ميتوانيم آرايه را با نوارهاي بزرگ تنظيم كنيم. براي سيستمهاي تككاربره كه به طور مداوم با ركوردها سروكار دارند نيز ميتوان اندازهي نوارهاي موجود در آرايه را كوچك تر در نظر گرفت.به طور نمونه اندازهي فايل 48 كيلوبايت است. 16 كيلوبايت از اين فايل روي ديسك اول ،16 كيلوبايت در ديسك دوم و 16 كيلوبايت ديگر در ديسك سوم نوشتهميشود.
این خبر برگرفته از سایت http://www.iritn.com می باشد.