Raid چيست؟


arash3400

کنترل
2009-03-26
9,700
37,570
44
کوتاه شده عبارت Redundant Array of Inexpensive Disks میباشد و کار آن ایجاد یک واحد از مجموع چند هارد دیسک میباشد. در واقع با قرار دادن چند هارد دیسک در کنار هم و پیاده سازی RAID همه هارد دیسکهای ما به یک واحد تبدیل میشوند و سیستم همه آنها را فقط به عنوان یک منبع واحد میبیند که بسته به اینکه چه سطحی از RAID پیاده سازی شده باشد میتواند باعث افزایش کارایی و یا امنیت اطلاعات و یا تلفیقی از این دو شود.

















پیاده سازی RAID همچون بسیاری دیگر از تکنولوژی ها هم بصورت سخت افزاری و هم نرم افزاری امکان پذیر است که مسلماً مدل سخت افزاری دارای سرعت و پایداری بیشتری است و مدل نرم افزاری فقط در شرایطی پیشنهاد میشود که با کمبود امکانات و بودجه مواجه هستیم و یا اینکه قرار است بر روی یک سیستم پشتیبان و نه مادر پیاده سازی شود. اما فارغ از اینکه RAID بصورت نرم افزاری و یا سخت افزاری پیاده سازی میشود، تکنولوژی RAIDدارای سطوح گوناگون است که در ادامه به ذکر عمده ترین آنها می پردازم:
اما قبل از آن مفهوم stiping كه زياد استفاده مي شود را توضيح مي دهيم:







striping






Striping اساس كار RAID است. در Striping فضاي ذخيره‏سازي هر درايو در نوارهايي ،‌كه مي‏توانند كمتر از يك سكتور (512 بايت ) يا بيشتر از چندين مگابايت باشند ، ‌بخش‏بندي مي‏شود. اين Stripe ها ،كه ما آن را ” نوار ” ترجمه كرده‏ايم ، در يك تناوب چرخشي كنار هم قرارمي‏گيرند ، در نتيجه فضاي نهايي به دست آمده تركيبي است از نوارهاي هر درايو. به بياني ساده ‏تر داده‏ها به جاي اينكه به طور كامل در يك درايو ذخيره ‏شوند و در صورت نياز ادامه‏ي عمليات ذخيره‏سازي آن‏ها در درايوهاي ديگر دنبال شود ، به صورت نواري در سرتاسر آرايه ذخيره‏مي‏شوند. بوسيله‏ي نواري كردنِ (Striping) درايوهاي آرايه و ايجاد نوارهايي كه به اندازه‏ي كافي بزرگ هستند ، ‌به طوري كه هر گروه از ركوردها به طور كامل در يك نوار قرارگيرند ،‌ تعداد ركوردهاي بيشتري مي‏توانند در تمام درايوها به طور مساوي توزيع شوند. اين كار در مواقعي كه load سنگين وجود دارد تمام درايوها را مشغول نگه مي‏دارد. و به تمام درايوها اجازه مي‏دهد تا به طور همزمان عمليات مختلف ورودي/خروجي انجام دهند. و به اين صورت تعداد عمليات ورودي/خروجي كه مي‏تواند در آرايه انجام شود افزايش مي‏يابد.







افزونگی (Redundancy)




نگهداری داده های اضافی بگونه ای که بتوان در صورت بروز خطا اطلاعات از دست رفته را دوباره بازيابی کرد.











RAID 0:






(ذخیره سازی روی چند دیسک بدون کنترل خطا )




به اين نوع از RAID ،‌ Striping نيز گفته مي‏شود. RAID 0 شامل آرايه‏اي از درايوهاي ديسك به صورت غير افزايشي است. ( يعني علاوه بر داده‏هاي اصلي ، هيچ درايو ديگري براي نگهداري نسخه‏ي ديگري از داده‏ها وجود ندارد)










  • در RAID 0پريتي نيز وجود ندارد.


  • در اين مجموعه raid ،كنترل كننده raid ،داده ها را به صورت نواري روي چند درايو قرار مي دهد پس مي توانيم عمليات خواندن و نوشتن را به طور موازي انجام دهيم. پس مدت زمان خواندن و نوشتن ، ‌بسته به تعداد درايوهاي موجود در آرايه كم و كمتر مي‏شود. تا زماني‏كه داده‏ها به صورت نواري شكل در تمامي هارد ديسك‏ها قراردارند ،‌ RAID 0 سريع‏ترين و مناسب‏ترين روش از ميان تمامي حالات RAID است. و بهترين كارمفيد و كارآيي را در ذخيره‏سازي داده‏ها ارايه مي‏دهد.




  • ولي بايد گفت كه هيچ‏گونه تحمل خطايي ندارد. اگر يكي از ديسك‏ها دچار مشكل شود ، تمام آرايه از كار مي‏افتد و هيچ راهي براي بازگرداندن داده‏هاي از دست رفته وجود ندارد.






RAID 1




(Backup گیری همزمان داده ها به منظور Mirroring و Duplexing)




به اين سطح ،‌mirroring نيز گفته مي‏شود. و اساساً يك تركيب از دو هارد ديسك است كه اطلاعات يكي از اين دو ،‌عيناً روي ديگري كپي مي‏شود و در كامپيوتر به صورت يك درايو نمايش داده‏ مي‏شود.





  • تحمل خطا در RAID 1 وجود دارد.چراكه اگر يكي از ديسك‏ها از كار بيفتد آرايه مي‏تواند همچنان به فعاليت خود ادامه دهد.


  • به دليل اين‏كه هم‏زمان از دو هارد ديسك استفاده مي‏شود ،‌ زمان خواندن سريعتر مي‏شود.روشي كه در اين‏جا براي خواندن داده‏ها به‏كارگرفته مي‏شود ، زمان‏بندي Round-robin ( روح سرگردان ! ) ‌نام دارد. كه سرور براي خواندن داده‏ها مرتباً از يك هارد به هارد ديگر مي‏رود و عملاً زمان را بين دو هارد ديسك تقسيم مي‏كند.

  • سرعت خواندن دراينجا دوبرابر سرعت خواندن از يك درايومنفرد فاقد‌mirroring است.


با اين حال در موقع نوشتن ، داده‏ها بايد روي دو هارد ديسك نوشته‏شوند. و عملاً مي‏بينيم كه در مدت زمان نوشتن تغييري حاصل نخواهد شد.





  • نسبت به ساير انواع آرايه‏هاي افزايشي ،‌اين سطح بهترين كارآيي را دارد. ولي از لحاظ رتبه در هنگام ازكارافتادن درايو ،‌نسبت به RAID 5 كارآيي كمتري دارد.


  • بزرگترين عيب اين سطح ،‌هزينه‏اي است كه براي درايوهاي اضافي آن پرداخت مي‏شود.



Duplexing :




بيشتر در raid نرم افزاري مطرح مي شود.




در روش استفاده هارد ديسک ها با استفاده از کنترلرهای يکسان مشكل اين است كه يك كنترلر هم درايو اصلي و هم درايو آيينه‏اي را كنترل مي‏كند. اگر كنترل كننده ديسك از كار بيفتد هر دو درايو غير قابل دسترسي مي‏شوند . تكنيكي كه براي جلوگيري از اين مشكل پيشنهاد مي‏شود Duplexing است. يعني اين‏كه براي هر ديسك يك كنترلر جداگانه استفاده كنيم.








image002.jpg



RAID2

( دارای خاصیت ECC با استفاده از کد همینگ)


  • در RAID 2 نيز از روش Striping استفاده مي‏شود و داده‏ها به صورت نوارهاي سكتوري ذخيره مي‏شوند . و بعضي از درايوهاي آرايه براي اطلاعات ECC در نظرگرفته مي‏شوند. هر بيت داده كه روي هارد ديسك‏ها نوشته‏مي‏شود ، كد تصحيح خطا يا ECC مربوط به خود را دارد. اين كدها روي درايوهاي جداگانه ذخيره مي‏شوند و به منظور حفاظت از يكپارچگي و سلامت داده‏ها مورد استفاده قرار مي‏گيرند. ECC ارزش‏هاي عددي داده‏هاي ذخيره‏شده بر روي بلوك‏هاي مشخص در درايو مجازي را با استفاده از فرمولي به نام check-sum ( جمع كنترلي ) جدول بندي مي‏كند. سپس در صورت نياز ،‌ جمع كنترلي براي تاييد سلامت داده‏ها به انتهاي بلوك داده الحاق مي‏شود.
  • هنگامي كه داده‏ها مجدداً خوانده مي‏شوند ، جدول بندي ECCمجدداً محاسبه مي‏شود . سپس جمع كنترلي هر بلوك داده‏ي خاص ،‌خوانده شده و با آخرين جدول بندي مقايسه مي‏شود. چنانچه اعداد همانند باشند داده‏ها بدون نقص هستند ، اما اگر تناقضي وجود داشته‏باشد ، داده‏ها ي از دست رفته با استفاده از اولين جمع كنترلي (يا جمع كنترلي قبلي )‌به عنوان يك نقطه‏ي مرجع ،‌قابل محاسبه‏ي مجدد هستند.
  • از اين سطح به ندرت استفاده مي‏شود. به دليل اين‏كه تمام هارد ديسك‏ها امروزه اطلاعات ECC را در هر سكتور جاسازي مي‏كنند.



image003.jpg



RAID 3:

(انتقال موازی با استفاده از خاصیت Parity)


امروزه ،‌بسيار كم مورد استفاده قرار مي‏گيرد. RAID 3خيلي شبيه RAID 2 مي‏باشد . و اطلاعات را به صورت سكتوري روي گروهي از درايوها stripe مي‏كند. تفاوت آن اين‏است كه يك درايو جداگانه براي ذخيره‏ي داده‏هاي پريتي درنظر مي‏گيرد. RAID 3 بر داده‏هاي ECC جاسازي شده در هر سكتور براي رديابي اشكالات ، تكيه دارد. اگر درايوي از كار افتاد ، به‏وسيله‏ي XOR كردن اطلاعات موجود روي ساير درايوها ،‌عمليات بازيابي را انجام مي‏دهد.


  • اين سطح در واقع انطباقي از RAID 0 است كه مقداري از ظرفيت هر يك از درايوها را قرباني مي‏كند اما به سطح بالايي از سلامت اطلاعات و تحمل خطا دست‏يابد.در اين حالت ، بلوك‏هاي داده به نوارهايي تقسيم شده و بر روي تمام درايوهاي درون آرايه به جز يكي از آن‏ها نوشته مي‏شوند.
  • اطلاعات موازنه‏ي نوار كه براي بررسي سلامت داده در تمام درايوهاي درون زيرسيستم مورد استفاده قرار مي‏گيرند درهنگام نوشتن داده‏ها ، ايجاد شده و بر روي ديسك پريتي ،‌نوشته مي‏شوند.
  • درايو موازنه نيز به نوارهايي تقسيم شده‏است و هر يك از اين نوارها در درايو موازنه براي نگهداري اطلاعات پريتي مربوط به نوارهاي داده‏ي متناظر آن كه در سراسر آرايه گسترده شده ، مورد استفاده قرار مي‏گيرد. اطلاعات موازنه هنگام خواندن داده‏ها بازبيني مي‏شود.اين شيوه با خواندن يا نوشتن داده‏ها بر روي تمام درايوها به طور هم‏زمان يا به صورت موازي توانايي انتقال داده بسيار بالايي را در اختيار قرار مي‏دهد ولي در عين حال مزيت بازسازي داده در صورت از كارافتادن يكي از درايوها و حفظ سلامتي داده‏ها براي سيستم را نيز از دست نمي‏دهد.
  • به دليل اين‎كه هر درخواست I/O به چندين درايو از آرايه دسترسي دارد. در اين سطح RAID در يك زمان فقط به يك درخواست پاسخ داده مي‏شود. و براي محيط‏هاي تك كاربره ، تك كاره با ركوردهاي طولاني ،‌ بهترين كارآيي را دارد.


( به دليل اين‏كه RAID 5 با نوارهاي كوچك مي‏تواند همان كارآيي RAID 3 را داشته‏باشد،‌ كنترلرهاي Adaptec اين نمونه را نيز پشتيباني نمي‏كنند)



image004.jpg



RAID 4 :

(دیسک های داده مجزا، دیسک مربوط به Parity مشترک)

RAID 4شبيه RAID 3 است . به جز اين‏كه در raid4 به جاي جاگذاري بايت ،از جاگذاري سكتوراستفاده‏ مي‏شود.به همين دليل ركوردها از هر درايو جداگانه مي‏توانند خوانده‏شوند(‌البته به جز درايو پريتي). اين عمل اين امكان را مي‏دهد تا عمليات خواندن به اشتراك گذاشته‏شود. در هنگام نوشتن ،‌عمليات آهسته مي‏شود چون پس از ذخيره شدن داده‏ها بر روي يك ديسك ،‌بايد اطلاعات پريتي نيز در درايو مربوط به پريتي نوشته شوند.

همانند raid3 ، raid4 هم يك اشكال ذاتي در درايوparity اختصاصي دارد. هنگامي كه داده ها روي آرايه نوشته مي شوند،parity encoding هم بخشي از هر عمليات write است.

• اين ساختار مزيت ويژه‏اي نسبت به ساير حالات ندارد و كنترلرهاي Adaptec اين نمونه را پشتيباني نمي‏كنند.





image005.jpg



RAID 5 :

(RAID۵ : دیسک های داده مجزا و Parity توزیع شده در دیسکهای Data )

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

. وقتي كه داده در raid5 نوشته مي شود،اطلاعات parity بايد update شود.اين كار با پيدا كردن بيت هاي داده اي كه با عمل write تغيير يافته انجام مي شود و سپس بيت هاي parity متناسب با آنها در فرايند زير تغيير مي كند:


  1. خواندن داده هاي قديم
  2. نوشتن داده هاي جديد
  3. Xorكردن داده هاي قديم و داده هاي جديد(نتيجه يك bit mask است كه در مكان هر بيتي كه تغيير كرده يك 1 قرار مي دهد .)
  4. خواندن parity قبلي از آرايه
  5. Xor كردن bit mask با اطلاعات parity قبلي : نتيجه متناسب است با بيت هايي كه در اطلاعات parity تغيير يافته است
  6. نوشتن parity ، update شده در آرايه



بنابراين براي هر application درخواست write ،يك آرايه raid5 بايد دوتا read ،دوتا write و دو عمل xor را براي كامل شدن عمل write اصلي انجام دهد.

تمام درايوها شامل داده هستند و عمليات خواندن مي‏تواند از تمام درايوها به صورت مشترك انجام شود. براي نوشتن اطلاعات نيز به يك درايو داده و نيز يك درايو ديگر براي ذخيره‏ي اطلاعات پريتي نياز داريم. با توجه به اين‏كه ،‌پريتي ركوردهاي مختلف روي درايوهاي ديگر قرارمي‏گيرد ،‌عمليا ت نوشتن معمولاً مي‏تواند به اشتراك گذاشته شود.

به خاطر تعادل بين كارايي،fault tolerance و قيمت ،raid5 احتمالا َ معمول ترين پياده سازي raid است بيشترين استفاده از RAID 5 در سرورها و شبكه‏هاي محلي مي‏باشد ، ‌جايي كه فضاي ذخيره‏سازي و تحمل خطا بسيار اهميت دارد. اينسطحraid يك انتخاب خوب براي file server و application server هاست.همچنين اغلب براي اينترنت و اينترات هم استفاده ميشود .

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



image006.jpg



Raid 6:

(دیسکهای داده هاي مجزا با دو Parity توزیع شده مجزا )

مزایا و مشخصات :

- Raid 6در واقع نسخه پیشرفته Raid5 می باشد که تصحیح و کنترل خطا را بهبود می بخشد . این ویرایش RAID اطمینان و توانایی بالا در زمینه data storage فراهم می کند .

• - بهترین انتخاب برای کاربردهای بحرانی و حساس

معایب :

• - طراحی مدار کنترلی بسیار پیشرفته و پیچیده .

• - سیکل نوشتن بسیار کند ( دوبار محاسبه مربوط به Parity )

• - نیاز به N+۲ درایو دیسک سخت . بدلیل دارا بودن حالت Parity دو بعدی . ( N تعداد دیسکهای سخت در حالت معمولی )

• - ادغام اطمینان بالا با قابلیت بالا



image007.gif





RAID0+1:

(نرخ انتقال داده بهینه )

دو مجموعه از درايوها ، فعال هستند و مجموعه دوم از درايوها يك mirror از داده هاي دو درايو اول هستند.در اين مورد بلاك هاي داده اي ،در درايوهاي درون هريك از دو مجموعه strip مي شوند،در حالي كه بين دو مجموعه هم mirror مي شوند.. اين كارايي raid0 را افزايش مي دهد زيرا آن نصف زمان درايو را براي نوشتن داده اي برابر با يك درايو ،مي گيرد .

مزایا و مشخصات :


  • - حداقل به ۴ دستگاه هاردیسک نیاز دارد .
  • - RAID ۰+۱ به عنوان آرایه آینه ای نیز معروف است با این تفاوت که قطعات داده ها یا Segment ها طبق استراتژی RAID۰ ایجاد شده اند
  • بهترین انتخاب برای سیستمهایی که به کارایی بالا بدون توجه به حداکثر اطمینان نیاز داشته باشند .
  • نرخ انتقال بالا .

معايب:

· قیمت بسیار بالا

· تعداد زيادي درايو لازم است

· ظرفيت داده اي در عمل نصف مي شود.




image008.jpg



RAID10:

يك ورژن ساده تر از raid0+1 است .اول striping داده ها بين مجموعه ديسك ها و سپس mirroring بين آنها اانجام مي شود.دو درايو اول در هر مجموعه mirror هم هستند.دو درايو دوم ،مجموعه ديگر از ديسك ها را تشكيل مي دهند كه mirror هم هستنداما داده هاي strip شده با جفت اول را ذخيره مي كنند.



· اين يك فرم از ايجاد raid تودرتواست.درايوهاي 1و2 يك raid1 mirror هستندودريوهاي 3و4 يك mirror هستند.اين دو مجموعه به صورت آرايه strip شده هستند.

· مانند اجراي raid0+1 ،raid10 هم به حداقل چهار درايو احتياج دارد.

· كارايي تا حدودي به همان اندازه است.

مزيت :

- افزايش كارايي

- داده ها كاملاً redundant هستند

معايب:

- تعداد زياد درايوهاي موردنياز

- ظرفيت داده اي عملاًنصف مي شود.

نكته: يك raid10 مي تواند حتي وقت كه دو ديسك خراب شوند،يه كار خود ادامه دهد،درصورتيكه دو ديسك بخشي از همان مجموعهraid1 mirror نباشند.



image009.jpg



Raid سخت افزاري و نرم افزاري:

RAID نرم افزاري از طريق يك سيستم عامل تنظيم مي شود و به طور ذاتي كارايي كمتري نسبت به كنترلرهاي سخت افزاري RAID دارد. اين به علت فقدان سخت افزار اختصاصي براي مديريت آرايه هاي RAID است. اما بايد گفت كه تنظيم آن، دست كم موقع استفاده از Windows XP Professional، نسبت به سيستم هاي مبتني بر سخت افزار ساده تر و انعطاف پذير تر است.

دومين عامل در زمينه بررسي و انتخاب نوع RAID، اين است كه آيا شما مي خواهيد سيستم عامل تان قسمتي از آرايه باشد يا خير؟ بزرگترين محدوديت در انجام RAID در ويندوز XP اين است كه سيستم عامل بايد قبل از ايجاد آرايه RAID نصب شود. به اين معنا كه اگر شما بخواهيد ديسك سيستم عامل خود را Strip كنيد، براي افزايش سرعت Loading راهي جز رفتن به سمت كنترلرهاي RAID سخت افزاري نداريد.

بنابراين اگر بدون ايجاد درايوهاي Strip شده ، مي خواهيد حداكثر استفاده را ببريد يا اگر براي Backup هاي خود نياز داريد كه از RAID استفاده نماييد از مادربردي استفاده كنيد كه كنترلر RAID را به صورت Onboard در خود دارد و يا اينكه از يك كارت كنترلر PCI استفاده كنيد. اما اگر مي خواهيد سرعت درايوهاي Stripped را امتحان كنيد به سراغ RAID نرم افزاري برويد

تجهيزات RAID از بخش هاي زير تشكيل شده است:

• جدول RAID براي تعريف تنظيمات آرايه هاي RAID، ساختارهاي داده به منظور ذخيره Discriptionها براي Cache كردن داده ها، موتورها براي محاسبه اطلاعات توازن ( Parity ) ، بخش منطقي بر�

 
بالا