دیسکها دیر یا زود خراب میشوند. در یک سرور، RAID روشی است که چند دیسک را با هم ترکیب میکند تا خرابی یک دیسک باعث توقف سرویس و از دست رفتن داده نشود، و در برخی سطوح، سرعت هم افزایش یابد. در این مقاله توضیح میدهیم RAID چیست، سطوح RAID ۰، ۱، ۵، ۶ و ۱۰ چه تفاوتی دارند، کدام برای چه کاربردی مناسب است و چرا RAID جای بکاپ را نمیگیرد.
فهرست مطالب
RAID چیست؟
RAID مخفف Redundant Array of Independent Disks یا «آرایه افزونه از دیسکهای مستقل» است. در RAID، چند دیسک فیزیکی بهصورت یک دیسک منطقی به سیستمعامل معرفی میشوند و داده به روشی مشخص بین آنها توزیع یا تکرار میشود. دو هدف اصلی RAID:
- تحمل خرابی (Redundancy): اگر یک یا چند دیسک خراب شود، داده سالم بماند و سرور به کار ادامه دهد.
- کارایی: خواندن و نوشتن موازی روی چند دیسک.
سه تکنیک پایه: Striping، Mirroring و Parity
- Striping: داده به قطعههایی تقسیم و به نوبت روی دیسکها نوشته میشود. سرعت بالا، بدون افزونگی.
- Mirroring: داده عیناً روی دو یا چند دیسک نوشته میشود. افزونگی کامل، اما نصف فضا از دست میرود.
- Parity: از روی دادهها، اطلاعات کمکی (توازن) محاسبه و ذخیره میشود که با آن میتوان داده دیسک خرابشده را بازسازی کرد. فضای کمتری از Mirroring مصرف میکند، اما نوشتن کندتر است.
سطوح رایج RAID
RAID 0
فقط Striping. همه فضا و حداکثر سرعت، اما خرابی هر دیسک یعنی از دست رفتن همه دادهها. برای دادههای مهم استفاده نمیشود؛ فقط برای دادههای موقت و قابل بازسازی.
RAID 1
Mirroring روی دو دیسک. تحمل خرابی یک دیسک، خواندن سریعتر و نوشتن با سرعت یک دیسک. نصف فضا قابل استفاده است. ساده و پرکاربرد برای دیسک سیستمعامل و سرورهای کوچک.
RAID 5
Striping با یک Parity توزیعشده، حداقل سه دیسک. تحمل خرابی یک دیسک، با از دست رفتن فضای یک دیسک. نوشتنهای کوچک به دلیل محاسبه Parity کندتر است. با دیسکهای بزرگ امروزی، ریسک خرابی دیسک دوم در زمان بازسازی طولانی، RAID ۵ را برای دادههای حیاتی کمتر توصیهشده کرده است.
RAID 6
مانند RAID ۵ اما با دو Parity، حداقل چهار دیسک. تحمل خرابی همزمان دو دیسک. مناسب آرایههای بزرگ با دیسکهای پرظرفیت، مثل ذخیرهسازی بکاپ و آرشیو، با نوشتن کندتر.
RAID 10
ترکیب Mirroring و Striping، حداقل چهار دیسک: دیسکها جفتجفت آینه میشوند و داده روی جفتها توزیع میشود. سرعت بالا در خواندن و نوشتن، بازسازی سریع و تحمل خرابی یک دیسک از هر جفت. نصف فضا قابل استفاده است. انتخاب رایج برای دیتابیسها و ماشینهای مجازی.
جدول مقایسه
| سطح | حداقل دیسک | تحمل خرابی | فضای قابل استفاده | کارایی نوشتن | کاربرد رایج |
|---|---|---|---|---|---|
| RAID 0 | ۲ | هیچ | ۱۰۰٪ | بسیار بالا | داده موقت |
| RAID 1 | ۲ | ۱ دیسک | ۵۰٪ | مانند یک دیسک | سیستمعامل، سرورهای کوچک |
| RAID 5 | ۳ | ۱ دیسک | (n−۱)/n | متوسط | ذخیرهسازی عمومی با دیسکهای کوچکتر |
| RAID 6 | ۴ | ۲ دیسک | (n−۲)/n | کمتر | آرشیو و بکاپ با دیسکهای بزرگ |
| RAID 10 | ۴ | ۱ دیسک از هر جفت | ۵۰٪ | بالا | دیتابیس و مجازیسازی |
بازسازی (Rebuild) و ریسک آن
وقتی دیسکی خراب و با دیسک نو جایگزین میشود، آرایه داده آن را از روی دیسکهای دیگر بازسازی میکند. در این مدت:
- کارایی سرور کاهش مییابد.
- آرایه در وضعیت آسیبپذیر است؛ در RAID ۱، ۵ و ۱۰ خرابی دیسک دیگر (یا دیسک جفت در RAID ۱۰) یعنی از دست رفتن داده.
- با دیسکهای پرظرفیت، بازسازی RAID ۵ و ۶ ممکن است ساعتها تا روزها طول بکشد.
به همین دلیل سلامت دیسکها را با ابزارهایی مثل SMART پایش کنید، دیسک یدک (Hot Spare) در نظر بگیرید و خرابی را فوراً رسیدگی کنید.
RAID سختافزاری یا نرمافزاری؟
- سختافزاری: با کارت کنترلر RAID اختصاصی که معمولاً حافظه کش با باتری یا خازن محافظ دارد. مستقل از سیستمعامل است و در سرورهای برند رایج است.
- نرمافزاری: توسط سیستمعامل یا فایلسیستم انجام میشود؛ مثل mdadm در لینوکس یا ZFS. با پردازندههای امروزی کارایی بسیار خوبی دارد، به کنترلر خاصی وابسته نیست و انعطاف بیشتری دارد. برای دیسکهای NVMe معمولاً روش ترجیحی است.
ZFS و Btrfs علاوه بر RAID، صحت دادهها را با Checksum بررسی و خرابیهای بیصدا را تشخیص و اصلاح میکنند.
کدام سطح را انتخاب کنیم؟
- سرور کوچک با دو دیسک: RAID 1.
- دیتابیس و ماشینهای مجازی: RAID ۱۰ با دیسکهای NVMe یا SSD.
- ذخیرهسازی حجیم، آرشیو و بکاپ: RAID 6.
- داده موقت و قابل بازسازی، مثل کش: RAID 0.
اگر سرور مجازی دارید، RAID در سطح زیرساخت ارائهدهنده انجام میشود و شما مستقیماً با آن سروکار ندارید. اگر سرور خودتان را در کولوکیشن قرار میدهید، انتخاب سطح RAID با شماست.
چرا RAID بکاپ نیست؟
RAID فقط در برابر خرابی فیزیکی دیسک محافظت میکند. اگر فایلی اشتباهی حذف شود، باجافزار دادهها را رمزگذاری کند، نرمافزار داده را خراب کند یا کنترلر RAID از کار بیفتد، این تغییرات بلافاصله روی همه دیسکهای آرایه اعمال میشوند. برای این خطرها به بکاپ مستقل نیاز دارید؛ اصول آن در بکاپ سرور چیست و تفاوت آن با Snapshot در تفاوت Snapshot و Backup.
سوالات متداول
RAID چیست؟
روشی برای ترکیب چند دیسک فیزیکی بهصورت یک دیسک منطقی، با هدف تحمل خرابی دیسک، افزایش سرعت یا هر دو.
بهترین سطح RAID برای سرور چیست؟
برای اغلب سرورهای دیتابیس و مجازیسازی RAID ۱۰، برای سرورهای کوچک RAID ۱ و برای ذخیرهسازی حجیم RAID ۶.
آیا RAID جایگزین بکاپ است؟
خیر. RAID فقط خرابی دیسک را پوشش میدهد؛ حذف اشتباهی، باجافزار و خرابی داده را به همه دیسکها منتقل میکند.
آیا میتوان دیسکهای با ظرفیت مختلف را در RAID استفاده کرد؟
در RAID سنتی، فضای قابل استفاده بر اساس کوچکترین دیسک محاسبه میشود و بقیه فضا هدر میرود. بهتر است دیسکهای هممدل و همظرفیت استفاده کنید.
زیرساخت ذخیرهسازی پایدار
اگر سرور خود را در دیتاسنتر قرار میدهید، کولوکیشن تراست هاست را ببینید؛ برای میزبانی بدون درگیری با سختافزار، سرورهای مجازی گزینه سادهتری است.