RAID که مخفف عبارت redundant array of independent disks می باشد، روشی برای ذخیره دادههای مشابه در مکانهای مختلف روی چندین هارد دیسک است که برای محافظت از دادهها در صورت خرابی درایو در نظر گرفته شده است و همان طور که از نام آن مشخص است آرایه ای از دیسک ها هستند که به صورت مجزا و جداگانه کار می کنند ولی داده ها را به صورت تکراری ذخیره می کنند.
RAID چگونه کار می کند؟
RAID، با قرار دادن داده ها بر روی چند دیسک به صورت تکراری ، کار می کند. این کار باعث می شود که عملیات ورودی/خروجی (I/O) به صورت متعادل بر روی همه ی دیسک ها پخش شود و عملکرد را بهبود بخشد. از آن جایی که استفاده از چندین دیسک باعث می شود در صورت خرابی یک دیسک داده ها از بین نرود، پس ذخیره ی داده ها به کمک RAID تحمل خطا (fault tolerance) را افزایش می دهد.
آرایه دیسک های RAID برای سیستم عامل (OS) به عنوان یک درایو دیسک تکی دیده می شود و چند تایی بودن آن از دید سیستم عامل مخفی است.
RAID دو تکنولوژی را برای پیشبرد هدف خود استفاده می کند:
- Disk mirroring: تکنیک کپی کردن و تکرار یک داده یا محتوای یک دیسک بر روی درایو دیسک های دیگر به طوری که دیسک های دیگر کاملا بتوانند داده های دیسک مبدا را در خود داشته باشند.
- Disk striping: تکنیک تقسیم بندی داده ها به صورت متوالی، مانند یک فایل، به طوری که بخش های متوالی آن داده در دیسک های مختلف ذخیره می شوند.
Disk Mirroring و Disk striping را نیز می توان در یک RAID ترکیب کرد.
در stripping فضای ذخیره سازی هر درایو به واحدهایی از یک بخش 512 بایت تا چند مگابایت تقسیم می شود. نوارهای همه ی دیسک ها به ترتیب در کنار هم قرار گرفته و آدرس دهی می شوند.
در سیستم تک کاربره ای که رکوردهای بزرگ ذخیره میشوند، نوارها معمولا کوچک (مثلا 512 بایت) تنظیم میشوند به طوری که یک رکورد واحد، همه ی دیسک ها را در بر میگیرد و می توان با خواندن همه ی دیسک ها به سرعت به آن دسترسی پیدا کرد.
در یک سیستم چند کاربره، برای عملکرد بهتر نیاز به یک نوار به اندازه کافی پهن دارد تا رکورد را نگه دارد و ورودی/خروجی دیسک را در بین درایوها فعال کند.
کنترل کننده ی RAID
کنترلر RAID دستگاهی برای مدیریت درایوهای دیسک است که در یک آرایه ی RAID استفاده می شوند. از این کنترلر به عنوان سطحی از انتزاع بین سیستم عامل و دیسک های فیزیکی استفاده می شود.
یک کنترلر RAID ممکن است مبتنی بر سخت افزار یا نرم افزار باشد. یک محصول RAID مبتنی بر سخت افزار، یک کنترل کننده ی فیزیکی است که کل آرایه ی دیسک ها را مدیریت می کند. یک کنترلر RAID فیزیکی می تواند در مادربرد نیز تعبیه شود.
با کنترلر RAID مبتنی بر نرم افزار، کنترل کننده از منابع سیستم سخت افزاری مانند پردازنده ی مرکزی و حافظه استفاده می کند. در حالی که عملکردهای مشابه کنترلرهای RAID مبتنی بر سختافزار را انجام میدهد، کنترل کننده های RAID مبتنی بر نرمافزار، ممکن است عملکرد را افزایش ندهند و بر عملکرد سایر برنامه های کاربردی روی سرور تاثیر بگذارند.
نوع دیگری از کنترل کننده ها hardware-assisted software RAID هستند . در این حالت تراشه های کنترل کننده RAID بر روی مادربرد قرار دارند و کلیه عملیات ها توسط واحد پردازش مرکزی (CPU) انجام می شود که بسیار مشابه RAID مبتنی بر نرم افزار می باشند. با این تفاوت که در این حالت، سیستم RAID فقط در ابتدای فرآیند بوت اجرا می شود. هنگامی که سیستم عامل بارگذاری شد، درایور کنترلر عملکرد RAID را بر عهده می گیرد. این تراشه های کنترل کننده ی RAID به اندازه یک حالت سخت افزاری کنترلر ها گران نیست، اما فشار بیشتری به CPU کامپیوتر وارد می کند.
سطح های RAID
دستگاه های RAID در نسخه های مختلفی قرار دارند که سطوح RAID نامیده می شوند. در ابتدا، شش سطح از RAID تعریف شده که سطح 0 تا 5 شماره گذاری شد، ولی در ادامه تعداد سطوح RAID گسترش یافته و به سه دسته تقسیم شده است:
- استاندارد
- تو در تو
- غیر استاندارد
در این مقاله به معرفی سطوح استاندارد می پردازیم.
RAID 0
این پیکربندی دارای striping (که در بالا توضیح داده شد) است اما داده ها را به صورت تکراری ذخیره نمی کند. بهترین عملکرد را ارائه می دهد، اما تحمل خطا را بالا نمی برد و ممکن است در اثر اتفافی، داده ها از بین برود چون هیچ نسخه ی پشتیبانی از داده، در دیسک دیگر نداریم.
RAID 1
این پیکربندی که به عنوان تکرار دیسک ها یا Mirroring نیز شناخته می شود، حداقل از دو درایو تشکیل شده است که داده ها در آن دو کپی می شوند و در این حالت دیگر Striping وجود ندارد. عملکرد خواندن بهبود یافته است، زیرا هر دیسک را می توان همزمان خواند. هر چند عملکرد آن در نوشتن بر روی دیسک مانند ذخیره سازی در تک دیسک است و بهبودی حاصل نشده است.
RAID 2
این پیکربندی از striping در بین دیسک ها استفاده می کند که در آن برخی از دیسک ها، اطلاعات مربوط به بررسی و تصحیح خطا (ECC) را ذخیره می کنند که به آن دیسک های parity گفته می شود.
در علم ذخیره سازی داده ها، parity یا افزونه یا توازن، تکنیکی است برای بررسی اینکه اطلاعات و داده ها در طول زمان یا جابجایی از مکانی در حافظه بین کامپیوترها، دچار تغییر و خطا شده است یا خیر.
در سطوح دیگر RAID نیز از این دیسک های Parity استفاده می شود.
RAID 2 از Hamming code parity برای تشخیص خطا استفاده می کند.
RAID 2 هیچ مزیتی نسبت به RAID 3 ندارد و دیگر از آن استفاده نمی شود.
RAID 3
این تکنیک از striping استفاده می کند و یک درایو را به ذخیره ی اطلاعات parity اختصاص می دهد و از ECC تعبیه شده برای تشخیص خطاها استفاده می شود. بازیابی اطلاعات با محاسبه ی اطلاعات ثبت شده در درایوهای دیگر انجام می شود. از آن جا که یک عملیات I/O به تمام درایوها به طور همزمان انجام می شود، RAID 3 نمی تواند I/O را با هم بر روی همه ی درایو ها به صورت همزمان انجام دهد. به همین دلیل، RAID 3 فقط برای سیستم های تک کاربره با ذخیره سازی زیاد مناسب است.
RAID 4
این پیکره بندی، از نوارهای (stripes) بزرگ استفاده می کند، به این معنی که کاربر می تواند رکوردها را از یک درایو واحد بخواند و تفاوت اصلی آن با سطح 3 همین می باشد. همچنین می توان به صورت همزمان I/O را بر روی همه ی درایوهای دیسک برای عملیات خواندن استفاده کرد. ولی از آن جا که تمام عملیات نوشتن برای به روز رسانی درایو parity مورد نیاز است، هیچ همزمانی در I/O امکان پذیر نیست.
RAID 5
در این سطح،نیازمندی parity به صورت بلوک های داده ای در همه ی درایو ها وجود دارد و دیگر مختص به یک درایو نیست. همانطور که در شکل زیر می بینید بلوک های parity در همه ی درایو ها وجود دارد و این RAID قادر می سازد حتی اگر یکی از درایوها از کار بیفتد، در بازیابی داده ها مشکلی ایجاد نشود و در واقع تحمل خطا بالا تر رود. این پیکره بندی باعث شده عملیات خواندن و نوشتن به صورت همزمان چندین درایو را درگیر کند که این نتیجه عملکرد بهتری نسبت به یک درایو parity دارد.
RAID 5به حداقل سه دیسک نیاز دارد، اما اغلب توصیه می شود از حداقل پنج دیسک برای افزایش عملکرد استفاده شود.
RAID 6
این تکنیک مشابه RAID 5 است، اما شامل دو قسمت parity برای هر بلوک داده است که در بین درایوهای توزیع شده است. استفاده از parity اضافی عملکرد را بالاتر می برد حتی اگر دو دیسک به طور همزمان از کار بیفتند. با این حال، این حفاظت اضافی، هزینه بر است و برای مثال باعث می شود نوشتن کندتری نسبت به RAID 5 اتفاق بیافتد.
در این مقاله به معرفی RAID و سطوح استاندارد آن پرداختیم . در مقالهی بعد به انواع دیگر RAID و همچنین کارکرد آنها می پردازیم .