یک **کنترل کننده آرایه دیسک** دستگاهی است که درایوهای دیسک فیزیکی را مدیریت می کند و آنها را به عنوان واحدهای منطقی به رایانه ارائه می دهد. تقریباً همیشه RAID سخت افزاری را پیاده سازی می کند، بنابراین گاهی اوقات به عنوان **کنترل کننده RAID** شناخته می شود. همچنین اغلب کش دیسک اضافی را فراهم می کند.

*کنترل کننده آرایه دیسک* اغلب به طور اشتباه با *کنترل کننده دیسک* اشتباه گرفته میشود. این دو را نباید اشتباه گرفت زیرا عملکردهای بسیار متفاوتی را ارائه می دهند.

بخش فرانت-اند و بک-اند
----------------------

یک کنترل کننده آرایه دیسک، رابط های فرانت اند و رابط های بک اند را فراهم می کند.

* رابط Back-end با دیسک های کنترل شده ارتباط برقرار می کند. از این رو پروتکل استفاده شده معمولا ATA (معروف به PATA)، SATA ، SCSI ، FC یا SAS میباشد.
* رابط Front-end با آداپتور میزبان (گذرگاه اداپتور میزبان) ارتباط برقرار می کند و از موارد زیر استفاده می کند:
	+ ATA، SATA، SCSI، FC؛ اینها پروتکل‌های محبوبی هستند که توسط دیسک‌ها استفاده می‌شوند، بنابراین با استفاده از یکی از آنها، یک کنترل‌کننده می‌تواند به طور شفاف یک دیسک را برای رایانه شبیه‌سازی کند.
	+ چند پروتکل با محبوبیت کمتر برای راه حل های خاص: FICON / ESCON ، iSCSI ، HyperSCSI ، ATA از طریق اترنت یا InfiniBand

  

یک کنترل‌کننده *ممکن است* از پروتکل‌های مختلفی برای ارتباط بک‌اند و فرانت اند استفاده کند. بسیاری از کنترلرهای سازمانی از FC در قسمت فرانت اند و SATA در قسمت بک اند استفاده می کنند.

کنترل کننده سازمانی
-------------------

در معماری سازمانی مدرن، کنترل‌کننده‌های آرایه دیسک (که گاهی اوقات **حافظه پردازنده** یا **SP**  نیز نامیده می‌شوند) مانند آرایه‌های دیسک که در یک شبکه منطقه ذخیره‌سازی (SAN) یا سرورهای ذخیره‌سازی متصل به شبکه (NAS) قرار می‌گیرند، .بخش‌هایی از محفظه‌های مستقل فیزیکی هستند.

  

آن آرایه های دیسک خارجی معمولاً به عنوان یک زیر سیستم یکپارچه از کنترلرهای RAID، درایوهای دیسک، منابع تغذیه و نرم افزار مدیریت خریداری می شوند. این به کنترلرها بستگی دارد که عملکردهای پیشرفته را ارائه دهند (فروشندگان مختلف این موارد را متفاوت نامیده اند):

* خطای خودکار به کنترلر دیگر (شفاف برای رایانه هایی که داده ها را ارسال می کنند)
* عملیات طولانی مدت بدون توقف انجام می شود
	+ تشکیل یک مجموعه RAID جدید
	+ بازسازی مجموعه RAID *تخریب شده* (پس از خرابی دیسک)
	+ افزودن دیسک به مجموعه RAID آنلاین
	+ حذف دیسک از مجموعه RAID (عملکرد کمیاب)
	+ پارتیشن بندی یک مجموعه RAID برای مجزا کردن حجم ها/LUN ها
* عکس های فوری
* حجم تداوم کسب و کار (BCV)

تکثیر با کنترل از راه دور.. .

کنترلر های ساده
---------------

یک کنترل کننده آرایه دیسک ساده ممکن است در داخل یک کامپیوتر قرار گیرد، یا به عنوان کارت توسعه PCI یا فقط بر روی مادربرد ساخته شود. چنین کنترل‌کننده‌ای معمولاً عملکرد آداپتور گذرگاه میزبان (HBA) را برای صرفه‌جویی در فضای فیزیکی فراهم می‌کند. از این رو گاهی اوقات آن **را آداپتور RAID** می نامند.

از ماه فوریه سال 2007 اینتل شروع به ادغام کنترلر Matrix RAID خود در مادربردهای پیشرفته تر خود کرد و کنترل 4 دستگاه و 2 متصل کننده SATA اضافی و در مجموع 6 اتصال SATA (هر کدام 3 گیگابیت بر ثانیه) را فراهم کرد. برای سازگاری با عقبگرد، یک متصل کننده IDE که قادر به اتصال 2 دستگاه ATA (100 مگابیت بر ثانیه) است، نیز وجود دارد.

تاریخچه
-------

  

در حالی که کنترلرهای سخت افزاری RAID برای مدت طولانی در دسترس بودند، آنها همیشه به هارد دیسک های گران قیمت SCSI نیاز داشتند و بازار سرور و محاسبات سطح بالا را هدف قرار می دادند. مزایای فناوری SCSI شامل اجازه دادن به حداکثر 15 دستگاه در یک گذرگاه، انتقال مستقل داده، تعویض داغ ، MTBF بسیار بالاتر است.

در حدود سال 1997، با معرفی ATAPI-4 (و در نتیجه Ultra-DMA-Mode 0 ، که انتقال سریع داده ها را با استفاده کمتر از CPU امکان پذیر می کرد) اولین کنترل کننده های ATA RAID به عنوان کارت های توسعه PCI معرفی شدند. آن سیستم های RAID راه خود را به بازار مصرف پیدا کردند، جایی که کاربران خواهان تحمل خطا از RAID بدون سرمایه گذاری در درایوهای گران قیمت SCSI بودند.

پشتیبانی سیستم عامل
-------------------

از آنجایی که سخت افزار کنترل‌کننده‌های RAID حجم‌ RAID مونتاژ شده را ارائه می‌دهند، سیستم‌عامل‌ها به‌شدت نیازی به پیاده‌سازی پیکربندی و مونتاژ کامل برای هر کنترل‌کننده ندارند. اغلب فقط ویژگی‌های اساسی در درایور نرم‌افزار منبع باز پیاده‌سازی می‌شوند و ویژگی‌های توسعه‌یافته از طریق حباب‌های باینری مستقیماً توسط سازنده سخت‌افزار ارائه می‌شوند.

  

به طور معمول، کنترلرهای RAID را می توان به طور کامل از طریق بایوس کارت قبل از بوت شدن سیستم عامل پیکربندی کرد و پس از بوت شدن سیستم عامل، ابزارهای پیکربندی اختصاصی از سازنده هر کنترلره در دسترس است، زیرا مجموعه ویژگی های دقیق هر کنترلر ممکن است مختص به آن باشد. هر سازنده و محصول برخلاف کنترل‌کننده‌های رابط شبکه برای اترنت ، که معمولاً می‌توانند به طور کامل از طریق پارادایم‌های رایج سیستم‌عامل مانند ifconfig در یونیکس ، بدون نیاز به ابزارهای شخص ثالث پیکربندی و سرویس‌دهی شوند، هر سازنده هر کنترل‌کننده RAID معمولاً نرم‌افزار اختصاصی خود را ارائه می‌کند. ابزارسازی برای هر سیستم عاملی که فکر می کنند از آن پشتیبانی می کند، اطمینان از قفل شدن فروشنده ، و کمک به مشکلات قابلیت اطمینان. 

  

به عنوان مثال، در FreeBSD ، برای دسترسی به پیکربندی کنترل‌کننده‌های RAID Adaptec ، کاربران باید لایه سازگاری لینوکس را فعال کنند و از ابزار لینوکس Adaptec استفاده کنند،  که به طور بالقوه ثبات، قابلیت اطمینان و امنیت راه‌اندازی آن‌ها را به خطر می‌اندازد، به ویژه هنگام در نظر گرفتن دیدگاه بلند مدت  با این حال، این تا حد زیادی به کنترلر بستگی دارد، و اینکه آیا اسناد سخت افزاری مناسب برای نوشتن یک درایور در دسترس است یا خیر، و برخی از کنترلرها نسخه های منبع باز ابزارهای پیکربندی خود را دارند، به عنوان مثال، `mfiutil` و `mptutil` برای FreeBSD در دسترس هستند. از FreeBSD 8.0 (2009)،  و همچنین `mpsutil` / `mprutil` از سال 2015،  هر کدام فقط درایورهای دستگاه مربوطه خود را پشتیبانی می‌کنند، این واقعیت اخیر به نفخ کد کمک می‌کند.

  

برخی دیگر از سیستم‌عامل‌ها چارچوب‌های عمومی خود را برای ارتباط با هر کنترل‌کننده RAID پیاده‌سازی کرده‌اند و ابزارهایی را برای نظارت بر وضعیت حجم RAID، و همچنین تسهیل شناسایی درایو از طریق چشمک زدن LED، مدیریت هشدار، تعیین دیسک‌های یدکی داغ و data scrubbing § RAID .data scrubbing § RAID از داخل سیستم عامل بدون نیاز به راه اندازی مجدد در بایوس کارت. برای مثال، این رویکردی بود که OpenBSD در سال 2005 با درایور شبه دستگاه bio(4) و ابزار bioctl اتخاذ کرد، که وضعیت صدا را ارائه می‌دهد و امکان کنترل LED/alarm/hotspare و همچنین حسگرها (از جمله درایو ) را فراهم می‌کند. سنسور ) برای نظارت بر سلامت؛ این رویکرد متعاقباً توسط NetBSD در سال 2007 اتخاذ و گسترش یافت. 

  

با bioctl ، مجموعه ویژگی ها عمداً به حداقل می رسد، به طوری که هر کنترل کننده می تواند توسط ابزار به همان روش پشتیبانی شود. پیکربندی اولیه کنترلر قرار است از طریق بایوس کارت انجام شود،  اما پس از پیکربندی اولیه، تمام نظارت و تعمیرات روزانه باید با ابزارهای یکپارچه و عمومی امکان پذیر باشد، این همان چیزی است که bioctl برای انجام آن تنظیم شده است.

منابع
-----

1. "Storage Basics - Part V: Controllers, Cache and Coalescing". 23 March 2010.

1. ↑  "Storage Basics - Part V: Controllers, Cache and Coalescing". 23 March 2010.
2. 1 2 3 4 5 6 7