معرفی کامل انواع سطوح RAID در هارد دیسک ها
RAID | اگر تاکنون به دنبال خرید یک سرور سخت افزاری و یا تجهیزاتی مثل NAS یا SAN بوده اید حتما با واژه RAID برخورد کرده اید. چه بخواهید و چه نخواهید اگر به دنبال بالا بردن کارایی و مقابله با Data Loss در سرورها و تجهیزات ذخیره سازی خود باشید به معماری به نام RAID نیاز خواهید داشت. اما نکته مهم در این خصوص این است که ما انواع و اقسام RAID در سطوح مختلف داریم که هر کدام برای برطرف کردن یک سری از نیازهای ما طراحی شده اند.
RAID چیست؟
کلمه RAID مخفف Redundant Array Of Independent (Inexpensive) Disks می باشد که ترجمه فارسی آن آرایه ای از دیسک های اضافه بر سازمان مستقل می شود، به هیچ عنوان RAID را ترجمه نکنید چون به همان اندازه ای که الان به ترجمه خندیدید به شما هم می خندند. بصورت معمول وقتی صحبت از RAID می شود در واقع ما در مورد دو یا چندین دیسک سخت افزاری صحبت می کنیم که در کنار هم قرار گرفته اند و به کمک هم می توانند یا کارایی یک سیستم را بالا ببرند و یا خطاپذیری یا Fault Tolerance یک سیستم را افزایش بدهند، این سیستم معمولا یک سرور سخت افزاری و یا یک دستگاه NAS Storage است. به این نکته توجه کنید که RAID هم می تواند کارایی یا Performance را بالا ببرد، هم خطاپذیری یا Fault Tolerance را بالا ببرد و هم می تواند بر حسب نوع و سطح RAID ای که انتخاب می کنیم هر دوی این موارد را بالا ببرد. وقتی صحبت از Fault Tolerance یا خطاپذیری می شود یعنی اینکه RAID به ما این قابلیت را می دهد که در صورت بروز خطا برای یک یا چند هارد دیسک ما، اطلاعات و سرور ما دچار اختلال نشده و به کار خود ادامه بدهد و بتواند در برابر این خطایی که ایجاد شده است مقاومت کند که یک درجه ایمنی بسیار خوب برای سرورهای سخت افزاری به حساب می آید.
روشی که شما برای خطاپذیری یا Fault Tolerance در RAID انتخاب می کنید دقیقا وابسته به نوع RAID ای است که شما انتخاب می کنید، نوع RAID را به عنوان سطح یا RAID Level هم می شناسیم. سطح RAID ای که ما انتخاب می کنیم به عوامل مختلفی بستگی دارد که از آن جمله می توانیم به تعداد دیسک هایی که در اختیار داریم، حساسیت اطلاعات موجود، روش بازیابی اطلاعات، نیاز شما به این اطلاعات و در نهایت کارایی و سرعتی است که شما به آن نیاز دارید. برای مثال اهمیت اینکه داده های شما بعد از به مشکل خوردن و سوختن یکی از هارد دیسک های سرور به اشکال نخورده و سرور همچنان بتواند به سرویس دهی خود ادامه دهد و خللی در کارش وارد نشود در یک سازمان قطعا خیلی خیلی بیشتر از یک کاربر خانگی است که برای پشتیبان گیری از اطلاعات خودش ساختار RAID را پیاده سازی کرده است. سطوح مختلف RAID دارای پیکربندی ها و قابلیت های مختلفی در ارائه خدمات Fault Tolerance و Performance هستند که شما بر اساس نیاز خودتان یکی از آنها را انتخاب می کنید.
مروری بر تکنولوژی RAID
تکنولوژی RAID ذاتا برای سازمان ها و شرکت هایی طراحی شده است که خطا پذیری دیسک ها و بالا بودن کارایی دستگاه از اولویت ها محسوب می شود و کارایی سرور یک باید است و نه اینکه یک امر تجملاتی برای سرور در نظر گرفته شده باشد. سرورهای سخت افزاری و تجهیزات NAS ای که در مراکز داده مورد استفاده قرار می گیرند معمولا بر روی خودشان دستگاه یا بورد سخت افزاری به نام RAID Controller دارند که مجموعه دیسک هایی که در RAID استفاده می شود را مدیریت می کنند، این بورد های سخت افزاری بسته به سخت افزاری که بر روی آنها نصب می شود می توانند چندین هارد دیسک SSD SATA یا SAS را بر روی خود نگه دارند. در ابتدا طراحی RAID فقط برای سرورها و NAS Storage های سازمانی طراحی شده بود اما امروزه حتی PC های خانگی و NAS های کوچک هم قابلیت پیاده سازی RAID را بر روی خود دیده اند و حداقل دو عدد هارد دیسک را می توانید بر روی این دستگاه ها مشاهده کنید، بنابراین امروزه RAID را دقیقا مشابه همان چیزی که در سازمان ها مشاهده می کنید در مصارف خانگی نیز خواهید دید. به این نوع RAID ها که دارای یک سخت افزار خاص برای نگهداری هارد دیسک ها و مدیریت آنها می باشند Hardware RAID یا RAID سخت افزاری گفته می شود.
RAID نرم افزاری بدین معناست که شما می توانید هارد دیسک های خود را با هم RAID کنید و اینکار را بدون نیاز به داشتن سخت افزار خاصی مثل RAID Controller انجام دهید. در RAID های سخت افزاری این RAID Controller است که وظیفه مدیریت RAID را برعهده دارد اما در RAID های نرم افزاری این سیستم عامل است که می تواند کلیه کارهای مربوط به RAID را انجام و مدیریت کند. جالب اینجاست که امروزه حتی در ویندوزهای نسخه دسکتاپ هم شما قابلیت پیاده سازی RAID را دارید، در ویندوز هشت به بعد و یک قابلیتی به نام Storage Pool اضافه شده است که کاربر براحتی می تواند با استفاده از آن RAID نرم افزاری ایجاد کند، جالب اینجاست که شما در Storage Pool می تواند بر روی یک هارد دیسک دو عدد پارتیشن ایجاد کنید که یکی برای بوت شدن سیستم عامل و دیگری برای نگهداری داده های شما استفاده شود و پارتیشنی که در آن داده وجود دارد را می توانید Mirror کنید.
این نوع ساختار RAID نرم افزاری در سیستم عامل های دیگری مثل OS X سرور، لینوکس و ویندوزهای سرور هم وجود دارد. با توجه به اینکه امروزه قابلیت RAID در تمامی سیستم عامل ها تقریبا وجود دارد و به عنوان یک قابلیت پیشفرض در نظر گرفته می شود این نوع ساختار RAID دیگر هزینه ای برای پیاده سازی ندارد. با استفاده از قابلیت RAID نرم افزاری امروزه شاهد پیاده سازی راهکار های RAID های مجازی هم هستیم که توسط برخی از Vendor ها ارائه می شوند.
کدام RAID مناسب کار شما است؟
ما RAID ها را به سطوح مختلفی طبقه بندی می کنیم که هر کدام از این سطوح بسته به نیاز ما مورد استفاده قرار می گیرند، انتظار ما از سطوح مختلف RAID یا کارایی بالا، یا خطا پذیری بالا و یا هر دوی این موارد بصورت همزمان است. البته این موضوع هم خیلی مهم است که نیاز شما با RAID های سخت افزاری برطرف می شود یا باید از RAID های نرم افزاری استفاده کنید، به این موضوع توجه کنید که برخی از سطوح RAID فقط در لایه سخت افزار قابل پیاده سازی هستند و تنها چند مورد RAID شناخته شده هستند که در لایه نرم افزار قابل پیاده سازی هستند. اگر قصد استفاده کردن از RAID های سخت افزاری را نیز داشته باشید نوع Controller ای که استفاده می کنید نیز در برطرف کردن نیاز شما موثر است، RAID Controller های مختلف از سطوح مختلفی از RAID های سخت افزاری پشتیبانی می کنند و همچنین حتی نوع هارد دیسک هایی که بر روی این RAID Controller ها پشتیبانی می شود نیز می تواند متفاوت باشد، RAID Controller ها می توانند از هارد دیسک های SAS SSD و یا SATA پشتیبانی کنند. حالا به سراغ معرفی انواع سطوح RAID می رویم.
معرفی RAID Level 0
RAID Level 0 به اسامی مثل Disk Striping Without Parity یا در برخی موارد به Disk Striping هم معروف است. Stripe به معنی راه راه یا خط خطی است، همانطور که گور خر راه راه است، یعنی داده ها بصورت ریز ریز شده در بین دو یا چند دیست به نسبت مساوی تقسیم می شوند، از این نوع RAID برای بالا بردن سرعت و کارایی دستگاه ها استفاده می شود. در این نوع RAID کارهای کامپیوتر بر روی حداقل دو عدد هارد دیسک انجام می شود به گونه ای که خواندن و نوشتن اطلاعات همزمان بر روی دو یا چند دیسک انجام می شود و به همین دلیل سرعت خواندن و نوشتن داده ها بسیار بیشتر از حالت معمول است چون دو عدد هارد درایو همزمان داده ها را در بین خود تقسیم می کنند و طبیعتا Head های دو عدد هارد دیسک برای نوشتن و خواندن اطلاعات استفاده می شود، هر چقدر تعداد این Head های نوشتن و خواندن بیشتر باشد سرعت نیز بالاتر خواهد رفت.
این نوع RAID دارای بهترین سرعت و کارایی در I/O است. همانطور که گفتیم برای پیاده سازی RAID Level 0 حداقل به دو عدد هارد دیسک نیاز داریم، از طرفی این نوع RAID هم بصورت نرم افزاری و هم بصورت سخت افزاری قابل پیاده سازی است، اما نکته منفی در خصوص استفاده از RAID Level 0 این است که این نوع از RAID ها قابلیت Fault Tolerance یا خطا پذیری ندارند، یعنی زمانی که یکی از هارد دیسک های ما از بین برود، تمامی داده های ذخیره سازی شده بر روی سایر هارد دیسک ها نیز دچار مشکل و غیر قابل بازیابی می شوند. R در کلمه RAID به عنوان Redundant یا افزونگی معنی می شود و در واقع ماهیت RAID که خطاپذیری است را می رساند، با توجه به اینکه RAID Level 0 به هیچ عنوان دارای افزونگی و خطاپذیری نمی باشد می توانیم از آن به عنوان AID نام ببریم. اگر برایتان سرعت مهم است خطاپذیری اصلا مطرح نیست می توانید از این سطح از RAID استفاده کنید. در این نوع RAID اگر دو عدد دیسک 1 ترابایتی داشته باشیم ظرفیتی که از آن می توانیم استفاده کنیم، مجموع ظرفیت های دو دیسک یعنی 2 ترابایت خواهد بود.
معرفی RAID Level 1
RAIL Level 1 به اسامی Disk Mirroring یا Mirror هم معروف است. همانطور که از نامش هم پیداست در این نوع RAID حداقل دو دیسک استفاده می شود و همانطور که در معنی کلمه Mirror مشخص است، هر چیزی که در یک دیسک کپی می شود در دیسک دوم نیز عینا کپی می شود و دیسک دوم دقیقا مشابه اطلاعاتی را دارد که در دیسک اول نوشته می شود. زمانیکه اطلاعات در یک دیسک کپی می شود، بصورت همزمان همان اطلاعات بر روی دیسک دیگر نیز نوشته می شود و همین امر یعنی در RAID Level 1 ما خطاپذیری یا Redundancy را داریم و در صورت خراب شدن و از بین رفتن یکی از دیسک ها، عین داده ها در دیسک دیگر وجود دارد و می توانیم در ادامه از داده هایمان استفاده کنیم. این نوع RAID یکی از ساده ترین و پرکاربردترین نوع RAID می باشد که با کمترین هزینه قابل پیاده سازی و استفاده است.
اما 1 RAID level یک سری معایب نیز دارد. مهمترین نکته منفی در خصوص استفاده از RAID Level 1 سرعت پایین این نوع RAID است. با توجه به اینکه هر داده ای که قرار است بر روی دیسک ها نوشته شود در واقع دو بار باید نوشته شود، همین موضوع باعث کند شدن این RAID می شود. 1 RAID level هم بصورت نرم افزاری و هم بصورت سخت افزاری قابل پیاده سازی است و برای پیاده سازی سخت افزاری آن حداقل به دو عدد دیسک نیاز داریم اما در پیاده سازی نرم افزاری RAID Level 0 شما می توانید این RAID را بر روی یک دیسک و چندین پارتیشن پیاده سازی کنید. اما نکته منفی و البته مهم دیگری که در استفاده از RAID Level 1 باید به خاطر داشته باشید این است که اگر شما در این نوع RAID دو عدد هارد دیسک 1 ترابایتی استفاده کنید تنها قادر به استفاده از 1 ترابایت از حداکثر ظرفیت ممکن که 2 ترابایت است خواهید بود زیرا اطلاعات همزمان دو برابر فضای معمول از دیسک ها استفاده می کنند.
معرفی RAID Level 5
RAID Level 5 به عنوان Disk Striping With Parity هم معروف است. این نوع RAID بیشترین استفاده را در سرورهای سازمانی و سخت افزارهای NAS Storage دارد. در این نوع RAID شما علاوه بر اینکه Fault Tolerance یا خطاپذیری دارید، سرعت و کارایی به نسبت بالایی را نیز تجربه خواهید کرد. در این نوع RAID داده ها زمانیکه بر روی دیسک ها نوشته می شوند همزمان نوعی داده به نام Parity نیز بر روی دیسک های دیگر بصورت منظم نوشته می شود که این Parity برای بازیابی اطلاعات در صورت بروز مشکل استفاده می شود، در این تکنیک همانند RAID Level 0 داده ها بصورت Striped یا ریز ریز شده در بین دیسک ها ذخیره می شوند و علاوه بر اینکار قابلیت Parity نیز بر روی دیسک ها نوشته می شود. در صورتیکه یکی از هارد دیسک های ما دچار مشکل و اختلال شود، داده های ما از سایر دیسک های موجود قابل بازیابی خواهد بود و اینکار توسط همان Parity انجام می شود که صحبت کردیم، معمولا اینکار بصورت خودکار با اضافه شدن هارد دیسک جدید انجام می شود و مهمترین نکته در خصوص RAID Level 5 این است که در زمان خارج کردن هارد دیسک مشکل دار و جایگزینی آن، سازمانی کاری و روند سرویس دهی سرور شما دچار اختلال نخواهد شد.
یکی از مهمترین نکات مثبتی که در خصوص RAID Level 5 وجود دارد این است که به سرورها و NAS Storage ها قابلیت Hot Swappable را می دهد، قابلیت Hot Swappable به این معنا است که شما می توانید یک هارد دیسک مشکل دار را از روی سرور یا NAS Storage خارج کرده و هارد دیسک جدید را وارد کنید و در این حین به هیچ عنوان نیازی به خارج کردن سرور از مدار یا خاموش کردن و Restart کردن دستگاه نیست و همین موضوع باعث می شود سرویس دهی به کاربران قطع نشود. استفاده از RAID Level 5 در سرورهایی که هم برایشان سرعت و هم کارایی و هم Fault Tolerance یا خطا پذیری مهم است پیشنهاد می شود.
معرفی RAID Level 6
یکی از نقاط ضعفی که در RAID Level 5 وجود دارد این است که با از بین رفتن دو عدد هارد دیسک که در مجموعه RAID ما قرار گرفته اند کل داده های ما از بین می رفت و RAID Level 5 تنها قابلیت ریکاوری داده ها در زمانی را دارد که یکی از هارد دیسک های ما Fail شود. اما در RAID Level 6 این نقطه ضعف برطرف شده است. در واقع RAID Level 6 یک ویژگی اضافه شده به RAID Level 5 است که این امکان را می دهد که در صورتیکه دو عدد از هارد دیسک های مجموعه RAID از بین رفتند همچنان قابلیت ریکاوری داده ها را داشته باشیم. طبیعی است که حداقل تعداد هارد دیسک های که برای پیاده سازی این نوع RAID مورد نیاز است از RAID Level 5 بیشتر است. این نوع RAID به ندرت در سازمان ها و شرکت های کلان مورد استفاده قرار می گیرد.
معرفی RAID Level 10
RAID Level 10 در واقع باید بصورت RAID Level یک و صفر خوانده شود زیرا ترکیبی از RAID Level 1 و RAID Level 0 است، این نوع RAID معمولا به شکل RAID 1+0 نمایش داده می شود. در اینجا قابلیت Mirror کردن RAID Level 1 با قابلیت Striping در RAID Level 0 ترکیب شده اند. در این نوع RAID شما بهترین حالت کارایی یا Performance را تجربه خواهید کرد اما هر که بامش بیش برفش بیشتر، برای پیاده سازی RAID Level 10 شما هزینه بیشتری برای پیاده سازی نیاز دارید زیرا حداقل تعداد هارد دیسک هایی که برای پیاده سازی این نوع RAID استفاده می شود 4 عدد است. این نوع RAID برای سرورهای پایگاه داده ای که دارای فرآیند های نوشتن و خواندن زیادی هستند بسیار مناسب است. RAID Level 10 را می توان هم بصورت نرم افزاری و هم بصورت سخت افزاری پیاده سازی کرد اما در صورت پیاده سازی بصورت نرم افزاری بسیاری از قابلیت هایی که در این نوع RAID برای بالا بردن کارایی و سرعت پیاده سازی شده است از بین خواهد رفت بنابراین بهترین گزینه برای پیاده سازی این نوع RAID با استفاده از RAID Controller سخت افزاری است.
معرفی RAID Level 2
RAID Level 2 بسیار شبیه به RAID Level 5 است با این تفاوت که به جای استفاده از تکنیک Striping با استفاده از Parity در این نوع RAID تکنیک Striping در سطح بیت یا Bit Level Striping انجام می شود. از این نوع RAID به ندرت در مصارف خاص استفاده می شود و هزینه پیاده سازی آن نیز بسیار زیاد است، بعضا به هیچ عنوان استفاده از چنین RAID ای به دلیل هزینه بسیار زیاد توصیه نمی شود، برای مثال حداقل تعداد دیسک های مورد نیاز برای پیاده سازی RAID Level 2 عدد 6 است، از طرفی این نوع RAID در برخی از فرآیند های کاری I/O دیسک از خودش کارایی ضعیفی ارائه می دهد.
معرفی RAID Level 3
RAID Level 3 بسیار شبیه به RAID Level 5 است با این تفاوت که در این راهکار یک دیسک بصورت اختصاصی برای نگهداری Parity ها استفاده می شود. در این نوع RAID ساختار Striping در سطح بایت یا Byte Level Striping انجام می شود. از RAID Level 3 بسیار به ندرت استفاده می شود. یکی از نقطه ضعف های این RAID این است که معمولا نمی تواند چندین درخواست را بصورت همزمان پاسخگویی کند. این تاخیر یا کندی پاسخ به دلیل این است که هر بار که قرار است در این نوع RAID فرآیند I/O انجام شود باید یکبار همه دیسک ها خوانده شوند و همین موضوع باعث کاهش کارایی می شود. تقریبا می توان از این سطح RAID به عنوان بی مصرف ترین نوع RAID نام برد، شاید در برخی موارد از این RAID برای پایگاه داده های خاص و یا محیط های پردازشی استفاده شود.
معرفی RAID Level 4
RAID Level 4 نیز تا حدودی شبیه به RAID Level 5 عمل می کند با این تفاوت که ساختار Striping در این نوع RAID بصورت Block Level انجام می شود و همچنین یک دیسک بصورت اختصاصی برای Parity استفاده می شود. از این RAID به ندرت استفاده می شود زیرا در کنار اینکه برخی مواقع ممکن است کارایی خوبی ارائه دهد وقتی زیاد درگیر استفاده از Parity در یک دیسک شود کارایی آن به شدت کاهش پیدا می کند.
معرفی RAID Level 7
این RAID یک RAID اختصاصی و سازنده آن یک شرکت معتبر در زمینه تولید تجهیزات ذخیره سازی است و بصورت عام استفاده نمی شود. از این نوع RAID ها که بصورت استاندارد وجود ندارند به عنوان Non-Standard RAIDs نام برده می شوند که می توانید در لینک زیر اطلاعات خوبی در خصوص این نوع RAID ها پیدا کنید:
معرفی RAID Level 0 + 1
RAID Level 0+1 شبیه به RAID Level 10 یک RAID ترکیبی است که ما این نوع RAID ها را در طبقه بندی به نام Nested RAIDs یا RAID های ترکیبی یا Hybrid RAIDs قرار می دهیم. این نوع RAID در بسیاری از اوقات با RAID Level 10 اشتباه گرفته می شود اما اینها ساختار متفاوتی با هم دارند. این نوع RAID به شکل Mirror Of Stripes معروف است یعنی فرآیند Mirroring را در کنار فرآیند Striping در کنار هم قرار داده است. از این نوع RAID در محل هایی استفاده می شود که کارایی بسیار بالا مورد نیاز است اما درجه بسیار بالایی از Scalability نیاز نیست.
همانطور که گفتیم سطوح RAID به همین ها محدود نمی شود به ویژه اینکه در ساختار Nested RAID ما انواع و اقسام RAID های ترکیبی را داریم که در این مجال نمی گنجد. اما برای اینکه از کل مطالب یک جمع بندی کرده باشیم بهتر است اینگونه بگوییم که برای بیشتر شرکت ها و سازمان های کوچک تا متوسط RAID های سطوح 0 و 1 و 5 و در برخی اوقات 10 پیشنهاد می شود تا بتوانند از Fault Tolerance و کارایی به نسبت خوبی برخوردار باشند. اما برای کاربران خانگی بهترین گزینه RAID Level 1 است زیرا آنها می خواهند بیشتر خطاپذیری داشته باشند تا کارایی بالاتر، اما مهمترین نکته ای که باید در خصوص RAID ها بدانید این است که RAID یک راهکار Backup گیری نیست اما می تواند جزوی از یک استراتژی Backup گیری باشد.
در ادامه دیاگرام چند RAID ترکیبی را برای شما قرار می دهید:
RAID 03 (RAID 0+3)
RAID 50 (RAID 5+0)
RAID 60 (RAID 6+0)
RAID 100 (RAID 10+0)
محاسبه ظرفیت RAID ها بصورت گرافیکی و انیمیشن
شرکت Synology یکی از بزرگترین تولید کننده تجهیزات ذخیره سازی اطلاعات اعم از NAS Storage و SAN Storage در دنیا می باشد، این شرکت Enclusure های مختلفی را به بازار معرفی کرده است که طبیعتا در این سخت افزارها طراحی RAID و استفاده کردن به بهینه ترین شکل ممکن از ظرفیت هارد دیسک ها بسیار اهمیت دارد، این شرکت یک ابزار گرافیکی و آنلاین را معرفی کرده است که شما می توانید بصورت کاملا گرافیکی و ساده انواع و اقسام RAID ها را بر روی Controller های این شرکت تست کنید و ظرفیت نهایی هارد دیسک ها و پارتیشن هایی که این RAID به شما می دهد را بصورت گرافیکی می توانید مشاهده کنید، اگر می خواهید بدانید که در صورت استفاده از چه تعداد هارد دیسک و با چه ظرفیت هایی چه فضایی در اختیار شما در چه نوع RAID ای اختصاص پیدا می کند حتما از این ابزار زیبا استفاده کنید. این ابزار کاملا بصورت شبیه سازی و Simulation عمل می کند و بسیار دقیق ظرفیت های RAID را محاسبه می کند.