images
images

آشنایی با RAID و مفاهیم آن

RAID مخفف کلمات Redundant Array of Inexpensive disks یا آرایه ای افزونه از دیسک های ارزان بوده است. اما امروز این کلمه اشاره ای است به  Redundant Array of Independent drives یا آرایه ای افزونه از دیسک های مستقل که در واقع دسته ای از دیسک هایی هستند که در یک pool و به عنوان Logical volume  فعالیت می کنند.

 

RAID
RAID

برای داشتن RAID Drive  در ساده ترین نوع آن به حداقل دو دیسک نیاز است. در لحظه فقط یکی از RAID Level  ها را میتوان بر گروهی از دیسک ها اعمال نمود. هر RAID Level  میتواند به نوعی در افزایش Performance، افزایش میزان امنیت داده ها، Fault tolerance و High availability تاثیر داشته باشند.

Software RAID and Hardware RAID

RAID  نرم افزاری و سخت افزاری

RAID نرم افزاری دارای Performance  کمتری نسبت به نوع سخت افزای آن خواهد بود چرا که نیاز خود به منابع را از منابع Host  یا میزبان تامین خواهد کرد و وابسته به سیستم عامل است. یعنی ابتدا سیستم عامل باید بوت شود، سپس RAID کنترلر نرم افزاری لود شود تا امکان دسترسی به داده ها فراهم شود. اما مزیت آن عدم نیاز به صرف هزینه برای تهیه سخت افزار جداگانه است.

RAID سخت افزاری دارای  Performance  به مراتب بیشتری نسبت به RAID نزم افزاری است. چرا که از منابع سیستم میزبان استفاده نمی نماید و از NVRAM جهت کش کردن داده های خوانده شده و نوشته شده استفاده می کند. به لطف وجود باتری در این نوع رید ها حتی در هنگام بروز قطعی برق، امکان ذخیره سازی داده های درون کش نیز فراهم است. دارای هزینه بالاتری نسبت به RAID نرم افزاری است ولی جهت استفاده در محیط های بزرگ و مهم مانند مراکز داده کاربردی تر هستند.

نمونه ای از RAID  سخت افزاری را میتوانید در تصویر زیر مشاهده کنید.

 

Hardware-RAID
Hardware-RAID

 

مفاهیم اصلی RAID

  1. Parity: روشی است که بازگشت اطلاعات و بازیابی آنها را گارانتی می کند. رید های 5 و 6 بر پایه این روش ایجاد شده اند.
  2. Stripe: تقسیم تصادفی داده ها بر روی دیسک ها می باشد. بدین صورت که کل داده ها بر روی یک دیسک ذخیره نمی شود  اگر از دو دیسک استفاده کرده باشیم نصف داده های ما بر روی یک دیسک و نصف دیگر آن بر روی دیسکی دیگر ذخیره می شود.
  3. Mirroring: در رید های 1 و 10 مورد استفاده قرار میگیرد. در این روش یک کپی از داده های یک دیسک بر روی یک دیسک دیگر نگه داری خواهد شد.
  4. Hot Spare: دیسکی است که به عنوان دیسک ذخیره در سیستم نگهداری میگردد تا به صورت خودکار با دیسک دارای مشکل جایگزین شود. اگر دیسکی دچار مشکل شود، دیسک Hot spare  جایگزین آن شده و داده های دیسک fail  شده در آن بازسازی خواهد شد.
  5. chunks: سایز داده های روی دیسک است که از حداقل 4KB شروع میشود و میتواند مقادیری بیشتر نیز داشته باشد. تعیین میزان chunk size  میتواند به بهبود وضعیت I/O  نیز کمک کند.

RAID Level های مختلف:

رید دارای level  های مختلفی است که پنج level  مورد استفاده در محیط های واقعی به شرخ زیر است که در ادامه توضیح بیشتری از عملکرد هر کدام ارائه خواهیم کرد.

  1. RAID0 = Striping
  2. RAID1 = Mirroring
  3. RAID5 = Single Disk Distributed Parity
  4. RAID6 = Double Disk Distributed Parity
  5. RAID10 = Combine of Mirror & Stripe. (Nested RAID)

RAID 0 (یا) Striping

این level دارای performance بسیار خوبی می باشد. در این روش داده ها بر دوی دیسک با متد اشتراکی نوشته می شوند. یعنی نصف داده ها بر روی یک دیسک و نصف دیگ بر روی دیسک دیگر نوشته می شوند.

فرض کنید ما دو دیسک با RAID Level 0  داریم و قصد داریم آرایه ای (string) مانند maaleki رو بر روی آن ذخیره کنیم. پس m بر روی دیسک اول و a  بر روی دیسک دوم و a دوم مجددا بر روی دیسک اول ذخیره خواهد شد. این شکل توزیع داده ها به صورت round-robin  تا اتمام آرایه ادامه پیدا خواهد کرد.

RAID 0 Shared Method

ایراد این روش این است که اگر یکی ار دیسک ها به هر دلیلی fail شود ما داده ها خود را از دست خواهیم داد. چرا که با استفاده از نصف داده های موجود امکان باز سازی کل داده ها وجود نخواهد داشت. در واقع داده های موجود بر روی دیسک دوم عملا داده هایی بلا استفاده خواهند بود. اما از نظر سرعت نوشتن داده ها بر روی دیسک و همچین Performance این Level بسیار عالی است. برای ایجاد level 0 حداقل به دو دیسک نیاز خواهد بود. توجه داشته باشید که برای داده های با ارزش خود از این level  استفاده نکنید.

خصوصیت های این Level  به صورت خلاصه به شرح زیر است.

  1.  Performance  بالا
  2. استفاده از کل ظرفیت دیسک ها
  3. عدم وجود fault tolerance
  4. Performance خوب در نوشتن و خواندن داده ها از روی دیسک ها

RAID 1 (یا) Mirroring

این Level دارای performance  خوبی است و میتواند یک کپی از از داده های موجود را نگه داری نماید. تصور کنید ما دو دیسک هر کدام با ظرفیت یک ترابایت داریم. در مجموع ما دارای دو ترابایت ظرفیت هستیم اما در Level 1 ما تنها از یک ترابایت از ظرفیت موجود برای نوشتن داده می توانیم استفاده نمایئم و یک ترابایت باقی مانده برای نگه داری یک نسخه از داده های ذخیره شده در دیسک اول مورد استفاه قرار می گیرد.

در این روش وقتی دیسکی fail شود،داده ای نیز از دست نخواهد رفت چرا  که کپی ای از داده ها در دیسکی دیگر موجود است و با جایگزین کردن دیسک معیوب میتوان داده ها را از دیسک دیگر در دیسک جایگزین کپی کرد.

خصوصیات این روش به شرح زیر است.

  1. Performance  بالا
  2. Fault tolerance کامل
  3. عدم امکان استفاده از ظرفیت تمام دیسک ها ( نصف ظرفیت برای نگه داری کپی داده ها مصرف می شود )
  4. بازسازی داده ها در دیسک جایگزین با سرعت خوبی انجام میگیرد.
  5. سرعت نوشتن داده ها کند تر خواهد شد.
  6. سرعت خوب در خواندن اطلاعات
  7. امکان استفاده برای سیستم های عامل و دیتابیس هایی در وسعت کم.

Raid 1

RAID 5 (یا) Distributed Parity

این Level دارای گسترده استفاده زیادی خصوصا در مpیط ها enterprise  است. در این روش از توزیع parity  استفاده می شود از parity  برای باز سازی اطلاعات استفاده خواهد شد. در واقع با استفاده از اطلاعات باقی مانده بر روی سایر دیسک های سالم توان داده های دیسک fail شده را بازسازی کرد.

تصور کنید چهار دیسک 1 ترابایتی داریم و از RAID 5  برای ایجاد یک Array  استفاد شده باشد. در این روش اطلاعات parity در هر چهار دیسک ذخیره خواهد شد. فضای مورد استفاده برای parity  برای هر دیسک برابر با 256 مگابایت خواهد بود و از باقی فضا به میزان 750 مگابایت برای دخیره داده ها استفاده خواهد شد. در RAID 5  در صورت fail شدن یک دیسک داده ای از بین نخواهد رفت و با جایگزینی دیسک جدید با استفاده از داده های parity موجود بر سایر دیسک ها داده های آن نیز بازسازی خواهد شد اما اگر دو دیسک در این  Level  دچار مشکل شوند کل داده ها از بین خواهند رفت.

خلاصه خصوصیت های این level  به شرح زیر است:

  1. Performance  بسیار بالا
  2. سرعت بسیار بالا در خواندن اطلاعات
  3. سرعت متوسط در نوشتن داده ها ( اگر از کنتلر سخت افزاری استفاده نشود سرعت نوشتن بسیار کند خواهد شد)
  4. امکان بازسازی اطلاعات از طریق Parity  موجود بر روی سایر دیسک ها
  5. Fault tolerance  کامل
  6. عملا فضای قابل استفاده در این روش برابر با n-1 خواهد بود
  7. برای محیط هایی مانند فایل سرور ها، وب سرور ها و backup storage  ها مناسب خواهد بود.

RAID 5

RAID 6 Two Parity Distributed Disk

Level 6 همانند Level 5 می باشد با این تفاوت که به جای یک parity از دو parity  استفاده خواهد شد. برای این روش حداقل 4 دیسک نیاز است. حتی اگر دو دیسک در این Level  دچار مشکل شوند، با جایگزین کردن دیسک های جدید و استفاده از parity  های موجود میتوان داده ها را بازسازی کرد.

این روش هم همانند Level 5 در صورتی که از RAID Controller  سخت افزاری استفاده نشود دارای سرعت بسیار پائینی خواهد بود. اما در کل این روش از Level 5 دارای سرعت پائین تری است چرا که داده ها می بایست روی چهار دیسک ذخیره گردد.

تصور کنید که 6 دیسک 1 ترابایتی داریم در نهایت با ایجاد RAID 6  ظریفیت چهار دیسک برای ذخیره داده ها مورد استفاده قرار خواهد گرفت و ظرفیت دو دیسک برای ذخیره parity استفاده خواهد شد.

خلاصه خصوصیات این روش به شرح زیر می باشد.

  1. Performance پائین ( تقریبا 30 درصد کمتر از RAID 5)
  2. سرعت خوب در خواندن اطلاعات
  3. سرعت پائین در نوشتن اطلاعات در صورت عدم استفاده از کنترلر سخت افزاری
  4. امکان باز سازی اطلاعات با استفاده از دو parity
  5. fault tolerance  کامل
  6. ظرفیت نهایی در RAID 6 برابر با n-2 می باشد.
  7. در array های با تعداد بالای دیسک قابل استفاده خواهد بود.
  8. قابل استفاده برای backup، video streaming و در محیط هایی با وسعت زیاد.

RAID 6

RAID 10 (یا) Mirror & Stripe

RAID 10  که با نام RAID 1+0  هم شناخته می شود، تلفیقی از Level های 1 و 0 می باشد. در این روش ابتدا از روش  mirror سپس از روش stripe  استفاده می شود.

به عنوان نمونه تصور کنید 4 عدد دیسک داریم و با Level 10 ارایه ای از آنها ایجاد کرده ایم.

ازنظر منطقی داده ها بین دو دیسک به صورت round-robin تقسیم خواهد شد. ابتدا قسمتی از داده بر روی یک دیسک و mirror آن نوشته میشود. (در شکل زیر  اول با استفاده از  Mirror ابتدا A1 بر روی دیسک 0 و دیسک 1 نوشته می شود) سپس قسمت دوم اطلاعات با استفاده از stripe  بر روی دیسک دوم نوشته می شود. ( A2 در دیسک 2 و mirror  آن در دیسک 3). این عملیات برای نوشتن کل اطلاعات بر روی دیسک ادامه خواهد داشت.

raid10

  1. خلاصه خصوصیت های این روش به شرح زیر است:
  2. سرعت خوب در خواندن و نوشتن
  3. از کل ظرفیت فقط نصف آن برای نوشتن داده ها قابل استفاده خواهد بود.
  4. وجود Fault tolerance
  5. بازسازی سریع داده های دارای مشکل با توجه به وجود کپی ای از دیتای هر دیسک
  6. قابل استفاده برای دیتابیس جهت اطمینان از performance  بالا  و availability

در این پست ما مفاهیم اولیه RAID  را به همراه هم مرور کردیم و با Level های پر کاربرد آن را آشنا شدیم. امیدوارم مفید واقع شده باشد. در پست های بعدی سعی میکنم به نحوه پیکربندی level های مختلف RAID بپردازیم.

حامد
اشتراک دانش رو دوست دارم برای همین سعی میکنم مطالب آموزشی ای تهیه شده دارای جزئیات خوب و به صورت کامل تهیه بشوند.استفاده از مطالب این سایت در هر جایی بلا مانع می باشد. اما ذکر منبع رفتاری حرفه ای و اخلاقی خواهد بود. من را از نظرات خود مطلع سازید. و اگر میخواهید در مورد من بیشتر بدانید سری به صفحه "در باره من" بزنید.