مقایسه RAID 10 و RAID 01
این دو سطح RAID اغلب باعث سردرگمی زیادی میشوند، تا حدی به این دلیل که به اشتباه به جای یکدیگر استفاده میشوند و اغلب صرفاً به این دلیل که درک درستی از آنها وجود ندارد.
ابتدا باید اشاره کرد که هر یک ممکن است با یا بدون علامت جمع نوشته شوند: RAID 10 همان RAID 1+0 است و RAID 01 همان RAID 0+1. عجیب است که RAID 10 تقریباً هرگز با علامت جمع نوشته نمیشود و RAID 01 تقریباً هرگز بدون آن نوشته نمیشود. مهندسان ذخیرهسازی عموماً توافق دارند که علامت جمع هرگز استفاده نمیشود چون اضافی است.
هر دوی این سطوح RAID سطوح «مرکب» هستند که از ترکیب دو نوع ساده RAID متفاوت ساخته میشوند. هر دو مبتنی بر آینه، بدون پاریتی و RAID مرکب یا تودرتو هستند. هر دو ویژگیهای عملکردی یکسانی دارند - سربار و تأخیر اسمی با سرعت خواندن NX و سرعت نوشتن (NX)/2 که N تعداد دیسکهای آرایه و X عملکرد یک دیسک منفرد در آرایه است.
آنچه این دو سطح RAID را از هم متمایز میکند نحوه مدیریت خرابی دیسک است. مروری سریع این است که RAID 10 در تقریباً تمام سناریوهای معقول بسیار ایمن است. RAID 01 اما با افزایش اندازه آرایه به سرعت بسیار خطرناک میشود.
در یک RAID 10، از دست دادن هر دیسک منفردی منجر به تخریب یک مجموعه RAID 1 داخل استریپ RAID 0 میشود. سطح استریپ هیچ تخریبی نمیبیند، فقط آن یک آینه RAID 1 منفرد تخریب میشود. تمام آینههای دیگر تحت تأثیر قرار نمیگیرند. این به این معنی است که تنها ریسک افزایشیافته ما این است که آن یک دیسک منفرد اکنون بدون افزونگی در حال اجرا است و هیچ محافظتی ندارد. تمام مجموعههای آینهشده دیگر همچنان محافظت کامل را حفظ میکنند. بنابراین در معرض خطر ما یک دیسک بدون محافظت است - درست مانند آنچه در یک ماشین رومیزی انتظار دارید.
تعمیر آرایه در یک RAID 10 تخریبشده سریعترین سناریوی تعمیر ممکن است. پس از جایگزینی یک دیسک معیوب، تنها اتفاقی که میافتد این است که آن آینه منفرد بازسازی میشود - که یک عملیات کپی ساده است که در سطح RAID 1، زیر استریپ RAID 0 انجام میشود. این به این معنی است که اگر آرایه کلی در حالت بیکاری باشد فرآیند آینهسازی میتواند با سرعت کامل ادامه یابد و آرایه کلی حتی نمیداند که این اتفاق میافتد. یک آینه دیسک به دیسک بسیار سریع، کارآمد و قابل اطمینان است. این یک سناریوی بازیابی ایدهآل است. حتی اگر چندین آینه همزمان تخریب شده باشند و همزمان تعمیر شوند، هیچ تأثیر اضافی وجود ندارد زیرا بازسازی یکی بر دیگران تأثیر نمیگذارد. ریسک RAID 10 و تأثیر تعمیر هر دو به خوبی مقیاس مییابند.
RAID 01 از سوی دیگر، وقتی یک دیسک را از دست میدهد بلافاصله یک استریپ RAID 0 کامل را از دست میدهد. در یک آینه RAID 01 معمولی دو استریپ RAID 0 وجود دارد. این به این معنی است که نیمی از کل آرایه از کار افتاده است. اگر در مورد یک آرایه RAID 01 با هشت دیسک صحبت کنیم، خرابی یک دیسک منفرد چهار دیسک را فوراً از کار میاندازد و به طور موثر معیوب میکند (سختافزار نیازی به جایگزینی ندارد اما داده روی دیسکها قدیمی است و باید بازسازی شود تا مفید باشد.) بنابراین از منظر ریسک، میتوانیم آن را به عنوان شکست کل استریپ در نظر بگیریم.
آنچه پس از خرابی یک دیسک باقی میماند چیزی نیست جز یک استریپ RAID 0 بدون محافظت. این بسیار خطرناکتر از خرابی معادل RAID 10 است زیرا به جای اینکه فقط یک دیسک سخت منفرد و ایزوله در معرض خطر باشد، اکنون حداقل دو دیسک و احتمالاً بیشتر در معرض خطر هستند و هر دیسکی که در معرض این خطر است ریسک را به میزان قابل توجهی افزایش میدهد.
به عنوان مثال، در کوچکترین آرایه ممکن RAID 10 یا 01 چهار دیسک داریم. در RAID 10 اگر یک دیسک خراب شود، ریسک ما این است که شریک منطبق آن نیز قبل از بازسازی آرایه خراب شود. ما فقط نگران آن یک دیسک هستیم، تمام دیسکهای دیگر در مجموعه RAID 10 هنوز محافظت شده و ایمن هستند. فقط این یکی مورد نگرانی است. در یک RAID 01، وقتی اولین دیسک خراب میشود شریک آن در مجموعه RAID 0 آن فوراً بیفایده و به طور موثر معیوب میشود زیرا دیگر در آرایه قابل استفاده نیست. آنچه باقی میماند دو دیسک بدون محافظت است که فقط RAID 0 اجرا میکنند و بنابراین ما همان ریسکی را داریم که RAID 10 داشت، دو برابر. هر دیسک همان ریسکی را دارد که آن یک دیسک قبلاً داشت. این ریسک ما را در بهترین سناریو بسیار بالاتر میکند.
اما برای یک مثال چشمگیرتر بیایید به یک آرایه بزرگ RAID 10 و RAID 01 با بیست و چهار دیسک نگاه کنیم. دوباره با RAID 10، اگر یک دیسک خراب شود همه دیگران، به جز شریک آن یکی، هنوز محافظت شده هستند. اندازه بیشتر آرایه تقریباً هیچ ریسک اضافی اضافه نکرد. ما هنوز فقط از خرابی آن یک دیسک منفرد میترسیم. در مقابل RAID 01 که یکی از آرایههای RAID 0 آن با خرابی یک دیسک از کار میافتاد و دوازده دیسک را یکباره از کار میانداخت و دوازده دیسک دیگر را در یک RAID 0 بدون هیچ گونه محافظتی باقی میگذاشت. احتمال خرابی یکی از دوازده دیسک به طور قابل توجهی بیشتر از احتمال خرابی یک دیسک منفرد است، که واضح است.
این تمام تصویر نیست. بازیابی دیسک منفرد RAID 10 سریع است، یک عملیات کپی مستقیم از یک دیسک به دیسک دیگر است. از منابع حداقلی استفاده میکند و فقط به اندازه زمانی که یک دیسک به طور کامل میخواند و مینویسد طول میکشد. RAID 01 به همین خوششانسی نیست. برخلاف RAID 10 که فقط یک زیرمجموعه کوچک از کل آرایه را بازسازی میکند، و زیرمجموعهای که با رشد آرایه رشد نمیکند - زمان بازیابی یک RAID 10 با چهار دیسک یا یک RAID 10 با چهل دیسک پس از خرابی یکسان است، RAID 01 باید نیمی کامل از کل آرایه والد را بازسازی کند. در مورد آرایه چهار دیسکی، این دو برابر کار بازسازی RAID 10 است اما در مورد آرایه بیست و چهار دیسکی دوازده برابر کار بازسازی باید انجام شود. بنابراین بازسازیهای RAID 01 زمان بیشتری برای انجام میبرند در حالی که در آن زمان تحت ریسک به طور قابل توجهی بیشتری قرار دارند.
یک اسطوره نسبتاً پایدار وجود دارد که RAID 01 و RAID 10 ویژگیهای عملکردی متفاوتی دارند، اما اینطور نیست. هر دو از استریپسازی و آینهسازی ساده استفاده میکنند که به طور موثر عملیاتهایی با صفر سربار هستند که تقریباً هیچ سربار پردازشی نیاز ندارند. هر دو عملکرد خواندن کامل را از هر دستگاه دیسک متصل به آنها دریافت میکنند و هر کدام نیمی از عملکرد نوشتن خود را به عملیات آینهسازیشان از دست میدهند (با فرض آینههای دو طرفه که تنها استفاده رایج از هر دو نوع آرایه است.) به سادگی هیچ چیزی وجود ندارد که RAID 01 یا RAID 10 را سریعتر یا کندتر از دیگری کند. هر دو بسیار سریع هستند.
با توجه به ویژگیهای دو نوع آرایه، واضح است که RAID 10 تنها نوعی است، از این دو، که باید در یک کنترلر آرایه منفرد وجود داشته باشد. RAID 01 غیر ضروری خطرناک است و هیچ مزیتی ندارد. آنها از همان ظرفیت سربار استفاده میکنند، عملکرد یکسانی دارند، هزینه یکسانی برای پیادهسازی دارند، اما RAID 10 به طور قابل توجهی قابل اطمینانتر است.
پس چرا RAID 01 اصلاً وجود دارد؟ تا حدی به دلیل جهل یا سردرگمی وجود دارد. بسیاری از مردم، که آرایههای RAID مرکب خود را پیادهسازی میکنند، RAID 01 را انتخاب میکنند زیرا شنیدهاند که اسطورهای وجود دارد که سریعتر است و، همانطور که معمولاً در مورد RAID صدق میکند، بررسی نمیکنند که چرا سریعتر خواهد بود و فراموش میکنند که قابلیت اطمینان و سایر عوامل آن را بررسی کنند. RAID 01 واقعاً فقط در آرایههای محلی به اشتباه پیادهسازی میشود.
با این حال، وقتی RAID را به لایه شبکه میبریم، عوامل جدیدی برای در نظر گرفتن وجود دارند و RAID 01 میتواند مهم شود، همانطور که پسرعموی نادر آن RAID 61 نیز میتواند. از طریق نمادگذاری RAID شبکه مشخص میکنیم که لایههای محلی و شبکه RAID کجا هستند. بنابراین در این مورد منظور ما RAID 0(1) یا RAID 6(1) است. پرانتزها نشان میدهند که آینه RAID 1، بخش «بالاترین» پشته RAID، روی یک اتصال شبکه است و نه روی کنترلر RAID محلی.
این در RAID 0(1) چگونه به نظر میرسد؟ اگر دو سرور دارید، هر کدام با یک آرایه RAID 0 استاندارد و میخواهید آنها را با هم همگامسازی کنید تا به عنوان یک آرایه منفرد و قابل اطمینان عمل کنند، میتوانید از فناوریهایی مانند DRBD (در Linux) یا HAST (در FreeBSD) استفاده کنید تا یک آرایه RAID 1 شبکهای از ذخیرهسازی محلی روی هر سرور ایجاد کنید. واضح است که این سربار عملکردی زیادی دارد زیرا آرایه RAID 1 باید روی اتصال LAN با تأخیر بالا و پهنای باند پایین همگام نگه داشته شود. RAID 0(1) نمادگذاری برای این تنظیم است. اگر هر آرایه RAID 0 محلی با یک RAID 6 قابل اطمینانتر جایگزین شود، کل تنظیم را به صورت RAID 6(1) مینویسیم.
چرا ریسک RAID 01 را وقتی روی شبکه است قبول میکنیم اما وقتی محلی است نه؟ این به دلیل ماهیت پیوند شبکه است. در مورد RAID 10، ما برای محافظت به بخش RAID 1 سطح پایین پشته RAID متکی هستیم و RAID 0 روی آن قرار میگیرد. اگر این را در سطح شبکه مانند RAID 1(0) تکرار کنیم، نتیجه این است که هر هاست یک آینه منفرد دارد که فقط بخشی از دادههای آرایه را نشان میدهد. اگر اتفاقی برای هر گره در آرایه بیفتد یا اگر اتصال شبکه قطع شود آرایه بلافاصله نابود میشود و هر گره با دادههای ناقص و بیفایده باقی میماند. این ماهیت ریسک بالای خرابی گره و ریسک در سطح اتصال شبکه است که تصمیمات RAID را در یک محیط شبکهای به شدت متفاوت میکند. این به خودی خود موضوع پیچیدهای میشود.
کافی است بگوییم، هنگام کار با کنترلرهای آرایه RAID عادی یا با ذخیرهسازی محلی و RAID نرمافزاری، منحصراً از RAID 10 استفاده کنید و هرگز از RAID 01 استفاده نکنید.
