سطوح مختلف RAID

سطوح مختلف RAID

گروه آموزشی مجموعه تدبیر

تا کنون در ارتباط با اینکه RAID چیست؟ و انواع RAID صحبت کردیم، در این مقاله قصد داریم به بررسی سطوح مختلف RAID بپردازیم. RAID  دارای چندین سطح می‌باشد که نوع آن معمولا به وسیله یک عدد مشخص می‌شود. وقتی که صحبت از سطوح RAID می‌شود منظور کیفیت ذخیره اطلاعات نیست، بلکه نحوه ذخیره‌سازی اطلاعات در آرایه‌ای از دیسک‌ها می‌باشد. تا کنون ۹ سطح متفاوت RAID پیاده‌سازی شده‌است که عبارتند از:

ico-meta RAID 0
ico-meta RAID 1
ico-meta RAID 2
ico-meta RAID 3
ico-meta RAID 4
ico-meta RAID 5
ico-meta RAID 6
ico-meta RAID 10 یا RAID 1+0
ico-meta RAID 01 یا RAID 0+1

RAID 0: در این سطح، اطلاعات به بلوک‌هایی با اندازه‌های مساوی تقسیم و هر بلوک به یک دیسک منتقل می‌گردد. به عنوان مثال اطلاعات به بلوک‌های A و B  با اندازه‌های مساوی تقسیم و به دیسک‌ها منتقل می‌شوند. این روش اغلب توسط تکنیک striping استفاده می‌گردد و باعث افزایش سرعت خواندن و نوشتن اطلاعات می‌شود.

پیش از استفاده توجه داشته باشید، RAID 0 روشی برای مقابله با از دست رفتن اطلاعات نیست. به‌عبارتی در این روش هیچگونه کپی از اطلاعات تهیه نمی‌شود و هنگامی که یکی از دیسک‌ها با مشکل برخورد کند، اطلاعات کاملا از دست خواهد رفت که البته می‌توان با پرداخت هزینه اطلاعات را تا حدودی بازیابی نمود.

RAID 1: این نوع RAID  با نام Mirroring نیز شناخته می‌شود و اطلاعات یکسان بر روی چندین دیسک نوشته می‌شود. در این روش حداقل دو دیسک لازم است که یک کپی  از اطلاعات به‌صورت مجزا در هر دیسک ذخیره می‌شود. در این حالت کارایی خواندن اطلاعات از هر دو دیسک افزایش پیدا می‌کند و می‌توان اطلاعات را همزمان از هر دو دیسک خواند. همچنین کارایی عمل نوشتن همانند حالتی می‌باشد که فقط یک دیسک بر روی سیستم وجود دارد.

در RAID 1 چنانچه یکی از دیسک‌ها با مشکل مواجه شود، تا زمانی که دیسک جدید جایگزین دیسک معیوب شود، سیستم می‌تواند همچنان به کار خود ادامه دهد. این سطح ساده‌ترین و آسان‌ترین روش برای ایجاد یک کپی اطلاعات بر روی دیسک دیگر می‌باشد. اما معایبی در این روش وجود دارد و آن این است که هزینه دو دیسک توسط کاربر پرداخت می‌شود ولی فقط یک دیسک (۵۰ درص) آن قابل استفاده خواهد بود. به‌عنوان مثال وقتی ۲ دیسک ۱ ترابایتی برای سیستم تهیه شود، با این روش فقط ۱ ترابایت آن توسط سیستم قابل استفاده خواهد بود.

RAID 2: این سطح RAID اطلاعات را با استفاده از تکنیک striping به دو قسمت تقسیم کرده و روی ۲  دیسک می‌نویسد. همچنین  اطلاعات کنترلی خطا (ECC) را روی دیسک دیگر، در قالب بیت‌‌های داده ذخیره می‌کند. برای محاسبه اطلاعات کنترل خطا از الگوریتم ‌هامر (Hammer Code)  استفاده می‌شود. در هنگام خواندن، داده با اطلاعات کنترلی تطابق داده می‌شود و اگر خطایی وجود داشته‌باشد، تصحیح.

در سطح ۲ RAID سرعت خواندن اطلاعات با توجه به استفاده از روش striping افزایش یافته، اما به دلیل نیاز به خواندن اطلاعات ECC مقداری کاهش پیدا می‌کند.

RAID 3: دراین سطح پبکربندی RAID، روشStriping سطح بایت را با کیک دیسک Parity اختصاصی فراهم می‌کند.

یکی از اثرهای جانبی پیکربندی آرایه به‌صورت RAID 3 این است که به‌طور همزمان نمی‌تواند به درخواست‌های متعددی سرویس دهد. زیرا که هر بلوک واحد از داده‌ها بر اساس تعریف در بین تمام دیسک‌های عضور آرایه تقسیم شده و بر روی موقعیت یکسانی از آن‌ها قرار می‌گیرد. به این ترتیب، هر عملیات I/O به فعالیت روی هر یک از دیسک‌ها نیاز خواهد داشت که معمولا مستلزم چرخش هماهنگ آن‌ها است. این پیکربندی برای برنامه‌هایی که نیازمند نرخ بالایی برای خواندن و نوشتن اطلاعات به صورت ترتیبی می باشند، مناسب است.

RAID 4: این سطح از RAID از striping بلوک داده با یک دیسک parity اختصاصی استفاده می‌کند. اطلاعات دیسک parity برای بازگردانی اطلاعات از دست رفته به کار میرود؛ یعنی هنگامی که اطلاعات یک دیسک با مشکل مواجه شود، می‌توان با استفاده از دیسک parity، داده‌های از دست رفته را بازگردانی نمود.

RAID 4 حداقل ۳ دیسک لازم دارد که ۲ دیسک آن برای اطلاعات و یک دیسک برای parity استفاده می‌شود. در این سطح به دلیل اینکه داده‌ها به صورت striping ذخیره شده‌اند سرعت خواندن اطلاعات افزایش پیدا می‌کند. ولی به دلیل اینکه داده‌های parity  نیز باید در یک دیسک مجزا ذخیره شوند، نوشتن اطلاعات کمی زمان‌بر خواهد بود.

RAID 5: در این سطح از RAID  حداقل به ۳ دیسک نیاز است. همانند RAID 1 اطلاعات به‌صورت Mirroring در دیسک‌ها ذخیره می‌شود. همچنین یک کد parity در بین دیسک‌ها پخش می‌شود که باعث افزایش کارایی می‌گردد و در هنگام بروز مشکل می‌توان اطلاعات از دست رفته را توسط آن بازیابی کرد. در مقایسه با RAID 1 این سطح، سرعت کمتری در نوشتن اطلاعات دارد. زیرا زمانی هم برای نوشتن اطلاعات parity مورد نیاز است.

بیشترین استفاده از RAID 5 در سرورها و شبکهها است چون فضای ذخیره سازی و تحمل خطا برای آن‌ها مهم است.

RAID 6: تا حدودی مشابه RAID 5 می‌باشد، با این تفاوت که داده‌ها را با استفاده از تکنیک striping  به بخش‌هایی تبدیل کرده و دو مجموعه از اطلاعات parity را برای هر بلوک داده ذخیره می‌کند.

هدف از این کار بهبود تحمل خطای سیستم در هنگام مواجه با مشکلات احتمالی است. کارایی RAID 6 به‌دلیل ایجاد سربار درهنگام محاسبه اطلاعات parity  و همچنین نوشتن اطلاعات، کمی پایین‌تر از RAID 5  است ولی به‌دلیل اینکه اطلاعات در بین چند دیسک تقسیم شده‌اند، خواندن اطلاعات به صورت تصادفی کارایی را کمی افزایش می‌دهد.

‏‏‎RAID 10 (‏‏‎RAID 1+0): این نوع از RAID ترکیبی از RAID 0 و RAID 1  است. به‌عبارتی هم عمل اشتراک اطلاعات و  هم تکثیر آن انجام می‌گردد.ترکیب دیسک‌ها در RAID 10 کمی پیچیده‌تر از سطح ۰ و ۱ است، همچنین کنترلر برای انجام این کار حداقل نیاز به ۴ هارد دیسک دارد.

ابتدا striping داده‌ها بین مجموعه دیسک‌ها صورت گرفته و سپس Mirroring بین آن‌ها اانجام می‌شود، به‌عبارتی دیگر ابتدا RAID 0 بر روی داده‌ها اعمال می‌گردد و سپس بر روی هر بلوک از داده‌ها عمل Mirroring. تقسیم بلوک‌های اطلاعات بین زوج درایوها انجام می‌گردد و عملیات Mirroring در هر زوج از درایوها صورت می‌گیرد، می‌توان گفت درایو یک و درایو دو RAID 1 شده‌اند و Mirror هستند، درایو سه و چهار نیز Mirror یکدیگر. این دو مجموعه درایو به صورت Strip تنظیم شده و با هم کار می‌کنند.

‏RAID 01 (RAID 0+1)‎: در این سطح RAID نیز حداقل به ۴ دیسک نیازمندیم. عملکرد این سطح از RAID، برخلاف RAID 10 است. بدین صورت که در ابتدا اطلاعات به‌صورت Mirroring به هرمجموعه دیسک  منتقل می‌شود، هر مجموعه دارای یک جفت دیسک می‌باشد، سپس اطلاعات در این مجموعه به صورت striping  بر روی دیسک‌ها دخیره می‌شود.