RAID چیست ؟
RAID مخفف عبارت Redundant Array of Inexpensive Disks و تکنولوژی برای ترکیب چندین هارد دیسک به یک ديسك واحد با هدف افزایش سرعت، کارایی و امنیت وسایل ذخیره سازی میباشد. بدین صورت که چندین هارد دیسک به یکدیگر متصل شده و یک واحد را تشکیل میدهند، بسته به اینکه در چه سطحی از تکنیک RAID پیاده سازی شده باشند، باعث افزایش کارایی سیستم میگردد. این تکنولوژی معمولا در سرورها و کامپیوترهایی که دارای کارایی بالا هستند، مورد استفاده قرار میگیرد.
در سالهای اخیر، با توجه به مشکلات متعددی که باعث از دست رفتن اطلاعات هارد دیسکها و در نتیجه خسارات مالی فراوان میشود، استفاده از تکنولوژی که بتواند از وقوع این گونه مشکلات جلوگیری کند، از اهمیت بالایی برای کاربران برخوردار است.
RAID در ابتدا برای استفاده در دیسکهای SCSI مطرح شد، با گذشت زمان و پیشرفت فناوری استفاده از این تکنولوژی در دیسکهای IDE ناموفق بود. اما بعد از آن در دیسکهای SATA به اوج خود رسید.
وسایل ذخیره سازی قدیمیتر، معمولا از یک هارد دیسک برای ذخیره اطلاعات استفاده میکردند. ولی پس از بوجود آمدن این تکنولوژی، سیستمها قادر بودند تا اطلاعات را بر روی چندین هارد دیسک ذخیره نمایند. به این ترتیب اطلاعات به صورت پشت سرهم به بخشهایی شکسته و در چندین هارد دیسک ذخیره میشوند. این نحوه ذخیره سازی این امکان را فراهم می کرد که در کنار بهبود بخشيدن به کارایی سیستم، ظرفیت ذخیره سازی اطلاعات نیز افزایش پیدا کند.
امروزه این تکنولوژی تقریبا در همه وسایل ذخیره سازی به کار رفته است. با این وجود باز هم وسایلی هستند که از این تکنولوژی استفاده نمیکنند. سیستمعامل و کاربران به این حقیقت که وسیله ذخیره سازی از چندین هارد دیسک تشکیل شدهاست پی نمیبرند، و با آن مانند یک دیسک مستقل رفتار میکنند. به کمک RAID اطلاعات میتوانند به صورت موازی بر روی یک یا چند هارد دیسک ذخیره شوند؛ بنابراین اگر یکی از دیسکها با مشکل مواجه شود، اطلاعات باز در دسترس خواهد بود.
پیاده سازی RAID همچون بسیاری دیگر از تکنولوژیها، به دو صورت سختافزاری و نرمافزاری امکان پذیر است که مسلما مدل سخت افزاری دارای سرعت و پایداری بیشتری است. مدل نرمافزاری تنها در شرایطی پیشنهاد میشود که با کمبود امکانات و بودجه مواجه هستیم، و یا اینکه قرار است بر روی یک سیستم پشتیبان و نه سیستم اصلی پیاده سازی شود.
در روش نرمافزاری سیستمعامل یا BIOS مسئول پیاده سازی آن خواهد بود، و در روش سختافزاری کنترل کنندههایی به نام Raid Controller این وظیفه را بر عهده دارند. ولی از آنجایی که کنترل کنندههای سخت افزاری قابلیتهای بیشتری نسبت به روش نرمافزاری دارند، لذا کارایی این نوع به مراتب بهتر از نوع نرمافزاری است.
دیسکهای متصل شده به یکدیگر همانند یک آرایه میباشند. به هر کدام از این هارد دیسکها یک عضو آرایه (Array Member) گفته می شود و بسته به اینکه چگونه به یکدیگر متصل شدهباشند در سطحی قرار می گیرند که با عنوان RAID level شناخته میشود. به عنوان مثال RAID 0 یا RAID 1 در بخش سوم این مقاله به انواع سطوح RAID اشاره خواهیم کرد و به مزایا و معایب هر یک از انها خواهیم پرداخت
کاربرد RAID چیست ؟
امروزه از فناوری RAID برای سه هدف افزایش کارایی، ظرفیت و امنیت استفاده میگردد.
افزایش ظرفیت معمولا در هر سیستم RAID مورد توجه قرار گرفته میشود. به عنوان مثال دو هارد دیسک میتواند به هم متصل شده و یک واحد ذخیره سازی با ظرفیت بالا را بوجود آورد.
افزایش کارایی دلیل دیگری برای استفاده از این تکنولوژی میباشد. در مثال مشابه، دو هارد دیسک به هم متصل شده و یک حافظه را تشکیل میدهد. در این حالت کنترلر میتواند دادهها را به دو قسمت تقسیم کرده و هر قسمت را در یک هارد دیسک قرار دهد؛ با این عمل، کارایی سیستم ذخیره سازی برای خواندن و نوشتن اطلاعات دو برابر میگردد.
مورد سوم امنیت را برای اطلاعات کاربران فراهم میسازد. بدین صورت که اطلاعات بر روی دو یا چند هارد دیسک نوشته شده و در صورتی که یکی از دیسکها با مشکل مواجه گردد، همچنان اطلاعات توسط هارد دیسک دیگر، قابل دسترس خواهد بود.
RAID چطور سازماندهی میشود؟
می توان دو جنبه مستقل برای سازماندهی RAID در نظر گرفت:
۱. قرار دادن اطلاعات در آرایه با استفاده از تکنیکهای parity، striping و mirroring.
۲. پیاده سازی تکنولوژی RAID که شامل پیاده سازی نرمافزاری و سختافزاری میشود.
انواع تکنیکهای ذخیره سازی در RAID
Striping: تقسیم اطلاعات به بخشهایی با اندازههای مشخص، سپس نوشتن این اطلاعات به ترتیب در هارد دیسکها. این تکنیک باعث افزایش فضای سیستم ذخیره سازی میگردد.
Mirroring: تکنیکی برای نوشتن یک کپی از اطلاعات به طور همزمان بر روی چندین هارد دیسک است. این تکنیک باعث جلوگیری در از بین رفتن اطلاعات میشود.
Parity: در این تکنیک همانند تکنیک Striping اطلاعات به بخشهای مساوی شکسته میشوند. همچنین یک کد parity (توازن) تولید و در یک یا چند هارد دیسک ذخیره میگردد. اطلاعات parity به سیستم RAID اجازه میدهد در صورتی که اطلاعات هارد دیسک دچار مشکل شده باشد، آنها را شناسایی و بازسازی کند.
تمام تکنیکهای دیگر RAID، بر اساس این سه تکنیک striping، mirroring، parity و یا ترکیبی از این سه عمل میکنند.
معایب RAID سختافزاری
- افزایش هزینه : به این معنی که در کنار دیسک موجود، یک یا چند دیسک دیگر نیز مورد نیاز است.
- عدم دسترسي به ديسكها در صورت خرابي كنترلر : در صورتی که RAID Controller با مشکل مواجه شود، تا زمان رفع مشکل و یا جایگزین کردن کنترلر جدید، دسترسی به اطلاعات دیسکها نیز امکانپذیر نخواهد بود.
- جايگزيني سخت كنترلر : در صورتی که RAID Controller با مشکل مواجه شود، برای بازگردانی اطلاعات، باید جایگزین دقیقی برای کنترلر، تهیه و استفاده شود.
مزایای RAID سختافزاری
- در RAID سختافزاری نیازی نیست که CPU درگیر محاسبات کد Parity شود و این عملیات توسط کنترلر Raid انجام میشود.
- اغلب RAID Controllerها جایی برای افزودن باتری دارند که درهنگام قطع ناگهانی برق، اطلاعات از دست نرود.
- کنترلرها دارای ویژگیهایی میباشند که در نوع Raid نرمافزاری این ویژگیها وجود ندارند. مانند hot-plugging drives، که میتوان با استفاده از این قابلیت، بهصورت آنلاین ظرفیت سیستم را با افزودن دیسک دیگری، افزایش داد.
مزایای RAID نرمافزاری
۱. پیکربندی بر اساس هسته سیستمعامل.
۲. قابلیت حمل پارتیشنهای ایجاد شده به سیستمعاملهای دیگر لینوکس، بدون نیاز به ایجاد مجددا آنها.
۳. پشتیبانی از دیسکهای Hot-swappable.
معایب RAID نرمافزاری
۱. RAID نرم افزاری سرعت کمتری نسبت به نوع سخت افزاری دارد.
۲. سیستم RAID نرمافزاری محدود به سیستم عاملی که استفاده میکنیم میشود، یعنی اگر بخواهیم دو سیستمعامل را همزمان بارگذاری کنیم، سیستمعامل دوم، آرایه RAIDی که ایجاد شدهاست را شناسایی و پشتیبانی نخواهد کرد.
۳. درصورتی که RAID نرمافزاری توسط mainboard پیادهسازی شود و برد اصلی با مشکل مواجه شود، برای بازگردانی اطلاعات باید دقیقا همان مدل از برد اصلی در سیستم جایگزین گردد.
علیرغم اینکه RAID امنیت اطلاعات شما را با افزایش تولرانس خطا بیشتر می کند و میتواند جلوی از دسترس رفتن اطلاعات به واسطه سوختن یک یا چند هارد دیسک را بسته به نوع آرایه پیاده سازی شده بگیرد اما حقیقت این است که RAID هیچ گاه جایگزین Backup نیست.