مبانی و مفاهیم Hot Spare
خطر Failed شدن یک دیسک در آرایههای RAID همواره وجود دارد. علیرغم تلاشهای انجام شده جهت پیشبینی زمان وقوع خرابی دیسکها، تقریبا میتوان گفت که هیچ راهحلی یافت نشده که به صورت قطعی زمان وقوع خرابی یک دیسک را تعیین نماید. به عنوان نمونه، بررسی پارامترهای S.M.A.R.T یک دیسک، تنها نزدیک به دو سوم خرابی دیسکها را پیشبینی نموده است [1]. از طرفی نیز در آرایههای RAID استاندارد، حفظ دادهها منوط به این است که حداکثر یک یا دو خرابی دیسک رخ دهد (مثلا در Raid5 تنها یک دیسک و RAID6 تا دو خرابی دیسک را پوشش میدهد). لذا در صورت وقوع خرابی یک دیسک و طولانی بودن زمان جایگزینی آن دیسک با یک دیسک سالم، خطر Data Loss برای آن آرایه وجود خواهد داشت. به همین جهت روشهایی معرفی و بر روی کنترلرهای RAID پیادهسازی شدهاند تا به مقابله با مشکلات فوق بپردازند. یکی از این راهکارها، استفاده از دیسک HotSpare است.
- مبانی و مفاهیم مربوط به HotSpare
- تعریف دیسک HotSpare و انواع آن
به طور کلی دیسک HotSpare به دیسکی اطلاق میشود که به عنوان یک دیسک یدکی به کنترلر متصل میگردد تا در صورت وقوع خرابی یکی از دیسکهای آرایه دارای افزونگی ( یعنی یکی از RAID1,5,6,10,50,60)، جایگزین آن شود. دیسک HotSpare ممکن است که به یکی از دو صورت زیر پیکربندی شده باشد:
- Global HotSpare : کنترلر این اجازه را دارد که این دیسک را جایگزین دیسک Failed شده در هر آرایه دارای افزونگی نماید.
- Dedicated or Local HotSpare : کنترلر فقط مجاز به جایگزینی این دیسک با دیسک Failed شده در یک یا چند آرایه مشخص است.
- مقایسه بین local و global و موارد کاربرد هر کدام از آنها
اینکه یک دیسک HotSpare به صورت local تعریف شود یا global، به پارامترهای مختلفی بستگی دارد. لذا پیش از انتخاب نوع local یا global یک دیسک HotSpare باید به موارد زیر توجه شود:
مزایا و موارد استفاده Global HotSpare نسبت Local HotSpare
- در صورت یکسان بودن کلیه دیسکها از لحاظ نوع و ظرفیت، استفاده از Global HotSpare توصیه میشود، زیرا میتوان هزینه Storage را کاهش داد. زیرا نسبت به حالت Local HotSpare، از تعداد دیسک کمتری برای پوشش کلیه آرایهها میتوان استفاده نمود. با توجه به اینکه دیسک HotSpare تا زمان failed شدن یک دیسک به صورت idle (بدون استفاده) در مجموعه خواهد بود، لذا تخصیص تعداد کمتری دیسک به عنوان HotSpare، به کاهش هزینه storage کمک خواهد نمود.
- خرابی دیسکها به طور قطعی قابل پیشبینی نیست و نمیتوان گفت که حتما کدام یک از دیسکها زودتر از بقیه خراب میشوند. لذا در صورت تخصیص دیسک HotSpare به یک آرایه خاص، چنانچه دیسکی از یک آرایه فاقد HotSpare خراب شود، دیسک HotSpare آرایه دیگر قابل استفاده برای این آرایه نخواهد بود، در حالی که نیاز به آن برای این آرایه (آرایه degrade شده) وجود دارد.
- دیسک global HotSpare کلیه دیسکها را پوشش میدهد. ضمنا از آنجاییکه معمولا چند دیسک به صورت همزمان دچار خرابی نمیشوند، وجود دیسک global کفایت مینماید و نیازی به local بودن دیسک HotSpare نیست. البته برای اطمینان بیشتر میتوان بیش از یک دیسک global HotSpare قرار داد تا خرابی دیسکها در چند آرایه را به صورت همزمان پوشش دهند.
مزایا و موارد استفاده Local Hotspare نسبت Global Hotspare
- چنانچه در یک storage system، چندین نوع دیسک وجود داشته باشد (مثلا دیسکهای SAS و SATA با ظرفیتهای مختلف که از کیفیتهای مختلفی برخوردار هستند)، از آنجاییکه ترجیح بر این است که دیسکهای یک آرایه از یک مدل دیسک باشند، لذا استفاده از دیسک HotSpare به صورت local توصیه میشود، بدین صورت که مثلا در یک آرایه با دیسکهای نوع A، یک دیسک HotSpare از نوع A و در آرایه با دیسکهای نوع B یک دیسک HotSpare از نوع B به صورت local تعریف گردد.
- در صورتی که آرایههای مختلف از لحاظ قابلیت اطمینانپذیری با یکدیگر برابر نباشند بهتر است از Local Hotspare استفاده گردد.
نکات تکمیلی
به غیر از موارد فوق، در جستجوهای انجام شده به موارد جالب توجهای در رابطه با دیسک های HotSpare در کنترلرهای مختلف و یا SANها برخورده شده که در ادامه میآیند:
-
- کنترلرهای Dell PERC:
- عدم اجازه تخصیص دیسک local HotSpare در صورت وجود فضای خالی در آرایه های RAID 10 , 50, 60 بدین معنا که بخشی از فضای موجود در آرایه به هیچ VDای تخصیص داده نشده باشد.[7]
- در گذشته اجازه تخصیص بیش از یک دیسک local HotSpare به یک آرایه وجود نداشته که جدیدا اضافه گردیده است.[[7
- کنترلرهای Dell PERC:
-
- Global HotSpare
- نحوهی جایگزینی Global HotSpare در کنترلرهای MegaRAID
- Global HotSpare
در صورت تعیین یک دیسک به عنوان Global HotSpare، دیسک مربوطه، برای تمامی دیسکهایی که عضو آرایهی دارای افزونگی بوده و ظرفیتی کمتر یا مساوی با ظرفیت آن داشته باشند، به عنوان HotSpare عمل خواهد کرد. در صورت وجود چند دیسک Global HotSpare، اولویتهای انتخاب دیسک جایگزین از بین این چند دیسک توسط خود کنترلر به صورت زیر است:
- اولین اولویت، نوع دیسک است، بدین معنا که برای دیسکهای SSD، دیسک SSD و برای هارددیسکها، HDD به عنوان جایگزین انتخاب میشوند.
- اولویت دوم، یکسان بودن نوع اینترفیس میباشد که برای دیسکهای SATA، از نوع SATA و برای SAS از نوع SAS انتخاب میگردد.
- اولویت سوم، انتخاب بر اساس ظرفیت است که دیسک با ظرفیت کمتر انتخاب میشود. البته باید ظرفیت آن برابر یا بزرگتر از دیسک حذف شده باشد. به عنوان مثال، در صورت وجود دو دیسک HotSpare با ظرفیتهای 1TB و 2TB، در صورت fail شدن یک دیسک 500 گیگابایتی، دیسک 1TB جایگزین میگردد.
همچنین در صورت حذف تمامی آرایهها، کنترلر MegaRAID به طور خودکار، کلیه دیسکهای HotSpare را حذف خواهد کرد. در حالت Dedicated HotSpare نیز چنانچه آرایههای تحت پوشش Dedicated HotSpare حذف شوند، دیسک HotSpare به صورت Global در خواهد آمد.
-
-
- مسائل مربوط به Global HotSpare در کنترلرهای MegaRAID
-
در صورت استفاده از Global HotSpare، باید موارد زیر در نظر گرفته شوند:
- بررسی ظرفیت تمامی دیسکهای آرایه ها و تعیین اینکه دیسک HotSpare کدام آرایهها را میتواند پوشش دهد. چرا که کنترلر، اجازهی جایگزینی HotSpare برای آرایههایی که ظرفیت دیسکهای آن بزرگتر از دیسک انتخابی برای HotSpare باشد را نمیدهد.
- بررسی نوع دیسکها (SSD/HDD) و جلوگیری از تعیین HotSpare از نوع HDD به آرایه SSD و بالعکس
- پس از اضافه شدن آرایههای Foreign از طریق import کانفیگ آنها، نیاز است که دیسکهای HotSpare، این نوع آرایهها را نیز پوشش دهند. دو نمونه از حالات رخداد این وضعیت:
- در صورت خاموش بودن سامانه، چنانچه دیسکهای foreign به سیستم اضافه شوند، آرایه Foreign به طور خودکار import میشود.
- در صورتیکه دستور Import در حین روشن بودن سامانه زده شود، foreign بارگذاری(load) میشود.


copy back: بعد از اینکه یک دیسک خراب شد، فرایند Rebuild با استفاده از دیسک Hotspare جایگزین میشود. بعد از این مرحله در صورتی که دیسک خراب باید یک دیسک سالم جایگزین شود اطلاعات از دیسک Hotspare به دیسک سالم منتقل میشود. بعد از اتمام این مرحله دیسک سالم جایگزین شده و دیسک Hotspare مجدد به حالت Hotspare برمیگردد.
copy backless: بعد از اینکه یک دیسک خراب شد، فرایند Rebuild با استفاده از دیسک Hotspare جایگزین میشود. بعد از این مرحله دیسک Hotspare جایگزین دیسک خراب میگردد.
-
- سربار کارآیی و مقایسه Copyback و Copybackless
با توجه به اینکه در هنگام Failed شدن یک دیسک، عمل Rebuild دیسک جدید اجتناب ناپذیر است، فرآیند Rebuild در Copyback و Copybackless سربار اضافی محسوب نمیگردد. زمان اجرای فرآیند Rebuild در Hotspare نیز مشابه Rebuild عادی، تابعی از مواردی نظیر توان پردازشی کنترلر، میزان busy بودن کنترلر، ظرفیت و Data Transfer Rate دیسک و نوع آرایه RAID استفاده شده است و لذا یک زمان اجرای ثابت نخواهد داشت. سربار اضافی نسبت به Rebuild عادی تنها در حالت Copyback رخ میدهد که در آن فرآیند کپی اطلاعات موجود بر روی دیسک HotSpare به دیسک جدید منتقل میگردد. چنین فرآیندی میتواند معادل فرآیند Seq Read در دیسک HotSpare و فرآیند Seq Write در دیسک جدید باشد، مگر آنکه کاربر یا هاست، بخواهد به اطلاعات موجود در این بخش از آرایه دسترسی داشته باشد که در این صورت خواندن و نوشتن ترتیبی تغییر میکند. تست کارآیی در ادامه آورده شده است. اگرچه Copybackless از نظر سربار کارآیی نسبت به Copyback برتری دارد، اما سبب به هم ریختن ترتیب فیزیکی دیسکهای آرایه میگردد، به طوری که پس از وقوع چندین خرابی، تشخیص مکان فیزیکی دیسکها دشوار خواهد بود.
به منظور بررسی میزان کارآیی و زمان اجرای فرآیند Copyback دو سناریوی زیر در نظر گرفته شد:
سناریوی اول
1. ساخت آرایه RAID1 به همراه یک دیسک HotSpare با ظرفیت 20 گیگابایت (به منظور کمتر کردن زمان اجرای فرآیندهای Rebuild و Copyback نسبت به تخصیص کل ظرفیت دیسکها)
2. نوشتن داده بر روی آرایه به منظور بررسی صحت داده پس از عملیات Copyback
3. اجرای تست Fio در حالت Seq Read بر روی آرایه و مشاهده نتایج آن.
4. پس از اتمام تست Fio، یک دیسک آرایه از طریق قطع پورت اتصال آن به کنترلر Failed گردد.
5. انتظار برای اتمام فرآیند Rebuild دیسک HotSpare (شروع فرآیند به طور اتوماتیک انجام میشود).
6. تعویض دیسک Failed با یک دیسک سالم (عمل Copyback به طور اتوماتیک اجرا میشود) و اجرای همزمان تست Fio مشابه مرحله 3 (seq Read).
7. مقایسه نتایج از قبیل پهنای باند Fio و مدت زمان اجرای فرآیند Copyback و نیز بررسی درستی دادهها
سناریوی دوم
اجرای سناریوی اول با این تفاوت که از آرایه RAID 5 با سه دیسک استفاده گردد.
اجرای سناریو اول
مراحل 1 تا 5 از سناریوی اول اجرا گردید. در مرحله 3، پهنای باند Fio در حدود 320 MB/s مشاهده شد. در هنگام اجرای مرحله 6، دیده شد که سرعت اجرای فرآیند Copyback در هنگام اجرای Fio به شدت افت مینماید. به عنوان مثال در حالت عدم ارسال درخواست I/O از جانب کاربر به آرایه، زمان اجرای Copyback در حدود 2 دقیقه بوده (ظرفیت آرایه 20 گیگابایت)، اما در زمان اجرای Fio ، درصد پیشرفت فرآیند Copyback در حد یک درصد بین یک تا دو دقیقه بوده است. البته پهنای باند لحظهای و میانگین Fio، تغییر چندانی نسبت به مرحله 3 نداشته است. این بدین معناست که کنترلر، پاسخ به درخواستهای I/O را در اولویت بالاتری نسبت به فرآیند Copyback قرار میدهد. لذا اجرای تست Fio متوقف گردید تا فرآیند Copyback به سرعت تکمیل گردد. پس از تکمیل فرآیند Copyback، دادههای ذخیره شده بر روی آرایه مورد بازرسی قرار گرفت که خطایی در این داده ها مشاهده نگردید.
از طرف دیگر با توجه به نتایج حاصله از این سناریو، سناریوی دوم نیز اجرا نگردید.
سوال1. آیا فرآیند Copyback میتواند به صورت همزمان با فرآیند Rebuild دیسک HotSpare انجام شود؟
پاسخ: خیر. این مساله با استفاده از کنترلر LSI تست گردید، به این صورت که در یک آرایه RAID1 که دارای یک دیسک HotSpare با قابلیت revertible است، یکی از دیسکهای آرایه Failed گردید (از طریق قطع اتصال). فرآیند Rebuild دیسک Hot Spare بلافاصله آغاز گردید. در حین اجرای فرآیند Rebuild، دیسک Failed تعویض شد (از طریق اتصال یک دیسک سالم به پورت قطع شده). با این حال مادامی که Rebuild دیسک HotSpare به پایان نرسیده بوده، هیچگونه تغییری در وضعیت دیسک جدید حاصل نگردید . پس از اتمام Rebuild، فرآیند Copyback به طور اتوماتیک آغاز شد.
سوال2. کنترلر در زمان پاسخ به درخواستهای Read کاربر به هنگام فرآیند Copyback، داده را از دیسک HotSpare میخواند و یا دیسک مقصد Copyback؟
پاسخ: با توجه به سناریوی یک، میتوان گفت که در حقیقت دادههای مربوط به درخواستهای Read کاربر، بر روی دیسک جایگزین دیسک Failed اصلا وجود ندارد، چرا که فرآیند Copyback بسیار به کندی انجام میشود.
سوال3. کنترلر در پاسخ به درخواستهای Write کاربر به هنگام فرآیند Copyback، آیا داده را در هر دو دیسک Hot Spare و دیسک Copyback مینویسد یا فقط بر روی یکی از آنها (دیسک Hot Spare یا دیسک Copyback) این عمل را انجام میدهد؟
پاسخ: در ابتدا بایستی به این نکته توجه نمود که فرآیند copyback نه فقط برای دیسک Hot Spare که برای هر کدام از دیسکهای موجود در یک آرایه قابل انجام است و این فرآیند با استفاده از اجرای یک دستور (بخش 2-3)، توسط کاربر قابل اجراست. از دلایل وجود این دستور میتوان به این موارد اشاره کرد: یکی از دیسکهای موجود در آرایه در وضعیت Predictive Failure میباشد که با استفاده از دستور copyback، میتوان دادههای آن را بدون اجرای عمل rebuild که به شدت کارآیی سیستم را کاهش میدهد، منتقل نمود. کاربرد دیگر، هنگام غیرفعال بودن قابلیت revertible دیسک Hot Spare است. در این حالت، کاربر در زمانی که سیستم در وضعیت Idle قرار دارد، با اجرای دستی فرآیند Copyback میتواند کارآیی سیستم را در وضعیت نرمال حفظ نماید.
علاوه بر آغاز اجرای دستی Copyback، امکان توقف آن نیز وجود دارد.
حال وضعیتهای زیر در نظر گرفته شود:
• پیش از اتمام فرآیند Copyback، دیسک copyback خراب شود.
• پیش از اتمام فرآیند Copyback، این فرآیند بنا به دلایلی از جمله اجرای دستور توقف Copyback از جانب کاربر متوقف گردد، مثلا به این جهت که دیسک مقصد Copyback به درستی انتخاب نشده است.
در موارد فوق، چنانچه عملیات Write در زمان اجرای فرآیند Copyback، فقط بر روی دیسک Copyback نوشته شده باشد، Data Loss رخ میدهد (Lost Write Error)، بدین معنا که داده موجود در دیسک Hot Spare قدیمی است و آپدیت نشده است. بنابراین، به منظور جلوگیری از Data Loss منطقی است که عمل Write حتما بر روی دیسک Hot Spare انجام شود تا در صورت توقف فرآیند Copyback، دادهها حفظ شوند، وگرنه با یک دستور توقف Copyback از جانب کاربر بی خبر از همه جا، داده از دست می رود . همچنین به این نکته توجه شود که دیسک Hot Spare همچنان عضو آرایه میباشد، در حالیکه دیسک Copyback تا پایان فرآیند Copyback، یک دیسک خارج از آرایه در نظر گرفته میشود (با اجرای دستور LdPdInfo، دیسکهای هر آرایه را میتوان مشاهده نمود). در واقع به نظر میرسد خود سازنده کنترلر نیز به این مسائل واقف است و مادامیکه انتقال 100 درصدی داده انجام نگرفته است، همچنان دیسک قبلی را به عنوان عضو آرایه در نظر میگیرد [5][6].
در رابطه با نوشتن داده بر روی هر دو دیسک به هنگام عمل Write نیز آزمایشی صورت گرفت که در یک آرایه RAID1 و در حین اجرای فرآیند Copyback، از جانب سیستم عامل، داده بر روی آرایه ذخیره گردید و همزمان، درصد پیشرفت فرآیند Copyback مانیتور میگشت. پس از اتمام عمل Write در سیستم عامل، سیستم خاموش شده (فرآیند Copyback به اتمام نرسیده بوده) و هر سه دیسک از کنترلر جدا و مستقیما به مادربرد متصل گردیدند و سپس سیستم روشن شد. پس از بالا آمدن سیستم، اطلاعات موجود در دیسک Copyback چک شد و مشاهده گردید که کلیه داده هایی که در زمان اجرای فرآیند Copyback بر روی آرایه ذخیره شده اند، بر روی دیسک Copyback موجود هستند که این موضوع بیانگر آپدیت دادههای دیسک Copyback در حین اجرای Copyback میباشد. همچنین اطلاعات دیسکهای دیگر نیز چک شدند که مشاهده شد که آپدیتهای جدید بر روی هر دو ثبت گردیده اند که تاییدی بر فرض پاراگراف قبلی می باشد.
[1].Eduardo Pinheiro, Wolf-Dietrich Weber and Luiz Andr´ e Barroso. Failure Trends in a Large Disk Drive Population. Google Inc. 2007.
[2].12Gb/s MegaRAID® SAS Software User Guide - Revision 2.3, December 31, 2015, Publication Number:DB15-001199-03.
[3].http://www.fujitsu.com/global/products/computing/storage/disk/eternus-dx/feature/copy-back.html
[4].EMC VNX2 MCx Multicore Everything. White Paper. Part Number H12090.6 , 2015.
[5].http://manuals.ts.fujitsu.com/file/4337/sv-serverview-raid-en.pdf
