مفهوم RAID چیست؟
واژهی RAID در واقع مخفف عبارت Redundant Array of Inexpensive Disks میباشد.
RAID در واقع یک ساختار ذخیرهسازی داده است که به مدیر، طراح، سازنده و کاربر سیستم این امکان را میدهد تا تعداد دو و یا بیشتری هارد دیسک فیزیکی یا هارد SSD را باهم ترکیب کرده و با آنها یک Logical Unit یکپارچه یا همان آرایه (Array) را ایجاد نماید. البته سیستم عامل نیز این Array ایجاد شده را به عنوان یک فضای ذخیرهسازی یکپارچه در اختیار خواهد گرفت.
سه فاکتور اساسی یک RAID موارد ذیل هستند:
1. قابلیت Striping یا RAID 0: بخشی از داده را برروی یک هارد دیسک مینویسد و بخشی دیگر را برروی هارددیسک دیگر، در این مدل زمان خواندن و نوشتن دادهها کاهش و عملکرد I/O افزایش مییابد.
2. قابلیت Mirroring یا RAID 1: در این مدلRAID، دادهها برروی یک هارد دیسک نوشته میشوند و سپس برروی هارد دیسک دیگر کپی خواهند شد. از ویژگیهای این مدل میتوان به جلوگیری از Data Loss در مواقعی که یکی از هارددیسکها Failed میشود اشاره کرد.
3. قابلیت Parity در RAID 5 و RAID 6: این مدل دارای قابلیت تحمل خطا (Fault Tolerance) میباشد. ساختار این مدل به این گونه است که ذخیره سازی دادهها برروی دو هارد صورت گرفته و Parity تولید شده از دادههای موجود برروی همان دو هارد دیسک نیز برروی هارد دیسک سوم ذخیره میگردند. لذا زمانی که یک هارد دیسک Failed شده نیز جایگزین میشود، دادههای از بین رفته از طریق Parityهای ذخیره شده برروی سایر هارددیسکها مجددا قابل بازیابی میباشند.
همچنین به یاد داشته باشید امکان ترکیب این مدل RAIDها با یکدیگر نیز وجود دارد و میتوان پیکربندی جدیدی از RAIDها مانند RAID 10, 50 را فراهم آورد.
در تمام این مدلها RAID Controller وظیفه مدیریت هارددیسکها را برعهده دارد. پیکربندیهای متفاوت برای افزایش عملکرد، افزایش فضای ذخیرهسازی، افزایش امنیت بوسیله افزونگی (Redundancy) و مقرون به صرفه بودن راهکار متناسب با نیاز کاربر صورت میپذیرد.
تفاوت RAID سختافزاری و RAID نرمافزاری
یک RAID میتواند سختافزاری و یا نرمافزاری باشد. RAID سختافزاری وابسته به یک کنترلر فیزیکی موجود برروی درگاه PCIe سرور و یا به صورت Onboard یعنی (RAID-on-Chip یا همان ROC) میباشد. کنترلر تمام قابلیتهای RAID را بوسیلهی پردازنده و حافظه اختصاصی خودش مدیریت میکند. بنابراین پردازنده اصلی سرور درگیر پردازشهای مربوط به فرآیند ذخیرهسازی نخواهد شد و تمام توان عملیاتی آن برای مدیریت نیازهای نرمافزارها و سیستم عامل و برنامههای کاربردی صرف خواهد شد.
معایب RAID سختافزاری
- هزینههای بالاتر نسبت به RAID نرمافزاری
مزایای RAID سختافزاری
- عملکرد بهتر نسبت به RAID نرمافزاری
- کنترلر در خرابیها و بروزرسانی به آسانی و قابل تعویض و جایگزین
مزایای RAID نرمافزاری
- هزینه کمتر به دلیل عدم نیاز به کنترلر سختافزاری
معایب RAID نرمافزاری
- عملکرد پایینتر؛ چرا که تنها بخشی از توان پردازشی CPU اصلی سیستم به آن اختصاص داده میشود.
“اما یک RAID نرمافزاری برای پردازش فرآیندهای ذخیرهسازی کاملا به پردازنده سیستم وابسته خواهد بود.“
عملکرد یک RAID چگونه است؟
در یک RAID نرمافزاری، پیادهسازی RAID مانند راهاندازی یک برنامه کاربردی برروی سیستم میزبان میباشد. این مدل RAID از هارددیسکهای متصل به کامپیوتر بوسیلهی یک I/O Interface تعبیه شده برروی Motherboard و یا یک کارت Host Bus Adapter) HBA) بدون توان پردازشی استفاده میکند. RAID نرم افزاری به محض اینکه سیستم عامل درایور نرمافزاری RAID را بارگذاری نماید، فعال میشود.
اما در یک RAID سختافزاری، کنترلر یک پردازنده و حافظه اختصاصی همراه با چندین درگاه اتصال برای شناسایی هارددیسکها به صورت مستقیم توسط خودش و یا برروی یک Hot-Swap Backplanes در اختیار دارد.
در هر دو حالت سختافزاری و نرمافزاری، یک RAID از چندین هارددیسک مجزا که به عنوان یک Logical Disk شناخته میشوند تشکیل شده است. سیستم عامل با این هارددیسکها همان گونه برخورد میکند که با هر هارددیسک دیگری در کامپیوتر برخورد میکند. در واقع برای سیستم عامل تفاوتی بین هارددیسکهای متصل به Motherboard و یا یک RAID Array ایجاد شده توسط RAID Controller وجود ندارد.
اما در عملکرد نهایی و انعطافپذیری، RAID سختافزاری برای استفادههای رایج در سرورها مناسبتر و بهینهتر میباشد.
سازندگان سیستمهای ذخیرهسازی هر مدل هارددیسکی را برای استفاده در یک RAID Array پیشنهاد میدهند. برخی از هارد دیسکها برای مصارف Desktop (خانگی) طراحی شدهاند که Consumer Drive نامیده میشوند. اما برخی دیگر از هارددیسکها برای RAID Arrayها مناسب هستند که Enterprise Drive نامیده میشوند. البته بین این دو مدل هارد دیسک تفاوتهایی وجود دارد. یک Consumer Drive برای این منظور طراحی نشده است که با گروهی از هارددیسکها تشکیل فضای یکپارچه بدهد؛ بالطبع برای RAIDها نیز مناسب نیستند. اما از سوی دیگر هارددیسکهای Enterprise، برای برقراری ارتباط با RAID Controller و کار کردن در یک مجموعه از هارددیسکها برای تشکیل یک RAID Array پایدار طراحی شدهاند.
در یک RAID، تفاوت هارد دیسکها و SSDها تنها در عملکرد، بازدهی و ظرفیتشان خلاصه میگردد. اما توجه به ویژگیهای عملکردی و قابلیتهای RAID Controller نیز مهم میباشد چرا که میبایست از این مسئله اطمینان حاصل کرد که کنترلر توانایی سازگاری کامل با قابلیتهای عملکردی هارد دیسکها و SSDها را دارا میباشد تا بتوان از تمام قابلیتهای هارد دیسکها و SSDها به نحو احسن بهره برد. امروزه اغلب RAID Controllerهای مدرن به اندازه کافی سریع هستند تا به SSDها این امکان را بدهند تا از تمام ظرفیت و پتانسیل خودشان استفاده کنند اما یک RAID Controllers قدیمی و کند میتواند یک Bottleneck برای جابجایی دادهها باشد و تاثیر بدی برروی عملکرد کل سیستم باقی بگذارد.
RAID ترکیبی یا Hybrid RAID
Hybrid RAID یک راهکار ذخیرهسازی دارای افزونگی میباشد که از هارد دیسکهای با ظرفیت بالا و قیمت پایین SATA و هاردهای با عملکرد بالای SAS همراه با تاخیر بسیار پایین و همچنین هاردهای SSD با IOPs بسیار بالا تشکیل شده است. در Hybrid RAIDها، عملیات خواندن (read) از روی هاردهای پرسرعت SSD صورت میپذیرد و عملیات نوشتن (write) نیز برروی هر دو نوع هارد SSD و HDD برای حفظ افزونگی و اطمینان از صحت نوشتن و ذخیره شدن دادهها برروی رسانه ذخیرهسازی اتفاق میافتد.
آرایههای Hybrid RAIDها افزایش عملکرد فوق العادهای را برروی آرایههای ایجاد شده با استفاده از HDDهای استاندارد با هزینه کمتر، نسبت به آرایههایی که فقط با هارد SSD ایجاد شدهاند ارائه میدهد. در مقایسه با آرایههای ایجاد شده با HDDها، آرایههای hybrid ای مقدار IOPs را افزایش داده و متقابلا میزان تاخیر را کاهش میدهند. همین مسئله باعث میشود سرور قادر باشد کاربران بیشتری را میزبانی کند و بالطبع تراکنشهای بیشتری را در هر ثانیه برروی سرور انجام دهد که در نتیجه تعداد سرورهای مورد نیاز برای پشتیبانی به workloadها کاهش پیدا خواهد کرد. با یک بررسی ساده در مورد عملکرد Hybrid RAID نمیتوان استفادههای معمول از این آرایه را به خوبی نشان داد چرا که این آرایهها از mirrorهای ساده در ایستگاههای کاری تشکیل شدهاند تا عملکرد بالا در موقع عملیات خواندن دادهها در یک سیستم کوچک و یا متوسط را بهبود ببخشند. همچنین Hybrid RAID در بسیاری از مراکز دادهها برای فراهم آوردن ظرفیتهای بیشتر در سرورهای ذخیرهسازی استفاده میشود درحالیکه امکان boot شدن سریع سرورها را نیز میسر میسازد.
چه کسانی باید از RAID استفاده کنند؟
هر سرور و یا ایستگاه کاری سطح بالا و هر سیستم کامپیوتری که همیشه در دسترس بودن (uptime) آن مهم است، میتوانند کاندیداهای مناسبی برای استفاده از RAID باشند. در برههای از طول عمر یک سرور، حداقل یک هارد دیسک fail (خراب) خواهد شد. بدون هیچ گونه RAID ای برای محافظت از دادهها، دادههای هارد دیسک fail شده قابل بازیابی از طریق نسخ پشتیبان خواهند بود.
چگونه یک RAID مناسب انتخاب کنیم؟- بخش دوم
اگرچه در این حالت بخشی از دادهها از بین خواهند رفت و زمان قابل توجهی نیز صرف بازیابی دادهها خواهد شد. اما همراه با یک RAID controller در یک سرور ذخیرهسازی، یک هارد دیسک fail شده به آسانی جایگزین میشود و RAID controller به صورت خودکار دادههای از بین رفته را از طریق دادههای باقی مانده برروی سایر هارددیسکهای موجود در آرایه برروی هارد دیسک جدید بازسازی (rebuild) میکند. این بدین معنی است که سیستم شما میتواند با وجود یک هارد دیسک خراب بدون هیچ پیچیدگی و صرف زمان زیاد برای بازیابی دادههای از دست رفته از طریق نسخ پشتیبان بدون مشکل به سرویس دهی بپردازد.