به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند اصطلاحاً RAID گفته می شود. هدف از ساخت و ایجاد RAID را میتوان به شرح زیر مطرح کرد :
در تصویر زیر یک نمونه RAID Controller محصول شرکت Fujitsu را مشاهده می کنید.
چند نکته: در نوع سخت افزاری وقتی RAID انجام می دهیم در نهایت خروجی به عنوان یک Disk به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.
این نوع با نام striped volume هم شناخته می شود . در اینجا حد اقل نیاز به دو عدد دیسک داریم . اگر تعداد دیسک ها را n در نظر بگیریم در این روش وقتی دیتایی به دست RAID Controller میرسد آن را به n قسمت تقسیم می کند و هر قسمت را داخل یک دیسک ذخیره می کند.
مزایا : سرعت بسیار بالایی دارد این RAID به Crazy raid معروف است. معایب : اصلا تحمل خطا ندارد یعنی این که اگر یک دیسک Fail شود کل دیتا ناقص میشود. کاربرد : در جایی که به سرعت بالا نیاز داریم و مانایی دیتا برایمان اهمیتی ندارد مثلا در Cache server ها و در محیط تست و لابراتور های آموزشی.
سوال: چرا در RAID 0 اگر حتی یک دیسک از بین برود کل دیتا تحت تاثیر قرار می گیرد و قابل استفاده نمی باشد؟ جواب این سوال را با یک مثال شرح می کنم. در زمان فرمت volume قسمتی به نام Allocation unit size داریم مقداری که در اینجا تعریف می کنیم مثلا 64k سیتم عامل برای ذخیره سازی دیتا روی این volume دیتا را به تکه های 64 تایی تقسیم و تحویل کنترلر می دهد.
حالا فرض کنید فایل a.mp3 با حجم 128k را میخواهیم روی دیسک ذخیره نمائیم ، سیستم عامل این فایل را به دو تکه 64 تایی تقسیم می کند (به این تکه ها بلاک می گوئیم) به نام فرضی A1 , A2 و به کنترلر تحویل می دهد حالا خود کنترلر طبق مکانیسم هایی که دارد هر کدام از این A1 , A2 را به n قسمت تقسیم کرده و هر قسمت را روی یک دیسک می نویسد مثلا اگر دو دیسک داشته باشیم A1-1 , A2-1 روی دیسک اول و A1-2 , A2-2 هم روی دیسک دوم.
پس کنترلر عملیات تقسیم را به ازای هر بلاک انجام میدهد از اینرو اگر دیسکی از بین برود تمامی فایلها قسمتی از بلاک هایشان را از دست داده اند.بهتر است در انتخاب تعداد دیسک هد در RAID 0 طبق قاعده باینری عمل کنیم مثلا 2 , 4 , 8 ,16 … این کار باعث افزایش کارایی خواهد شد.
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.
برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به N-1 قسمت تقسیم میکند و هر قسمت را روی یک دیسک مینویسد وروی دیسک باقیمانده Parity مربوط به آن n قسمت را مینویسد.Parity : یک فرمول به دست آمده از بخش های دیتا است که سایزش اندازه دیگر بخش هاست.
مثال: با 3 دیسک رید 5 راه اندازی کرده ایم بلاک A به n-1 قسمت که میشود 2 قسمت تقسیم میشود که میدهد A1 , A2 حالا A1 روی دیسک اول و A2 روی دیسک دوم و Parity(A1A2) روی دیسک سوم ذخیره میشود با تلفیق A1 با Parity به A2 و با تلفیق A2 با Parity به A1 میرسیم.
کنترلر برای ذخیره این قسمت ها روی دیسک به صورت چرخشی عمل می کند یعنی Parity را به ترتیب هر بار روی یک دیسک می نویسد.تحمل خطا در این روش یک دیسک است.یعنی اگر دو دیسک همزمان از بین بروند دیتا را از دست میدهیم. اگر یک دیسک از بین برود دو حالت پیش می آید یا اینکه Parity بوده که خب مشکلی برای دیتا ایجاد نمی شود یا اینکه یک قسمت از دیتا بوده که باز با تلفیق سایر قسمت ها با Parity کنترل به آن قسمت می رسد و Recovery انجام میدهد. مثلا برای بلاک A در رید 5 با 4 دیسک داریم:
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity داریم دیتا به n-2 قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity محاسبه می کند و یک بار هم برای مجموع Parity قبلی و دیتا Parity محاسبه می کند. چون دو تا Parity داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
A > A1 , A2 , Parity (A) , Parity (A, Parity (A))
A1 + Parity (A) = A2
A2 + Parity (A) = A1
A1 + Parity (A, Parity (A)) = A2 , Parity (A)
A2 + Parity (A, Parity (A)) = A1 , Parity (A)
Parity (A) + Parity (A, Parity (A)) = A1 , A2
از ترکیب RAID 0 با RAID 1 حاصل می شود. در این مدل ما یک Parent raid داریم و یک Sub raid . به این صورت میباشد که parent از نوع RAID 0 و SUB از نوع RAID 1 .نیاز به حداقل 4 دیسک داریم (D1 , D2 , D3 , D4 ) که دو دیسک ، دو دیسک باهم RAID 1 می شوند و نتیجه حاصله باهم RAID0 می شوند.
عملکرد: اگر تعداد Subraid ها را n در نظر بگیریم وقتی بلاک A به کنترلر میرسد کنترلر ابتدا آن را به n قسمت تقسیم میکند و هر قسمت را به یک Subraid میدهد در مرحله بعد در هر Subraid هر قسمت دقیقا روی دو دیسک نوشته می شود.
تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.
از ترکیب RAID 0 با RAID 5 حاصل می شود. در این مدل ما یک Parent raid داریم و یک Sub raid . به این صورت میباشد که parent از نوع RAID 0 و SUB از نوع RAID 5 .اگر تعداد Subraid ها را n و تعداد دیسک های هر رید5 را m در نظر بگیریم .
بلاک A ابتدا به دلیل وجود رید صفر به n قسمت تقسیم میشود و هر قسمت به یک subraid تعلق می گیرد. سپس هر قسمت به m-1 قسمت دیگر تقسیم شده و در دیسک ها نوشته می شود.برای RAID 50 با توجه به تعداد دیسک ها میتوان هم بندی های متفاوتی در نظر گرفت . مثلا برای 24 عدد هارد حالت های زیر را داریم:
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
از ترکیب RAID 0 با RAID 6 حاصل می شود. ویژگی های RAID 50 را دارد با این تفاوت که subraid در اینجا RAID 6 است.
نکته قاعده کلی در مورد RAID :
ظرفیت و نوع هاردها باید یکی باشد.
فعال و علاقمند به حوزه IT
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود