کلمه‌ی RAID مخفف عبارت redundant array of independent disks (آرایه‌ی افزونه‌ی دیسک‌های مستقل) است. یک سیستم RAID ممکن است به صورت سخت‌افزاری یا نرم‌افزاری باشد و می‌تواند برای بهبود عملکرد و ایجاد افزونگی داده‌ها، درایوهای ذخیره‌سازی فیزیکی را به صورت مجازی ایجاد کند. RAIDهایی که بر مبنای کنترلر هستند، معمولا از نوع سخت‌افزاری می‌باشند ولی RAIDهایی که بر مبنای سرور هستند می‌توانند نرم‌افزاری و یا ترکیبی از نرم‌افزار-سخت‌افزار باشند.

RAID Controller چیست؟

RAID Controller یک کارت یا تراشه است که بین سیستم عامل و دستگاه ذخیره‌سازی (که معمولا هارد دیسک است) قرار می‌گیرد. RAID باعث افزونگی داده و/یا بهبود عملکرد هارد دیسک خواهد شد؛ اکثر سطوح مختلف RAID می‌توانند هر دو وظیفه را انجام دهند. در درایوهای SSD سیستم RAID باعث افزونگی داده می‌شود ولی نمی‌تواند عملکرد درایوهای SSD را بهبود ببخشد. با این حال برخی تولیدکننده‌ها به صورت اختصاصی برای درایوهای SSD سیستم‌هایی طراحی کرده‌اند که می‌تواند هم باعث افزونگی داده و هم بهبود عملکرد درایو شود.

RAID کنترلرها با مجازی‌سازی درایوها در گروه‌های جداگانه با تکنیک‌های حفاظت از دیتا و افزونگی خاص کار می‌کنند. رابط فرانت اند معمولا از طریق یک آداپتور هاست محور (HBA) با سرور در ارتباط است و بک اند نیز با رسانه‌های ذخیره‌سازی اساسی در ارتباط است و آن‌ها را کنترل می‌کند.

Raid 1 - Raid کنترلر چیست؟Raid کنترلرها معمولا با استفاده از چندین مشخصه از جمله نوع درایو مثل ساتا، SAS و یا تعداد پورت‌ها و تعداد درایوهای قابل پشتیبانی، سطح RAID مورد استفاده، معماری رابط و مقدار حافظه‌ی Cache آن‌ها دسته‌بندی می‌شوند. برای مثال این بدین معنی است که کنترلری که برای محیط SATA طراحی شده است، در آرایه‌های SAS کار نمی‌کند و یا نمی‌توان یک کنترلر سطح 1 را برای RAID 10 برنامه‌ریزی کرد.

RAID کنترلر با کنترلر حافظه تفاوت دارند و این دو یکی نیستند. کنترلرهای حافظه دیسک‌های فعال را در اختیار سیستم عامل قرار می‌دهند، در حالی که RAID کنترلر به عنوان یک کش رم عمل می‌کند و امکان RAID را برای شما فراهم می‌کند. تعداد و هویت دیسک‌های RAID به تنظیمات و پیکربندی کنترلر مورد استفاده بستگی دارد.

RAID کنترلر سخت‌افزاری

کنترلرهای سخت‌افزاری اختصاصی در دو معماری متفاوت عرضه می‌شوند: کارت RAID کنترلر اکسترنال و RAIN-on-Chip اینترنال:

  • کارت RAID کنترلر: کارت RAID کنترلر یک کارت توسعه است که به اسلات‌های PCIe یا PCI-X مادربرد متصل می‌شود. این کارت دارای یک پردازنده RAID و همچنین پردازنده‌های ورودی/خروجی با رابط سخت‌افزاری است.
  • RAID-on-Chip: این نوع که ارزان‌تر است یک تراشه‌ی مادربرد تکی است که رابط میزبان، رابط‌های ورودی/خروجی میزبان، پردازنده‌ی RAID و کنترلر حافظه را با یکدیگر ادغام می‌کند. میان‌افزار سیستم در زمان بوت دستگاه، عمل RAID را آغاز می‌کند و سپس کنترل را به درایورها منتقل می‌کند.

RAID کنترلر نرم‌افزاری

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

Raid 2 - Raid کنترلر چیست؟

  • RAID نرم‌افزاری: این نوع RAID معمولا به عنوان یکی از قابلیت‌های اصلی سیستم عامل شناخته می‌شود و ارزان‌ترین نوع RAID است. نرم‌افزار میزبان محاسبات مربوط به RAID را انجام می‌دهد و با استفاده از رابط‌ معمولی I/O و یا HBA به درایوها متصل خواهد شد. این نرم‌افزار زمانی که سیستم عامل درایور RAID را فراخوانی کند آغاز به کار خواهد کرد.
  • RAID هیبریدی: این نوع RAID از یک قطعه سخت‌افزاری برای انجام عملیات‌های RAID BIOS از طریق مادربرد یا HBA استفاده می‌کند. تکنولوژی هیبریدی یک لایه دیگر به سیستم اضافه می‌کند و گران‌تر از نوع نرم‌افزاری است ولی در عین حال از سیستم RAID در برابر خطاهای بوت که ممکن است برخی اوقات برای سیستم عامل رخ دهد جلوگیری خواهد کرد.

سطوح مختلف RAID

سطوح مختلف RAID یک مبحث کاملا پیچیده است ولی سعی می‌کنیم که در ادامه نگاهی گذرا به این موضوع داشته باشیم.

همانطور که گفته شد یکی از خصوصیات RAID کنترلرها سطح RAID مورد استفاده توسط آن‌ها است. متداول‌ترین سطوح RAID عبارتند از سطح 0، سطح 1، سطح 5/6 و 10:

  • RAID 0: سطح صفر RAID تنها سطحی است که امکان افزونگی داده را در اختیار کاربر قرار نمی‌دهد و فقط بهره‌وری دیسک را افزایش می‌دهد. RAID 0 فایل‌ها را نصف می‌کند و داده‌ها را روی دو یا چند دیسک مختلف پخش می‌کند و با هر دیسک به عنوان یک پارتیشن خاص رفتار می‌کند. از آنجایی که دیسک‌های مختلف به عنوان یک پارتیشن شناخته می‌شوند، در صورتی که حتی یکی از دیسک‌ها خراب شود هم فایل تقسیم شده غیرقابل استفاده خواهد بود. کاربرد: بهبود عملکرد هارد؛ بدون ایجاد افزونگی داده.
  • RAID 1: سطح یک RAID روی دو یا چند دیسک کار می‌کند و وظیفه‌ی آن ایجاد افزونگی و جلوگیری از خطا است. این نوع RAID داده‌های یکسان را روی چند دیسک ذخیره می‌کند و برای خواندن نیز از چند دیسک کمک می‌گیرد. در این نوع RAID، در صورتی که یکی از دیسک‌ها با خطا مواجه شود، فایلی که به شکل کامل روی دیسک دیگر قرار دارد قابل استفاده خواهد بود. زمانی که دیسک مشکل‌دار تعمیر و یا جایگزین شود هم به صورت خودکار داده‌های موجود روی آن کپی خواهند شد. همچنین RAID 1 عملکرد خواندن اطلاعات را هم بهبود می‌بخشد. کاربرد: ایجاد افزونگی و افزایش سرعت خواندن اطلاعات با هزینه‌ی کم
  • Raid 5/6: Striping with Parity/Double Parity. این سطح RAID عملکرد RAID 0 را با افزونگی RAID 1 ترکیب می‌کند ولی حدودا یک سوم فضای درایو باید قابل استفاده باشد. کلمه‌ی Parity به داده‌های باینری خام اشاره دارد. در RAID 5 داده‌ها روی 2 یا چند دیسک مختلف پخش خواهند شد و از محاسبه مقادیر سطح بلوک برای ایجاد بلوک‌های پریتی استفاده می‌شود. RAID 5 این بلوک‌های اختصاصی را روی دیسک‌های مختلف نگه‌داری می‌کند و در صورتی که حتی یکی از دیسک‌ها با خطا مواجه شود، از این بلوک‌ها برای بازسازی داده‌ها روی نودهای باقیمانده استفاده خواهد شد. RAID 6 هم مثل RAID 5 عمل می‌کند ولی حداقل به 4 عدد دیسک نیاز خواهید داشت و به همین خاطر می‌تواند یک بلوک Parity اضافی روی هر هارد ایجاد کند. نتیجه این امر این است که حتی در صورتی که یکی از هاردها هم دچار مشکل شود، باز هم سیستم به کار خودش ادامه خواهد داد و فقط در صورتی که دو عدد از هاردها دچار مشکل شوند عملکرد سیستم هم دچار مشکل می‌شود. کاربرد: وب سرورها، محیط‌هایی که نیاز به عملکرد خواندن بالا دارند، سرورهای نرم‌افزار، آرایه‌های ذخیره‌سازی بزرگ
  • RAID 10: Striping and Mirroring. سطح 10 گران‌قیمت‌ترین سطح RAID است. این نوع RAID برای عملکرد قوی‌تر حداقل روی 4 عدد دیسک مختلف پخش خواهد شد و برای ایجاد افزونگی از داده‌ها نیز کپی گرفته خواهد شد. در یک آرایه چهارتایی، سیستم داده‌ها را روی دو عدد از دیسک‌ها پخش خواهد کرد و دو عدد دیسک باقیمانده هم کپی این دو هارد هستند. یعنی هر کدام از آن‌ها نیمی از اطلاعات را در خود جای می‌دهند. کاربرد: محیط‌هایی که نیازمند امنیت و بهره‌وری بالا هستند. مثل دیتابیس‌های مالی که حاوی داده‌های مهمی هستند. RAID 10 گران‌ترین سطح RAID برای هارد درایوها است ولی سرعت خواندن و نوشتن بسیار بالایی دارد و افزونگی داده‌ی آن نیز خیلی قوی است.