در حوزه تکنولوژیهای ذخیرهسازی داده احتمالا با واژه RAID روبرو شدهاید. این تکنولوژی روشی برای ذخیرهسازی دادهها در دیوایسهای مختلف مانند چند هارد دیسک یا چند حافظه SSD است تا از این طریق، دادهها با سرعت بیشتری در اختیار کاربران قرار بگیرند یا قابلیت اطمینان آنها افزایش یابد. RAID یکی از مهمترین راهکارها برای حفاظت از اطلاعات مهم در برابر خرابی ابزارهای ذخیرهسازی است و تقریبا تمام سرورها بهنوعی از آن استفاده میکنند. اگر میخواهید بدانید RAID چیست، چطور کار میکند و با انواع روشهای پیادهسازی RAID آشنا شوید، در ادامه این مقاله همراه ما باشید.
فناوری RAID چیست؟
فناوری RAID سرواژه عبارت «آرایه چندگانه دیسکهای مستقل» یا Redundant Array of Independent Disks است. این تکنولوژی در واقع نوعی فناوری ذخیرهسازی اطلاعات است که چند هارد دیسک [یا SSD] سختافزاری را با یکدیگر ترکیب کرده و بهشکل یک فضای ذخیرهسازی مجازی در اختیار سیستمعامل قرار میدهد. در ادامه در بیشتر مواردی که به دیسک یا هارد دیسک اشاره میکنیم، SSD نیز میتواند جایگزین شود و معنا داشته باشد؛ اما به دلیل ماهیت SSDها، برخی از پیکربندیهای RAID تنها برای هارد دیسکها راهکار مناسبی محسوب میشوند. اشاره به تفاوتهای بین هارد دیسک و SSD در این مطلب نمیگنجد.
استفاده از این فناوری با هدف بهبود کارایی، افزایش ضریب اطمینان و سهولت دسترسی به دادهها صورت میگیرد. بنابراین میتوان با دیسکهای فیزیکی معمول و با بهکارگیری این تکنولوژی به کارایی و/یا ضریب اطمینان دیسکهای گرانقیمت و پیشرفتهتر رسید. البته مقدار افزایش کارایی یا ضریب اطمینان به این بستگی دارد که از چه نوع RAID استفاده کنید. انواع RAID که به آنها سطوح RAID نیز گفته میشود، معمولا با عدد مشخص شده و بهشکل RAID 0 یا RAID 5 به نمایش درمیآیند.
پیشنیه RAID
در سال ۱۹۸۷ میلادی سه محقق علوم کامپیوتر به نامهای «دیوید پترسون»، «گارت گیبسون» و «رندی کَتز» از دانشگاه کالیفرنیا برکلی عبارت RAID را برای نخستین بار مطرح کردند. البته در تعریف اولیه از عبارت «آرایه چندگانه دیسکهای ارزانقیمت» یا «Redundant Arrays of Inexpensive Disks» استفاده شده بود اما شرکتهای فعال در صنایع دستگاههای ذخیرهسازی واژه «مستقل» را بهجای «ارزانقیمت» پیشنهاد کردند. این سه محقق در مقالهای که در سال ۱۹۸۸ منتشر شد، ثابت کردند که با بهرهگیری از چند درایو ارزانقیمت و فناوری RAID میتوان به کارایی درایوهای گرانقیمت دست یافت.
اگرچه واژه RAID در سال ۱۹۸۸ میلادی بهشکل عمومی مطرح شد اما فناوریهای مربوط به آن از سالها پیش در دنیای کامپیوتر وجود داشتند. بهعنوان مثال در دهه ۱۹۷۰ میلادی استفاده از فناوری میرورینگ (RAID 1) کاملا متداول بود. در سالهای ۱۹۷۷ و ۱۹۸۶ میلادی شرکت IBM پتنتهایی را ثبت کرد که فناوری مشابه با RAID 4 و RAID 5 را توصیف میکردند. با این حال مقاله سه محقق دانشگاه کالیفرنیا برکلی این فناوری را بهشکل رسمی و استاندارد در دنیای کامپیوتر مطرح کرد.
قبل از اینکه انواع یا سطوح RAID را بررسی کنیم، بهتر است نگاهی به یکی از بخشهای کلیدی این فناوری یعنی کنترلر بیندازیم.
کنترلر RAID چیست؟
کنترلر ابزاریست که درایوها یا دیسکها را در یک آرایه ذخیرهسازی مدیریت میکند. در واقع این کنترلر بین سیستمعامل و دیسکهای فیزیکی قرار میگیرد و نقش واسط را ایفا میکند. کنترلر RAID مجموعه دیسکهای فیزیکی را بهشکل یک واحد ذخیرهسازی مستقل در اختیار سیستمعامل قرار میدهد. این کنترلر به سه شکل سختافزاری، نرمافزاری یا مبتنی بر فرمور (Firmware) عمل میکند که در ادامه هر کدام از این سه حالت را بهاختصار توضیح میدهیم.
- کنترلر RAID سختافزاری: در این حالت یک کنترلر فیزیکی تمام آرایه دیسکها را مدیریت میکند. بعضی مادربوردهای سرور به کنترلر RAID فیزیکی روی بورد مجهز شدهاند. برای استفاده عمومی میتوانید از کارتهای کنترلر قابل نصب روی شکافهای PCI اکسپرس استفاده کنید اما در کاربردهای حرفهای به کنترلرهای پیشرفته و گرانقیمت نیاز خواهید داشت. استفاده از کنترلر سختافزاری در مقایسه با نمونههای نرمافزاری کارایی بهتری در پی دارد.
- کنترلر RAID نرمافزاری: کنترلر نرمافزاری از منابع پردازشی سیستم مانند پردازشگر اصلی (CPU) و حافظه رم (RAM) برای مدیریت آرایه دیسکها استفاده میکند و طبیعتا کارایی پایینتری دارد. استفاده از کنترلر نرمافزاری معمولا کارایی کلی سرور را کاهش داده و حتی ممکن است تأثیر چندانی روی افزایش کارایی سیستم ذخیرهسازی نداشته باشد.
- کنترلر RAID مبتنی بر فرمور: گاهی اوقات بهخاطر ناسازگاری در فرایند بوت سیستمعامل نمیتوان از کنترلر RAID نرمافزاری استفاده کرد، و استفاده از کنترلر سختافزاری نیز هزینه نسبتا زیادی نیاز دارد. در این حالت میتوان از کنترلر مبتنی بر فرمور یا مبتنی بر درایور استفاده کرد. در این حالت، چیپ کنترلر RAID روی مادربورد وظیفه راهاندازی سیستم RAID در ابتدای فرایند بوت سیستمعامل را بر عهده میگیرد و پس از لود شدن سیستمعامل، عملیات RAID به درایور مربوط به این کنترلر محول میشود. البته در این روش نیز بار اجرای عملیات RAID روی پردازنده اصلی (CPU) خواهد بود.
انواع RAID چیست؟
تجهیزات RAID از انواع مختلف این فناوری استفاده میکنند که به آنها سطوح RAID نیز گفته میشود. به عبارت دیگر میتوان گفت که این سطوح مشخص میکنند که اطلاعات به چه صورت بین دیسکها توزیع شده و در آنها ذخیره میشود. همچنین هر یک از سطوح، میزان متفاوتی از عملکرد، ظرفیت کلی فضای ذخیرهسازی و تحمل خطا را ارائه میدهند و برای نیازهای متفاوتی کاربرد دارند.
فناوری RAID در ابتدا شش سطح مختلف از RAID 0 تا RAID 5 داشت. در حال حاضر تعداد این سطوح افزایش یافته و به سه دسته استاندارد، ترکیبی و غیر استاندارد تقسیم میشوند. امروزه انواع سطوح RAID در سرور کلود پیادهسازی میشود. در ادامه مطلب RAID چیست شما را با انواع این فناوری آشنا میکنیم.
سطوح استاندارد RAID
در ادامه به انواع سطوح استاندارد این تکنولوژی میپردازیم.
RAID 0
در این نوع پیکربندی از تکنیک «استرایپینگ» (Striping) استفاده میشود. در تکنیک استرایپینگ، بلوکهای اطلاعات به چند بخش تقسیم شده و اطلااعات بهشکل متوالی روی دیسکهای مختلف (حداقل ۲ دیسک) نوشته میشود. سیستمعامل هنگام نیاز به این اطلاعات میتواند آنها را بهشکل همزمان از روی چند دیسک بازخوانی کند. در RAID 0 بهترین کارایی را از سیستم ذخیرهسازی بهدست میآوریم اما تحمل خطا تغییری نمیکند و در صورت خراب شدن یکی از دیسکها، اطلاعات تا حد زیادی از بین میرود.
RAID 1
در این نوع از فناوری که به «میرورینگ» (Mirroring) نیز معروف است، حداقل از دو درایو استفاده شده و اطلاعات یکسان روی هردوی آنها نوشته میشود. در RAID 1 خبری از استرایپینگ نیست ولی بهخاطر تکرار اطلاعات روی دو دیسک، تحمل خطا در سیستم ذخیرهسازی افزایش مییابد. به عنوان مثال هنگامی که از دو دیسک با پیکربندی RAID 1 استفاده میشود، خرابی تنها یکی از دیسکها موجب از دست رفتن دادهها نمیشود. در سطح RAID 1 کارایی خواندن اطلاعات نیز کمی بهتر میشود چون میتوان در لحظه از هر دو دیسک استفاده کرد. با این حال تغییری در کارایی نوشتن اطلاعات بهوجود نمیآید.
RAID 2
در پیکربندی سطح RAID 2 از تکنیک استرایپینگ روی چند دیسک استفاده میشود اما در کنار آن، چند دیسک به ذخیرهسازی اطلاعات «تشخیص و تصحیح خطا» (ECC یا Error Checking and Correction) با کمک بیت Parity میپردازند. از آنجا که RAID 2 هیچ مزیتی نسبت به RAID 3 ندارد، استفاده از آن منسوخ شده است.
RAID 3
در سطح RAID 3 از ترکیب استرایپینگ روی چند درایو و ذخیره اطلاعات تشخیص و تصحیح خطا به کمک بیت Parity روی یک درایو استفاده میشود تا بتوان از آن برای تشخیص خطا و بازیابی دادهها استفاده کرد. در این پیکربندی حداقل به ۳ هارد دیسک نیاز است و با تعداد ۳ دیسک، برای ۲ مورد از آنها از تکنیک استرایپینگ استفاده میشود و دیسک سوم به ذخیره بیت Parity برای بازیابی میپردازد. در این پیکربندی، بازیابی داده از طریق عملیات XOR روی دادههای موجود در دیگر درایوها صورت میگیرد. RAID 3 معمولا در دنیای مدرن کاربرد زیادی ندارد و بیشتر برای سیستمهای تک کاربره بهکار میرود.
RAID 4
در سطح RAID 4 از استرایپهای بزرگ داده روی چند دیسک استفاده میشود، در نتیجه کاربران میتوانند اطلاعات را از روی هر کدام از درایوها بخوانند. مهمترین مزیت RAID 4 نسبت به RAID 2 و RAID 3 امکان اجرای موازی عملیات I/O برای خواندن اطلاعات است. با اجرای تعداد بیشتری عملیات I/O بهشکل موازی و همزمان، کارایی RAID 4 برای انتقال تکههای کوچک اطلاعات بهتر از دو سطح قبل است.
RAID 5
در این روش، اطلاعات تشخیص و تصحیح خطا نیز بین دیسکهای مختلف توزیع میشود و آرایه دیسکها حتی در صورت خرابی یکی از درایوها با موفقیت به کار خود ادامه میدهند. معماری RAID 5 امکان اجرای عملیات خواندن و نوشتن روی چند درایو را ممکن میکند، در نتیجه کارایی این سیستم از کارایی یک دیسک بهتر است، اما به RAID 0 نمیرسد. سطح RAID 5 به حداقل ۳ دیسک نیاز دارد اما معمولا پیشنهاد میشود که از حداقل ۵ دیسک استفاده کنید.
RAID 6
این سطح تا حد زیادی به RAID 5 شباهت دارد اما از توزیع دوگانه اطلاعات ECC روی درایوهای مختلف استفاده میشود. این روش یکی از بهترین گزینهها برای حفاظت از اطلاعات در درازمدت است، چون حتی اگر ۲ دیسک بهطور همزمان خراب شوند نیز اطلاعاتی از بین نمیرود. با این حال در این روش به تعداد زیادی دیسک فیزیکی نیاز دارید و عملیات نوشتن داده نیز با سرعت کمتری نسبت به RAID 5 صورت میگیرد.
سطوح ترکیبی RAID
در سطوح ترکیبی یا تو در تو (Nested)، معمولا ترکیبی از سطح قبلی بهکار گرفته میشود تا مزایای چند روش با یکدیگر ترکیب شوند. در ادامه با بعضی از انواع تو در تو آشنا میشویم.
RAID 10
سطح RAID 10 از ترکیب RAID 1 و RAID 0 بهوجود میآید که به آن RAID 1+0 نیز میگویند. در این روش ابتدا از میرورینگ روی چند دیسک استفاده شده و سپس کارایی کل مجموعه با روش استرایپینگ بهبود مییابد. با روش RAID 10 میتوان به کارایی بهتر از RAID 1 دست یافت اما هزینه اجرای این روش نیز بسیار بیشتر است.
RAID 01
سطح RAID 01 عملکردی مشابه RAID 10 دارد اما ترتیب اجرای عملیات روی آن متفاوت است. در این روش ابتدا تکنیک استرایپینگ روی اطلاعات اجرا شده و سپس عملیات میرورینگ روی آنها صورت میگیرد. این روش نیز مزایای هر دو روش را در ازای هزینه بسیار بیشتر در اختیار شما قرار میدهد.
RAID 03
در این روش از تکنیک استرایپینگ مشابه RAID 0 برای بهبود عملکرد RAID 3 استفاده میشود.
RAID 50
در این پیکربندی از روش توزیع اطلاعات ECC در کنار تکنیک استرایپینگ RAID 0 استفاده میشود. بنابراین با استفاده از RAID 50 میتوان کارایی RAID 5 را در کنار حفاظت بیشتر از اطلاعات بهدست آورد.
سطوح غیر استاندارد RAID
شرکتهای مختلف برای بهبود روشهای مختلف RAID از سطوح غیر استاندارد استفاده میکنند که در ادامه بعضی از آنها را مرور میکنیم.
RAID 7
در این سطح غیر استاندارد از تکنیک ذخیرهسازی موقت اطلاعات (Caching) در کنار RAID 3 یا RAID 4 استفاده میشود.
RAID آداپتیو
در این روش، کنترلر تصمیم میگیرد که اطلاعات تشخیص و تصحیح خطا را چگونه روی دیسکهای مختلف ذخیرهسازی کند. در واقع کنترلر میتواند بسته به نوع و حجم اطلاعات در حال ذخیره، یکی از روشهای RAID 3 یا RAID 5 که عملکرد بهتری دارند را انتخاب کند.
مزایای RAID چیست؟
حال که متوجه شدیم فناوری RAID چیست و چگونه کار میکند، بیایید مزایای کلی آن را مرور کنیم.
- کاهش هزینه ذخیرهسازی اطلاعات با استفاده از تعداد زیادی دیسک ارزان قیمت بهجای تعداد کمی دیسک گران قیمت
- بهبود کارایی سیستم ذخیرهسازی در مقایسه با کارایی هرکدام از دیسکها
- افزایش سرعت و قابلیت اطمینان سیستم ذخیرهسازی و کامپیوتر
- اجرای سریع عملیات خواندن و نوشتن در سطح RAID 0
- افزایش دسترسی به اطلاعات و ضریب اطمینان سیستم در حالت میرورینگ و RAID 5
معایب RAID چیست؟
استفاده از RAID با محدودیتها و معایبی نیز همراه است که بعضی از آنها را در ادامه به آنها میپردازیم.
- سطوح ترکیبی به تعداد بیشتری دیسک فیزیکی نیاز دارند و استفاده از آنها هزینه بسیار بیشتری در مقایسه با سطوح استاندارد خواهد داشت.
- خراب شدن یکی از دیسکهای فیزیکی در سیستم RAID میتواند نشانهای از خرابی زودهنگام بقیه آنها باشد، چون تمام این دیسکها در زمان یکسانی وارد فاز عملیاتی شدهاند و احتمالا در زمانی نزدیک به هم خراب میشوند.
- اکثر سطوح فقط در صورت خراب شدن یک دیسک فیزیکی امکان بازیابی اطلاعات را دارند.
- بهخاطر ظرفیت بسیار بالای درایوهای جدید، تصحیح و بازیابی اطلاعات روی آنها به زمان بسیار زیادی نیاز دارد.
چه زمانی باید از RAID استفاده کنیم؟
شاید این سؤال برایتان بهوجود آماده باشد که چه زمانی نیاز به استفاده از RAID است؟ تکنولوژی RAID در شرایط مختلف میتواند به کمک کسبوکار شما بیاید. بعضی از این موارد عبارتاند از:
- هنگامی که آپتایم و دسترسی به اطلاعات در کسبوکار شما نقش حیاتی دارد، این فناوری حتی در زمان خراب شدن یکی از دیسکها نیز میتواند اطلاعات شما را در دسترس نگه دارد.
- هنگامی که از فایلهای بزرگ استفاده میکنید، این تکنولوژی، سرعت دسترسی به اطلاعات و قابلیت اطمینان آنها را بهبود میدهد.
- هنگامی که مشکلات ورودی/خروجی دارید، این فناوری امکان خواندن و نوشتن اطلاعات بهشکل همزمان روی چند درایو فیزیکی را ممکن میسازد تا کاربران برای دسترسی به اطلاعات، بیش از حد منتظر نمانند.
کدام سطح RAID برای من مناسبتر است؟
همانطور که تا اینجای مطلب RAID چیست متوجه شدید، سطوح مختلف با کارکردها و قابلیتهای مختلف در دسترس کاربران قرار دارند اما بسیاری از آنها چندان پر استفاده نیستند. اگر بخواهیم پرکاربردترین سطوح RAID را انتخاب کنیم، به پنج مورد میرسیم:
- سطح RAID 0 سادهترین گزینه برای افزایش کارایی سیستم ذخیرهسازی است. اگر سرعت برای شما اهمیت زیادی دارد اما ریسک خرابی اطلاعات را میپذیرید، میتوانید از این سطح استفاده کنید.
- سطح RAID 1 سادهترین گزینه برای افزایش تحمل خطا در سیستم ذخیرهسازی است و اکثر کسبوکارهای کوچک یا متوسط از این سطح استفاده میکنند. پیادهسازی سطح RAID 1 هزینه بالایی ندارد.
- سطوح RAID 5 یا RAID 6 یا RAID 10 راهکارهای پرهزینه اما مطمئنی هستند که میتوانند کارایی بالایی را همراه با حفاظت از اطلاعات در اختیار شما بگذارند.
جمعبندی
فناوری RAID یکی از تکنیکهای کاربردی در حوزه ذخیرهسازی اطلاعات است که میتواند کارایی سیستم ذخیرهسازی را در مقایسه با هرکدام از دیسکها افزایش دهد. بسته به هدف از اجرای این تکنولوژی، سطوح مختلف میتوانند برای افزایش سرعت دسترسی به اطلاعات، بهبود عملیات خواندن و نوشتن داده و افزایش ضریب اطمینان سیستم بهکار بروند. با این حال سطوح RAID 0 یا استرایپینگ، RAID 1 یا میرورینگ، و RAID 5/6/10 با ترکیب تکنیکهای مختلف از جمله ذخیره و توزیع اطلاعات تشخیص و تصحیح خطا بیشترین کاربرد را در دنیای مدرن دارند.