RAID چیست و انواع آن؟ راهنمای انتخاب برای سرورها

RAID چیست و انواع آن؟ راهنمای انتخاب برای سرورها
مقدمه
اگر با سرورها، دیتاسنتر یا سیستمهای ذخیرهسازی سروکار داشته باشید، احتمالا بارها نام RAID را شنیدهاید. اما RAID چیست و چرا در بسیاری از سرورها از آن استفاده میشود؟
به زبان ساده، RAID روشی برای ترکیب چند دیسک فیزیکی است تا بتوان از آنها برای افزایش سرعت، تحمل خرابی یا افزونگی اطلاعات استفاده کرد. البته هر RAID برای هر کاری مناسب نیست. برای مثال، Storage مربوط به ماشینهای مجازی معمولاً به Performance و IOPS بالایی نیاز دارد، درحالیکه در یک Storage آرشیوی ممکن است ظرفیت و تحمل خرابی اهمیت بیشتری داشته باشد.
در این مقاله بررسی میکنیم RAID چیست، انواع RAID چه تفاوتی با یکدیگر دارند و برای Data و VM در یک سرور واقعی کدام گزینه میتواند مناسبتر باشد.
RAID چیست؟
RAID مخفف Redundant Array of Independent Disks است و به معنی آرایه افزونهای از دیسکهای مستقل است.
در RAID، چند دیسک فیزیکی در قالب یک ساختار مشخص با یکدیگر ترکیب میشوند و Storage حاصل میتواند توسط سیستمعامل یا Hypervisor مورد استفاده قرار گیرد.
هدف از RAID میتواند یکی یا چند مورد از این موارد باشد:
- افزایش سرعت خواندن و نوشتن
- ایجاد افزونگی اطلاعات
- افزایش تحمل خرابی دیسک
- استفاده بهتر از چند دیسک
- ایجاد یک فضای ذخیرهسازی منطقی
بنابراین پاسخ سؤال RAID چیست فقط «ترکیب چند هارد» نیست؛ بلکه RAID یک روش طراحی Storage است که بین Performance، ظرفیت و Redundancy تعادل ایجاد میکند.
نکته بسیار مهم این است که RAID جایگزین Backup نیست. اگر فایلی حذف شود یا اطلاعات توسط باجافزار رمزگذاری شوند، RAID لزوماً امکان بازیابی آنها را فراهم نمیکند.
RAID چگونه کار میکند؟
برای درک بهتر اینکه RAID چیست، باید با سه مفهوم اصلی آن آشنا شویم.
Striping
در Striping، اطلاعات بین چند دیسک تقسیم میشوند. این روش میتواند Performance را افزایش دهد، زیرا چند دیسک میتوانند همزمان روی بخشهای مختلف داده کار کنند.
RAID 0 نمونهای از Striping است.
Mirroring
در Mirroring، یک نسخه از اطلاعات روی دیسک دیگری نیز ذخیره میشود. RAID 1 از این روش استفاده میکند.
اگر یک دیسک خراب شود، اطلاعات روی دیسک دیگر باقی میماند.
Parity
Parity اطلاعاتی است که برای بازسازی دادهها در صورت خرابی دیسک استفاده میشود.
RAID 5 و RAID 6 از Parity استفاده میکنند و به همین دلیل میتوانند بدون کپی کامل اطلاعات روی دیسک دیگر، تحمل خرابی ایجاد کنند.
انواع RAID چیست؟
RAID دارای Levelهای مختلفی است و هرکدام برای یک سناریوی خاص طراحی شدهاند. مهمترین انواع RAID عبارتاند از:
- RAID 0
- RAID 1
- RAID 5
- RAID 6
- RAID 10
- RAID 50
- RAID 60
در ادامه کاربرد هرکدام را بررسی میکنیم.
RAID 0 چیست؟
RAID 0 اطلاعات را بین چند دیسک تقسیم میکند و روی Striping تمرکز دارد.
مزیت اصلی RAID 0، Performance بالاتر است؛ اما هیچ Redundancy ندارد. اگر یکی از دیسکها خراب شود، کل آرایه از دسترس خارج میشود.
مزایا:
- Performance بالا
- استفاده از ظرفیت تقریباً کامل دیسکها
- مناسب برای Workloadهای غیرحیاتی
عیب اصلی: نبود تحمل خرابی.
به همین دلیل RAID 0 معمولاً برای Storage اصلی سرورهای حساس توصیه نمیشود.
RAID 1 چیست؟
RAID 1 بر اساس Mirroring کار میکند. اطلاعات روی دو دیسک بهصورت یکسان ذخیره میشوند.
برای مثال، دو دیسک ۱ ترابایتی در RAID 1 تقریباً ۱ ترابایت ظرفیت قابل استفاده ایجاد میکنند.
مزایا:
- تحمل خرابی یک دیسک
- ساختار ساده
- مناسب برای سیستمعامل سرورها
- بازیابی سادهتر نسبت به RAIDهای Parity-based
عیب: حدود نیمی از ظرفیت خام قابل استفاده است.
RAID 5 چیست؟
RAID 5 از ترکیب Striping و Parity استفاده میکند و حداقل به سه دیسک نیاز دارد.
این RAID میتواند خرابی یک دیسک را تحمل کند.
برای مثال، در آرایهای متشکل از سه دیسک ۲ ترابایتی، حدود ۴ ترابایت ظرفیت قابل استفاده خواهید داشت و ظرفیت معادل یک دیسک برای Parity مصرف میشود.
RAID 5 از نظر ظرفیت نسبت به RAID 1 بهینهتر است، اما در Writeهای سنگین به دلیل محاسبه Parity میتواند سربار بیشتری داشته باشد.
RAID 6 چیست؟
RAID 6 شبیه RAID 5 است، اما از دو مجموعه Parity استفاده میکند و میتواند خرابی همزمان دو دیسک را تحمل کند.
این ویژگی باعث شده RAID 6 برای Storageهای بزرگ و آرشیوی گزینه قابل توجهی باشد.
مزایا:
- تحمل خرابی دو دیسک
- ظرفیت مناسب
- مناسب برای Storageهای حجیم
در مقابل، عملیات Write و Rebuild میتواند نسبت به RAID 10 پیچیدهتر و کندتر باشد.
RAID 10 چیست؟
RAID 10 یا RAID 1+0 ترکیبی از Mirroring و Striping است و حداقل به چهار دیسک نیاز دارد.
این RAID یکی از گزینههای محبوب برای Workloadهایی است که Performance و تحمل خرابی هر دو اهمیت دارند.
برای مثال، چهار دیسک ۱ ترابایتی در RAID 10 حدود ۲ ترابایت ظرفیت قابل استفاده ایجاد میکنند.
چرا RAID 10 برای VM مناسب است؟
ماشینهای مجازی معمولاً I/O زیادی تولید میکنند. یک سرور ممکن است همزمان چندین VM شامل Database، Web Server، Application Server و سرویسهای مختلف را اجرا کند.
در چنین محیطی، Storage باید بتواند تعداد زیادی عملیات Read و Write را مدیریت کند.
RAID 10 به دلیل نداشتن محاسبات Parity در مسیر Write، برای بسیاری از Workloadهای Virtualization گزینه مناسبی است.
به همین دلیل، اگر سؤال این باشد که RAID چیست و برای VM چه RAIDای مناسب است؟، RAID 10 یکی از مهمترین گزینههایی است که باید بررسی شود.
RAID 50 و RAID 60 چیست؟
در Storageهای بزرگتر میتوان از RAIDهای ترکیبی استفاده کرد.
RAID 50 ترکیبی از RAID 5 و RAID 0 است و میتواند نسبت به یک RAID 5 بزرگ، Performance و مقیاسپذیری بهتری ارائه دهد.
RAID 60 نیز ترکیبی از RAID 6 و RAID 0 است و برای آرایههای بزرگ که تحمل خرابی بیشتری نیاز دارند، قابل استفاده است.
این Levelها معمولاً در Storageهای بزرگ و Enterprise کاربرد بیشتری دارند.
برای Data چه RAIDای مناسب است؟
انتخاب RAID برای Data کاملاً به نوع اطلاعات و الگوی دسترسی بستگی دارد.
فرض کنید یک Storage چندین ترابایتی دارید که بیشتر برای فایلهای حجیم، آرشیو و اطلاعاتی استفاده میشود که I/O بسیار سنگینی ندارند.
در چنین شرایطی RAID 6 میتواند گزینه مناسبی باشد؛ زیرا ظرفیت قابل استفاده خوبی ارائه میدهد و در برابر خرابی دو دیسک مقاومت دارد.
اما اگر Data شما یک Database پرتراکنش باشد، شرایط کاملاً متفاوت است و RAID 10 میتواند انتخاب مناسبتری باشد.
بنابراین نمیتوان گفت «برای Data همیشه RAID 6» یا «همیشه RAID 10». نوع Workload تعیینکننده است.
برای VM چه RAIDای بهتر است؟
در محیطهای Virtualization، Performance Storage اهمیت زیادی دارد.
تصور کنید یک سرور فیزیکی دارید که چندین ماشین مجازی روی آن اجرا میشوند. هر VM میتواند همزمان در حال خواندن و نوشتن اطلاعات باشد.
برای چنین محیطی، RAID 10 معمولاً یکی از انتخابهای اصلی است؛ بهخصوص زمانی که IOPS و Latency اهمیت زیادی داشته باشند.
البته RAID تنها عامل Performance نیست. نوع دیسک نیز تأثیر بسیار زیادی دارد.
برای مثال، RAID 10 روی HDD از نظر I/O با RAID 10 روی Enterprise SSD یا NVMe قابل مقایسه نیست.
آیا میتوان Data و VM را از هم جدا کرد؟
بله، و اینجا RAID وارد یک سناریوی جالب در طراحی سرور میشود.
فرض کنید سروری با تعداد کافی دیسک دارید. میتوانید بهجای قرار دادن همه دیسکها در یک آرایه، Storage را به چند آرایه مستقل تقسیم کنید.
برای مثال:
Disk 1 تا ۴ → RAID 10 → VM Storage
و
Disk 5 تا ۸ → RAID مناسب → Data Storage
در این حالت، VMها و Data از دیسکهای فیزیکی متفاوت استفاده میکنند.
مزیت مهم این معماری، جداسازی I/O است. اگر VMها I/O سنگینی ایجاد کنند، تأثیر آن روی Data کمتر خواهد بود.
البته انتخاب RAID دوم به تعداد دیسکها، ظرفیت مورد نیاز و نوع Workload بستگی دارد و نمیتوان بدون بررسی سختافزار، برای همه سرورها یک نسخه یکسان ارائه کرد.
Logical Drive چیست؟
یکی از مفاهیمی که هنگام کار با RAID Controller با آن مواجه میشوید، Logical Drive است.
RAID Level مشخص میکند دیسکهای فیزیکی چگونه با یکدیگر ترکیب شوند، درحالیکه Logical Drive یک فضای ذخیرهسازی منطقی است که Controller در اختیار سیستمعامل یا Hypervisor قرار میدهد.
بهصورت ساده میتوان این ساختار را تصور کرد:
Physical Disks → RAID Array → Logical Drive → OS / Hypervisor
بنابراین Logical Drive و RAID دقیقاً یک مفهوم نیستند.
RAID Controller چیست؟
در بسیاری از سرورهای Enterprise، مدیریت RAID توسط یک Hardware RAID Controller انجام میشود.
Controller وظایفی مانند موارد زیر را بر عهده دارد:
- ایجاد RAID Array
- مدیریت Logical Drive
- تشخیص خرابی دیسک
- Rebuild آرایه
- مدیریت Cache
- پشتیبانی از Hot Spare
- گزارش وضعیت Storage
در سرورهای سازمانی، مدل RAID Controller و قابلیتهای آن باید قبل از طراحی Storage بررسی شود؛ زیرا هر Controller از همه RAID Levelها و تمام قابلیتهای Storage پشتیبانی نمیکند.
RAID و Backup چه تفاوتی دارند؟
این دو مفهوم نباید با یکدیگر اشتباه گرفته شوند.
RAID برای Availability و تحمل خرابی دیسک استفاده میشود، اما Backup برای بازیابی اطلاعات است.
مثلاً اگر یک دیسک در RAID 10 خراب شود، RAID میتواند سرویس را همچنان فعال نگه دارد.
اما اگر یک فایل مهم بهاشتباه حذف شود، RAID نمیتواند نسخه قبلی آن را برگرداند.
پس یک زیرساخت حرفهای بهتر است علاوه بر RAID، Backup مستقل نیز داشته باشد.
چگونه RAID مناسب سرور را انتخاب کنیم؟
قبل از انتخاب RAID، این موارد را بررسی کنید:
- نوع Workload: VM، Database، File Server یا Backup؟
- ظرفیت: چه مقدار فضای قابل استفاده نیاز دارید؟
- Performance: IOPS و Latency چقدر اهمیت دارند؟
- تحمل خرابی: خرابی یک یا دو دیسک باید قابل تحمل باشد؟
- نوع دیسک: HDD، SSD، SAS یا NVMe؟
- RAID Controller: سختافزار سرور از چه Levelهایی پشتیبانی میکند؟
- Rebuild: بازسازی آرایه بعد از خرابی چقدر زمان میبرد؟
- Backup: آیا برای اطلاعات مهم Backup مستقل وجود دارد؟
به همین دلیل، انتخاب RAID نباید فقط بر اساس ظرفیت یا سرعت انجام شود.
جمعبندی
در پاسخ به سؤال RAID چیست میتوان گفت RAID یک روش طراحی Storage است که با ترکیب چند دیسک، امکان ایجاد تعادل بین Performance، ظرفیت و تحمل خرابی را فراهم میکند.
RAID 0 بیشتر روی سرعت تمرکز دارد، RAID 1 افزونگی ایجاد میکند، RAID 5 و RAID 6 از Parity استفاده میکنند و RAID 10 ترکیبی از سرعت و Redundancy را ارائه میدهد.
در سرورهای واقعی، انتخاب RAID باید بر اساس نوع سرویس انجام شود. برای مثال، در یک سرور مجازیسازی، RAID 10 میتواند برای VMها انتخاب مناسبی باشد، درحالیکه برای Data حجیم و آرشیوی، RAID 6 میتواند گزینه بهتری باشد.
در نهایت، بهترین RAID وجود ندارد؛ بهترین RAID برای هر Workload وجود دارد.
و مهمتر از همه، RAID را نباید جایگزین Backup دانست. یک Storage حرفهای باید در کنار RAID، از Backup، Monitoring و برنامه Disaster Recovery نیز برخوردار باشد.
اگر این مقاله برای شما مفید بود، آن را با مدیران شبکه و متخصصان زیرساخت به اشتراک بگذارید و تجربه خود درباره استفاده از RAID در سرورها را در بخش نظرات مطرح کنید.