پرش به مطلب اصلی

RAID چیست؟

در یک جمله

RAID روشی برای ترکیب چند دیسک فیزیکی است تا بتوان به هدف‌هایی مثل افزایش کارایی، افزایش تحمل خرابی یا مدیریت بهتر ذخیره‌سازی رسید.

تعریف

اگر داخل یک سرور چند هارد یا SSD وجود داشته باشد، می‌توان آن‌ها را طوری کنار هم قرار داد که:

  • یا سریع‌تر کار کنند
  • یا اگر یکی از دیسک‌ها خراب شد، داده‌ها از بین نروند
  • یا هر دو

به این روش کلی، RAID گفته می‌شود.

RAID مخفف Redundant Array of Independent Disks است.
RAID یک مکانیزم در سطح ذخیره‌سازی است که چند Physical Disk را با استفاده از تکنیک‌هایی مثل Striping، Mirroring و Parity به یک یا چند Logical Drive / Virtual Disk تبدیل می‌کند.

این کار می‌تواند با یکی از روش‌های زیر انجام شود:

  • Hardware RAID توسط RAID Controller
  • Software RAID توسط سیستم‌عامل، مانند mdadm در لینوکس
  • Hybrid / Fake RAID در برخی سیستم‌ها و مادربردها

چرا از RAID استفاده می‌شود؟

RAID فقط برای «یکی کردن چند دیسک» نیست. هدف اصلی آن، طراحی بهتر ذخیره‌سازی است.

مزیتتوضیح سادهتوضیح فنی
افزایش تحمل خرابیاگر یک دیسک خراب شود، سرویس ممکن است همچنان فعال بماندبسته به RAID Level، داده از طریق Mirror یا Parity قابل بازیابی است
بهبود کاراییخواندن و نوشتن می‌تواند سریع‌تر شودStriping و Parallel I/O باعث افزایش Throughput می‌شوند
استفاده بهتر از چند دیسکچند دیسک به‌صورت یک فضای واحد مدیریت می‌شوندController یا OS آن‌ها را به یک ساختار منطقی تبدیل می‌کند
ساده‌تر شدن مدیریتسیستم‌عامل معمولاً به‌جای چند دیسک، یک یا چند دیسک منطقی می‌بیندRAID خروجی خود را به‌صورت Logical Drive ارائه می‌دهد
نکته بسیار مهم

RAID جای Backup نیست.

RAID ممکن است شما را در برابر خرابی دیسک محافظت کند، اما در برابر این موارد محافظت کامل ایجاد نمی‌کند:

  • حذف اشتباهی فایل‌ها
  • خراب شدن فایل‌سیستم
  • باج‌افزار
  • خطای انسانی
  • آتش‌سوزی یا از دست رفتن کامل سرور

پس حتی اگر RAID دارید، همچنان به Backup واقعی نیاز دارید.


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

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

HDD / SSDPhysical DisksHDD / SSDHardware / Software RAIDRAID LayerHardware / Software RAIDVirtual DiskLogical DriveVirtual DiskLinux / WindowsOperating SystemLinux / Windowsext4 / XFS / NTFSFile Systemext4 / XFS / NTFS

در این مسیر:

  1. دیسک‌های فیزیکی داخل سرور قرار دارند
  2. RAID Controller یا Software RAID آن‌ها را مدیریت می‌کند
  3. خروجی این لایه معمولاً یک Logical Drive است
  4. سیستم‌عامل این خروجی را مثل یک دیسک عادی می‌بیند
  5. سپس روی آن Partition، LVM یا File System ساخته می‌شود

مفاهیم پایه در RAID

برای درک RAID، باید سه مفهوم اصلی را بشناسید:

1) Striping

در Striping، داده بین چند دیسک پخش می‌شود.
این کار باعث می‌شود چند دیسک هم‌زمان روی داده کار کنند و کارایی بهتر شود.

  • مزیت اصلی: Performance
  • محدودیت اصلی: معمولاً به‌تنهایی Fault Tolerance ایجاد نمی‌کند

2) Mirroring

در Mirroring، یک کپی یکسان از داده روی دیسک دیگر نوشته می‌شود.

  • مزیت اصلی: تحمل خرابی
  • محدودیت اصلی: بخشی از ظرفیت برای کپی داده مصرف می‌شود

3) Parity

Parity نوعی اطلاعات اضافه است که به RAID کمک می‌کند در صورت خرابی یک یا چند دیسک، داده را بازسازی کند.

  • مزیت اصلی: تعادل بین ظرفیت و تحمل خرابی
  • محدودیت اصلی: محاسبه Parity روی کارایی نوشتن اثر می‌گذارد
Parity به زبان ساده

Parity را می‌توان نوعی «اطلاعات کمکی برای بازسازی داده» در نظر گرفت.
به کمک این اطلاعات، RAID در بعضی Levelها می‌تواند بعد از خرابی دیسک، داده را دوباره محاسبه و بازیابی کند.


RAID Levelهای رایج

همه RAIDها شبیه هم نیستند. هر RAID Level برای نیاز خاصی مناسب است.

مقایسه سریع

RAID Levelحداقل تعداد دیسکظرفیت قابل استفادهتحمل خرابیکاراییکاربرد متداول
RAID 02مجموع کل دیسک‌ها❌ هیچبسیار بالاداده موقت، Cache، Workload غیرحیاتی
RAID 12حدود 50٪✅ خرابی یک دیسک در هر Mirrorخواندن خوب، نوشتن عادیسیستم‌عامل، Boot Volume
RAID 53مجموع دیسک‌ها منهای 1 دیسک✅ خرابی 1 دیسکخواندن خوب، نوشتن متوسطفایل‌سرور، ظرفیت‌محور
RAID 64مجموع دیسک‌ها منهای 2 دیسک✅ خرابی 2 دیسکخواندن خوب، نوشتن ضعیف‌تر از RAID 5آرشیو، ظرفیت با ایمنی بیشتر
RAID 104حدود 50٪✅ حداقل 1 دیسک و در بعضی چیدمان‌ها بیشتربسیار خوبVM، Database، Workload پرترافیک

هر RAID Level به زبان ساده

RAID 0

در RAID 0 داده بین چند دیسک تقسیم می‌شود، اما هیچ کپی یا Parity وجود ندارد.

  • مزیت: بسیار سریع
  • ضعف: اگر فقط یک دیسک خراب شود، کل Array از دست می‌رود
ریسک RAID 0

RAID 0 فقط برای سناریوهایی مناسب است که از دست رفتن داده قابل قبول باشد یا داده در جای دیگری نگهداری شود.

RAID 1

در RAID 1 داده روی دو دیسک به‌صورت آینه‌ای نوشته می‌شود.

  • مزیت: خرابی یک دیسک معمولاً باعث از دست رفتن سرویس نمی‌شود
  • ضعف: نیمی از ظرفیت صرف Mirror می‌شود

کاربرد رایج:

  • دیسک سیستم‌عامل
  • Boot Volume
  • سرورهای کوچک با تمرکز بر سادگی و پایداری

RAID 5

در RAID 5 داده و Parity بین دیسک‌ها توزیع می‌شود.

  • مزیت: ظرفیت قابل استفاده بهتر از RAID 1 و RAID 10
  • ضعف: در عملیات نوشتن، محاسبات Parity باعث افت کارایی می‌شود
  • تحمل خرابی: خرابی 1 دیسک

کاربرد رایج:

  • فایل‌سرور
  • Workloadهایی که خواندن بیشتر از نوشتن دارند

RAID 6

RAID 6 شبیه RAID 5 است، اما به‌جای یک Parity، از دو Parity استفاده می‌کند.

  • مزیت: تحمل خرابی 2 دیسک
  • ضعف: نوشتن کندتر از RAID 5
  • کاربرد: آرشیو، حجم‌های بزرگ، جایی که ریسک Rebuild طولانی مهم است

RAID 10

RAID 10 ترکیبی از Mirroring + Striping است.

  • مزیت: Performance بالا + Fault Tolerance مناسب
  • ضعف: فقط حدود 50٪ ظرفیت قابل استفاده است
  • کاربرد: زیرساخت مجازی‌سازی، پایگاه‌داده، VM Storage
انتخاب محبوب در زیرساخت

در بسیاری از زیرساخت‌های حرفه‌ای، RAID 10 برای Workloadهای حساس و پرترافیک یکی از بهترین گزینه‌ها است، چون نسبت به RAID 5/6 در نوشتن و Rebuild رفتار بهتری دارد.


مثال با 4 دیسک 1 ترابایتی

فرض کنید 4 دیسک 1TB دارید.

RAID Levelظرفیت قابل استفادهتحمل خرابی
RAID 04TB0 دیسک
RAID 1معمولاً 2TB در صورت دو جفت Mirrorخرابی 1 دیسک در هر جفت Mirror
RAID 53TB1 دیسک
RAID 62TB2 دیسک
RAID 102TBخرابی 1 دیسک در هر جفت Mirror
دقت در تفسیر RAID 10

در RAID 10 نمی‌توان به‌سادگی گفت «همیشه 2 دیسک قابل خرابی است».
اگر هر دو دیسک خراب‌شده در یک جفت Mirror باشند، کل Array از دست می‌رود.
پس تحمل خرابی RAID 10 به الگوی خرابی دیسک‌ها هم بستگی دارد.


Hardware RAID و Software RAID

RAID را می‌توان به دو روش اصلی پیاده‌سازی کرد.

مقایسه

ویژگیHardware RAIDSoftware RAID
محل پیاده‌سازیRAID Controllerسیستم‌عامل
مدیریتاز طریق BIOS/Controller Utilityبا ابزارهایی مثل mdadm
وابستگی به OSکمتربیشتر
قابلیت Bootمعمولاً ساده‌تربسته به پیکربندی
Cache اختصاصیمعمولاً داردمعمولاً ندارد
هزینهبیشترکمتر
انعطاف‌پذیریوابسته به Vendorدر لینوکس بسیار بالا

چه زمانی از Hardware RAID استفاده می‌شود؟

  • سرورهای Enterprise
  • زمانی که Controller حرفه‌ای با Cache و Battery/FBWC وجود دارد
  • زمانی که می‌خواهید سیستم‌عامل فقط خروجی نهایی RAID را ببیند

چه زمانی از Software RAID استفاده می‌شود؟

  • سرورهای لینوکسی بدون RAID Controller حرفه‌ای
  • محیط‌هایی که سادگی سخت‌افزار یا استقلال از Vendor مهم است
  • سناریوهایی که مدیریت با ابزارهای استاندارد لینوکس ترجیح داده می‌شود
تمرکز این مستند

در بسیاری از سناریوهای سازمانی، وقتی از اصطلاح RAID در لایه سرور صحبت می‌کنیم، منظور معمولاً Hardware RAID است؛ مگر اینکه صراحتاً از Software RAID نام برده شود.


RAID و Logical Drive چه رابطه‌ای دارند؟

یکی از مهم‌ترین نکات این است که RAID خودش همان دیسکی نیست که سیستم‌عامل می‌بیند.
خروجی RAID معمولاً یک Logical Drive است.

Disk 1, Disk 2, Disk 3...Physical DisksDisk 1, Disk 2, Disk 3...RAID 1 / 5 / 6 / 10RAID EngineRAID 1 / 5 / 6 / 10Virtual DiskLogical DriveVirtual DiskSees the Logical DriveOperating SystemSees the Logical Drive
Clarification

RAID یک روش برای سازمان‌دهی و محافظت از چند دیسک است، اما Logical Drive خروجی نهایی آن برای سیستم‌عامل است.

  • RAID = مکانیزم یا ساختار
  • Logical Drive = دیسکی که سیستم‌عامل مشاهده می‌کند

مفاهیم مهم عملیاتی در RAID

Rebuild

وقتی یک دیسک خراب می‌شود و با دیسک جدید جایگزین می‌شود، RAID شروع به بازسازی داده روی دیسک جدید می‌کند. به این فرآیند Rebuild گفته می‌شود.

  • در زمان Rebuild معمولاً کارایی کاهش می‌یابد
  • در Arrayهای بزرگ، Rebuild ممکن است زمان‌بر باشد
  • در این بازه، ریسک خرابی دوم اهمیت بیشتری پیدا می‌کند

Hot Spare

Hot Spare دیسکی است که به‌صورت آماده در سیستم وجود دارد اما فعال نیست.
اگر یکی از دیسک‌های Array خراب شود، RAID می‌تواند به‌صورت خودکار Rebuild را روی Hot Spare شروع کند.

Cache

بعضی RAID Controllerها دارای Write Cache / Read Cache هستند.
این Cache می‌تواند کارایی را بسیار بهتر کند، اما باید وضعیت ایمنی آن نیز بررسی شود.

Cache Safety

اگر Write Cache فعال باشد اما حفاظت مناسب مثل Battery Backup یا Flash-Backed Write Cache وجود نداشته باشد، در زمان قطع برق ممکن است داده از دست برود.


چگونه RAID مناسب انتخاب کنیم؟

انتخاب RAID به این پرسش‌ها بستگی دارد:

سؤالاثر روی انتخاب RAID
آیا کارایی مهم‌تر است یا ظرفیت؟اگر کارایی مهم باشد، RAID 10 معمولاً بهتر است
آیا نوشتن زیاد داریم یا خواندن زیاد؟RAID 5/6 در نوشتن ضعیف‌تر از RAID 10 هستند
آیا خرابی دو دیسک باید تحمل شود؟RAID 6 مناسب‌تر از RAID 5 است
آیا هزینه مهم است؟RAID 5/6 ظرفیت بهتری نسبت به RAID 10 می‌دهند
آیا Rebuild طولانی نگران‌کننده است؟روی دیسک‌های بزرگ، RAID 10 یا RAID 6 معمولاً منطقی‌تر از RAID 5 است

جمع‌بندی انتخاب سریع

سناریوRAID پیشنهادی
Boot / OSRAID 1
VM Storage / DatabaseRAID 10
Archive / Capacity-Focused StorageRAID 6
Read-Heavy General File StorageRAID 5 یا RAID 6
Temp / Scratch DataRAID 0 فقط در صورت قابل قبول بودن ریسک

نقش RAID در پلایوید

در معماری پلایوید، RAID بخشی از طراحی صحیح لایه ذخیره‌سازی است، مخصوصاً وقتی از Local Storage استفاده می‌شود.

الگوی متداول می‌تواند به این شکل باشد:

بخشRAID رایجدلیل
OSRAID 1سادگی، پایداری، Boot امن‌تر
VAR / LogRAID 1 یا بخشی از Storage سیستمیجداسازی داده‌های متغیر
DATA / VM WorkloadsRAID 10کارایی بهتر و رفتار مناسب‌تر در Write
Backup LocalRAID 6 یا RAID 10بسته به اولویت ظرفیت یا Performance
نکته طراحی

اگر پلایوید روی Storage اشتراکی مثل SAN، NAS یا Distributed Storage اجرا می‌شود، انتخاب RAID ممکن است در لایه پایین‌تر و خارج از خود سرور انجام شده باشد.


اشتباه‌های رایج درباره RAID

1) RAID یعنی Backup

خیر. RAID فقط بخشی از High Availability و Fault Tolerance است، نه جایگزین Backup.

2) هرچه RAID پیچیده‌تر باشد بهتر است

خیر. RAID مناسب باید با Workload، تعداد دیسک‌ها، بودجه و هدف طراحی هماهنگ باشد.

3) چند Logical Drive روی یک Array یعنی کارایی کاملاً جدا

خیر. اگر چند Logical Drive از همان مجموعه دیسک‌ها ساخته شوند، همچنان در پشت صحنه از همان I/O مشترک استفاده می‌کنند.

4) RAID 5 همیشه انتخاب اقتصادی و خوب است

نه لزوماً. در دیسک‌های بزرگ و Workloadهای سنگین، زمان Rebuild و ریسک خطا می‌تواند RAID 5 را به گزینه ضعیف‌تری تبدیل کند.


نکات مهم برای کارشناسان آیتی

  • از دیسک‌های هم‌اندازه و هم‌نوع استفاده کنید؛ معمولاً کوچک‌ترین دیسک مبنای ظرفیت قرار می‌گیرد
  • Firmware کنترلر و دیسک‌ها را با دقت مدیریت کنید
  • وضعیت Predictive Failure، Media Error و Battery/Cache را مانیتور کنید
  • روی Arrayهای بزرگ، اثر URE و زمان Rebuild را جدی بگیرید
  • برای Workloadهای سنگین، Stripe Size و Alignment فایل‌سیستم را بررسی کنید
  • قبل از Production، سناریوی Disk Failure / Rebuild / Controller Failure را تست کنید
  • در صورت استفاده از Software RAID، ابزارهای مانیتورینگ مثل mdadm --detail و Alerting را فعال کنید
Best Practice

برای زیرساخت‌های مجازی‌سازی و Workloadهای حساس، معمولاً باید علاوه بر RAID مناسب، روی Monitoring، Spare Disk، Backup و تست Recovery نیز برنامه‌ریزی شود.


جمع‌بندی

RAID روشی برای ترکیب چند دیسک است تا بتوان بین کارایی، ظرفیت و تحمل خرابی تعادل ایجاد کرد.

اگر خیلی ساده بخواهیم بگوییم:

  • RAID 0 = سریع، اما بدون حفاظت
  • RAID 1 = ساده و مطمئن برای سیستم‌عامل
  • RAID 5 = ظرفیت بهتر، تحمل خرابی یک دیسک
  • RAID 6 = ایمن‌تر برای ظرفیت‌های بزرگ
  • RAID 10 = انتخاب قدرتمند برای VM و Workloadهای پرترافیک

و مهم‌تر از همه:

  • RAID با Logical Drive فرق دارد
  • RAID با Backup فرق دارد
  • انتخاب RAID باید بر اساس نیاز واقعی زیرساخت انجام شود، نه فقط ظرفیت خام