RAID چیست؟

RAID (آرایه اضافی از دیسک‌های مستقل) روشی برای ذخیره داده‌های مشابه در مکان‌های مختلف روی چندین هارد دیسک یا درایوهای حالت جامد (SSD) برای محافظت از داده‌ها در صورت خرابی درایو است. با این حال، سطوح RAID مختلفی وجود دارد و همه هدفشان ارائه افزونگی نیست.

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

آرایه های RAID برای سیستم عامل (OS) به عنوان یک درایو منطقی منفرد ظاهر می شوند.

RAID از تکنیک های دیسک Mirroring یا Disk striping استفاده می کند. Mirroring داده های یکسان را روی بیش از یک درایو کپی می کند. پارتیشن های Striping به پخش داده ها روی چندین درایو دیسک کمک می کند. فضای ذخیره سازی هر درایو به واحدهایی از یک بخش ۵۱۲ بایت تا چندین مگابایت تقسیم می شود. نوارهای همه دیسک ها به ترتیب در هم قرار گرفته و آدرس دهی می شوند. Disk Mirroring و Disk striping را نیز می توان در یک آرایه RAID ترکیب کرد.

در سیستم تک کاربره‌ای که رکوردهای بزرگ ذخیره می‌شوند، نوارها معمولاً کوچک (مثلاً ۵۱۲ بایت) تنظیم می‌شوند به طوری که یک رکورد واحد همه دیسک‌ها را در بر می‌گیرد و با خواندن همزمان همه دیسک‌ها می‌توان به سرعت به آن دسترسی پیدا کرد. 

در یک سیستم چندکاربره، عملکرد بهتر نیاز به یک نوار به اندازه کافی پهن دارد تا رکورد معمولی یا حداکثر اندازه را نگه دارد و ورودی/خروجی دیسک را در بین درایوها فعال کند.

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

یک کنترلر RAID ممکن است مبتنی بر سخت افزار یا نرم افزار باشد. در یک محصول RAID مبتنی بر سخت افزار، یک کنترل کننده فیزیکی کل آرایه را مدیریت می کند. این کنترلر همچنین می تواند برای پشتیبانی از فرمت های درایو مانند Serial Advanced Technology Attachment و Small Computer System Interface طراحی شود. یک کنترلر RAID فیزیکی نیز می تواند در مادربرد سرور تعبیه شود.

با RAID مبتنی بر نرم افزار، کنترل کننده از منابع سیستم سخت افزاری مانند پردازنده مرکزی و حافظه استفاده می کند. در حالی که عملکردهای مشابه یک کنترلر RAID مبتنی بر سخت افزار را انجام می دهد، کنترل کننده های RAID مبتنی بر نرم افزار ممکن است افزایش عملکرد را فعال نکنند و می توانند بر عملکرد سایر برنامه های کاربردی روی سرور تأثیر بگذارند.

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

تراشه های کنترل کننده RAID مبتنی بر سیستم عامل بر روی مادربرد قرار دارند و کلیه عملیات ها توسط واحد پردازش مرکزی (CPU) مشابه RAID مبتنی بر نرم افزار انجام می شود. با این حال، با سیستم عامل، سیستم RAID فقط در ابتدای فرآیند بوت اجرا می شود. هنگامی که سیستم عامل بارگیری شد، درایور کنترلر عملکرد RAID را بر عهده می گیرد. یک کنترلر RAID سیستم عامل به اندازه یک گزینه سخت افزاری گران نیست، اما فشار بیشتری به CPU کامپیوتر وارد می کند. RAID مبتنی بر سیستم عامل RAID نرم افزاری با کمک سخت افزار، RAID مدل هیبریدی و RAID جعلی نیز نامیده می شود.

سطوح RAID
دستگاه های RAID از نسخه های مختلفی استفاده می کنند که سطوح نامیده می شوند. مقاله اصلی که این اصطلاح را ابداع کرد و مفهوم راه اندازی RAID را توسعه داد، شش سطح از RAID را تعریف کرد – ۰ تا ۵. این سیستم شماره گذاری شده، افراد در فناوری اطلاعات را قادر می ساخت تا نسخه های RAID را متمایز کنند. تعداد سطوح از آن زمان گسترش یافته و به سه دسته تقسیم شده است: سطوح RAID استاندارد، تو در تو و غیر استاندارد.

سطوح استاندارد RAID
RAID 0. این پیکربندی دارای striping است اما داده های اضافی ندارد. بهترین عملکرد را ارائه می دهد، اما تحمل خطا را ارائه نمی دهد.

raid0

نمودار RAID 0

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

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

raid1

نمودار RAID 1

RAID 2. این پیکربندی از خط کشی در بین دیسک ها استفاده می کند و برخی از دیسک ها اطلاعات بررسی و تصحیح خطا (ECC) را ذخیره می کنند. RAID 2 همچنین از یک برابری کد Hamming اختصاصی استفاده می کند که شکل خطی ECC است. RAID 2 هیچ مزیتی نسبت به RAID 3 ندارد و دیگر استفاده نمی شود.

raid2

نمودار RAID 2

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

raid3

نمودار RAID 3

RAID 4. این سطح از نوارهای بزرگ استفاده می کند، به این معنی که کاربر می تواند رکوردها را از هر درایو واحد بخواند. سپس I/O همپوشانی را می توان برای عملیات خواندن استفاده کرد. از آنجا که تمام عملیات نوشتن برای به روز رسانی درایو برابری مورد نیاز است، هیچ تداخلی I/O امکان پذیر نیست.

raid4

نمودار RAID 4

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

آرایه‌های RAID 5 عموماً به دلیل تأثیر عملکرد مرتبط با نوشتن داده‌های برابری، انتخاب ضعیفی برای استفاده در سیستم‌های فشرده‌نویس هستند. وقتی یک دیسک از کار بیفتد، بازسازی آرایه RAID 5 ممکن است زمان زیادی طول بکشد.

raid5

نمودار RAID 5

RAID 6. این تکنیک مشابه RAID 5 است، اما شامل یک طرح برابری دوم است که در بین درایوهای آرایه توزیع شده است. استفاده از برابری اضافی آرایه را قادر می سازد به عملکرد خود ادامه دهد، حتی اگر دو دیسک به طور همزمان از کار بیفتند. با این حال، این حفاظت اضافی هزینه دارد. آرایه‌های RAID 6 اغلب عملکرد نوشتن کندتری نسبت به آرایه‌های RAID 5 دارند.

نمودار RAID 6

سطوح RAID تو در تو
برخی از سطوح RAID که مبتنی بر ترکیبی از سطوح RAID هستند به عنوان RAID تودرتو نامیده می شوند. در اینجا چند نمونه از سطوح RAID تو در تو آورده شده است.

RAID 10 (RAID 1+0). با ترکیب RAID 1 و RAID 0، این سطح اغلب به عنوان RAID 10 شناخته می شود که عملکرد بالاتری نسبت به RAID 1 ارائه می دهد، اما هزینه بسیار بالاتری دارد. در RAID 1+0 داده ها آینه ای و آینه ها راه راه هستند.

raid10

نمودار RAID 10

RAID 01 (RAID 0+1). RAID 0+1 مشابه RAID 1+0 است، با این تفاوت که روش سازماندهی داده ها کمی متفاوت است. RAID 0+1 به جای ایجاد یک آینه و سپس راه اندازی آن، یک مجموعه راه راه ایجاد می کند و سپس مجموعه راه راه را آینه می کند.

RAID 03 (RAID 0+3، همچنین به عنوان RAID 53 یا RAID 5+3 شناخته می شود). این سطح از striping در سبک RAID 0 برای بلوک های دیسک مجازی RAID 3 استفاده می کند. این کارایی بالاتر از RAID 3 را ارائه می دهد، اما با هزینه بالاتر.

RAID 50 (RAID 5+0). این پیکربندی، برابری توزیع شده RAID 5 را با RAID 0 striping ترکیب می کند تا عملکرد RAID 5 را بدون کاهش حفاظت از داده ها بهبود بخشد.

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

RAID 7. سطح RAID غیراستاندارد مبتنی بر RAID 3 و RAID 4 که حافظه پنهان را اضافه می کند. این شامل یک سیستم‌عامل جاسازی‌شده در زمان واقعی به‌عنوان یک کنترل‌کننده، ذخیره‌سازی حافظه پنهان از طریق یک اتوبوس پرسرعت و سایر ویژگی‌های یک رایانه مستقل است.

RAID تطبیقی این سطح به کنترلر RAID امکان می دهد تصمیم بگیرد که چگونه برابری را روی دیسک ذخیره کند. بین RAID 3 و RAID 5 انتخاب خواهد شد. انتخاب بستگی به این دارد که چه نوع مجموعه RAID با نوع داده ای که روی دیسک نوشته می شود عملکرد بهتری داشته باشد.

Linux MD RAID 10. این سطح که توسط هسته لینوکس ارائه شده است، از ایجاد آرایه های RAID تو در تو و غیر استاندارد پشتیبانی می کند. نرم افزار لینوکس RAID همچنین می تواند از ایجاد تنظیمات استاندارد RAID 0، RAID 1، RAID 4، RAID 5 و RAID 6 پشتیبانی کند.

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

RAID مبتنی بر سخت افزار نیاز به نصب یک کنترلر اختصاصی در سرور دارد. RAID

کنترلرهای RAID در سخت افزار از طریق سیستم ورودی/خروجی اولیه کارت یا Option ROM (حافظه فقط خواندنی) قبل یا بعد از بوت شدن سیستم عامل پیکربندی می شوند. سازندگان کنترلرهای RAID نیز معمولاً ابزارهای نرم افزاری اختصاصی را برای سیستم عامل های پشتیبانی شده خود ارائه می دهند.

RAID مبتنی بر نرم افزار توسط چندین سیستم عامل مدرن ارائه شده است. به روش های مختلفی اجرا می شود، از جمله:

به عنوان جزئی از سیستم فایل؛
به عنوان لایه ای که دستگاه ها را به عنوان یک دستگاه مجازی منفرد انتزاعی می کند. و
به عنوان یک لایه که بالای هر فایل سیستمی قرار دارد.
این روش RAID از مقداری از قدرت محاسباتی سیستم برای مدیریت پیکربندی RAID مبتنی بر نرم افزار استفاده می کند. به عنوان مثال، ویندوز از نرم افزار RAID 0، ۱ و ۵ پشتیبانی می کند، در حالی که macOS اپل از RAID 0، ۱ و ۱+۰ پشتیبانی می کند.

مزایای RAID
از مزایای RAID می توان به موارد زیر اشاره کرد:

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

پیاده سازی سطوح RAID تودرتو نسبت به سطوح RAID سنتی گران تر است، زیرا به دیسک های بیشتری نیاز دارند.
هزینه هر گیگابایت برای دستگاه های ذخیره سازی برای RAID تودرتو بالاتر است زیرا بسیاری از درایوها برای افزونگی استفاده می شوند.
هنگامی که یک درایو از کار می افتد، احتمال اینکه درایو دیگری در آرایه نیز به زودی از کار بیفتد، افزایش می یابد، که احتمالاً منجر به از دست رفتن اطلاعات می شود. این به این دلیل است که همه درایوهای یک آرایه RAID به طور همزمان نصب می شوند، بنابراین همه درایوها در معرض یکسانی فرسودگی هستند.
برخی از سطوح RAID – مانند RAID 1 و ۵ – فقط می توانند یک شکست درایو را حفظ کنند.
آرایه‌های RAID و داده‌های موجود در آن‌ها، تا زمانی که یک درایو خراب جایگزین نشده و دیسک جدید با داده‌ها پر شود، آسیب‌پذیر هستند.
از آنجایی که درایوها در حال حاضر ظرفیت بسیار بیشتری نسبت به زمانی که RAID برای اولین بار اجرا شد، دارند، بازسازی درایوهای شکست خورده زمان زیادی طول می کشد.
اگر دیسک خراب شود، این احتمال وجود دارد که دیسک‌های باقیمانده دارای بخش‌های بد یا داده‌های ناخوانا باشند، که ممکن است بازسازی کامل آرایه را غیرممکن کند.
با این حال، سطوح RAID تو در تو با ارائه درجه بیشتری از افزونگی، این مشکلات را برطرف می‌کنند، که به طور قابل توجهی احتمال شکست در سطح آرایه به دلیل خرابی همزمان دیسک را کاهش می‌دهد.

چه زمانی باید از RAID استفاده کرد؟
مواردی که در آن راه اندازی RAID مفید است عبارتند از:

زمانی که حجم زیادی از داده ها نیاز به بازیابی دارند. اگر درایو از کار بیفتد و داده ها از بین بروند، آن داده ها می توانند به سرعت بازیابی شوند، زیرا این داده ها در درایوهای دیگر نیز ذخیره می شوند.
زمانی که زمان کار و در دسترس بودن فاکتورهای مهم تجاری هستند. اگر داده ها نیاز به بازیابی داشته باشند، می توان آن را به سرعت و بدون توقف انجام داد.
هنگام کار با فایل های حجیم RAID سرعت و قابلیت اطمینان را هنگام کار با فایل های حجیم فراهم می کند.
زمانی که یک سازمان نیاز به کاهش فشار بر سخت افزار فیزیکی و افزایش عملکرد کلی دارد. به عنوان مثال، یک کارت RAID سخت افزاری می تواند شامل حافظه اضافی برای استفاده به عنوان کش باشد.
هنگام داشتن مشکلات دیسک I/O. RAID با خواندن و نوشتن داده‌ها از چندین درایو، به‌جای اینکه منتظر بماند تا یک درایو برای انجام کارها منتظر بماند، توان عملیاتی اضافی را فراهم می‌کند.
زمانی که هزینه یک عامل است. هزینه یک آرایه RAID کمتر از گذشته است و دیسک‌های ارزان‌تر به تعداد زیاد استفاده می‌شوند که باعث ارزان‌تر شدن آن می‌شود.
تاریخچه RAID
اصطلاح RAID در سال ۱۹۸۷ توسط دیوید پترسون، رندی کاتز و گارث ای گیبسون ابداع شد. در گزارش فنی خود در سال ۱۹۸۸، «موردی برای آرایه‌های اضافی از دیسک‌های ارزان قیمت (RAID»)، این سه نفر استدلال کردند که مجموعه‌ای از درایوهای ارزان قیمت می‌تواند عملکرد بالاترین درایوهای دیسک گران قیمت آن زمان را شکست دهد. با استفاده از افزونگی، یک آرایه RAID می تواند از هر درایو دیسکی قابل اعتمادتر باشد.

در حالی که این گزارش اولین گزارشی بود که نامی برای این مفهوم گذاشت، استفاده از دیسک های اضافی قبلاً توسط دیگران مورد بحث قرار گرفته بود. گاس آلمان و تد گروناو از Geac Computer Corp. ابتدا این ایده را MF-100 معرفی کردند. نورمن کن اوچی از IBM در سال ۱۹۷۷ یک حق اختراع برای این فناوری به ثبت رساند که بعداً RAID 4 نام گرفت. در سال ۱۹۸۳، Digital Equipment Corp. درایوهایی را که تبدیل به RAID 1 می شدند، ارسال کرد و در سال ۱۹۸۶، یک حق اختراع IBM دیگر برای آنچه که RAID نامیده می شد ثبت شد. ۵. پترسون، کاتز و گیبسون همچنین به کارهایی که توسط شرکت هایی مانند Tandem Computers، Thinking Machines و Maxstor برای تعریف طبقه بندی RAID خود انجام می شد، نگاه کردند.

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

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

آینده RAID
RAID کاملاً مرده نیست، اما بسیاری از تحلیلگران می گویند که این فناوری در سال های اخیر منسوخ شده است. جایگزین هایی مانند کدگذاری پاک کردن، حفاظت بهتر از داده ها را ارائه می دهند – البته با قیمت بالاتر – و با هدف رفع نقاط ضعف RAID توسعه یافته اند. با افزایش ظرفیت درایو، احتمال خطا با آرایه RAID نیز افزایش می یابد و ظرفیت ها به طور مداوم افزایش می یابد.

افزایش SSD ها همچنین به عنوان کاهش نیاز به RAID در نظر گرفته می شود. SSD ها قطعات متحرک ندارند و به اندازه هارد دیسک خراب نمی شوند. آرایه‌های SSD اغلب از تکنیک‌هایی مانند تسطیح سایش به جای تکیه بر RAID برای حفاظت از داده‌ها استفاده می‌کنند. SSD های مدرن به اندازه کافی سریع هستند که سرورهای مدرن ممکن است به افزایش عملکرد جزئی که RAID ارائه می دهد نیاز نداشته باشند. با این حال، هنوز هم ممکن است در حال حاضر برای جلوگیری از از دست دادن داده ها استفاده شود.

رایانش هایپر مقیاس نیز با استفاده از سرورهای اضافی به جای درایوهای اضافی، نیاز به RAID را برطرف می کند.

با این حال، RAID بخشی ریشه‌دار از ذخیره‌سازی داده‌ها است و فروشندگان بزرگ فناوری همچنان به انتشار محصولات RAID ادامه می‌دهند. مثلا:

IBM RAID توزیع‌شده یا DRAID را با Spectrum Virtualize V8.3 خود ارائه می‌کند که وعده افزایش عملکرد RAID را می‌دهد.
آخرین نسخه فناوری ذخیره سازی سریع اینتل از RAID 0، RAID 1، RAID 5 و RAID 10 پشتیبانی می کند.
نرم افزار مدیریت NetApp OnTap از RAID-DP یا دو برابری یا RAID 4 برای محافظت در برابر سه خرابی همزمان درایو استفاده می کند.
پلتفرم Dell EMC Unity از RAID 5، ۶ و ۱۰ پشتیبانی می کند.
منبع