چرا یک دیسک واحد پایه خطرناکی است
دستگاههای ذخیرهسازی پایدار، که پیشتر در این مجموعه بهعنوان سطح سلسلهمراتب حافظه زیر حافظه اصلی بحث شد، میتوانند بهطور غیرمنتظرهای بهدلیل فرسودگی مکانیکی یا نقصهای الکترونیکی خراب شوند. برای اپلیکیشنهایی که از دست دادن داده غیرقابلقبول است، تکیه بر یک درایو فیزیکی واحد بسیار پرخطر است، صرفنظر از اینکه هر درایو منفرد بهطور میانگین چقدر قابلاعتماد باشد.
ایده اصلی پشت RAID
RAID (Redundant Array of Inexpensive Disks) چند دیسک فیزیکی را در یک واحد ذخیرهسازی منطقی واحد ترکیب میکند، با استفاده از افزونگی، توزیع داده کاراییمحور، یا هر دو، تا سطحی از قابلیت اطمینان یا سرعت را به دست آورد که هیچ دیسک منفردی نمیتوانست بهتنهایی فراهم کند.
RAID 0: Striping برای سرعت، بدون افزونگی
RAID 0 داده را بهطور یکنواخت در چند دیسک پخش میکند، تکنیکی به نام Striping، که اجازه میدهد چند دیسک بهطور همزمان خوانده یا نوشته شوند، و توان عملیاتی را بهطور قابلتوجهی افزایش میدهد. با این حال، RAID 0 هیچ افزونگیای فراهم نمیکند: اگر هر دیسک منفردی در آرایه خراب شود، تمام داده در سراسر کل آرایه از دست میرود، چون هر دیسک بخشی از هر فایل را نگه میدارد نه یک کپی کامل از هر چیزی.
RAID 1: Mirroring برای قابلیت اطمینان
RAID 1 رویکرد مخالف را اتخاذ میکند، به نام Mirroring: هر قطعه داده بهطور یکسان روی دو دیسک جداگانه نوشته میشود. اگر یک دیسک خراب شود، دیگری همچنان یک کپی کامل و آسیبندیده از تمام داده را نگه میدارد، و سیستم میتواند بدون هیچ از دست دادن دادهای به کار خود ادامه دهد. مبادله هزینه است، چون دو برابر ظرفیت ذخیرهسازی فیزیکی برای ذخیره همان مقدار قابلاستفاده داده مورد نیاز است.
RAID 4 و RAID 5: دستیابی به افزونگی کارآمدتر با پریتی
Mirroring امنیت را تضمین میکند اما نیمی از کل ظرفیت ذخیرهسازی را هدر میدهد. RAID 4 و RAID 5 بهجای آن از Parity استفاده میکنند، مفهومی مشابه با تکنیک تشخیص خطا که پیشتر در این مجموعه درباره حافظه قابلاعتماد بحث شد، تا افزونگی را بسیار کارآمدتر به دست آورند. یک بلوک پریتی اضافه، که از داده روی دیسکهای دیگر محاسبه میشود، همراه با داده واقعی ذخیره میشود؛ اگر هر دیسک منفردی خراب شود، داده ازدسترفتهاش میتواند با ترکیب دیسکهای داده باقیمانده با اطلاعات پریتی بازسازی شود.
مثال با 3 دیسک داده و 1 دیسک پریتی:
دیسک A: 1010
دیسک B: 0110
دیسک C: 1100
پریتی (XOR از A، B، C): 0000
اگر دیسک B خراب شود، داده آن میتواند
از دیسک A، دیسک C، و پریتی بازسازی شودRAID 5 نسبت به RAID 4 بهبود یافته با توزیع اطلاعات پریتی در سراسر همه دیسکهای آرایه بهجای اختصاص یک دیسک بهطور کامل به پریتی، و از یک گلوگاه کارایی که در غیر این صورت هر بار که هر دادهای نوشته میشد رخ میداد اجتناب میکند.
چرا سطوح مختلف RAID برای نیازهای مختلف مناسباند
انتخاب بین این رویکردها بهشدت به این بستگی دارد که برای یک اپلیکیشن مشخص چه چیزی بیشترین اهمیت را دارد: RAID 0 سرعت خام را بدون هیچ محافظتی ترجیح میدهد، RAID 1 حداکثر امنیت و سادگی را به قیمت کارایی ذخیرهسازی ترجیح میدهد، و سطوح RAID مبتنی بر پریتی بهدنبال یک میانه عملی هستند، و محافظت قوی در برابر خرابی یک دیسک را با استفاده کارآمدتر از ظرفیت ذخیرهسازی نسبت به mirroring کامل ارائه میدهند.
چرا RAID برای سیستمهای دنیای واقعی اهمیت دارد
زیرساخت سرور و مراکز داده بهشدت به پیکربندیهای RAID برای محافظت در برابر این تقریباً-قطعیت که در سراسر تعداد زیادی درایو، برخی دیسک منفرد در نهایت خراب خواهد شد، متکی هستند — و آنچه در غیر این صورت یک رویداد ازدستدادنداده روی یک درایو منفرد بود را به یک کار نگهداری روتین و بدون اختلال تبدیل میکنند، صرفاً با جایگزین کردن دیسک خرابشده و اجازه دادن به آرایه برای بازسازی.