آساپردازش: کلمه RAID اولین بار در سال 1987 توسط David Patterson، Randy Katz و Garth A. Gibson مطرح شد. در گزارش تکنیکی که در سال 1988 با نام آرایه چندگانه دیسک‌های مستقل (Redundant Array of Independent Disk) یا RAID توسط هر سه شخص مذکور منتشر شد اعلام شد که آرایه‌ای از دیسک‌های نه چندان گران می‌توانند از لحاظ عملکرد بسیار بهتر از دیسک‌های موجود در آن زمان عمل کنند. همچنین با استفاده از تکنولوژی RAID می‌توانید به ضریب اعتماد بالاتری دست پیدا کنید.

در حالی که این گزارش اولین جایی بود که این مفهوم را به دنیا معرفی کرد اما استفاده عملی مدت‌ها قبل مورد بحث‌های فراوانی قرار گرفته بود. Gus German و Ted Grunau از شرکت Geac Computer Corp اولین بار این ایده را به نام MF-100 معرفی کردند. Norman Ken Ouchi از IBM نیز تکنولوژی مشابه را در سال 1977 ثبت اختراع کرده بود که امروزه از آن با نام RAID 4 یاد می‌شود. در سال 1983 نیز Digital Equipment Corp درایو‌هایی را به بازار عرضه کرد که با نام RAID 1 شناخته می‌شوند. در سال 1986 نیز IBM ثبت اختراخ RAID 5 را انجام داد. Patterson، Katz و Gibson نیز با توجه به کار‌های انجام شده در واقع کلمه RAID را تعریف کردند. در واقع گزارشی که در سال 1988 منتشر شد نام‌گذاری روی تکنولوژی‌هایی بود که قبل از آن نیز مورد استفاده قرار می‌گرفتند. این گزارش کمک کرد تا مفهوم این تکنولوژی با کلمه RAID شناخته شود و در نهایت شاهد رشد این تکنولوژی در بازار بودیم.

تکنولوژی RAID چگونه کار می‌کند؟

تکنولوژی RAID در واقع با استفاده از چند دیسک مختفل برای ذخیره‌سازی اطلاعات کار می‌کند. در ادامه نیز به دستگاه‌های ورودی و خروجی اجازه داده می‌شود تا عملیات خود را به صورت همزمان و متعادل انجام داده که در نهایت باعث افزایش عملکرد می‌شود. سیستم عامل‌ها در واقع آرایه‌های RAID را تنها به شکل یک درایو فیزیکی مشاهده می‌کنند. RAID در واقع از تکنیک Disk Mirroring یا Disk Striping استفاده می‌کند. با استفاده از این تکنیک یک کپی کاملا مشابه از فایل مورد نظر روی یک یا چند دیسک دیگر نیز به صورت همزمان ذخیره می‌شوند. در تکنیک Disk Striping هر Stripe در دیسک‌های مختلف می‌تواند حجم مختلفی داشته باشند که از 512 کیلوبایت آغاز شده و امکان استفاده از چندین مگابایت نیز وجود دارد. هر Stripe شامل آدرس مشخص است. در سیستم تک کاربری که رکورد‌های حجیم مانند عکس‌های علمی و یا فایل‌های پزشکی در آن ذخیره می‌شوند هر Stripe بسیار کوچک (مثل 512 کیلوبایت) خواهد بود پس دسترسی به آن به صورت همزمان روی تمامی دیسک‌ها بسیار سریع خواهد بود. در سیستمی که چندین کاربر دارد بهتر است که برای رسیدن به عمکلرد بی نقص اندازه هر Stripe به اندازه کافی و یا حتی بالاترین سطح ممکن باشد. اینکار باعث می‌شود تا استفاده همزمان از دیسک‌ها از دستگاه‌های ورودی/خروجی به راحتی انجام بگیرد. در تکنیک Disk Mirroring نیز داده به صورت کامل در هارد دیسک دوم ذخیره می‌شود. تکنیک‌های Disk Mirroring و Disk Striping به خصوص در RAID 01 و RAID 10 مورد استفاده قرار می‌گیرند.

کنترلر RAID

کنترلر RAID می‌توان سطحی از مفهوم انتزاعی بین سیستم عامل و دیسک‌های فیزیکی باشند. این کنترلر تعدادی از دیسک‌ها را به عنوان یک دیسک منطقی به سیستم عامل معرفی می‌کند. استفاده از کنترلر RAID می‌تواند عملکرد را بهبود داده و از داده‌ها در مقابل مشکلات احتمالی در صورت به وجود آمدن Crash محافظت کند. استفاده از کنترلر RAID به صورت سخت‌افزاری و نرم‌افزاری امکان‌پذیر است. کنترلر‌های سخت‌افزاری معمولا به صورت یک کارت PCI به کامپیوتر متصل می‌شوند. این نوع از کنترلر‌ها به گونه‌ای طراحی شدند که از اتصالات SATA و SCSI پشتیبانی کنند. این کنترلر می‌تواند حتی جزئی از طراحی مادربرد باشد. در سمت مقابل کنترلر‌های نرم‌افزاری از منابع سخت‌افزاری سیستم برای انجام کار خود استفاده می‌کند. حالت کلی انجام وظایف این کنترلر کاملا شبیه به حالت سخت‌افزاری است البته شاید با استفاده از آن شاهد افزایش عملکرد نباشید. نوع نرم‌افزاری در حال بارگزاری سیستم عامل قابل استفاده نیست و در سمت مقابل نوع سخت‌افزاری نیز هزینه بسیار زیادی را برای کاربر در پی دارد. استفاده از نوع فریمور نیز می‌تواند نوع دیگری باشد. در مدل فریمور، کنترلر RAID با استفاده از یک چیپ روی مادربرد قرار خواهد گرفت و همه عملیات تحت نظر CPU انجام خواهد شد که شباهت زیادی به مدل نرم‌افزاری دارد. گرچه با استفاده از فریمور سیستم RAID در حالت بوت کار خود را آغاز می‌کند اما تنها وقتی کنترلر درایو‌های RAID را به کار خواهد گرفت که سیستم عامل به صورت کامل بالا آمده باشد. استفاده از نوع فریمور در مقایسه با نوع سخت‌افزاری هزینه زیادی را در بر ندارد اما پردازنده اصلی کامپیوتر را تحت فشار می‌گذارد. از مدل فریمور با نام‌های دیگری مثل Hardware-assisted Software RAID، مدل ترکیبی RAID و یا RAID تقلبی یاد می‌شود.

سطح RAID

مقاله‌ای که در سال 1988 باعث شد نام RAID به صورت کلی شناخته شده و مورد قبول قرار گیرد این تکنولوژی را در شش سطح یا مدل مختلف دسته بندی کرد. RAID 0 تا RAID 5. این نام‌گذاری مدل‌های مختلف با شماره باعث می‌شد تا تفاوت بین آنها مشخص شده و بدانیم که در هر مدل پراکندگی و افزونگی داده‌ها به چه شکل است. از آن زمان اعداد مشخص کننده سطح RAID دچار تغییرانی شدند و تعدادی نیز به آنها اضافه شده است. البته در حالت کلی RAID به سه دسته Standard، Nested و Non Standard تقسیم می‌شود.

RAID با مدل Standard

RAID 0: این مدل پیکر بندی از تکنیک Striping استفاده می‌کند اما افزونگی داده در آن وجود ندارد. عملکرد این مدل از RAID فوق‌العاده است اما آسیب‌پذیری زیادی در مقابل مشکلات احتمالی دارد.

RAID 1: این مدل از RAID همچنین به نام Disk Mirroring (آینه سازی دیسک) شناخته می‌شود. این مدل از پیکربندی شامل دو دیسک می‌شود که دو مدل مشابه از هر داده را درون خود نگه‌داری می‌کنند. (هر دیسک شامل یک نسخه از داده مورد نظر است که کاملا شبیه به هم خواهند بود.) عملکرد خواندن از روی دیسک بهبود پیدا کرده چون امکان خواندن به صورت همزمان از روی هر دو دیسک وجود دارد. سرعت نوشتن اطلاعات نیز همانند دستگاه‌هایی است که از هارد دیسک‌های تکی استفاده می‌کنند.

RAID 2: در پیکربندی این مدل از تکنیک Striping در تمام دیسک‌ها استفاده می‌شود. در حالی که برخی از دیسک‌ها اطلاعات مربوط به خطا و تصحیح آن (ECC) را ذخیره می‌کنند. این مدل هیچ مزیتی نسبت به RAID 3 ندارد و در حال حاضر تقریبا از رده خارج شده و مورد استفاده قرار نمی‌گیرد.

RAID 3: این مدل نیز از تکنیک Striping استفاده می‌کند اما از یک درایو برای ذخیره‌سازی Parity استفاده می‌کند. این مدل از ECC برای پیدا کردن خطا‌های احتمالی مورد استفاده قرار می‌گیرد. بازیابی فایل‌های پاک شده یا از دست رفته نیز با استفاده از محاسبه آدرس انحصاری OR یا XOR اطلاعات امکان‌پذیر است. به خاطر اینکه دستگاه‌های ورودی/خروجی به صورت همزمان از همه درایو‌ها استفاده می‌کنند امکان همپوشانی ورودی/خروجی در RAID 3 امکان‌پذیر نیست. به همین خاطر RAID برای استفاده در سیستم‌های تک کاربره با رکورد‌های حجیم مناسب هستند.

RIAD 4: در این سطح از Stripeها با حجم بالا استفاده می‌شود. بدیت ترتیب امکان خواندن رکورد‌ها از یک درایو امکان‌پذیر است. در RAID 4 عملیات خواندن از طریق دستگاه‌های ورودی/خروجی به صورت همپوشانی امکان‌پذیر است. در سمت مقابل چون عملیات نوشتن نیاز به به‌روزرسانی درایو Parity دارد امکان همپوشانی در این قسمت وجود ندارد. RAID 4 هیچ برتری نسبت به RAID 5 ندارد.

RAID 5: در این مدل از تکنیک Striping در سطح بلاک استفاده می‌شود و همچنین از Parity نیز در آن وجود دارد. اطلاعات مربوط به Parity در هر درایو به صورت مجزا وجود خواهد داشت. بدین ترتیب امکان کار کردن با آرایه‌های مختلف حتی بعد از به وجود آمدن مشکلاتی خاص برای درایو وجود دارد. با توجه به معماری آرایه ها در RAID 5 امکان خواندن و نوشتن در سطح چند دیسک وجود دارد. نتیجه طراحی خاص این مدل باعث شده است که عملکرد معمولا از مدل‌ها تک درایو بهتر باشد. البته این مقدار به اندازه RAID 0 نیست. برای استفاده از RAID 5 حداقل به سه دیسک نیاز است اما متخصصان پیشنهاد می‌دهند که حداقل از پنج دیسک استفاده شود تا شاهد افزایش عملکرد باشید. استفاده از RAID 5 برای سیستم‌هایی که نیاز به قدرت زیاد در عملیات نوشتن دارند، چندان پیشنهاد نمی‌شود چون سطح عملکرد به خاطر نوشته شدن اطلاعات Parity تحت تاثیر قرار خواهند گرفت. اگر دیسکی در این مدل با مشکل موجه شود مدت زمان زیادی برای بازسازی آن مورد نیاز خواهد بود. در این مدت عملکرد به شدت تحت تاثیر قرار خواهد گرفت و دیسک‌های دیگر نیز در این زمان بسیار حساس خواهند بود تا عملیات بازسازی به صورت کامل انجام شود.

RAID 6: این مدل شباهت زیادی به RAID 5 دارد اما میزان Parity آن دو برابر شده است که در همه درایو‌های آرایه وجود دارد. استفاده از Parity بیشتر این امکان را می‌دهد که اگر حتی دو دیسک نیز از مدار خارج شوند آرایه به صورت کلی کار خود را ادامه دهد. البته این لایه محافظ بیشتر باعث افزایش هزینه نیز شده است. در کنار هزینه بیشتر حتی عملکرد در نوشتن اطلاعات پایین‌تر از RAID 5 است.

RAID با مدل Nested

برخی از مدل‌های RAID با نام Nested RAID شناخته می‌شوند و به نوعی ترکیبی از مدل‌های قبلی هستند.

RAID 10 – RAID 1 +0: این مدل واقع ترکیبی از RAID 1 و RAID 2 است معمولا با نام RAID 10 شناخته می‌شود. این مدل عملکرد بسیار بالاتری نسبت به RAID 1 را ارائه می‌کند اما هزینه آن نیز به مراتب بالاتر است. در این مدل از تکنیک Mirror استفاده می‌شود و همه Mirror‌ها نیز Stripe می‌شوند.

RAID 01 – RAID 0+1: این مدل نیز شباهت زیادی به RAID 10 دارد با این تفاوت که سازمان‌دهی اطلاعات کمی متفاوت است. به جای استفاده از تکنیک Mirror و سپس Stripe کردن آنها، RAID 01 از حالتی برعکس استفاده می‌کند بدین ترتیب که ابتدا از Stripe استفاده شده و سپس آنها Mirror خواهند شد.

RAID 03 – RAID 0+3: این مدل با نام‌های RAID 53 و یا RAID 5+3 نیز شناخته می‌شود از تکنیک Stripe برای بلاک‌های شبیه به مدل RAID 3 استفاده می‌کند. عملکرد در این مدل افزایش چشم‌گیری نسبت به RAID 3 دارد اما هزینه‌ها نیز افزایش چشم‌گیری دارند.

RAID 50 – RAID 5+0: این پیکربندی از Parity استفاده شده در RAID 5 و Stripe در RAID 0 استفاده می‌کند تا عملکرد را بدون کاهش سطح حفاظت از داده‌ها، بهبود دهد.

RAID با مدل Non Standard

RAID 7: این مدل ترکیبی از RAID 3 و RAID 4 است اما مکانیزم Caching را به معادله اضافه کرده است. RAID 7 از کنترلر Real Time Embedded OS استفاده می‌کند که عملیات کش را با استفاده از باس با سرعت بالا انجام می‌دهد.

Adaptive RAID: این پیکربندی به کنترلر RAID اجازه می‌دهد که انتخاب کند که چگونه Parity را روی دیسک‌ها ذخیره کند. این مدل بر اساس داده‌ای که قرار است روی دیسک نوشته شود مدلی از RAID 3 و RAID 5 را انتخاب می‌کند.

RAID S: این مدل شباهت زیادی به RAID 5 دارد اما در برخی از مواقع سرعت آن بیشتر است و از دیسک کش با سرعت بالا در آرایه استفاده می‌کند.

مزایای استفاده از RAID

عملکرد بهتر، انعطاف‌پذیری و هزینه ها جز مزایای اصلی استفاده از RAID است. استفاده از RAID با توجه به پیکربندی انجام شده می‌تواند سرعت کامپیوتر را افزایش داده و قابلیت اطمینان آن را در مقابل کرش‌های احتمالی افزایش دهد. در RAID 0 اطلاعات به تکه های مختلف تقسیم شده و در نهایت مانند یک فایل واحد عمل می‌کنند. بدین ترتیب سرعت خواندن و نوشتن افزایش پیدا می‌کند. RAID 5 اطلاعات را به تکه‌های مختلف تقسیم می‌کند اما برای تضمین امنیت آنها یک درایو مجزا را به Parity تخصیص می‌دهد. Parity قدرت مشاهده اطلاعات درون درایوی که از مدار خارج شده است را دارد. بدین ترتیب استفاده از RAID می‌تواند قابلیت دسترسی به اطلاعات را افزایش دهد. با استفاده از قابلیت Mirroring نیز می‌توان از یک داده به صورت همزمان در یک درایو مجزا نگه‌داری کرد تا مطمئن باشیم که اگر یک درایو از دسترس خارج شد، نمونه مشابه داده‌ها در درایو دیگر ذخیره شدند. در حالی که در توضیحات مربوط به RAID گزینه کاهش هزینه حذف شده است اما در نهایت استفاده از دیسک‌ها با قیمت پایین‌تر می‌تواند باعث کاهش هزینه شود.

معایب استفاده از RAID

استفاده از مدل Nested RAID می‌تواند هزینه بسیار زیادی را در بر داشته باشد چون به تعداد بیشتری دیسک نسبت به حالت عادی نیاز دارد. هزینه به ازای هر گیگابایت نیز در مدل Nested بسیار بیشتر است چون تعداد بیشتری درایو برای افزونگی داده مورد استفاده قرار می‌گیرند. با تمام این تفاسیر استفاده از مدل Nested بسیار فراگیر شده است چون برخی از مشکلات قابلیت اطمینان را که در استاندارد RAID وجود دارد را حل و فصل می‌کند. همه درایو‌ها مورد استفاده در RAID همزمان با هم نصب شده و مورد استفاده قرار می‌گیرند و به همین خاطر اگر یک درایو با مشکلی در مدار روبرو شود احتمال اینکه درایو دیگری نیز به زودی با خطا روبرو شود بسیار زیاد است. برخی از مدل‌ها مثل RAID 1 و RAID 5 تحمل تنها خرابی یک درایو را دارند اما نکته مثبت RAID 1 این است که اطلاعات به صورت Mirror ذخیره می‌شوند. مشکل اصلی این است که تمام اطلاعات موجود در درایو تا جایگزینی درایو معیوب در معرض خطر قرار دارند. البته باید در نظر داشته باشید که بازسازی داده‌ها در درایو جایگزین شده نیز مدت زمانی را نیاز خواهد داشت. با توجه به اینکه مقدار حجم درایو‌ها نسبت به زمانی که RAID برای اولین بار معرفی شد افزایش بسیار زیادی داشتند احتمال دارد زمانی که درایو جدید در حال دریافت اطلاعات است، درایو قدیمی نیز با مشکل مواجه شده و اطلاعات به صورت کامل از دست بروند. احتمال به وجود آمد Bad Sector و داده‌هایی که صدمه خوردند نیز چندان دور از ذهن نیست. در صورت به وجود آمدن این مشکلات دسترسی دوباره به داده‌ها تقریبا غیر ممکن است.

آینده RAID

در حال حاضر تکنولوژی RAID با اینکه کمتر مورد استفاده قرار می‌گیرد هنوز به صورت کامل منسوخ نشده است. روش‌های جایگزینی مثل Erasure Coding مورد استفاده قرار می‌گیرند که البته هزینه بیشتری را در بر دارند. این شیوه جدید برای رفع مشکلات موجود در تکنولوژی RAID مد نظر قرار گرفته شده. با افزایش حجم داده‌ها به همین مقدار ریسک به وجود آمدن خطا و از دست رفتن آنها در RAID وجود دارد. با توجه به فراگیر شدن دیسک‌های SSD استفاده از RAID می‌تواند گزینه مناسبی باشد. دیسک‌های SSD هیچ قطعه متحرکی درون خود ندارد و احتمال به وجود آمدن خطا در آنها به مراتب نسبت به هارد دیسک کمتر است. در حال حاضر هنوز RAID توسط بخش بزرگی از بازار مورد استفاده قرار می‌گیرد و شرکت‌های بزرگی مثل IBM هنوز از آن به صورت رسمی پشتیبانی می‌کنند. همچنین اینتل نیز از مدل‌های RAID 0، RAID 1، RAID 5 و RAID 10 در سیستم ذخیره‌سازی سریع اطلاعات استفاده می‌کند. شرکت Dell EMC نیز هنوز از این تکنولوژی بهره می‌برد.