وبلاگ

مفاهیم اصلی RAID

مفاهیم اصلی RAID

مفاهیم اصلی RAID

مفاهیم اصلی RAID

Raid مخفف كلمه Redundant Array of Independent Disk مي باشد. يك آرايه Raid‌به يك سري از هاردها اطلاق مي شود كه با همديگر در يك مجموعه به مانند يك ديسك تنها كار مي كنند. تعريف Raid براي اولين بار در سال 1987 در دانشگاه بركلي آمريكا مورد استفاده قرار گرفت در ابتدا اين مفهوم با اسم Redundant Array of Inexpensive Disk معرفي شد ولي در ادامه تولييد كنندگان raid هاي سخت افزاري اسم آن را به Redundant Array of Independent Disk تغيير دادند. در آن زمان هدف محققان بررسي امكان استفاده از تركيب دو و يا چند ديسك مجزا كه مي توانستند به عنوان يك ديسك واحد عمل كنند بود. در بسياري از پيكربندي هاي raid با توجه به نوع raid فضاي ذخيره سازي مي تواند قابليت حفظ ديتا در صورت خرابي ديسك را داشته باشد و در صورت تعويض هارد ديسك معيوب  rebuild هاي مربوطه را بر روي هارد جديد انجام داده و آن هارد را در مجموعه raid سينك كند.

دلايل اصلي استفاده از raid

1- بالا بردن كارايي و توان عملياتي (بالا بردن سرعت read و write)

2- افزايش فضاي ذخيره سازي و تشكيل يك فضاي واحد

3- ايجاد Fault Tolerance (تحمل خطا)

Raid Level

يك raid level تعريفي از نحوه بخش اطلاعات ميان ديسك درايوهاي آن مجموعه raid مي باشد. دانستن تفاوتهاي ميان raid level ها بسيار مهم است به دليل اينكه موارد استفاده آنها با هم متفاوت باشد. در تكنولوژي raid كه زير مجموعه اي از تكنولوژي هاي storage مي باشد raid level ها عموما در سه مشخصه با هم متفاوت هستند:

  • كارايي
  • ظرفيت
  • تحمل خطا

به جز raid0 كه هيچگونه محافظتي بر روي ديتاي ديسكها ندارد بقيه  raidها كما بيش قابليت محافظت از اطلاعات ديسكها را دارا هستند.

Raid level ها و فرمت اطلاعاتشان توسط اتحاديه SNIA (Storage Networking Industry Association) استاندارد سازي مي شوند.

گروه هاي RAID

  • Standard Raid levels (raid هاي استاندارد)
  • Nested Raid levels (raid هاي تركيبي)

Raid هاي استاندارد

Raid levelهاي 0، 1، 2، 3، 4،  5، 6 شامل raidهاي استاندارد مي شود ولي عموماً raidهاي استاندارد شامل پنج raid اصلي 0،  1، 3، 5، 6 مي باشند.

Raidهاي تركيبي

بسياري از storage controller ها به دستگاه اين اجازه را مي دهند تا بتوانند raid levelها را با هم ادغام كنند.

Raid0

Raid0‌ با پخش كردن ديتا بين ديسكهاي فيزيكي با بالاترين سرعت throughput را دارا مي باشند. اين raid شامل هيچگونه افزونگي (Redundancy) نمي باشد. از آنجايي كه در اين raid هيچگونه اطلاعات افزونه­اي ذخيره سازي نمي شوند بالاترين توان عملياتي را دارا مي باشد.اساس كار در اين raid بدينصورت است كه اگر شما بخواهيد يك فايل 200 كيلو بايتي ذخيره بكنيد اين ساختار فايلها را به دو قسمت مساوي 100 كيلو بايتي تقسيم كرده و هر قطعه را در درون يكي از ديسكها ذخيره مي كند. بايد به اين نكته توجه كرد كه در صورت سوختن يكي از هاردها كليه اطلاعات مجموعه raid از بين خواهد رفت.

Raid0 فقط براي بالا بردن سرعت disk storage بكار مي رود. در  raid0 ، blockهاي اطلاعات با هم تلفيق مي شوند ولي هيچ mirror و يا parity وجود ندارد

 

Raid1

Raid1 كه به آن raid mirror نيز گفته مي شود اين raid از طريق Duplicate كرده كليه اطلاعات موجود بر روي يك ديسك درايو در داخل ديسك درايو ديگر قابليت افزونگي در اين محموعه raid را فراهم مي كند. بنابراين در صورت از دست رفتن يك ديسك هيچ اطلاعاتي از مجموعه raid از دست نخواهد رفت. اين raid يكي از بهترين نوع raidها براي سيستم هاي معمولي مي باشد. در اين raid ديتا ها عيناً بر روي حداقل 2 ديسك ذخيره مي شوند و اين ساختاري شبيه به آينه را بوجود مي آورد. در اين raid درخواستهاي خواندن توسط هاردي كه شامل اطلاعات خواسته شده است انجام مي پذيرد. البته بالاترين اولويت را هاردي خواهد داشت كه كمترين تأخير زماني در پاسخگويي را داشته باشد. اين raid نسبتا سرعت خوبي در read كردن اطلاعات دارد ولي در عوض عمليات نوشتن write با بيشترين زمان انجام مي پذيرد بدليل اينكه بايد حتما بر روي دو ديسك نيز نوشته شود و از آنجا كه بايد حتما دو ديسك نيز بروز رساني شوند سرعت write پاييني خواهيم داشت ( اين اصل برابر اين است كه سرعت write آن با سرعت هاردي كه پايين ترين سرعت را در آن مجموعه دارد سنجيده مي شود) بسياري از مادر بردهاي امروزي اين قابليت را بصورت پيش فرض و بدون اضافه كردن كنترلر سخت افزاري ساپورت مي كنند. يكي از نقاط ضعف اصلي استفاده از اين raid ، هزينه بالاي استفاده از آن است بخاطر اينكه در اين raid هزينه هر گيگا بايت از حافظه دو برابر خواهد شد. شايان ذكر است كه معناي بوجود آمده بسياري از raidها بعد از raid1 نيز همين مساله هزينه بالاي اين raid  بوده است.

 

Raid 5

اين raid كليه اطلاعات را در يك بلوك اطلاعاتي و بين چندين ديسك درايو فيزيكي ذخيره مي كند و parity را بين ديسكها پخش مي كند. هيچ ديسكي به تنهايي شامل parity نمي باشند بلكه بر روي كليه ديسكهاي اين مجموعه پخش شده است. از اينرو قدرت نوشتن اطلاعات در سيستم هاي چند پردازشي بالا مي رود. از آنجا كه ديتا parity بر روي كليه ديسكها پخش و نوشته شده است سرعت خواندن اين raid نيز بسيار بالا مي باشد. فضاي ذخيره سازي كه اين نوع از raidدر اختيار سيستم قرار مي دهد معمولا 75د تا 80 درصد از مجموع فضاي حقيقي كليه ديسكهاي raid مي باشد كه معمولا با توجه به نوع raid سخت افزاري و برند آن كمي قابل تغيير است. بهايي كه در اين raid براي افزونگي (redundancy) خواهيم پرداخت برابر با 20 يا 25 درصد فضاي ذخيره سازي كلي است. تحمل خطاي اين  raid يك ديسك مي باشد به اين مفهوم كه اگر يكي از هاردهاي اين مجموعه raid را از دست بدهيد اطلاعات شما از بين نخواهد رفت و حتي در سيستم هاي پيشرفته سرور وقفه اي در كار سرور نيز بوجود نخواهد آمد. هارد سالم جايگزين هارد خراب شده و rebuild هاي مربوط به سينك كردن هارد بر روي raid انجام مي پذيرد. در اين raid اگر بيشتر از يك هارد بصورت همزمان بسوزند كليه اطلاعات ما از بين خواهد رفت براي بهره گيري از قابليت افزونگي (redundancy) اين raid در مقايسه با  raid1 صرفه اقتصادي بيشتري دارد. براي پيكربندي اين raid ما حداقل به 3 هارد فيزيكي نياز داريم.

 

Raid 6

اين raid در واقع تعميم يافته raid5 مي باشد كه در مقايسه با raid5 يك بلوك parity ديگر نيز به مجموعه raid اضافه مي شود. قابليت هاي اصلي اين  raid افزونگي و برگرداندن اطلاعات loss شده مي باشد. اين  raid اطلاعات را در بلوكهاي اطلاعاتي پخش مي كند در اين raid دو بلوك parity وجود دارد و اين parity ها بر روي تمامي ديسكهاي اين مجموعه raid پخش مي شوند. ساختار اين raid در موارد خواندن بصورت معمولي مي باشد ولي در موارد نوشتن سرعت بسيار پايين است بدليل اينكه تنجام محاسبات مربوط به parity وقت گير است و بعضي از مواقع با ترافيك بالا همراه مي باشد.

البته بايد به اين نكته توجه بكنيم كه تعاريف مختلفي از raid در نزد توليدكنندگان مختلف اين قطعه سخت افزاري وجود دارد كه اين تعاريف تاثير بسزايي در كاركرد آن دارد. مباحثي مانند معماري سخت افزاري، نرم افزاري و سفت افزاري آن كنترلر سخت افزاري كه قرار است قابليت raid6 را در سيستم فعال كند. براي پيكربندي اين raid حداقل به 4 ديسك سخت افزاري نياز داريم. تحمل خطاي اين raid دو ديسك مي باشد يعني اگر دو عدد از ديسكهاي اين مجموعه raid بطور همزمان بسوزند اطلاعات ما از بين نخواهد رفت. سازندگتن كنترلرهاي سخت افزاري معتقدند كه نقاط ضعف raid محبوب 5 در اين raid بصورت كامل برطرف شده است ولي بايد بدانين كه اين raid نيز معايب خاص خود را دارد. از معايب اصلي لين raid مي توان به موارد ذيل اشاره كرد:

  1. استفاده از مدار كنترلي بسيار پيچيده
  2. سيكل نوشتن بسيار كند بدليل انجام دوباره محاسبات مربوط به parity
  3. مقرون به صرفه نبودن پيكربندي اين raid با توجه به فرمول N+2

Raid 10

Raid0+1 يا همان 10 تكيبي از raidهاي 0 و 1 مي باشد كه در يك پيكربندي raid به عنوان  يك raid مستقل عمل مي كند. داده هاي ما بصورت پخشي بر روي  مجموعه ديسكهاي mirror شده قرار مي گيرند در مقايسه با raid5 كه در آن هزينه پايين و تحمل خطا مدنظر قرار مي گيرد. اين raid از تعداد هارد ديسكهاي بيشتري براي stripe كردن استفاده مي كند كه باعث افزايش سرعت و كارايي raid مي شود علاوه براين raid با كپي كردن اطلاعات روي هاردهاي stripe شده افزونگي را بوجود مي آورد. در اين مجموعه raid هر ديسكي مي تواند در اين مجموعه raid خراب شود و اطلاعات ما از بين نخواهد رفت در حالتي كه دو مجموعه raid1 ما سالم باشند اطلاعات ما حفظ خواهد شد اگر در هر يكي از mirrorها يك هارد بصورت همزمان خراب شود نيز اطلاعات ما از بين نخواهد رفت. ديسكهاي mirror  شده نقاط ضعفي مانند تأخير زماني و ترافيك حجم بالا را از بين خواهد برد. اين raid يك حجم انتقال داده خوبي را ارائه مي دهد و همچنين موجب بالا بردن سرعت دسترسي به اطلاعات آن raidمي شود.(read)

نكته ديگر اينجاست كه اين raid در موارد rebuild ديسك نيز خيلي بهتر از raid هايي كه با مبناي parity مي باشند كار مي كند بدليل اينكه نيازي به توليد دوباره اطلاعات parity وجود ندارد و در عوض از يك ديسك mirror شده به ديسك ديگر كپي مي شود.

 

اين raid حداقل به 4 ديسك نياز دارد و عمل تكه تكه كردن بلوكهاي اطلاعاتي نيز همانند raid1 مي باشد. از نقاط قوت اين raid مي توان به نرخ انتقال داده بالا و امكان تحمل خرابي 2 هارد در شرايط معين مي باشد.

معايب اصلي اين raid به شرح ذيل است:

  1. بسيار گرانقيمت (در حالتي كه بخواهيم از اين raid براي تعميم فضاي 200GB باشيم به 4 عدد هارد 100GB نياز خواهيم داشت.)
  2. در اين حالت از RAID منبع تغذيه سيستم حتما بايد به UPS وصل باشد.

Raid 50

اين raid كه آن را raid 0+5 نيز مي نامند تركيبي از raidهاي استاندارد 0 و 5 مي باشد. كه از دو مجموعه ديسك با raid5 كار مي كند. اين raid كه براي پيكربندي به 5 عدد ديسك سخت افزاري نياز دارد يكي از raidهاي معمول در بحث storage ها مي باشد.

اين raid مي توان خرابي يك ديسك بر روي هركدام از مجموعه raid هاي 5 را مي توان تحمل كند. يعني اگر در هر كدام از مجموعه هاي raid 5 يكي از هاردها بسوزند به اطلاعات كل raid آسيبي وارد نمي شود. اين raid معمولا با افزايش ديسك در تحهيزات ذخيره سازي ضريب از دست رفتن اطلاعات را پايين مي آورد. اين raid در مقايسه با raid 5 سرعت write  بالاتري دارد فقط در حالتي كه يكي از ديسكهاي raid خراب مي شود و يا در حالت rebuild مي باشد يك كاهش سرعت محسوس در كارايي و در دسترسي اطلاعات بوجود مي آيد در اين موارد دسترسي به برنامه هاي سيستم و حتي سرعت انتقال داده نيز پايين مي آيد.

 

Raid 60

اين raid تركيبي از raid هاي 0 كه بصورت stripe و raid6 كه دوبار parity را پخش مي كند مي باشد. اين raid در واقع raid0 با عناصر  raid6 مي باشد. در اين raid اطلاعات و parity هاي مان بر روي آرايه هاي raid 6 بصورت stripe پخش خواهد شد . درخواستهاي خواندن مي توانند بصورت همزمان بر روي هر كدام از ديسكهاي آرايه اتفاق بيفتد. براي پيكربندي اين raid به حداقل 8 عدد هارد ديسك نيازمنديم.

مزايا:

  • امكان ايحاد يك گروه raid با بيشترين تعداد هارد (از لحاظ تئوري 256 ديسك)
  • ضريب تحمل خطاي بسيار بالا بخاطر انجام 2 بار محاسبات parity در raidهاي 6
  • سرعت متوسط به بالا در نوشتن اطلاعات

معايب:

  • پيچيده ترين raid از لحاظ اجرا
  • ارائه فضاي مفيد بسيار كمتر از raid 6 بخاطر اينكه در اين raidعمليات parity در داخل مجموعه هاي raid6 بصورت كاملا مستقل انجام مي شود.
  • پايين بودن سرعت برگردانده parity در حالتهاي خرابي يك هارد و يا تعويض هارد.

 

موارد استفاده انواع Raid

در انتخاب مناسبترين raid  نوع application بيشترين تاثير را دارد از اينرو با توجه به application و يا applicationهايي كه قصد داريم برروي سرور خود راه اندازي كنيم نوع raid خود را انتخاب كرده و مي بنديم. در ذيل مي توانيد كاربردهاي عمومي levelهاي مختلف را ببينيد:

Raid 0 (striping)

در هر نرم افزاري كه بالاترين سرعت فضاي ذخيره سازي را نياز داشته باشند مورد استفاده قرار مي گيرد و دقيقا جايي كه ما نيازي به redundancy نداريم.  اجراي فايلهاي فتوشاپ از نمونه كاربردهاي اين raid مي باشد:

  • ايستگاه هاي كاري قدرتمند جهت توليد
  • ميكس و پردازش تصاوير ويديويي (ميكس و مونتاژ)
  • واژه پردازي (نرم افزارهاي تايپ و . . . )
  • Log برداري از ديتا

Raid 1 (Mirroring)

نرم افزارهايي كه به redundancy و سرعت نوشتن رندم بالايي دارند بكار مي رود. پركاربردترين موارد استفاده اين raid در سيستم هاي small و يا entry-model مي باشد كه از اين نمونه به pc-server هاي شخصي مي توان اشاره كرد.

Raid 5

اين raid بيشتر در سرورهاي application و سرورهاي فايل مورد استفاده قرار مي گيرد يكي از پركاربردترين موارد استفاده از اين raid استفاده در سرورهاي بانك اطلاعاتي ISP ها مي باشد.

  • سرورهاي بانك اطلاعاتي
  • سرورهاي فايل و ايميل
  • سرويسهاي اينترانت

Raid 6

  • نگهداري اطلاعات سازمانها
  • گرفتن نسخه پشتيبان ديسك به ديسك
  • پشتيبان گيري از اطلاعات ثابت و يا آرشيوي

Raid 10

اين raid در application سرورها و نيز در سرورهاي بانك اطلاعاتي كه به transaction بالايي نياز دارند بكار مي رود.

Raid 50

  • مورد استفاده در application سرورها
  • نرم افزارهاي اداري كه با ساختار فايلهاي كوچك كار مي كنند
  • جاهايي كه به ظرفيت بالاي ذخيره سازي نياز داريم
  • پردازش هايي با transaction بالا

Raid 60

  • سيستم هاي حسابداري و مالي
  • بكاپ گيري از كل اطلاعات ديتا سنترها
  • جاهايي كه به فضاي ذخيره سازي نياز داريم

ILO (Integrated Light- Out)

شركت HP سيستمي هوشمند براي كنترل كامل سرور از راه دور طراحي كرده است كه ساختار اين كنترل كننده بصوت يك chipset مستقل از كاركرد سرور و سرويسهاي آن مي باشد و براي دسترسي به اين سيستم، نيازي به نصب سرويس و يا نرم افزار نداريم.

از طريق مرورگر خود مي توانيد از همه نقاط به اين سرور وصل شده و آن را كنترل و مديريت كنيد قابليت ILO كه با قابليت RSA (Remote Supervisor Adapter) در IBM كه بصورت كارت افزونه بر روي سرور اضافه مي شود برابر مي باشد يك ساختار حرفه اي در سرورهاي Proliant و Integrity شركت HP معرفي مي كند كه بصورت پيش فرض بر روي مادر برد سرورهاي اين خانواده تعبيه شده است و به مديريت شبكه IT كمك مي كند.