تکنولژی RAID
تاریخچه:
در سالهاي بین 1980 تا 1990 میلادی، مقدار اطلاعاتی که باید در سخت دیسکها ذخیره میشد، افزایش چشمگیری پیدا کرد. حجم نرم افزارها، برنامه های کاربردی و ... به حدی افزایش یافتند که کاربران کامپیوترها، به سخت دیسکهایی با ظرفیتهای بالاتر نیاز پیدا کردند. در آن زمان، به دلیل پیشرفت کُند فن آوری ذخیره سازی، سخت دیسکهای ظرفیت بالا، قیمتهای بسیار بالایی داشتند و براي کاربران کامپیوترهای خانگی، پرداخت این هزینه ها امکانپذیر نبود. به عنوان مثال، سخت دیسک 20 گیگابایتی قیمتی حدود 150 دلار و سخت دیسک 40 گیگابایتی قیمتی در حدود 400 دلار داشت.
ایده مجازیسازی در ابزارهای ذخیرهسازی را اولین بار David A. Patterson، Garth A. Gibson و Randy Katz در دانشگاه کالیفرنیا، برکلی و در سال 1987 ارائه کردند.
امروزه تعداد کامپیوترهایی که از این ویژگی استفاده میکنند رو به افزایش است و تقریباً بیشتر مادربردهای جدید از این ویژگی پشتیبانی میکنند.
فناوری RAID دارای سطوح متعددی است که هر
یک ويژگيهای خاصی داشته و برای استفاده در محیطهای متفاوت طراحی شدهاند. هر سطح
ترکیب متفاوتی از میزان اعتمادپذیری و کارایی را در اختیار سیستم خواهد گذاشت.
تعدادی از سطوح استاندارد شده بهعنوان سطوح مختلف استاندارد
معرفی میشوند. در مراحل ابتدایی استانداردسازی تنها پنج سطح برای RAID در
نظر گرفته شدهبود اما از آن زمان، تعداد بسیار بیشتری از سطوح که اغلب از طراحیهای
تودرتو استفاده میکنند نیز معرفی شدهاند. در ادامه به معرفی سطوحي خواهيمپرداخت
که بيشترين استفاده را در استاندارد RAID دارند.
RAID 0 :
RAID 0 تحت نام Data Striping نيز مشهور است و موجب افزايش كارايي سختديسكها ميشود. اين نسخه از RAID به حداقل دو سختديسك نياز دارد و توسط نوشتن فايلها درون چندين «قطعه» (Stripe) و ذخيره كردن هر يك از قطعهها در سختدیسکی متفاوت، عمل میكند. برای مثال، اگر فايلی 200 كيلوبايتی و دو سختديسك داشته باشيد، اين پيكربندی فايلها را به دو قطعه مساوی 100 كيلوبايتی تقسيم كرده و هر قطعه را درون يكی از سختديسكها ذخيره میكند. به عبارتی، نيمی از فايل ها در سختديسكِ 1 و نيمی ديگر در سختديسكِ 2 ذخيره میشوند.
توضيح بالا خيلی مختصر است. در حقيقت مقدار «قطعه» بايد در زمان پيكربندی سيستم RAID مشخص شود. به عنوان مثال، اگر در تنظيمات RAID، مقدار قطعه را 128 كيلوبايت درنظر گرفته باشيد، فايلِ 200 كيلوبايتی بالا به دو قطعهی مساوی 128 كيلوبايتی تقسيم میشود (هر قطعه روی يكی از سختديسكها قرار دارد) و چون حجم فايل از مجموع حجم دو قطعه كمتر است، 28 كيلوبايت در انتهای هر يك از دو قطعه خالی خواهد ماند (به مجموع هر دو قطعهای كه بخشی از داده را روی خود ذخيره میكنند، يك بلوك میگويند). اما اگر به جای فايلی 200 كيلوبايتی، فايلی 64 كيلوبايتی داشتيد، آنگاه 96 كيلوبايت در انتهای هر قطعه خالی میماند (يعنی 32 كيلوبايت روی هر ديسك ذخيره میشد). اما اگر در تنظيمات RAID، مقدار قطعه 32 كيلوبايت تنظيم شود، فايل 200 كيلوبايتی به 8 قطعهي 32 كيلوبايتي تقسيم ميشود و روي هر سختديسك، 4 قطعه ذخيره خواهد شد و روی هر قطعه، 7 كيلو بايت فضای خالي موجود خواهد بود. در وضعيتی مشابه، فايل 64 كيلوبايتی به 2 قطعهی 32 كيلوبايتی تقسيم میشود و هيچ فضايی از سختديسك بيهوده تلف نخواهد شد.
با توجه به اين دو مثال، به سادگی متوجه میشويد كه وقتی با فايلهای كمحجم سر و كار داريد، اگر مقدار قطعه را در تنظيمات RAID بالا در نظر بگيريد، مقداری از فضای ذخيرهسازی سختديسكهای شما بيهوده تلف خواهد شد. بنابراين اگر فايلهای شما حجم كمی دارند، بهتر است هنگام پيكربندي RAID0، گزينهی Stripe (همان مقدار قطعه) را روی كمترين ميزان، و هنگامی كه با فايلهای حجيم سر و كار داريد، اين گزينه را روی مقادير زيادتر تنظيم كنيد.
اما RAID 0 چگونه سبب
افزايش كارايی میشود؟ در مثال بالا، همانطور كه مشاهده كرديد، به جای ذخيره كردن
يك فايل 200
كيلوبايتی در يك سختديسك، دو فايل 100 كيلوبايتی در دو سختديسك
ذخيره شدند. زمان صرف شده برای ذخيره كردن يك فايل 100
كيلوبايتی، بهطور تئوري نصف زمانِ صرف شده برای ذخيرهسازی يك فايل 200
كيلوبايتی است. بهطور كلی، RAID 0 با موازي كردن دو سختديسك، اجازه میدهد
سرعت خواندن و نوشتن اطلاعات در سختديسكها افزايش پيدا كند و اين موضوع نيز سبب
افزايش كارايی آنها میشود.
مجموع كل ظرفيت دو سختديسك، مقدار ظرفيت آرايهي RAID 0 را تعيين میكند. به عنوان مثال، اگر شما از دو سختديسك 80 گيگابايتی استفاده كنيد، ظرفيت ذخيرهسازي سيستم شما 160 گيگابايت خواهد بود.
RAID 1 :
اين نوع RAID، كارايی سيستم را افزايش نمیدهد و هدف آن، بهبود قابليت اطمينان دادههای كامپيوتر است. توسط RAID 1، كاربر اطمينان دارد كه هيچگاه اطلاعاتی را كه ذخيره كرده است، از دست نخواهد داد. اين نسخه ازRAID به حداقل دو سختديسكِ يكسان نياز دارد و تحت نام Mirroring شناخته میشود. در آرايهی RAID 1، هر تغييری كه در يكی از سختديسكها اعمال شود، روی ديسك ديگر نيز ايجاد خواهد شد.
به عنوان مثال، اگر فايلی را روی سختديسك اول
كپی كنيد، نسخهای دقيقاً مشابه با اين فايل، بهطور خودكار روی سختديسك دوم نيز
كپی خواهد شد. در اين آرايه، اگر سختديسك اول صدمه ببيند، به آسانی میتوان از
سختديسك دوم استفاده كرد و بنابراين هيچگاه اطلاعات شما از بين نخواهد رفت. اين
نسخه از RAID در حقيقت سيستم پشتيبان مبتنی بر سختافزار است و بيشتر در مكانهايی
كه اطلاعات مهمي دارند، به كار گرفته میشود.
RAID 2 :
در این RAID نیز
از striping استفاده می شود و داده
ها به صورت نوارهای سکتوری ذخیره می شوند. در این حالت بعضی از درایوهای آرایه
برای اطلاعات ECC در نظر گرفته می شوند. البته از آنجایی که درایو های SCSIامروزی مجهز
به این سیستم هستند به ندرت از این RAID استفاده
به عمل می آید ولی بیانگر مفهوم دیگری از تضمین ایمنی داده هاست.
هر
بیت داده که روی دیسک های سخت نوشته می شود، کد تصحیح خطای مربوط به خود را
داراست. این کدها روی درایوهای جداگانه ذخیره می شوند و به منظور حفاظت از
یکپارچگی و سلامت داده ها مورد استفاده
قرار میگیرند.
ECC ارزش های عددی داده های ذخیره شده بر روی بلوكهای مشخص در درایو مجازی را با استفاده از فرمولی به نام check sum جدول بندی میکند. سپس در صورت نیاز، جمع کنترلی برای تایید سلامت داده ها به انتهای بلوك داده الحاق می شود. هنگامی که داده ها مجدداً خوانده میشوند، جدول بندی ECC مجددا محاسبه می شود. سپس جمع کنترلی هر بلوك داده ی خاص ، خوانده شده و با آخرین جدول بندی مقایسه می شود. چنانچه اعداد همانند باشند داده ها بدون نقص هستند، اما اگر تناقضی وجود داشته باشد، داده ها ی از دست رفته با استفاده از جمع کنترلی قبلی، به عنوان یک نقطه ی مرجع، قابل محاسبه ی مجدد هستند.
RAID 5 :
اين نسخه از RAID، قدرتمندترين نوع RAID برای كامپيوترهای خانگی است و به كنترلكنندهای سختافزاری برای مديريت آرايه نياز دارد. اما برخی از سيستمهای عامل، اين قابليت را از طريق نرمافزار شبيهسازی میكنند. RAID5 به حداقل سه سختديسك نياز دارد كه براي حصول بهترين كارايی، بايد يكسان باشند. بهطور كلی RAID 5 نوعی از RAID 0 با بيت Parity (بيت توازن) برای مراقبت از اطلاعات آرايه است.
بيت توازن نوعی محاسبات باينری است كه دو بلوك از داده را با همديگر مقايسه میكند و بلوك دادهی سوم را براساس بلوكهای 1 و 2 تشكيل میدهد. اگر حاصل جمع دو بلوك داده زوج باشد، بيت توازن نيز زوج خواهد بود. اما اگر حاصل جمع دو بلوك داده فرد باشد، بيت توازن فرد خواهد بود. براساس اين روش، اگر يكی از سختديسكهای آرايه صدمه ببيند، زمانی كه سختديسك ديگری جايگزين آن شود، بيت توازن اجازه خواهد داد اطلاعات دوباره احيا شوند.
بيت توازن بين سختديسكها برای افزايش كارايی
و قابليت اطمينان دادهها تغيير مكان میدهد. افزايش كارايي به اين دليل است كه به
جای نوشتن اطلاعات روي يك سختديسك، از چندين سختديسك استفاده میشود. ضمن اينكه
اگر سختديسك 2
صدمه ببيند، دادههای موجود در اين سختديسك میتوانند براساس دادهها و بيت
توازنِ قرار گرفته در دو سختديسك ديگر، دوباره بازسازی شود. بهطور كلی ظرفيت
ذخيرهسازی اين آرايه برابر با مجموع ظرفيت دو سختديسك است. يعنی اگر از 3 سختديسك
500
گيگابايتی استفاده شود، ظرفيت ذخيرهسازی براي اين آرايه 1000
گيگابايت خواهد بود.
RAID 6 :
آرايه RAID 6، Striping را در سطح بلوك، به همراه دو مجموعه Parity توزيع شده فراهم میكند. در واقع اين آرايه، پيكربندی RAID 5 را با يك بلوك Parity اضافي توسعه میدهد.
استفاده از دو مجموعه بلوك Parity باعث میشود كه آرايه RAID 6 تحمل خرابی دو ديسك عضو مجموعه ی خود را داشته باشد. اما درعين حال همين ويژگی تاثير چشمگيری بر عملكرد آن در هنگام نوشتن اطلاعات دارد زيرا محاسبات دوگانه Parity سربار قابل ملاحظهای را بر آرايه تحميل ميكند.
برای
پيادهسازی يك آرايه RAID
6 حداقل به 4
ديسك سخت نياز خواهد بود. ظرفيت كلی چنين آرايهای معادل حاصلضرب كوچكترين ديسك
عضو آن در n-2 خواهد
بود كه
n تعداد كل ديسكهای عضو آرايه است.
امروزه سطوح قدیمی RAID به سرعت جای خود را به این سطح می دهند.
آرایه های ترکیبی :
علاوه بر آرايههای استانداردی كه قبلا به آنها اشاره شد، امكان تركيب بعضی از اين پيكربندیها با يكديگر نيز وجود دارد كه در دنيای ذخيرهسازی تحت عنوان Hybrid RAID شناخته میشوند. در واقع ايده كلی در تركيب آرايههای RAID اين است كه عناصر يك آرايه ميتوانند ديسكهای جداگانه و يا خود آرايههای RAID باشند. از آنجايی كه هيچ يك از سطوح ابتدايی RAID با عددی بالاتر از 9 شناخته نمیشوند، آرايههای تركيبی معمولا برای شناسايی خود از تركيب اسامی RAIDهای اصلی استفاده میكنند. در اين زمينه گاهی معمولا يك علامت + مابين دو نوع آرايه تركيب شده قرار میگيرد (مثل RAID 1+0) اما بعضی از فروشندگان اين علامت را حذف كردهاند )مانند( RAID 10، هر چند كه تركيب نهایی كاملا يكسان است.
RAID 0+1 :
اين آرايه، يك انعكاس Mirror را
از يك آرايه
Striped ايجاد ميكند. برای ايجاد يك آرايه RAID 1+0 حداقل
به 4
ديسك نياز داريد و اين تعداد هميشه به صورت زوج افزايش پيدا می كند. آرايه RAID 1+0 دو
ويژگی عملكرد بالا و تحمل خطا را بهطور همزمان تامين میكند، اما در عين حال
پيچيدگی پيادهسازی را نيز افزايش میدهد. اين آرايه تا وقتي كه
يك يا چند درايو در يك مجموعه Mirror از كار بيفتند به كار خود ادامه میدهد، اما اگر
درايوهای مشابه در هر دو مجموعه Mirror دچار خرابی شوند، كل دادههای ذخيره شده روی
سيستم
RAID از دست خواهدرفت.
RAID 1+0 یا RAID 10 :
اين آرايه كه تحت عنوان RAID 1+0نيز شناخته میشود، يك آرايه Striped را از آرايههای Mirror ايجاد میكند. تفاوت اصلي اين پيكربندی با RAID 0+1 در اين است كه RAID 0 مجموعه Striped خود را از يك سري درايوهاي Mirror شده تشكيل می دهد. در صورت بروز خرابی در ديسكهاي عضو آرايه، RAID 10 عملكرد بهتری را به نمايش میگذارد زيرا استفاده از تمام ديسكهای باقی مانده ادامه پيدا خواهد كرد. اين آرايه میتواند بروز خرابی در چند ديسك عضو خود را تحمل كند، البته مادامی كه هيچيك از Mirrorها تمام درايوهای خود را از دست ندهد.
پیاده سازی سخت افزاری و نرم افزاری:
RAID نرم افزاری از طريق يك سيستم عامل تنظيم می شود و به طور ذاتی كارايی كمتری نسبت به كنترلرهای سخت افزاریRAID دارد. اين به علت فقدان سخت افزار اختصاصی برای مديريت آرايه های RAID است. اما بايد گفت كه تنظيم آن، دست كم موقع استفاده از Windows XP Professional، نسبت به سيستم های مبتنی بر سخت افزار ساده تر و انعطاف پذیرتر است.
دومين عامل در زمينه بررسی و انتخاب نوع RAID، اين است كه آيا شما می- خواهيد سيستم عامل تان قسمتی از آرايه باشد يا خير؟ بزرگترين محدوديت در انجام RAID در ويندوز XP اين است كه سيستم عامل بايد قبل از ايجاد آرايه RAID نصب شود. به اين معنا كه اگر شما بخواهيد ديسك سيستم عامل خود را Strip كنيد، براي افزايش سرعت Loading راهی جز رفتن به سمت كنترلرهای RAID سخت افزاري نداريد.
بنابراين اگر بدون ايجاد درايوهای Strip شده، می خواهيد حداكثر استفاده را ببريد يا اگر برای Backup های خود نياز داريد كه از RAID استفاده نماييد از مادربردي استفاده كنيد كه كنترلر RAID را به صورت Onboard در خود دارند و يا اينكه از يك كارت كنترلر PCI استفاده كنيد. اما اگر می- خواهيد سرعت درايوهای Stripped را امتحان كنيد به سراغ RAID نرم افزاری برويد.
RAID سخت افزاری با کارتهای کنترلر :
اين روش ، سنتی ترين و پراستفاده ترين نوع RAID سخت افزاری به ويژه براي سيستم های " دست پايين" است.
يك كنترلر RAID در PC يا سرور نصب می شود و درايوهای آرايه به آن متصل می شوند. اين كنترلر واسطه ای است بين سيستم و هارد ديسك های موجود در آرايه و معمولاً از اينترفيس های SCSI يا كنترلرهای IDE/ATA برای اين منظور استفاده می شود. داده ها از طريق BUS سيستم به سراسر PC فرستاده می شود. برخي مادربردها بويژه برای سيستم های سرور به همراه خود به صورت مجتمع، كنترلرهای RAID را نيز دارند. اين كنترلرها در مادربرد جاسازی شده- اند اما از لحاظ كاری تفاوتی با كارت های BUS-Based افزودنی ندارند.
اجراي RAID به صورت BUS-Based ارزانتر و ساده تر از اجرای RAID به صورت external است. اين در حالی است كه سيستم های كنترلرهای خارجی RAID خيلی گران هستند. ولی قابليت توسعه زيادی نسبت به BUS-Based RAID دارند، (برای آرايه های بزرگ ، فضايی در حد ترابايت رانيز می توانند پوشش دهند ) و میتوانند كارآيی بهتری ارايه كنند. اما هزينه ای كه بايد در ازای اين سخت افزار پرداخت شود معمولاً در حدی نيست كه كاربران معمولی PCها از عهده آن برآيند يا حتی به آن فكر كنند!
بهنام محمدکریمی
دانشکده فنی، دانشگاه ارومیه
Besa.1371@Gmail.com