وبلاگ

آشنایی با مفاهیم RAID

آشنایی با مفاهیم RAID

رِید (RAID) نوعی تکنولوژی برای ترکیب کردن چندین هارد فیزیکی به صورت یک هارد تنها است که باعث افزایش کارایی و حفاظت از داده‌ها می‌گردد.

هارد رِید (RAID) چیست؟

RAID (بخوانید رِید) مخفف عبارت Redundant Array of Independent Disks به معنای “آرایه چندگانه دیسک‌های مستقل” بوده و نوعی تکنولوژی مجازی سازی است که چندین هارد دیسک فیزیکی را ترکیب کرده و به صورت یک هارد مستقل، در اختیار سیستم عامل یا اجزای شبکه قرار می‌دهد.

در هاردهای RAID داده‌ها ممکن است به صورت متفاوت بین دیسک‌های فیزیکی توزیع شوند که بسته به نوع توزیع، مراحل RAID نامیده می‌شوند (در قسمت پایین توضیح داده شده اند).

یک رید با 6 هارد

رید (RAID) چه کاربردی دارد؟

مرحله (level) های گوناگون تکنولوژی RAID می‌تواند باعث افزایش سرعت یا افزایش تحمل خطا یا هر دو گردد و به این ترتیب باعث افزایش کارایی آرایه می‌شود.

افزایش سرعت

در برخی از لول‌های RAID (که در پایین گفته شده)، داده‌ها به صورت قطعه قطعه در هاردها ذخیره می‌شوند، به این تکنولوژی Data striping گفته می‌شود. روش کار به این صورت است که کنترلر RAID (چه به صورت سخت افزاری و چه نرم افزاری)، فایل‌ها و داده‌ها را تکه تکه کرده سپس بر روی هاردهای خود ذخیره می‌کند.

در روش عادی که یک هارد داریم، اگر یک فایل را ذخیره سازی کنیم یا آن را بخوانیم، واحد Input/Output (به اختصار I/O) هارد مجبور است کل داده‌های فایل را ذخیره کرده یا تحویل دهد. اما در حالت RAID، فایل‌ها تکه تکه شده بنابراین کار بین هر یک از واحدهای I/O هارد دیسک ها تقسیم می‌شود و به این ترتیب سرعت خواندن/نوشتن تا حد بسیار زیادی بهینه شده و افزایش می‌یابد.

افزایش تحمل خطا و امکان بازیابی

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

بیت توازن (parity): داده‌هایی است که از حاصل XOR دو داده (مثلاً در دو دیسک جدا) بوجود آمده و با آن می‌توان در صورت از بین رفتن هر یک از این دو داده اصلی، با استفاده از داده موجود و بیت توازن، داده از دست رفته را بوجود آورد.

در روش عادی که یک هارد داریم، وقتی فایلی آسیب ببیند یا قسمتی از هارد به صورت فیزیکی خراب شود، دیگر بازگرداندن اطلاعات آن تقریباً ناممکن است حال آن که در RAID خیلی راحت می‌توانیم اطلاعات را از یک دیسک دیگر برگردانیم.

انواع رید (RAID)های استاندارد

گفتیم که تکنولوژی رید (RAID) می‌تواند به صورت‌های مختلفی پیاده سازی شود. در RAID ما ۷ مرحله/استاندارد/روش پخش داریم که عبارت اند از:

RAID0

تکنولوژی RAID0 که به striping نیز معروف است، روشی است که داده‌ها تکه تکه شده و هر تکه در یک دیسک ذخیره می‌شود. در نهایت سرعت خواندن/نوشتن n برابر بیشتر خواهد شد (n = تعداد هاردها). با این که سرعت در این روش بسیار زیاد اما با از دست رفتن یکی از هاردها، کل اطلاعات غیرقابل استفاده خواهد شد. به عبارت دیگر، هیچ تکنولوژی بازیابی و تصحیح خطا در رید ۰ استفاده نشده و احتمال آسیب دیدن کل مجموعه برابر جمع احتمال کل هارد دیسک ها خواهد بود.

این گونه سیستم‌ها برای اطلاعات حساس به هیچ وجه مناسب نیست با این حال اگر سرعت خواندن و نوشتن مهم باشد (مثلاً در کامپیوترهای گیمینگ و جاهایی که داده‌های مهمی وجود ندارد) بسیار پرکاربرد و بهینه خواهد بود.

RAID0

تکنولوژی RAID1 که به mirror نیز معروف است، روشی است که عین داده‌ها، به صورت همزمان در دیسک دیگر کپی می‌شود. به عبارت دیگر از اطلاعات به صورت همزمان یک نسخه پشتیبان (Backup) تهیه می‌شود. سرعت خواندن نوشتن در این مجموعه افزایش نیافته اما امکان بازیابی اطلاعات بسیار زیاد خواهد بود. سرعت نوشتن در این مجموعه برابر سرعت کند ترین هارد و سرعت خواندن برابر جمع سرعت هارد هاست (چون به صورت تکه تکه قابل خواندن است).

این گونه سیستم‌ها برای اطلاعات حساس و جاهایی که ثبات در خواندن و سرعت خواندن بیشتر از ثبات در نوشتن باشد بسیار به درد بخور خواهد بود.

RAID1

RAID2

تکنولوژی RAID2 که به ندرت استفاده شده و در ان بیت‌ها بجای تکه داده‌ها ذخیره می‌شوند. به عنوان تصحیح خطا، از همینگ کد (Hamming Code) که در تصویر زیر به صورت (hc) نوشته ایم، استفاده می‌کند.

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

دلیل وجود ۳ دیسک بازیابی برای ۴ دیسک داده، استفاده از کدهای همینگ است.

RAID2

RAID3

تکنولوژی RAID3 نیز مانند RAID2 به صورت نادر استفاده می‌شود چون نحوه کار در این حالت به صورت بایت و نه تکه‌های فایل است. وجود یک دیسک با عنوان بیت‌های توازن (Parity) که در شکل‌های زیر با عنوان p نشان داده شده است، امکان بازیابی اطلاعات را در صورت از دست رفتن یک دیسک فراهم می‌کند.

این سیستم نیز مانند RAID2 قادر به هندل کردن چندین درخواست همزمان نخواهد بود ولی سرعت انتقال داده آن بالا خواهد بود.

RAID3

RAID4

RAID4 تقریباً مانند RAID3 است با این تفاوت که بجای بایت داده‌ها، بلوک یا همان تکه داده‌ها ذخیره می‌شوند و مثل RAID3 دارای یک دیسک اختصاصی به عنوان بیت‌های توازن برای بازیابی است.

به دلیل ذخیره کردن همه بیت‌های توازن بازیابی در یک دیسک، آن دیسک بسیار فعال بوده و درخواست ذخیره داده‌های جدید باید در صف نوشتن قرار گیرند. به این ترتیب سرعت نوشتن داده‌ها کم بوده ولی سرعت خواندن مناسبی دارد.

RAID4

RAID5

تکنولوژی RAID5 به سرعت جایگزین RAID3 و RAID4 شد. همانطور که در شکل زیر مشخص کرده ایم، بیت‌های توازنی که برای بازیابی استفاده می‌شوند، به گونه‌ای بر روی هاردها ذخیره می‌شوند که برای نوشتنشان، نیازی به صف بندی وجود نداشته باشد. سرعت خواندن و نوشتن این سیستم بسیار بالا بوده و در آن داده‌ها در سطح بلوک (قطعه داده‌ها) و نه بیت و بایت هندل می‌شوند.

در این سیستم با از دست رفتن یک هارد، اطلاعات می‌توانند به سادگی بازیابی شوند.

RAID5

RAID6

RAID6 نسخه گسترش یافته RAID5 است با این تفاوت که در این سیستم با از دست رفتن حتی ۲ هارد، امکان بازیابی اطلاعات وجود خواهد داشت. دلیلش هم استفاده از یک هارد دیگر به عنوان بیت توازن‌های اضافی (در شکل زیر با q مشخص کرده ایم) است. مثل RAID5 در سطح بلوک داده‌ها مدیریت می‌شوند با این حال به دلیل وجود یک دیسک بیشتر، سرعت خواندن و نوشتن نسبت به RAID5 کاهش یافته و امکان بازیابی افزایش می‌یابد.

RAID6

انواع رید (RAID)های غیر استاندارد

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

RAID01 (یا RAID0+1)

در این رید، از دو حالت RAID0 و RAID1 استفاده شده به گونه‌ای که ابتدا داده‌ها کپی یا mirror شده (یعنی RAID1) سپس این داده‌ها هر یک به صورت مجموعه تکه‌های داده (یعنی RAID0) در هاردها ذخیره می‌شوند.

RAID01 (یا RAID0+1)

RAID10 (یا RAID1+0)

در این رید هم از دو حالت RAID1 و RAID0 (مثل RAID01) استفاده شده با این تفاوت که ابتدا داده‌ها تکه تکه شده (RAID0) سپس بر روی هارد دیسک ها به صورت کپی شده و mirror (RAID1) ذخیره می‌شوند.

 

RAID50 (یا RAID5+0)

در این رید از دو حالت RAID5 و RAID0 استفاده شده و روش کار به این صورت است که ابتدا داده‌ها تکه تکه شده (RAID0) سپس با استفاده از روش RAID5 که برای بازیابی بهینه شده، به صورت مستقل ذخیره می‌شوند.

RAID50 (یا RAID5+0)

انواع دیگر ریدهای غیر استاندارد مانند RAID7، RAID53و … نیز وجود دارند که کاربرد آن‌ها برای نیازهای مختلف، متفاوت است.