RAID چیست و چه کاربردی دارد
قابلیت RAID میتواند عملکرد و اطمینان ذخیره سازی اطلاعات را بهبود بخشد. مدلهای مختلفی از RAID وجود دارد. در این مقاله به بررسی تفاوت بین سطوح مختلف RAID و بهترین حالت برای استفاده هر کدام میپردازیم.
RAID در اصل مخفف “Redundant Array of Inexpensive Disks” است که امروزه به عنوان مخفف “Redundant Array of Independent Disks” درآمده است.
RAID راهی برای گروهبندی منحصر به فرد هارد درایوها برای ایجاد یک درایو بزرگتر با نام مجموعه RAID است. عملکرد بهتر و قابلیت دسترسی بیشتر، دو مزیت اصلی RAID است که به معنی سرعت بیشتر و خرابی کمتر است.
قبل از شروع ابتدا سه تکنیک ذخیره سازی در سیستم RAID را معرفی میکنیم تا در ادامه نیاز به توضیح مجدد نباشد.
Striping: در این تکنیک اطلاعات به بخشهایی با اندازههای مشخص تقسیم و سپس اطلاعات به ترتیب در هارد دیسکها نوشته میشوند. این تکنیک باعث افزایش فضای سیستم ذخیره سازی میگردد.
Mirroring: این تکنیک برای نوشتن یک کپی از اطلاعات به طور همزمان بر روی چند هارد دیسک است. این تکنیک از نابود شدن اطلاعات جلوگیری میکند.
Parity: در این تکنیک مانند تکنیک Striping دیتا به بخشهای مساوی شکسته میشود. همچنین یک کد parity (توازن) تولید و در یک یا چند هارد دیسک ذخیره میگردد. اطلاعات parity به سیستم RAID اجازه میدهد در صورتی که اطلاعات هارد دیسک دچار مشکل شد، آنها را شناسایی و بازسازی کند.
مزیتهای RAID
مزیت اصلی استفاده از RAID بهبود عملکرد، انعطاف پذیری (برگشت به وضعیت نرمال بعد از ایجاد مشکل) و هزینه پایین است. افزایش عملکرد به این دلیل است که سرور به بیش از یک دیسک برای خواندن و نوشتن (Read/Write) دسترسی دارد. قابلیت دسترسی و انعطاف پذیری نیز به این دلیل افزایش مییابد که کنترلر RAID میتواند دادههای از دست رفته را از اطلاعات برابر (Parity) بازسازی کند.
برابری یا توازن (Parity) در اصل Checksum دادههایی است که همراه با داده اصلی روی دیسکها نوشته میشود. RAID میتواند به صورت نرم افزاری روی دستگاه میزبان یا به صورت سخت افزاری روی کنترلر تجهیزات ذخیره سازی پیاده سازی شود. سروری که بر اساس RAID سخت افزاری به دادهها دسترسی دارد، هرگز از خراب شدن یکی از درایورها در مجموعه RAID آگاه نمیشود. کنترلر دیتای از دست رفته را در زمان خرابی درایو با استفاده از اطلاعات parity ذخیره شده در درایوهای سالم مجموعه RAID بازسازی میکند.
RAID Level استاندارد یا غیر استاندارد
تعداد گستردهای از سطوح RAID را میتوان در سه دسته تقسیم کرد: استاندارد، غیر استاندارد و تودرتو.
سطوح استاندارد RAID از انواع پایه RAID شماره 0 تا 6 ساخته شده است.
سطح غیر استاندارد RAID بر اساس استانداردهای یک شرکت خاص یا پروژه منبع باز تنظیم شده است. این سطوح شامل RAID 7, Adaptive RAID, RAID S و Linux md RAID 10 است.
RAID تودرتو به ترکیبی از سطوح RAID، نظیر RAID 01 (RAID 0+1), RAID 03 (RAID 0+3) و RAID 50 (RAID 5+0) اشاره دارد.
شرح سطوح RAID
سطح RAID که باید استفاده کنید، به نوع برنامهای که روی سرور شما در حال اجراست بستگی دارد. RAID 0 سریعترین، RAID 1 مطمئنترین و RAID 5 ترکیب خوبی از هر دو است. انتخاب بهترین RAID برای سازمان شما میتواند به مواردی مثل سطح افزونگی که به دنبال آن هستید، طول دوره نگهداری اطلاعات، تعداد دیسکهایی که با آنها کار میکنید و میزان اهمیت حفاظت از دادهها در مقابل بهینه سازی عملکرد بستگی داشته باشد.
در ادامه به تشریح تفاوت سطحهای مختلف RAID که استفادهی بیشتری در آرایههای SAN Storage و برخی از NAS Storage و باکس هارد چندتایی دارد میپردازیم. تمام دستگاههای ذخیره سازی از انواع مختلف RAID پشتیبانی نمیکنند، بنابراین قبل از خرید حتما از وجود مدل RAID مورد نظر خود روی دستگاه اطمینان حاصل کنید.
RAID 0
RAID 0 با نام Disk Striping هم شناخته میشود. تمام دادههای بین تمام دیسکها در مجموعه RAID پخش میشود. RAID 0 عملکردی عالی دارد، زیرا بار ذخیره شدن دیتا روی درایوهای فیزیکی بیشتری توزیع میشود. هیچ گونه توازنی برای RAID 0 تولید نمیشود، بنابراین هیچ سرباری برای نوشتن دیتا رو دیسکهای RAID 0 وجود ندارد.
RAID 0 فقط برای عملکرد بهتر مناسب است و برای دسترس پذیری بالاتر خوب نیست، چون توازنی (parity) برای دیسکهای آن تولید نمیشود. RAID 0 به حداقل دو دیسک فیزیکی نیاز دارد.
RAID 1
RAID 1 با نام Disk Mirroring هم شناخته میشود. تمام دادهها روی حداقل دو دیسک فیزیکی جدا نوشته میشود. دیسکها اساسا انعکاسی از یکدیگر هستند، اگر یک دیسک خراب شود دیگری میتواند برای بازیابی اطلاعات استفاده شود.
Disk Mirroring برای عملیات خواندن خیلی سریع مناسب است. از آنجایی که در این حالت دیتاها باید دو بار نوشته شوند، هنگام نوشتن اطلاعات سرعت کندتر است. RAID 1 حداقل نیاز به دو دیسک فیزیکی دارد.
RAID 10 = 1+0
RAID 1+0 که RAID 10 هم نامیده میشود، از ترکیب disk mirroring و disk striping استفاده میکند. دادهها به طور معمول اولین بار mirroring و پس از آن striping میشود. مجموعهی mirroring striped همان کار مجموعهی striping mirror را انجام میدهد، اما مقاومت کمتری در برابر خطا دارد.
اگر در مجموعه stripe یک درایو را از دست بدهید، تمام دسترسی دادهها باید از مجموعه stripe دیگر صورت پذیرد، زیرا ست stripe دارای parity نیست. RAID 1+0 نیاز به حداقل چهار دیسک فیزیکی دارد.
RAID 2
در RAID 2 با استفاده از Hamming code دیتاها در سطح بیت stripe میشوند. در حال حاضر از کدهای همینگ برای تصحیح کدهای خطای هارد درایو استفاده میشود، بنابراین RAID 2 دیگر استفاده نمیشود.
RAID 3
RAID 3 از چیزی با نام parity disk برای ذخیره اطلاعات توازن تولید شده توسط کنترلر RAID روی دیسک جداگانه از دیسکهای داده موجود استفاده میکند. این عمل به جای striping آنها با دیتا، همانند RAID 5، انجام میشود.
این نوع RAID زمانی که درخواست زیادی برای دیتا وجود دارد، مانند برنامهای نظیر دیتابیس، ضعیف عمل میکند. RAID 3 با اپلیکیشنهایی که نیاز به یک درخواست انتقال دیتای طولانی و مداوم دارند، مانند سرورهای ویدئویی، به خوبی عمل میکند. RAID 3 حداقل به سه دیسک فیزیکی نیاز دارد.
RAID 4
RAID 4 از دیسک parity اختصاصی استفاده میکند که برای هر بلوک یک بخش دیسک در نظر گرفته میشود. در حالی که این مدل برای دسترسی به اطلاعات متوالی خوب است، اما استفاده از دیسک parity اختصاصی میتواند موجب کاهش کارایی در عملکرد نوشتن شود. با جایگزینهایی مانند RAID 5 دیگر RAID 4 چندان مورد استفاده قرار نمیگیرد.
RAID 5
RAID 5 از دیسک striping با parity استفاده میکند. دیتاها همراه با اطلاعات parity مورد نیاز برای نوسازی دیتا هنگام خرابی دیسک میان تمام دیسکهای مجموعه RAID استریپ (stripe) میشوند.
RAID 5 به دلیل دستیابی به تعادل خوبی بین کارایی و دسترسی (performance & availability) رایجترین روش مورد استفاده است. RAID 5 حداقل به سه دیسک فیزیکی نیاز دارد.
RAID 6
RAID 6 اطمینان پذیری را با استفاده از دو خط parity افزایش میدهد. این قابلیت امکان خرابی دو دیسک را در مجموعه RAID قبل از بین رفت دیتا میدهد. RAID 6 در محیطهای SATA و راه حلهایی که نیاز به دوره نگهداری طولانی دیتا دارد، نظیر آرشیو داده یا دیسکهای پشتیبان، دیده میشود.
Adaptive RAID
Adaptive RAID به کنترلر RAID اجازه میدهد تا نحوه ذخیره parity را روی دیسکها کشف کند. این مدل بسته به اینکه کدام RAID عملکرد بهتری، نسبت به نوع دادهای که روی دیسکها نوشته میشود، دارد بین RAID 3 و RAID 5 برای مجموعه انتخاب میکند.
RAID 7
این نوع یک سطح RAID غیراستاندارد است که بر اساس RAID 4 و RAID 3 شکل گرفته و نیازمند سخت افزار اختصاصی است. این سطح RAID متعلق به شرکت Storage Computer Corp است.
حداقل درایوها و بازسازی برای سطوح RAID
با توجه به سوال در مورد مزیت استفاده از دیسکهای بیشتر از میزان حداقلی در مجموعه RAID، باید گفت که با این کار فضای ذخیره سازی بیشتری خواهید داشت.
با توجه به سربار بالا و کاهش بازده هنگام استفاده از تعداد بسیار زیاد درایو، اکثر آرایههای RAID از حداکثر 16 درایو استفاده میکنند. با یک حساب سر انگشتی به نظر میرسد تا 8 درایو برای RAID 5 و RAID 10 خوب است. اگر به فضای بیشتری نیاز دارید، میتوانید یک مجموعه RAID دیگر یا دیسکهای دیگری بسازید.
به عنوان یک قاعده سرانگشتی دیگر، سعی کنید انواع دیتای سربار خود را روی مجموعه RAIDهای جداگانه نگهداری کنید. از RAID 10 میتوانید برای بهترین عملکرد همه جا استفاده کنید، اما بیشتر با توجه به بودجه از RAID 5 برای database data volumes و از RAID 1 یا RAID 10 در database log volumes استفاده میشود. Database Volume ها میتوانند I/O خیلی تصادفی و Log ها به طور طبیعی تمایل دارند که متوالی باشند.
زمان بازسازی بستگی به نوع RAID دارد. اگر از RAID نرم افزاری استفاده میکنید، آنگاه اسپیندلهای بیشتر در گروه به معنی زمان بیشتر بازسازی است. اگر از RAID سخت افزاری استفاده میکنید، از آنجایی که سخت افزار معمولا در داخل و خارج مجموعه صرفه جویی میکند، زمان بازسازی معمولا به وسیله مقدار خود درایوها دیکته میشود. یک درایو 146 گیگابایتی نسبت به یک درایو 73 گیگابایتی زمان بیشتری برای بازسازی نیاز دارد.