RAID چیست و چند نوع RAID داریم؟

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند اصطلاحاً RAID گفته می شود. هدف از ساخت و ایجاد RAID را میتوان به شرح زیر مطرح کرد :

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  1. امنیت دیتا یا همان تحمل خطا (Fault tolerance)
  2. افزایش سرعت Read/Write و در نتیجه افزایش Performance

انواع روش های ایجاد RAID

  1. نرم افزاری : در روش نرم افزاری از ابزارهایی که سیستم عامل دارد برای ایجاد RAID استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
  2. سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد) امور مربوط به RAID و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller محصول شرکت Fujitsu را مشاهده می کنید.

انواع RAID | تفاوت انواع RAID | معرفی سطوح RAID

چند نکته: در نوع سخت افزاری وقتی RAID انجام می دهیم در نهایت خروجی به عنوان یک Disk به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

معرفی انواع RAID

معرفی RAID 0 : رید سطح صفر چیست؟

این نوع با نام 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 … این کار باعث افزایش کارایی خواهد شد.

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

معرفی RAID 1 : رید سطح یک چیست؟

در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

معرفی RAID 5 : رید سطح 5 چیست؟

برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

معرفی RAID 6 : رید سطح شش چیست؟

مشابه رید 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  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

معرفی RAID 10 : رید سطح ده چیست؟

از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است
به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

معرفی RAID 50 : رید سطح پنجاه چیست؟

از ترکیب 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 عدد هارد حالت های زیر را داریم:

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

معرفی RAID 60 : رید سطح شصت چیست؟

از ترکیب RAID 0 با RAID 6 حاصل می شود. ویژگی های RAID 50 را دارد با این تفاوت که subraid در اینجا RAID 6 است.

به مجموعه ای از هاردها که با الگوریتم ها و روش های خاصی یک دیتا را ذخیره می کنند. هدف از ساخت و ایجاد RAID  را میتوان به شرح زیر مطرح کرد :

# امنیت دیتا یا همان تحمل خطا (Fault tolerance) 
# افزایش سرعت Read/Write  و در نتیجه افزایش Performance

!! انواع روش های ایجاد RAID : 
--
# نرم افزاری : در روش نرم افزاری از ابزارهایی که  سیستم عامل دارد برای ایجاد RAID  استفاده می شود بنابراین در این نوع نیاز به سیستم عاملی می باشد که بتواند این قابلیت را به ما بدهد. معایب : چون در این روش خود سیستم عامل وظیفه اجرا و مدیریت RAID  ها را بر عهده دارد طبیعتا به دلیل استفاده از منابع سیستم باعث کندی و کاهش کارایی می شود که البته این کاهش کارایی تا حد زیادی به نوع RAID  که استفاده می کنیم هم بستگی دارد. مزایا : در این روش نیازی به خریداری سخت افزار مجزا نیست که طبیعتا کاهش هزینه را به همراه دارد و البته برای محیط تست و تمرین و موارد آموزشی میتواند مناسب باشد.
# سخت افزاری : نیاز به تهیه یک قطعه سخت افزاری مجزا به نام RAID Controller داریم تا کار ایجاد و مدیریت RAID  را برایمان انجام دهد. البته این Controller های سخت افزاری معمولا روی سرورهای سخت افزاری وجود دارد به عنوان مثال سرورهای شرکت HP  برای خود یک کنترلر دارند که بعضا با استفاده از نرم افزاری به نام HP Smart Start در Boot سیستم و حتی قبل از نصب سیستم عامل راه اندای می شوند.مزایا : RAID های سخت افزاری قابل اعتماد تر از RAID های نرم افزاری هستند. و وابستگی به نرم افزار یا همان سیستم عامل ندارند. در روش نرم افزاری ابتدا نیاز به نصب سیستم عامل و در گام بعد راه اندازی RAID  هست ولی در سخت افزاری قبل از راه اندازی سیستم عامل میتوان RAID  ایجاد نمود.در سخت افزاری چون خود ریدکنترلر ( به وسیله منابع پردازشی که دارد)  امور مربوط به RAID  و نحوه تقسیم دیتا را برعهده دارد طبیعتا سیستم عامل و منابع سیستم را درگیر نمی کند و در نتیجه باعث کاهش کارایی سیستم نمی شود.معایب: برخلاف RAID نرم افزاری ، RAID سخت افزاری نیاز به سخت افزار خاص دارد که متعاقبا افزایش هزینه را دربر دارد.

در تصویر زیر یک نمونه RAID Controller  محصول شرکت Fujitsu  را مشاهده می کنید.
<center>
||http://tosinso.com/files/get/857680be-39b0-4840-8c57-6dce3c7a31a8||
<center>

چند نکته: در نوع سخت افزاری وقتی RAID  انجام می دهیم در نهایت خروجی به عنوان یک Disk  به سیستم عامل معرفی می شود. و سیستم عامل یک دیسک می بیند که عملیات پارتیشن بندی را روی این دیسک انجام می دهد و برای نوشتن  دیتایش را تحویل کنترلر داده و بقیه امور توسط کنترلر انجام می شود. اگر تنظیمات Disk Management  در سیستم عامل را ببینید این قضیه را مشاهده خواهید کرد.Storage Controller : چیپستی که روی مادربرد pc  ها قرار دارد و با اتصال هارد ها به این چیپست امکان استفاده از هاردها فراهم می شود. به نوعی واسط بین هارد و سیستم عامل است.

! انواعRAID
--
--
--
!! معرفی RAID 0
--
این نوع با نام   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 …  این کار باعث افزایش کارایی خواهد شد.

<center>
||http://tosinso.com/files/get/40e3f5c1-4e46-403d-a4c0-b7e37540cffb||
<center>
||http://tosinso.com/files/get/4fea606c-e4bf-490f-92e3-16f7379e3f1b||


!! معرفی RAID 1
--
در این نوع نیاز به دو عدد دیسک داریم دیتا به صورت mirror  دقیقا روی هر دو دیسک نوشته میشوند بنابراین سرعت نوشتن کم میشود.این نوع بهترین برای نصب سیستم عامل است.

<center>
||http://tosinso.com/files/get/db01b20b-f790-4e4a-90de-3d13646f1df4||
<center>

<center>
||http://tosinso.com/files/get/d9b4275c-4950-4959-9673-43e61c59e634||
<center>

!! معرفی RAID 5
--
 برای جبران معایب صفر و یک ساخته شد. مکانیسم عملکرد به این صورت است که کنترلر دیتا را به 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 دیسک داریم:
<left>
A > A1 , A2 , A3 , Parity a
A1 + A2 + Parity a = A3
A1 + A3 + Parity a = A2
A3 + A2 + Parity a = A1
<left>


کاربرد: رید 5 کاربرد عمومی دارد مثلا برای File server , Web server

<center>
||http://tosinso.com/files/get/5e688c42-cfc0-4fa0-b84b-1c6f4cb9991f||
<center>

<center>
||http://tosinso.com/files/get/5514d160-626e-436e-a81a-fa8f78e73787||
<center>

!! معرفی RAID 6
--
مشابه رید 5 می باشد منتها دوبار Parity دارد. در روش چون دوتا Parity  داریم دیتا به n-2  قسمت تقسیم می شود.در این رید نیاز به حداقل 4 دیسک داریم.نحوه ایجاد Parity : یک بار برای قسمت های دیتا Parity  محاسبه می کند و یک بار هم برای مجموع Parity  قبلی و دیتا Parity  محاسبه می کند. چون دو تا Parity  داریم تحمل خطا به دو دیسک افزایش می یابد. برای بلاک A در رید 6 با 4 دیسک داریم:
<left>
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

 
<left>

<center>
||http://tosinso.com/files/get/41b70221-c918-4c1a-a328-ae8808df9113||
<center>
<center>
||http://tosinso.com/files/get/d8c6ae4d-2556-4e25-8d1b-9fb507a53df3||
<center>

!! معرفی RAID 10
--
از ترکیب 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 هر قسمت دقیقا روی دو دیسک نوشته می شود.
<center>
 ||http://tosinso.com/files/get/0610daec-63c1-47eb-9b60-a73ba6c94610||
<center>

<center>
||http://tosinso.com/files/get/297f59db-2c11-44b7-94a9-d9a1ab718d76||
<center>

تحمل خطا در این نوع رید به شانس ما هم بستگی دارد مثلا فرض کنید 8 تا هارد داریم که میشود 4 تا رید 1 و یک رید صفر که 4 عضو دارد . حالا اگر همزمان از هر subraid یک هارد بسوزد 4 تا هارد سوخته داریم ولی هیچ اتفاقی برای دیتا نیافتاده . اما اگر در یک subraid همزمان دو تا هاردش بسوزد یعنی اینکه یک رید 1 را از دست داده ایم که می شود یکی از اعضای رید صفر از دست رفته و با توجه به خاصیت رید صفر که در بالا توضیح داده شد کل اطلاعات مان از دست میرود و بی استفاده می شود.کاربرد : از آنجایی که در کار با دیتابیس ها بیشتر عملیات خواندن داریم این نوع رید برای استفاده در دیتابیس کاربرد دارد.

!! معرفی RAID 50
--
از ترکیب 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 عدد هارد حالت های زیر را داریم:
<center>
||http://tosinso.com/files/get/4f692b5c-6fe3-4632-8ff5-48c5c6a31760||
<center>
تحمل خطا و سرعت در هر هم بندی متفاوت است هر چه تعداد subraid ها بیش تر شود سرعت و حجم کمتری داریم ولی تحمل خطا بیشتر میشود.
<center>
||http://tosinso.com/files/get/b658b077-815c-4f51-816d-88b7a014a569||
<center>

!! معرفی RAID 60
--
از ترکیب RAID 0  با RAID 6  حاصل می شود. ویژگی های RAID 50  را دارد با این تفاوت که subraid  در اینجا RAID 6  است.
<center>
||http://tosinso.com/files/get/d017b83e-f45e-4824-8a3d-acdf4981574d||
<center>
نکته قاعده کلی در مورد RAID : 
ظرفیت و نوع هاردها باید یکی باشد.

نویسنده : مجتبی صفائی پور
منبع : |جزیره راهکارهای ذخیره سازی وب سایت توسینسو::https://tosinso.com/virtualization|
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

نکته قاعده کلی در مورد RAID :

ظرفیت و نوع هاردها باید یکی باشد.


نظرات