یک RAID 10 بزرگ – استاندارد جدید در ذخیرهسازی سرور
در اواخر دهه ۱۹۹۰، قانون کلی برای ساخت یک سرور جدید این بود که سیستم عامل را روی آرایه RAID 1 کوچک و مجزایی قرار دهید و برنامهها و دادهها را در یک آرایه RAID 5 جداگانه نگه دارید. این کار به دلایل متعددی انجام میشد که بسیاری از آنها در گذر زمان به فراموشی سپرده شدهاند. عوامل اصلی این بود که ظرفیت ذخیرهسازی بسیار گران بود، دیسکها کوچک بودند، فایلسیستمها بهطور منظم دچار خرابی میشدند و هارد دیسکهای فیزیکی نسبت به سایر خرابیها نرخ خرابی بسیار بالایی داشتند. مردم به محافظت در برابر خرابی هارد دیسک، جلوگیری از خرابی فایلسیستم و کسب ظرفیت کافی برای تأمین نیازهایشان نیاز داشتند.
امروزه چشمانداز ذخیرهسازی تغییر کرده است. فایلسیستمها فوقالعاده مقاوم هستند و خرابی ناشی از خود فایلسیستم تقریباً شنیده نمیشود و با تشکر از فناوریهایی مانند journalling، تقریباً همیشه میتوان آن را بهسرعت و بهطور مؤثر اصلاح کرد و از از دست رفتن دادههای کاربران جلوگیری کرد. امروزه تقریباً هیچکس نگران خرابی فایلسیستم نیست.
فایلسیستمهای مدرن همچنین قادرند ظرفیتهای بسیار بیشتری نسبت به گذشته مدیریت کنند. در اواخر دهه ۱۹۹۰ و اوایل دهه ۲۰۰۰ غیرمعمول نبود که امکان ساخت آرایه دیسکی بزرگتر از آنچه یک فایلسیستم واحد بتواند مدیریت کند وجود داشت. امروزه اینطور نیست زیرا همه فایلسیستمهای رایج حداقل چند ترابایت و اغلب پتابایت، اگزابایت یا بیشتر داده را مدیریت میکنند.
هارد دیسکها بسیار قابلاطمینانتر از دهه ۱۹۹۰ هستند. نرخ خرابی کل دیسکها بسیار پایین است، حتی در دیسکهای ارزانتر. آنقدر پایین که خرابی آرایه (از دست رفتن داده در کل آرایه RAID) در درجه اول نگران خرابی آرایهها است، نه خرابی هارد دیسکها. دیگر هارد دیسکها را بیرویه تعویض نمیکنیم. شنیده نمیشود که آرایههای بزرگ بدون از دست دادن یک دیسک واحد تمام عمرشان را طی کنند.
ظرفیتها بهطور چشمگیری افزایش یافتهاند. بهجای هارد دیسکهای ۴.۳ گیگابایتی، دیسکهای ۳ ترابایتی نصب میکنیم. تقریباً هزار برابر ظرفیت بیشتر در یک اسپیندل واحد نسبت به کمتر از پانزده سال پیش.
این عوامل در کنار هم نیاز به رویکردی کاملاً متفاوت برای طراحی ذخیرهسازی سرور و تغییر «قانون کلی» در مورد نقطه شروع طراحی ذخیرهسازی ایجاد میکنند.
رویکرد قدیمی را میتوان RAID 1 + RAID 5 نوشت. فضای RAID 1 برای سیستم عامل و فضای RAID 5، که احتمالاً بسیار بزرگتر بود، برای دادهها و برنامهها استفاده میشد. این طراحی دو نگرانی ذخیرهسازی را از هم جدا میکرد و حداکثر تلاش را برای محافظت از سیستم عامل (که در صورت فاجعه بسیار سخت قابل بازیابی بود و دادهها برای دسترسیپذیری به آن وابسته بودند) روی RAID 1 بسیار قابلاطمینان متمرکز میکرد. RAID 5 با هزینه کمتر، با اینکه کمی پرخطرتر بود، معمولاً برای دادهها انتخاب میشد زیرا هزینه ذخیره داده روی RAID 1 در اکثر موارد بسیار زیاد بود. این یک مبادله بود که در آن زمان منطقی بود.
امروزه، با نگرانیهای بسیار متفاوت، رویکرد جدیدی لازم است و این رویکرد جدید بهعنوان «یک RAID 10 بزرگ» شناخته میشود - یعنی یک آرایه RAID 10 واحد و بزرگ که سیستم عامل، برنامهها و دادهها همه با هم ذخیره میشوند. البته، این فقط چیزی است که برای راحتی میگوییم؛ در سیستمی بدون نیاز به عملکرد یا ظرفیت فراتر از یک دیسک واحد میگوییم «یک RAID 1 بزرگ»، اما بسیاری از مردم RAID 1 را در گروه RAID 10 قرار میدهند، بنابراین گفتن اولی آسانتر است.
برای راحتی بیشتر، این را به OBR10 خلاصه میکنیم.
از آنجایی که هزینه ذخیرهسازی بهطور قابلتوجهی کاهش یافته و بهجای کمیاب بودن امروزه معمولاً فراوان است، از آنجایی که فایلسیستمها فوقالعاده قابلاطمینان هستند، از آنجایی که RAID 1 و RAID 10 ویژگیهای عملکردی مشترکی دارند و از آنجایی که خرابیهای آرایه ناشی از غیر از خرابی دیسک از نویز پسزمینه به دلایل اصلی از دست رفتن داده تبدیل شدهاند، انتقال به RAID 10 و حذف تقسیم آرایه به استاندارد جدید تبدیل شده است.
با RAID 10 اکنون ذخیرهسازی با دسترسیپذیری بالا و مقاوم که قبلاً فقط برای سیستم عامل در نظر گرفته میشد برای تمام دادههای ما در دسترس است. مزیت عملکرد RAID آینهشده به علاوه مزیت اسپیندلهای اضافی را برای تمام دادههایمان به دست میآوریم. استفاده بهتر از ظرفیت دیسک و عملکرد بر اساس آن بهبود استفاده را به دست میآوریم.
حتی تقسیم سنتی فایلهای لاگ که معمولاً با پایگاههای داده انجام میشد (رویکرد معروف RAID 1 + RAID 5 + RAID 1) دیگر لازم نیست زیرا RAID 10 ویژگیهای عملکردی بهینه را در تمام دادهها حفظ میکند. با RAID 10 تقریباً تمام عواملی که زمانی باعث تقسیم آرایهها میشدند را حذف میکنیم.
تنها عامل مهمی که ذکر نشده و آرایههای تقسیمشده سنتاً برای آن مفید در نظر گرفته میشدند، رقابت دسترسی است - نیاز فرآیندهای مختلف به دسترسی به بخشهای مختلف دیسک بهطور همزمان که باعث حرکت هد درایو در الگویی کمتر از ایدهآل میشد و عملکرد درایو را کاهش میداد. رقابت در اواخر دهه ۱۹۹۰ زمانی که قانون کلی قدیمی توسعه یافت مشکل بزرگی بود.
امروزه، رقابت درایو همچنان وجود دارد اما با استفاده از کشهای بزرگ RAID بهشدت کاهش یافته است. در اواخر دهه ۹۰ کشهای درایو در بهترین حالت چند مگابایت بودند و اغلب اصلاً وجود نداشتند. امروزه ۲۵۶ مگابایت یک کش کوچک است و سرورهای متوسط با ۱ تا ۲ گیگابایت کش فقط روی کارت RAID نصب میشوند. برخی سیستمها شروع به یکپارچهسازی کشهای اضافی مبتنی بر SSD کردهاند تا یک کش ثانوی فراتر از کش حافظه روی کنترلر اضافه کنند. اینها بهراحتی میتوانند صدها گیگابایت کش با سرعت بسیار بالا اضافه کنند که تقریباً هر عملیات اسپیندلی را از نیاز به نگرانی در مورد رقابت محافظت میکند. بنابراین مشکل رقابت در طول سالها به روشهای دیگری حل شده است اما مانند سایر تغییرات فناوری، ما را از نگرانیهای سنتی که نیاز به تقسیم آرایهها داشت آزاد کرده است.
مانند رقابت آرایه، دلیل دیگری که بسیار کمتر رایج بود برای تقسیم آرایهها در اواخر دهه ۱۹۹۰ بهبود عملکرد باس ارتباطی به دلیل محدودیتهای فناوریهای SCSI و ATA آن دوره بود. اینها نیز با انتقال به مکانیسمهای ارتباطی سریال، SAS و SATA، در آرایههای مدرن حذف شدهاند. دیگر به ظرفیت یک باس واحد برای هر آرایه محدود نیستیم و میتوانیم بسیار بزرگتر با انعطافپذیری بسیار بیشتری نسبت به گذشته رشد کنیم. رقابت باس تقریباً حذف شده است.
اگر نیازی به جدا کردن فضا برای محافظت وجود داشته باشد، مانند رشد فایل لاگ، این میتواند از طریق پارتیشنبندی بهجای تقسیم آرایه فیزیکی انجام شود. بهطور کلی میخواهید پارتیشنبندی را به حداقل برسانید زیرا سربار را افزایش میدهد و توانایی درایوها برای تنظیم خودشان را کاهش میدهد، اما مواردی وجود دارد که این رویکرد بهتر است. اما نیازی نیست که ذخیرهسازی فیزیکی زیربنایی مانند گذشته تقسیم شود. حتی بهتر از پارتیشنبندی، در صورت در دسترس بودن، مدیریت حجم منطقی است که جداسازیهای شبیه پارتیشن را بدون محدودیتهای پارتیشنها ایجاد میکند.
بنابراین در پایان روز، قانون کلی جدید برای ذخیرهسازی سرور «یک RAID 10 بزرگ» است. دیگر RAID 5 نه، دیگر تقسیم آرایه نه. این در مورد قابلیت اطمینان، عملکرد، سهولت مدیریت و مقرونبهصرفه بودن متوسط است. مانند تمام قوانین کلی، این برای هر مورد واحدی صدق نمیکند، اما بسیار گستردهتر از استاندارد قدیمی صدق میکند. RAID 1 + RAID 5 بهعنوان یک استاندارد همیشه تلاشی برای «کنار آمدن» با چیزی ناخواسته و بهترین استفاده از یک وضعیت بد بود. OBR10 اینطور نیست. استاندارد جدید یک استاندارد مطلوب است - روشی است که واقعاً میخواهیم اجرا کنیم، نه چیزی که «گیر» آن افتاده باشیم.
هنگام طراحی ذخیرهسازی برای یک سرور جدید، با OBR10 شروع کنید و فقط زمانی از آن دور شوید که بهطور خاص نیازهای فناوری شما را برآورده نمیکند. شما هرگز نباید استفاده از OBR10 را توجیه کنید، فقط باید عدم استفاده از آن را توجیه کنید.
