شما هم حتما جملهی معروف “تمام تخممرغهایتان را در یک سبد نگذارید” شنیدهاید. تصور کنید سبدی دارید و تمام تخم مرغهایتان را در آن گذاشتهاید. اگر سبد از دست شما بیفتد چه اتفاقی میافتد؟
بله! تمام تخم مرغ های شما میشکند. با همین مثال ساده به راحتی میتوان کاربرد Raid را توضیح داد. البته اجازه دهید قبل از آن مثال دیگری بزنیم. فرض کنید شما یک درایو و تنها یک فضای ذخیره سازی برای اطلاعات خود دارید. اگر اختلالی در این درایو ایجاد شود یا در شرایط بدتر درایو شما کامل از کار بیفتد چه اتفاقی میافتد؟ درست مانند مثال سبد و تخم مرغ، تمام اطلاعات شما از بین میرود.
با پیشرفت تکنولوژی و توسعهی سیستمهای کامپیوتری و سرورها، نیاز مبرم به افزایش ظرفیت و ایجاد امنیت بالا برای حفاظت از اطلاعات احساس میشود. با ورود Raidها یعنی” آرایهای افزونه از دیسکهای مستقل” به عرصهی تکنولوژی، تغییر چشمگیری در رفع این نیاز ایجاد شد.
Raidها نمایانگر همان سبدهای مختلفی هستند که به ما اجازه میدهند اطلاعاتمان را روی آنها تقسیم کنیم.
RAID به زبان تخصصی
RAIDها چگونه وارد عرصهی کامپیوتر شدند؟
در سال 1987 سه دانشمند به نامهای دیوید پترسون، گارث آلن گیبسون و رندی کتز اصطلاح Array of Inexpensive Disk Redundant را مطرح کردند. این سه نفر در مقالهای که برای SIGMOD نوشته بودند، به این مطلب اشاره داشتند که با در دسترس داشتن آرایه ای از دیسک های ارزان قیمت می توان به سطح دیسکهای بالاتر رسید. آنها پی بردند که استفاده از افزونگی باعث میشود آرایههای Raid امنیت بیشتری نسبت به تک دیسک ها داشته باشند. اگر افزایش عملکرد ورودی و خروجی I/O با افزایش عملکرد CPUها و حافظهها یکسان نباشد این افزایش عملکرد هدر میرود. هرچند گنجایش SLED ها (Single Large Expensive Disk) به سرعت رشد کرده، اما بهبود عملکرد آنها به صورت معتدل باقی مانده است.
Raidها که مبتنی بر تکنولوژی دیسک های مغناطیسی هستند و برای کامپیوترهای شخصی توسعه یافته اند؛ به دلیل عملکرد بهتر، قابل اطمینان بودن، قدرت مصرفی بالاتر و ثبات جایگزین مناسبی برای SLEDها می باشند.
Raid روشی برای ذخیره کردن اطلاعات یکسان در مکانهای مختلف روی چندین هارد دیسک میباشد. raidها دارای سطوح مختلفی هستند و هدف تمام آنها ریداندنسی یا افزونگی نیست.
raidها چگونه کار می کنند؟
عملکرد آنها به این صورت است که اطلاعات روی چند دیسک قرار میگیرد و به عملیات خروجی و وردی (I/O) اجازه میدهند تا با هم پوشانی متعادل بین اطلاعات عملکرد بهتری را ارایه دهند. در واقع استفاده از دیسکهای چندگانه میانگین زمان بین اختلالها را افزایش و توان تحمل در برابر خرابی را نیز افزایش میدهد. آرایه های Raid برای سیستم عامل به عنوان یک درایو منطقی نمایش داده میشوند.
raidها از دو تکنیک متداول استفاده میکنند:
disk mirroring (آینهسازی دیسک):
آینهسازی، اطلاعات یکسان را روی بیش از یک درایو کپی میکند. همانند مثالی که در ابتدا زدیم، آینه سازی باعث میشود شما دو درایو داشته باشید تا اطلاعات را روی آن تقسیم و امنیت آن را افزایش دهید. البته به این معنا نیست که اگر ما اطلاعات a و b را داشته باشیم a در یک درایو و b در یک درایو دیگر قرار میگیرد؛ بلکه آینه سازی یعنی اگر ما اطلاعات a و b را روی درایو 1 داشته باشیم همان اطلاعات را روی درایو 2 نیز ذخیره خواهیم داشت.
Disk Striping (راهسازی بین دیسکها):
در این تکنیک اطلاعات روی چندین دیسک درایو پخش میشود. هر فضای ذخیره در درایو به واحدهایی تقسیم میشود که حجم آنها از 512 بایت تا چندین مگابایت متغیر است.
روش mirroring و striping میتواند در آرایههای یک Raid ترکیب شوند.
در یک سیستم تککاربره، زمانی که “رکورد” های بزرگی ذخیره میشوند، راهها معمولا طوری تنظیم میشوند که کوچک باشند ( حدودا 512 بایت) تا یک “رکورد” بتواند تمام دیسکها را پوشش دهد و بتواند با خواندن سریع تمام دیسکها به طور همزمان قابل دسترسی باشد.
رکورد: مجموعه ای از اطلاعات مرتبط (پیوسته) . مثلاً یک شرکت ممکن است اطلاعات مربوط به هر کارمندی را در رکوردی جداگانه ذخیره نماید.
برای عملکرد بهتر در یک سیستم چندکاربره، stripیا نوار باید به اندازهای پهن باشد که بتواند یک record با سایز حداکثری یا معمولی را نگه دارد و به خروجی و ورودی I/O دیسکها امکان همپوشانی از روی درایوها را بدهد.
کنترلگر Raid
کنترلگر Raid دستگاهی برای مدیریت درایوهای هارد دیسک در محل ذخیرهی آرایهها میباشد. کنترلگر میتواند به عنوان سطحی از ربایش بین سیستم عامل و دیسکهای فیزیکی استفاده شود و گروهی از دیسکها را به عنوان واحدهایی منطقی ارائه دهد.
استفاده از کنترلگر Raid میتواند عملکرد را بهتر و به محافظت از اطلاعات در زمان خرابی کمک نماید. در نظر داشته باشید یک کنترلگر Raid میتواند پایهی سختافزاری یا نرمافزاری داشته باشد پس شاید بهتر باشد مروری بر آنها داشته باشیم.
کنترلگر مبتنی بر سخت افزار
در یک Raid سختافزاری، یک کنترلگر فیزیکی آرایهها را مدیریت میکند. کنترلگر میتواند طوری طراحی شود که از فرمتهایی همچون SATA و SCSI پشتیبانی نماید. یک کنترلگر Raid فیزیکی میتواند درون مادربورد سرور نیز تعبیه شود.
کنترلگر مبتنی بر نرمافزار
در یک Raid نرم افزاری، کنترلگر میتواند از منابع سختافزاری سیستم، مثل پردازندهی مرکزی و حافظه استفاده نماید. با اینکه عملکرد آن مثل کنترلگر Raid سخت افزاری میباشد، کنترلگرهای Raid نرمافزاری نمیتوانند در شتابدهی عملکرد آنچنانی داشته باشند و میتوانند بر روی عملکرد دیگر اپلیکیشنهای سرور تاثیر بگذارند.
کنترلگر مبتنی بر سفتافزار
اگر پیادهسازی raid نرمافزاری با فرایند بوت شدن یک سیستم سازگار نباشد، یا هزینهی یک کنترلگر Raid سختافزاری زیاد باشد، انتخاب یک سفتافزار (firmware ) یا Raid مبتنی بر درایو میتواند گزینهی مناسبی باشد. چیپ کنترلگر Raidهای سفتافزاری در مادربورد قرار گرفته و مشابه با Raid نرم افزاری تمام عملیات توسط CPU انجام میشود. هرچند، در سفتافزار، سیستم Raid فقط در ابتدای فرایند بوت شدن پیادهسازی میشود. به محض اینکه سیستم عامل لود شود، درایور کنترلگر کارآمدی Raid را به دست میگیرد.
کنترلگر Raid سفتافزاری به اندازهی نوع سختافزاری آن پرهزینه نیست، اما فشار بیشتری روی CPU کامپیوتر میگذارد.
به سفت افزار، دستیار سخت افزاری یک Raid نرم افزاری، Raid دو رگه یا Hybird یا fake Raid نیز میگویند.
سطوح Raid
دستگاههای Raid از ورژنهای مختلفی استفاده میکنند که به آنها “سطح” یا level گفته میشود. برای Raidها شش سطح تعریف شده است ( از صفر تا شش).
این سیستم شمارهگزاری به کسانی که در IT هستند کمک مینماید تا ورژنهای مختلف Raidها را تشخیص دهند. شمارش سطوح از آن زمان بیشتر شده و به سه دسته تقسیم شده اند: استاندارد، غیراستاندارد و تودرتو
Raid سطح استاندارد
Raid 0
این نوع پیکربندی به روش striping هست، اما افزونگی دیتا ندارد. بهترین عملکرد را ارائه میدهد اما قدرت تحمل نقص بالایی ندارد.
Raid 1
در Raid1 ما دو درایو داریم. به این معنا که هر نوع اطلاعاتی که در دیسک 1 قرار میگیرد مثل یک آینه (mirroring) در دیسک 2 هم قرار میگیرد که به عنوان آینهسازی دیسک شناخته میشود. این پیکربندی از حدقل دو درایو تشکیل میشود که ذخیرهسازی اطلاعات را کپی میکند. در این Raid، striping وجود ندارد.
از آنجایی که هر کدام از دیسکها میتوانند به طور همزمان خوانده شوند، عملکرد خواندن آن بالاتر رفته است. عملکرد نوشتن در آن مثل دیسکهایی است که فقط یک storage دارند.
Raid 2
این پیکربندی در بین دیسکها از striping استفاده میکند.
این Raid از یک کد همنیگ تخصصی یعنی کد تصحیح خطای خطی استفاده مینماید. Raid 2 هیچ مزیتی نسبت به Raid 3 ندارد و از رده خارج شده است.
Raid 3
این تکنیک از striping استفاده میکند و یک درایو را به اطلاعات توازن ذخیرهسازی اختصاص میدهد.
اطلاعات ECC جاسازی شده، برای تشخیص ارورها استفاده میشوند. بازیابی اطلاعات با محسابهی اطلاعات تخصصی ذخیره شده روی درایوهای دیگر انجام میشوند.
از آنجایی که عملیات (o/I) تمام درایو ها را به طور همزمان مورد هدف خود قرار میدهد، Raid 3 نمیتواند I/O را همپوشانی کند. به همین دلیل، Raid 3 برای سیستمهای تککاربره ای که رکورد طولانی دارند بهترین گزینه است.
Raid 4
این سطح از Strip های بزرگ استفاده میکند، به این معنا که یک کاربر میتواند رکورد ها را از روی هر کدام از درایوها بخواند. از آنجایی که تمام عملیات نوشتن نیاز به آپدیت توازن درایو دارد، هیچ هم پوشانی در I/O امکانپذیر نیست.
Raid5
Raid 5 رایج ترین و امن ترین سطح Raid میباشد. این Raid نیاز به حداقل سه درایو دارد اما میتواند تا سقف 16 درایو کار کند. بلوکهای اطلاعاتی (block data) از طریق Striping از بین درایوها عبور میکنند و بر روی یک درایو توازن تمام بلوکهای اطلاعاتی نوشته میشود. توزان دادهای تنها روی یک درایو نوشته نمیشود، بلکه دربین تمام درایوها پخش میشود. با استفاده از توان داده، کامپیوتر میتواند اطلاعات دیگر بلوکهای اطلاعاتی را دوباره محاسبه کند. این یعنی یک آرایه Raid 5 میتواند بدون از دست دادن داده یا دسترسی به داده، بروز اختلال در یک درایو را تحمل کند.
مزایای Raid 5
– خواندن تراکنشهای داده بسیار سریع است درحالی که نوشتن تراکنشهای داده آهسته تر هستند.
– اگر یک درایو خراب شود، شما هنوز به تمام دادهها دسترسی دارید، حتی زمانی که درایو خراب شده در حال تعویض باشد و کنترلگر storage اطلاعات را روی درایو جدید بازسازی کند.
به طور کلی، Raid 5 سیستمی است که از ظرفیت کاربردی موثر، امنیت عالی وعملکردی مناسب برخوردار است و برای فایل ها و اپلیکیشنهایی که تعداد درایو اطلاعاتی محدود دارند، ایدهآل میباشد.
Raid 6
Raid 6 مثل Raid 5 است، با این تفاوت که توازن داده روی دو درایو نوشته میشود. این یعنی حداقل نیاز به 4 درایو دارد و میتواند خرابی 2 درایو به طور همزمان را تحمل کند. البته احتمال اینکه دو درایو به طور همزمان خراب شوند بسیار کم است.
در حالی که اگر یک درایو در Raid 5 از بین برود و یک درایو جدید جایگزین آن شود، ساعتها یا حتی بیشتر از یک روز زمان میبرد تا درایو جدید جایگزین شود. اگر در همان زمان درایو دیگری از بین برود، شما تمام اطلاعات خود را از دست خواهید داد. اما در Raid 6 حتی با خرابی دوم نیز اطلاعات شما محفوظ میماند.
مزایای Raid 6
همانند Raid 5، سرعت خواندن تراکنشهای داده بسیار سریع است.
– اگر دو درایو خراب شود، شما همچنان به تمام اطلاعات خود دسترسی دارید حتی زمانی که درایوهای خراب شده جایگزین شوند.
Raid های غیراستاندارد
اگر بخواهیم به زبان ساده تر بگوییم، Raidهای غیر استاندارد از چندین سطح مختلف Raid استفاده میکنند که معمولا توسط شرکتها و سازمانهای بزرگ استفاده میشوند.
ریدهای تو در تو یا Hybird دستهی raid های غیراستاندارد قرار میگیرند.
انواع Raidهای غیر استاندارد :
Raid 0+1
این رید ترکیب رید سطح 1 با سطح 0 است که به آن رید نواری 10 نیز گفته میشود و عملکرد بسیار بالایی دارد. در رید 10+1 پردازش داده با روش mirroring انجام میشود و رفلکتها به صورت نواری هستند که برای کپی کردن و به اشتراک گذاشتن اطلاعات در بین دیسکها استفاده میشوند.
Raid 7
این raid وابسته به raid سطح 3 و 4 هست که cache اضافی به آنها اضافه شده است.
Raid 1E
این نوع raid غیر استاندارد، raid سطح 1 است که با بیشتر از دو دیسک کار میکند. تقسیم داده با mirrorکردن هر نوار نوشته شده روی یکی از دیسکهای باقی مانده ترکیب میشود.