آرایه RAID چیست؟
(RAID(redundant array of independent disks، روشی برای ذخیره دادههای یکسان، در قسمتهای متفاوت روی چندین هارد دیسک یا درایو SSD، برای محافظت از اطلاعات، هنگام از کار افتادن یک درایو میباشد. لولهای مختلفی برای آرایه RAID وجود دارد.
RAIDچگونه کار می کند؟
نحوه عملکرد RAID به اینصورت است که دادهها را بر روی دیسکهای مختلف قرار میدهد. و اجازه میدهد عملیات ورودی/خروجی(I/O)، به روشی متعادل، با هم، همپوشانی داشته باشند و عملکرد را بهبود بخشند. از آنجا که استفاده از دیسکهای مختلف، میانگین زمان بین خرابیها(MTBF) را افزایش میدهد، ذخیره اطلاعات به صورت اضافه، تحمل خطا را نیز افزایش می دهد.
آرایه های RAID، به عنوان یک درایو منطقی مجزا برای سیستم عامل(OS) نشان داده میشوند. RAID از تکنیکهای disk mirroring یا disk striping استفاده میکند. Mirroring، اطلاعات یکسان را بر روی بیش از یک درایو کپی میکند. پارتیشن بندی stripping اطلاعات را روی چندین دیسک پخش میکند. فضای ذخیره سازی هر درایو به واحدهای مختلفی از یک سکتور(۵۱۲ بایت) تا چندین مگابایت تقسیم میشوند. استریپهای تمام دیسک ها به ترتیب در هم تنیده شده و آدرسدهی شدهاند.
تکنیکهای disk mirroring و disk stripping میتوانند به طور ترکیبی در یک آرایه RAID استفاده شوند.
در یک سیستم تک کاربره که فایلهای بزرگ در آن ذخیره میشود، استریپها به طور معمول در سایز کوچک(شاید ۵۱۲ بایت) تنظیم شده اند، به گونهای که یک فایل، تمام دیسکها را پوشش میدهد و با خواندن همه دیسکها به طور همزمان، میتوان به سرعت به آن دسترسی پیدا کرد.
در یک سیستم چند کاربره، برای عملکرد بهتر، یک استریپ به اندازه کافی گسترده نیاز است، تا فایلی با اندازه معمولی یا حداکثر اندازه را در خود نگه دارد.
RAID Controller چیست؟
RAID Controller، دیوایسی برای مدیریت دیسک درایوها در آرایه حافظه میباشد. میتواند به عنوان یک سطح از انتزاع بین سیستم عامل و دیسک های فیزیکی استفاده شود. و گروههای دیسک را به عنوان واحدهای منطقی معرفی میکند. استفاده از RAID Controller باعث بهبود عملکرد میشود. و به حفاظت از دیتا در موارد حادثه کمک می کند.
انواع RAID Controller چیست؟
یک RAID Controller میتواند مبتنی بر نرم افزار یا سخت افزار باشد.
RAID Controller های مبتنی بر سخت افزار
در آرایههای مبتنی بر سخت افزار، یک کنترولر فیزیکی، آرایه را مدیریت میکند. همچنین کنترولر طوری طراحی شده است تا فرمت های SATA و SCSI را پشتیبانی کند. یک RAID Controller فیزیکی، می تواند بر روی ماردبورد سرور ساخته شود.
RAID Controller های مبتنی بر نرم افزار
در RAID های مبتنی بر نرم افزار، کنترولر از منابع سخت افزاری سیستم، مانند مموری و پردازنده مرکزی استفاده میکند. باوجودیکه کنترولر RAID مبتنی بر نرم افزار مانند کنترولر RAID مبتنی بر سخت افزار عمل میکند، اما کنترولرهای مبتنی بر نرم افزار به عنوان یک تقویت کننده عملکردی، عمل نخواهند کرد. و میتوانند بر روی عملکرد سایر اپلیکیشنها در سرور تاثیر بگذارند.
RAID Controller های مبتنی بر سیستم عامل
اگر اجرای RAID مبتنی بر نرم افزار با فرایند بوت شدن سیستم سازگار نباشد، و یا کنترولرهای RAID مبتنی بر سخت افزار، پرهزینه باشند، RAID مبتنی بر درایور یا سیستم عامل، به عنوان گزینه دیگر درنظر گرفته میشود.
چیپ های کنترولر RAID مبتنی بر سیستم عامل، بر روی مادربورد قرار گرفته اند. و مانند RAID مبتنی بر نرم افزار، تمام عملیات توسط CPU اجرا میشود. به هرحال، با سیستم عامل، سیستم RAID تنها در زمان آغاز پروسه بوت شدن اجرا می شود. زمانی که سیستم عامل لود شد، درایور کنترولر، عملکرد RAID را به عهده میگیرد. کنترولر RAID سیستم عامل در مقایسه با گزینه سخت افزاری، هزینه کمتری دارد. اما فشار بیشتری را بر روی CPU کامپیوتر قرار می دهد. RAID مبتنی بر سیستم عامل، همچنین به نام های hardware-assisted software RAID و RAID مدل ترکیبی و RAID جعلی نیز شناخته میشود.
معرفی کامل سطوح RAID
دیوایس های RAID در نسخه های مختلفی استفاده میشوند، که به آنها Level گفته میشود.
سطوح RAID به سه دسته کلی تقسیم میشوند:
- RAID استاندارد
- RAID تو در تو
- RAID غیر استاندارد
سطوح RAID استاندارد
RAID 0
این پیکربندی دارای استریپ است، اما افزونگی داده ندارد.
بهترین عملکرد را ارائه میدهد، اما تحمل خطا را پشتیبانی نمیکند.
RAID 1
به عنوان disk mirroring شناخته میشود.
این پیکربندی حداقل از دو درایو تشکیل شده است. که حافظه ذخیره سازی دیتا را دوبرابر میکند.
در این مدل استریپ وجود ندارد.
عملکرد خواندن، از آنجا که هر دیسک در یک زمان قابل خواندن است بهبود یافته است. عملکرد نوشتن، همانند دیسک ذخیره سازی مجزا میباشد.
RAID 2
این پیکربندی از استریپ در دیسکها استفاده میکند.
در حالیکه برخی از دیسکها، بررسی و تصحیح خطا(ECC) را ذخیره میکنند.
RAID 2 همچنین از یک Parity اختصاصی کد Hamming، یک شکل خطی از کد تصحیح خطا، استفاده میکند.
RAID 2 هیچ مزیتی نسبت به RAID 3 ندارد و دیگر مورد استفاده قرار نمیگیرد.
RAID 3
این روش از استریپ استفاده میکند. و یک درایو را برای ذخیره اطلاعات Parity اختصاص داده است.
اطلاعات ECC تعبیه شده برای تشخیص خطا استفاده میشوند.
بازیابی اطلاعات با محاسبه اطلاعات منحصربه فرد ضبط شده در درایوهای دیگر انجام میشود.
از آنجا که یک عملیات I/O به همه درایوها به طور همزمان می پردازد، RAID 3 نمیتواند I/O را با هم همپوشانی کند.
به همین دلیل، RAID 3 برای سیستم های تک کاربره با نرم افزارهای ضبط طولانی، بهتر است.
RAID 4
این سطح از استریپهای بزرگ استفاده میکند.
به این معنی است که کاربر میتواند از هر درایو به تنهایی، فایلها را بخواند.
تداخلI/O می تواند برای عملیات خواندن استفاده شود.
از آنجا که کلیه عملیات نوشتن نیازمند به روزرسانی درایو Parity میباشد، هیچ همپوشانی I/O امکان پذیر نیست.
RAID 5
این سطح مبتنی بر parity block-level striping است.
اطلاعات parity در هر درایو بصورت استریپ وجود دارد. و حتی اگر یک درایو خراب شود ، آرایه بازهم قادر به فعالیت می باشد.
معماری این آرایه به گونه ای است که عملیات خواندن و نوشتن چندین درایو را پوشش می دهد. در نتیجه منجر به عملکرد بهتری نسبت به یک درایو تنها میشود . اما به اندازه آرایه RAID 0 نیست.
در RAID 5 حداقل به سه دیسک نیاز داریم. اما اغلب به دلایل عملکردی توصیه می شود حداقل از پنج دیسک استفاده شود.
در این مدل اگر یک دیسک خراب شود، زمان زیادی طول میکشد تا آرایه RAID 5 بازسازی شود.
RAID 6
این تکنیک شبیه به ساختار RAID 5 میباشد.
اما شامل یک نقشه Parity دوم نیز میباشد که در طول درایوها در آرایه توزیع شده است.
استفاده از نقشه parity اضافی، آرایه را قادر میسازد که حتی اگر دو دیسک به طور همزمان از کار افتاد، باز هم به فعالیت خود ادامه دهد.
این لایه محافظی اضافی، هزینه بر میباشد.
آرایه های RAID 6 نسبت به آرایه های RAID 5 عملکرد نوشتاری کندتری دارند.
سطوح RAID تودرتو
در اثر ترکیب سطوح RAID ،RAID های تودرتو ایجاد میشوند. در ادامه برخی از RAID های تودرتو آمده است.
(RAID 10(RAID 1+0
این سطح از ترکیب RAID 1 و RAID 0 ساخته میشود. و به RAID 10 معروف است.
این سطح عملکرد بهتری نسبت به RAID 1 ارائه میدهد. ولی به مراتب هزینه بالاتری هم دارد.
در RAID 1+0، اطلاعات mirror شده اند و mirror ها به صورت استریپ قرار گرفته اند.
(RAID 01 (RAID 0+1
این مدل مشابه به مدل RAID 1+0 است.
تفاوت آن ها در متد سازماندهی اطلاعات است.
به جای ایجاد mirror و بعد استریپ قرار دادن mirror ها، این مدل یک مجوعه از استریپ ها را ایجاد می کند و سپس مجموعه استریپ ها را mirror می کند.
(RAID 03 (RAID 0+3
به عنوان RAID 53 یا RAID 5+3 نیز شناخته میشود.
این سطح از تکنیک striping (مانند RAID 0) برای بلوکهای مجازی دیسک RAID 3 استفاده میکند.
این مدل عملکرد بهتری نسبت به RAID 3 رائه میدهد اما هزینه های به مراتب بالاتری دارد.
(RAID 50(RAID 5+0
این ساختار، توزیع Parity RAID 5 را با نوارهای RAID 0 ترکیب کرده است. تا عملکرد RAID 5 را بدون کاهش محافظت اطلاعات، بهبود بخشد.
سطوح RAID غیراستاندارد
سطوح غیراستاندارد RAID متفاوت از سطوح استاندارد RAID می باشند. و معمولا توسط کمپانی ها و سازمان ها عمدتا برای استفاده های اختصاصی، توسعه داده شده اند.
چند مثال از سطوح غیر استاندارد را باهم بررسی می کنیم.
RAID 7
یک سطح غیر استاندارد از RAID که مبتنی بر RAID 3 و RAID 4 میباشد که حافظه پنهان cache را اضافه کرده است.
این مدل شامل یک سیستم عامل تعبیه شده real-time به عنوان یک کنترولر می باشد.
از طریق یک درگاه پرسرعت و دیگر المان های یک کامپیوتر stand-alone، عملیات caching را انجام می دهد.
Adaptive RAID
این سطح، کنترولر RAID را فعال می کند تا درمورد نحوه ذخیره سازی Parity بر روی دیسک ها تصمیم گیری کند.
این مدل از بین مدل های RAID 3 و RAID 5 انتخاب می شود. بستگی دارد که کدام مجموعه RAID، با نوع داده ی نوشته شده بر روی دیسک ها، عملکرد بهتری داشته باشد.
Linux MD RAID 10
این سطح توسط هسته لینوکس ارائه می شود. و از ایجاد آرایه های RAID غیراستاندارد و تودرتو، پشتیبانی می کند. نرم افزار RAID لینوکس همچنین می تواند از ایجاد ساختارهای استاندارد RAID 0، RAID 1، RAID 4، RAID 5 و RAID 6 پشتیبانی کند.
مزایای استفاده از RAID
مزیت های استفاده از RAID شامل موارد زیر میشود:
- بهبود هزینههای مصرفی، چرا که از دیسک های ارزان تر، درتعداد بیشتر استفاده میشود.
- استفاده از چندین هارد درایو، RAID را قادر میسازد تا عملکرد یک هارد تنها را بهبود بخشد.
- سرعت کامپیوتر و قابلیت اعتماد پس از، از کار افتادن را افزایش می دهد(بسته به نوع پیکربندی استفاده شده).
- خواندن و نوشتن، نسبت به یک هارد تنها با RAID 0، سریعتر جرا میشوند.
- به کمک RAID 5، قابلیت در دسترس بودن افزایش مییابد. با استفاده از تکنیک mirroring، آرایه های RAID، شامل دو درایو با اطلاعات مشابه هستند. بنابراین میتوان اطمینان حاصل کرد که در صورت از کار افتادن یک درایو، درایو دیگر به فعالیت خود ادامه میدهد.
معایب استفاده از RAID
استفاده از RAID، در کنار مزایای که دارد، معایبی هم دارد. که بعضی از این موارد رو بررسی میکنیم:
- پیاده سازی سطوح RAID تودرتو، نسبت به سطوح RAID سنتی، هزینه های به مراتب بیشتری دارد. چرا که تعداد دیسک بیشتری نیاز است.
- هزینه بابت هر گیگابایت در دیوایس های ذخیره سازی RAIDهای تودرتو بسیار بیشتر میباشد. چرا که بسیاری از درایوها جهت افزونگی استفاده میشوند.
- زمانی که یک هارد از کار میافتد، احتمال اینکه درایو دیگر نیز در آرایه از کار بیفتد بالا می رود، که درنهایت منجر به از دست رفتن اطلاعات میشود. این مسئله به این دلیل است که تمام هارد درایوها در آرایه RAID در یک زمان نصب شده اند، بنابراین تمام درایوها درمعرض خطر قرار میگیرند.
- بعضی از سطوح RAID مانند RAID 1 و RAID 5، توان تحمل از کار افتادن تنها یک درایو را دارند.
- آرایه های RAID و اطلاعات درون آن ها، تا زمان جایگزین شدن درایو از کار افتاده و قرار گرفتن اطلاعات بر روی دیسک جدید، در معرض آسیب میباشند.
- از آن جا که درایوها به نسبت زمانی که RAID تازه پیادهسازی شده بود، ظرفیت بیشتری دارند، بازسازی درایو از کار افتاده زمان بیشتری طول میکشد.
- اگر درایوی از کار بیفتد، این احتمال وجود دارد که دیسک های باقیمانده، دچار بدسکتور و یا غیرقابل خواندن شدن اطلاعات شوند. که ممکن است بازسازی کامل آرایه را غیر ممکن کند.
آینده RAID
با وجود اینکه RAID کاملا از بین نرفته است، اما بسیاری از تحلیلگران بر این باورند که RAID در سال های آینده منسوخ خواهد شد. جایگزین هایی مانند erasure coding، حافاظت داده ای بهتری را ارائه می دهند و با هدف رفع نقایص RAID، توسعه یافته اند. با افزایش ظرفیت درایوها، احتمال بروز خطا در آرایه RAID نیز افزایش مییابد.
ظهور SSDها نیز، می تواند زمینه ای برای کاهش نیاز به RAID درنظر گرفته شود. SSDها بخش متحرک ندارند. درنتیجه مانند بسیاری از هارد دیسک درایوها دچار از کار افتادگی نمی شوند. آرایه های SSD، اغلب بجای استفاده از RAID برای محافظت از اطلاعات، از تکنیک هایی مانند wear-leveling استفاده می کنند. همچنین Hyperscale computing با استفاده از سرورهای اضافی به جای درایوهای اضافی، نیاز به RAID را ازمیان برمیدارد.
در حال حاضر هنوز هم، RAID به عنوان بخشی از ذخیره سازی اطلاعات باقی است و فروشندگان عمده فناوری هنوز محصولات RAID را منتشر می کنند. کمپانی IBM، IBM Distributed RAIDرا با Spectrum Virtualize V7.6 خود منتشر کرده است که قصد ارتقاء عملکرد RAID را دارد. آخرین نسخه تکنولوژی ذخیره سازی سریع Intel از RAID 0 ، RAID 1 ، RAID 5 و RAID 10 پشتیبانی می کند و نرم افزار مدیریت NetApp ONTAP از RAID برای محافظت در برابر خرابی همزمان سه درایو استفاده می کند. پلت فرم Dell EMC Unity همچنین از RAID 1/0 ، RAID 5 و RAID 6 پشتیبانی می کند.