آشنایی با RAID هارد دیسک و روشهای پیاده سازی آن
وقتی صحبت از RAID میشود، درواقع ما در مورد دو یا چندین دیسک سختافزاری صحبت میکنیم که در کنار هم قرار گرفتهاند و به کمک هم میتوانند یا کارایی یک سیستم را بالا ببرند و یا خطاپذیری یا Fault Tolerance یک سیستم را افزایش بدهند، این سیستم معمولاً یک سرور سختافزاری و یا یک دستگاه NAS Storage است. به این نکته توجه کنید که RAID هم میتواند کارایی یا Performance را بالا ببرد، هم خطاپذیری یا Fault Tolerance را بالا ببرد و هم میتواند برحسب نوع و سطح RAID ای که انتخاب میکنیم هردوی این موارد را بالا ببرد.
به زبان سادهتر در مواقعی که اطلاعات سیستم از اهمیت بالایی برخوردار است، دو یا چند هارددیسک را به شکلی موازی قرار میدهیم که اطلاعات بهطور یکسان بر روی هر دو نوشته شده و در صورت از کار افتادن یک هارد، دیگری بدون هیچ مشکلی بتواند به کار خود ادامه دهد. استفاده از این روش مستلزم آشنای بودن با مبانی شبکه و اصطلاحات مرتبط با آن است.RAID در اصل برای سازمانها و شرکتهایی طراحی شده است که خطاپذیری دیسکها و بالا بودن کارایی دستگاه از اولویتها محسوب میشود و کارایی سرور یک باید است و نه اینکه یک امر تجملاتی برای سرور در نظر گرفته شده باشد.RAID چندین دسته دارد که ادامه به صورت مختصر با آنها آشنا خواهیم شد.
انواع RAID
RAID 0: این نوع RAID اطلاعات را بهطور مساوی بین دو یا چند هارد تقسیم میکند و هدف اصلی آن ساخت یک پارتیشن بزرگتر است. البته برخی آن را با نام Disk Striping نیز میشناسند و به دلیل آنکه تمامی اطلاعات به طور لحظهای از چند هارد خوانده میشوند برای سرعت بالا، بهمنظور افزایش کارایی مورد استفاده قرار میگیرد. از طرفی این نوع RAID هم بهصورت نرمافزاری و هم بهصورت سختافزاری قابل پیادهسازی است. تنها نکته منفی این RAID، عدم برخورداری از قابلیت Fault Tolerance یا خطاپذیری آن است. بدین ترتیب اگر در هر یک از هاردهای مورد استفاده دچار اختلال عملکرد شود، دادههای ذخیرهسازی شده بر روی سایر هارددیسکها نیز دچار مشکل و غیرقابل بازیابی میشوند.
RAID 1: در واقع این RAID، نمونه ارتقا یافته RAID 0 است که برای اجرا حداقل به دو هارددیسک نیاز دارد. در این روش دو هارد به طور موازی با یکدیگر بارگذاری میشوند به طوری که اگر هارد اول دچار اختلال شود، هارد دوم بدون هیچ مشکلی به کار خود ادامه خواهد داد و آسیبی به اطلاعات وارد نمیشود. نکته منفی در خصوص استفاده از RAID Level 1 سرعت پایین این نوع RAID به دلیل بارگذاری دوباره اطلاعات است.
RAID 10: این RAID درواقع ترکیبی از RAID 0 و RAID 1 است که گاهی با RAID 1+0 نیز شناخته میشود. در RAID 10 قابلیت تصویرسازی یا آینه کردن RAID Level 1 با قابلیت Striping در RAID Level 0 ادغام شده است. این نوع RAID برای سرورهای پایگاه دادهای که دارای فرآیندهای نوشتن و خواندن زیادی هستند بسیار مناسب است با این حال علیرغم پیادهسازی نرمافزاری و سختافزاری، برای آن حداقل به چهار هارد نیاز دارید. از جمله معایب آن میتوان به هزینه بالای پیادهسازی اشاره کرد.
RAID 5: در این نوع RAID دادهها زمانی که بر روی دیسکها نوشته میشوند همزمان نوعی داده به نام Parity نیز بر روی دیسکهای دیگر بهصورت منظم نوشته میشود که این Parity برای بازیابی اطلاعات در صورت بروز مشکل استفاده میشود. در این RAID به دلیل برخورداری از قابلیت خطاپذیری اگر یکی از هارددیسکهای دچار مشکل و اختلال شود، دادهها از سایر دیسکهای موجود قابل بازیابی خواهد. البته یک عیب بزرگ این RAID، خاموش شدن کل سیستم در هنگام تعویض یکی از هارددیسکها میباشد.
البته RAID دیگری نیز وجود دارند که برای راه اندازی نیاز به تخصص خود دارند و بسته به نیاز کاربران مورد استفاده قرار میگیرند. به طور کل از این روش صرفاً در سازمانها و شرکتهایی که سرعت و امنیت اطلاعات از نکات حائز اهمیت به شمار میآیند مورد استفاده قرار میگیرد. البته همانطور که گفته شد، استفاده از سری RAID مستلزم دسترسی به منابع مالی کافی برای تهیه حداقل دو سری هارددیسک بوده و سرعت فعالیت کل سیستم بسته به سرعت ضعیفترین هارددیسک تنظیم میشود.
شیوه های RAID کردن هارد دیسک
Hardware RAID:
در این روش برنامه RAID از طریق CPU و RAM موجود در دستگاهی مستقل از کامپیوتر میزبان اجرا میشود.
Software RAID:
در این حالت نرم افزار بدون نیاز به سخت افزار و تنها با استفاده از امکانات سیستم به عنوان یک نرم افزار کاربردی در کنار سایر نرم افزارهای اجرا شده در سیستم عامل خواهد بود. هارد دیسک مورد استفاده در این روش همان دیسکی است که سیستم عامل روی آن قرار دارد.MD driver در هسته لینوکس نمونه ای از این نوع است. این هسته از RAIDهای 1، 0، 4 و 5 پشتیبانی می کند.
RAIDهای ترکیبی:
این نوع از raid ترکیبی از سخت افزارها و نرم افزارهای موجود می باشد. مزیت این روش نسبت به دو روش بالا کم هزینه بودن و بازدهی مطلوب با توجه به هزینه کم می باشد.
تکنیک striping
در واقع در این تکنیک داده ها را به صورت هم زمان روی چند دیسک پخش می کنند.مجموعه دیسکهای سخت زیر فرمان کنترلر RAID، دیسکهای سخت مجازی نامیده میشوند. سروری که به یک دستگاه RAID به هم میرسد، تنها دیسک سخت مجازی را میبیند؛ این حقیقت که کنترلر RAID، دادهها را روی چندین دیسک سخت فیزیکی پخش میکند، تماما از دید سرور پنهان است.
نوشتن داده ها رو چند دیسک و خواندن آنها از روی یک دیسک صورت می پذیرد.دیسکهای hot spare، در حالت عادی مورد استفاده قرار نمیگیرند. اگر یک دیسک دچار آسیب شود، کنترلر RAID، بی درنگ آغاز به کپی نمودن دادههای دیسک درست به جامانده روی یک دیسک hot spare مینماید. پس از جایگزینی دیسک آسیب دیده، دیسک تازه در زمرهٔ دیسکهای hot spare میباشد. بازسازی دادهها از یک دیسک سخت آسیب دیده، همزمان با پردازش خواندن/نوشتن سرور روی دیسک سخت مجازی انجام میگیرد، به گونه ای که از دیدگاه سرور، یک افت کوچک در کارکرد، قابل مشاهده خواهد بود. دیسکهای سخت مدرن، مجهز به برنامههای شناسایی هستند که خطاهای خواندن/نوشتن را به سرور گزارش میدهند.