بررسی رید کنترلر Disk ARRAY CONTROLLER
disk array controller یک قطعه سخت افزاری است که کار آن کنترل دیسک درایو های متصل شده به هم و نمایش آنها به صورت یک واحد در سیستم عامل است. از آنجایی که کار disk array controller قطعه کنترل دیسک های تحت RAID میباشد، با نام RAID Controller نیز نامیده میشود. disk array controller خود cache دارد و آنرا به cache سیستم اضافه میکند. گاهی به نادرست disk array controller با نام disk controller شناخته میشود. دقت داشته باشید که کار disk array controller کنترل هر نوع ساختار دیسکی نیست بلکه وظیفه آن کنترل RAID است.
Front-end and back-end side
Disk array controller دو نوع واسطه ایجاد میکند:
front-end interface و back-end interface.
Back-end interface به دیسک های کنترل شده ارتباط دارد. در این بین از پروتکل های معمول ATA (یا عبارتی a.K.a PATA که به اشتباه IDE نامیده میشود)، SATA SCSI ،FC و SAS استفاده میشود. Front-end interface با آداپتور host کامپیوتر (شامل HBA ، Host Bus Adapter) ارتباط برقرار و از پروتکل های زیر استفاده می کند:
یکی از پروتکل های ATA ،SATA ،SCSI و FC که پروتکل های معروف هستند که در دیسک ها استفاده میشوند. بنابراین، با استفاده از یکی از آنها به کامپیوتر یک دیسک واحد را نشان میدهد. پس در واقع کار این بخش کنترل کننده توهم دادن به کامپیوتر است. از سوی دیگر پروتکل های کمتر شناخته شدهای چون FICON/ESCON ،iSCSI ،HyperSCSI ،ATA over Ethernet یا InfintBand میباشند. یک controller ممکن است در آن واحد از بیش از یک پروتکل back-end و front-end استفاده کند. به عنوان مثال بسیاری ازenterprise controller ها از FC در front-end و SATA در back-end استفاده میکنند.
Enterprise controller ها
در معماری enterprise مدرن، disk array controller ها بخش های فیزیکی غیر وابسته enclosure ها هستند. این بخش های فیزیکی شامل آرایه های دیسک به کار رفته در SAN یا همان Storage area network و NAS یا سرور های network-attached storage هستند. یک سیستم RAID از زیر سیستم های مختلف مانند: RAID controller، دیسک های درایو ها، منبع های برق-power supplies– و نرمافزار های مدیریت سیستم تشکیل میشود. در کل وظیفهRAID controller ایجاد شرایط مناسب جهت عملکرد مناسب RAID است. از جمله این وظایف عبارت است از:
کنترل خطا های سیستم (انتقال و پخش دادهها بین ساختار تحت RAID)
عملیات های طولانی مدت و بدون وقفه
ایجاد یک ساختار RAID جدید
تجدید RAID های مشکل پیدا کرده (پس از مشکل پیدا کردن یک دیسک)
اضافه کردن online یک مجموعه RAID شده دیگر به سیستم
حذف یک دیسک از مجموعه RAID شده (که به ندرت به کار میرود)
partition بندی مجموعه درایو های RAID شده
نمایش لحظهای ساختار RAID شده
کنترلpartition های سیستم
کنترل بازنویسی داده ها روی دیسک ها
controller های ساده
یک disk array controller ساده معمولا درون کامپیوتر قرار میگیرد و یا به صورت کارت به PCI مادربرد متصل میشود. این controller ها جهت حفظ فضا از host bus adapter یا HBA استفاده می کنند. به همین دلیل این کارت ها گاهی RAID adapter نامیده میشوند. در سال ۲۰۰۷ شرکت اینتل روی محصولات جدید خود، کارت های Matix RAID controller تولید شده توسط خودش را قرار داد. این کارت قادر به کنترل ۴ دستگاه و یک سیستم کنترل کننده با ۲ عدد درگاه SATA و در کل اتصال سرعت بالای ۳ گیگابیت در ثانیه در هر درگاه است. به کمک یک اتصال IDE که قادر به اتصال ۲ عدد دستگاه ATA با سرعت ۱۰۰ مگابیت در ثانیه است نیز این کارت زمان تولید خود تک بود.
تاریخچه
RAID controller ها سالیان سال است که در بازار هستند اما هنوز درایو های SCSI موجود در بازار گران قیمت هستند. از امکانات SCSI امکان اتصال ۱۵ دستگاه به یک bus، انتقال داده غیر وابسته، hot-swapping و زمان MTBF بهتر میباشد. حدود سال ۱۹۹۷ بود که با معرفی ATAPI-4 (و در ادامه آن Ultra-DMA-Mode 0 که امکان انتقال داده با استفاده از توان کمتری از CPU را فراهم می کرد) اولین سری کارت های ATA RAID controller با اتصال PCI نیز معرفی شد. امکان استفاده دیسک های ارزان تر به کمک این RAID ها توجه بسیاری را به خود جلب کرد و خیلی سریع وارد بازار فروش شدند.
به کمک درایو های ATA میتوان سیستم های تحت RAID ارزان قیمت نسبت به SCSI ها ایجاد کرد. البته RAID controller های ATA امکان جدا سازی buffer یا سختافزار های XOR های high-performance را فراهم نمی کند. بنابراین، RAID های ATA نسبت بهRAID controller های SCSI عملکرد خوبی ندارند. از سوی دیگر اگر سیستم به هر دلیلی مشکل برق پیدا کند چون در ATA باتری وجود ندارد ممکن است سیستم کاملا از کار بایستد.
- Design