آرایه RAID یک enclosure است که شامل دیسک ها و سخت افزار پیاده سازی RAID می باشد. مجموعه دیسک هایی که در یک آرایه RAID با هم گروه بندی شده اند، آرایه logical، گروهRAID و یا مجموعه RAID نامیده می شوند.
سه تکنولوژی مختلفRAID که پایه اصلی انواع RAID ها را تشکیل می دهند، striping ، mirroring و parity هستند، که دسترس پذیری داده ها، عملکرد و هزینه نسبی انواع RAID را تعیین می کنند.
Striping
برای استفاده از درایوها بصورت موازی این تکنولوژی داده ها را در سرتاسر درایوها توزیع می کند، بطوریکه عملیات خواندن و نوشتن به طور همزمان در همه درایوها انجام می شود که در مقایسه با خواندن و نوشتن از یک دیسک، داده های بیشتری در زمان کوتاهتری مورد پردازش قرار می گیرند که باعث افزایش عملکرد می شود.
در داخل هر دیسک در هر گروه RAID، تعدادی از بلاک های متوالی دیسک بعنوان strip تعریف می شوند. مجموعه ای از strip هایی که در میان تمام دیسک های داخل گروه RAID خطی نامیده می شود.
Strip size یا stripe depth تعداد بلاک های در یک strip را توصیف می کند که به صورت A1, A2, A3, A4 مشخص می شود، و حداکثر میزان داده ای است که می تواند در یک گروه RAID از یک دیسک در یک مجموعه خوانده و یا در آن نوشته شود، با فرض اینکه داده های مورد دسترسی در ابتدای strip شروع می شوند.
همه strip ها در یک stripe تعداد بلوک یکسانی دارند، داشتن strip size کوچکتر به این معنی است که داده ها به قطعات کوچکتر شکسته شده اند، در حالی که در سراسر دیسکها پراکنده شده اند.
Stripe size با عنوان A ، چند strip size با تعدادی دیسک در گروه RAID می باشد.
بعنوان مثال در یک گروه RAID از نوع Striped با 4 عدد دیسک و با strip size = 64KB ، حجم stripe size=256KB یعنی 64KB * 4 می باشد، به عبارت دیگر A=A1+A2+A3+A4
طول stripe برابر با تعداد strip ها در stripe می باشد. RAID های از نوع striped هیچ گونه محافظت از داده ها را فراهم نمی کنند مگر اینکه از mirroring و parity استفاده شود.
Mirroring
Mirroring تکنولوژی است که در آن داده های مشابه بر روی دو درایو مختلف ذخیره می شوند، بنابراین همیشه دو نسخه از داده ها موجود هستند. اگر یک درایو خراب شود، داده ها بر روی درایو mirror سالم باقی می مانند و کنترلر همچنان از دیسک mirror به درخواست های داده ای سیستم محاسباتی سرویس می دهد. هنگامی که دیسک خراب با یک دیسک جدید جایگزین می شود، کنترلر داده ها را از دیسک سالم به mirror کپی می کند، و این عملیات از دید سیستم محاسباتی پنهان می باشد. علاوه بر افزونگی کامل داده ها ، mirroring قابلیت بازیابی سریع از خرابی دیسک را هم فراهم می نماید.
با این حال mirroring فقط محافظت از داده ها را فراهم می نماید و هرگز جایگزینی برای پشتیبان گیری داده ها نمی باشد، چون mirroring به صورت مداوم تغییرات در داده ها را ذخیره می کند، در صورتیکه backup وضعیتی از داده ها را در بازه های زمانی خاص ذخیره می کند.
چونmirroring دو نسخه از داده ها را نگه داری می کند، پس نیاز به فضای دو برابرمیزان داده های موجود می باشد، و به همین خاطر پر هزینه است و برای برنامه های کاربردی حساس که ریسک از دست رفتن داده ها را نمی توانند تحمل کنند به کار می رود.
عملکرد خواندن در mirroring بسیار بالا است، به دلیل اینکه درخواست های خواندن توسط هر دو دیسک سرویس دهی می شود. ولی عملکرد نوشتن مقداری پایین تر از استفاده از یک دیسک تنها است، چون هر درخواست نوشتن در دو درایو نوشته می شود. عملکرد نوشتن در RAID های mirroring در مقایسه با striped خیلی پایین است.
Parity
Parity متدی برای محافظت از داده های striped در برابر خرابی درایوها بدون هزینه mirroring است. یک دیسک اضافی برای نگهداری parity اضافه می شود، که بر اساس محاسبات خاصی توسط RAID کنترلر امکان باز سازی داده های از دست رفته را فراهم می نماید. Parity یک تکنیک افزونگی است که بدون نگهداری کامل داده ها در دو نسخه، حفاظت از داده ها را تضمین می کند.
اطلاعات parity می توانند در داخل درایوهای جداگانه اختصاصی و یا درایوهای توزیع شده در سرتاسر مجموعه RAID ذخیره شوند. سه دیسک اول در شکل با نام D1, D2, D3 شامل داده ها می باشند، و دیسک چهارم با نام P، اطلاعات parity را ذخیره می کند، که این اطلاعات برابر با مجموع مقدار عناصر هر سطر می باشد. اگر یکی از درایوها خراب شود، مقادیر از دست رفته با کم کردن مجموع بقیه عناصر از مقدار parity محاسبه می شود. در اینجا برای سادگی، محاسبه parity به صورت جمع محاسباتی داده ها انجام می شود، اما در عمل محاسبه parity یک عملیات بیتی XOR می باشد.
در مقایسه با mirroring، پیاده سازی parity به میزان قابل توجهی هزینه های مربوط به محافظت از داده ها را کاهش می دهد. مثالی از یک پیکربندی RAID از نوع parity با 4 دیسک را در نظر بگیرید که 3 دیسک از داده ها، و دیسک چهارم از اطلاعات parity نگهداری می کنند. در این مثال، parity فقط نیاز به 33 درصد فضای اضافی دیسک دارد، در صورتیکه mirroring نیاز به 100 درصد فضای اضافی دیسک دارد.
با این حال، معایبی در parity وجود دارد. اطلاعات parity از داده های در دیسک تولید می شود. بنابراین، parity هر بار که تغییری در داده ها به وجود می آید، parity دوباره محاسبه می شود، که این محاسبه دوباره زمان گیر است و بر عملکرد آرایه RAID تأثیر می گذارد.
برای RAID های از نوع parity ، محاسبه stripe size شامل parity از نوع strip نمی شود. بعنوان مثال در یک مجوعه RAID از نوع parity با 4 دیسک (3+1) اگر strip size=64 KB باشد، سپس stripe size=192KB یعنی 64KB * 3 می باشد.