بخشی از مقاله

بررسی روشهای تحمل پذیری خطا با انرژی کارآمد برای محاسبات با کارایی بالا در ابر

خلاصه

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

کلمات کلیدی: رایانش ابری، محاسبات با کارایی بالا ، تحملپذیری خطا واکنشی، تحملپذیری خطا بلادنگ، تحملپذیری خطا Daemon


1. مقدمه

امروزه رایانش ابری بزرگترین تغییر در فناوری اطلاعات در نظر گرفته میشود و باعث ایجادبُعد جدیدی در دنیا محاسبات شده است. این تغییر موجب شده که سازمانها و شرکتهای بزرگ، سیستمهای سنتی پردازش اطلاعات خود را به خدمات ابر، به منظور ذخیرهسازی حجم زیادی از دادهها تغییر بدهند. رایانش ابری نمونهای برای ذخیرهسازی دادهها و برنامههای کاربردی در حال اجرا از جمله برنامههای کاربردی با محاسبات فشرده است و باعث کاهش زمان استفاده از سختافزارها میشود که این کار به طور قابل توجهی باعث صرفهجویی در هزینهها میشود. در محاسبات ابری دو نقش کلیدی وجود دارد: ارائه دهندگان ابر و کاربران ابر. ارائه دهندگان ابر از جمله Amazon و Bare metal cloud که خدماتی همانند ماشینهای مجازی VMs) )وسختافزار وغیره را در ازای گرفتن حق اشتراک به مشتریان ابر اجاره میدهند. ابرها از نظر طبقهبندی مبتنی برسرویس به چهار دسته تقسیم میشوند که عبارتند از: زیرساخت بعنوان سرویس (IaaS)، نرمافزار بعنوان سرویس (SaaS)، بستر بعنوان سرویس (PaaS)، سختافزار بعنوان سرویس .(HaaS) سرویس Haas بر روی سختافزار تمرکز میکند و برای تحقیقات و اطلاعات فشرده و پیکربندی سیستمهای HPC میتوان Haas را اجاره کرد. با کمک Haas میتوان برنامههای کاربردی با محاسبات فشرده قدیمی را روی سیستمهای HPC کنونی در ابر اجرا کرد. رایانش ابری با وجود مزایای مختلف همانند مهارت، سرعت، تأمین منابع، کاهش هزینهها و چند اجارهای و غیره، معایب و چالشهای مرتبط با خودش را دارد. یکی از مهمترین چالشهای رایانش ابری قابلیت اطمینان و در دسترس بودن منابع است. بنابراین در رایانش ابری به یک سیستم قوی برای ایجاد تحمل پذیری خطا نیاز است. به ویژه در سیستمهای HPC بدلیل فشردگی محاسبات، فرآیند تحمل پذیری خطا با افزایش مصرف انرژی همراه است پس این گونه سیستمها نیازمند یک روش تحمل خطا با انرژی کارآمد هستند. در ادامه، مقاله به این صورت سازماندهی شده است، و در بخش.2 ضرورت تحملپذیری خطا در رایانش ابری، در بخش.3 سیاستهای مختلف تحملپذیری خطا با انرژی کارآمد در ابر، در بخش.4 ارزیابی سیاستهای ارائه شده، و در بخش.5 نتیجه گیری مورد بررسی قرار میگیرد .[1]

 

2. ضرورت تحملپذیری خطا در رایانش ابری

در این بخش مفهوم FT1، اهداف FT، ضرورتFT در رایانش ابری، دلایل به وجود آمدن چالشهای پیاده سازی تحملخطا در رایانش ابری وFT برای سیستمهای HPC موجود در ابر ارزیابی شده است. تحملپذیری خطا یکی از نگرانیهای عمده برای تضمین قابلیت در دسترس بودن و قابلیت اطمینان خدمات حیاتی و همچنین اجرای برنامههای کاربردی است. به منظور به حداقل رساندن تاثیر خرابی بر روی سیستم و اجرای صحیح و موفق برنامههای کاربردی، خرابی باید پیشبینی شده و فعالانه مدیریت و کنترل گردد. روشهای تحمل خطا در واقع برای پیش بینی این خرابیها و انجام یک اقدام مناسب قبل از خرابی میباشد. یک مباحث مهم در رایانش ابری، تحملپذیری خطا است، که به دلیل وجود منابع مختلف از تکنیکهای متفاوتی برای حل این مشکل استفاده شده است و اهمیت این موضوع در بسیاری از زمینههای غیر قابل انکار است به طور نمونه در سیستمهای بلادرنگ که با استفاده از رایانش ابری پیادهسازی شدهاند اگر سیستمها تحملپذیر خطا نباشند موجب خسارتهای جبران ناپذیری خواهند شد. سیستمی تحملپذیر خطا است، که بتواند وظایفی که برایش مشخص شده است را حتی با وجود خطاهای نرمافزاری و خرابیهای سختافزاری به درستی به انجام برساند. تحملپذیری خطا به دلیل مصرف رو به فزونی هرچه بیشتر کامپیوترها در کاربردهای مختلف زندگی بشر، بسیار مورد توجه قرار گرفته است که در واقع به علت اهمیت کاربردها، تحملپذیری خطا یک ویژگی مهم در سیستمهای رایانش ابری تلقی میشود .[3 ,2]
(1-2چالشهای پیاده سازی تحملخطا در رایانش ابری

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

✓ نیاز به پیادهسازی روشهای تحمل خطا به صورت خودکار برای چند نمونه از برنامههای در حال اجرا بر روی چند ماشین مجازی وجود دارد
✓ رویکرد جدید نیاز است که توسعه داده شود تا روشهای تحمل خطا را با الگوریتمهای زمانبندی جریان کار موجود و یکپارچه شوند

✓ یک روش مبتنی بر معیار میتواند در محیطهای ابری برای ارزیابی عملکرد اجزا تحمل خطا در مقایسه با موارد مشابه توسعه داده شود

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

امروزه رایانش سریع یا محاسبات سریع یکی شاخههای علم نرمافزار است که با تجمیع توان محاسباتی تعداد زیادی از رایانههای متوسط و کوچک، امکان انجام کارهای محاسباتی و علمی سنگین را با سرعت زیاد و هزینه کم امکان پذیر مینماید. سیستمهای HPC قادر است با حجم بسیار عظیم دادههای کار کرده و با سرعت بسیار زیاد نتایج را تحلیل کند. این کار با استفاده از کامپیوترهای معمولی چندین ماه میتواند طول بکشد، در حالی که با استفاده از کامپیوترهای HPC تنها در چند دقیقه یا ساعت قابل انجام است. عواملی که موجب افزایش نرخ خطا در سیستمهای HPC میشوند عبارتند از: افزایش تعداد پردازندهها، افزایش حجم کار سیستم، و هنگامی که بین زمانهای مختلف و نرخ خطا ارتباط وجود داشته باشد در نتیجه نرخ خطا نیز بالا میرود، بطور مثال در سیستمهای رایانش ابری که دارای بیش از 100000 پردازنده هستند هر چند دقیقه در آنها خطا رخ میدهد. وقتی یک جز از سختافزار شکسته شود نیاز به جایگزین کردن دارد همچنین اگر پردازنده / گره متوقف بشود نیاز به راه اندازی مجدد دارد و اگر نرمافزار دچار خطا بشود در حالی که باید کامل اجرا بشود. در این موارد برنامهای که قسمتی از آن دچار خطا شده به صورت کامل دچار خطا میشود. علاوه بر این برنامه-های کاربردی HPC مستقر در محیط ابر بر روی VMs اجرا میشوند که بعلت به اشتراک گذاشتن منابع و رقابت و بر سر منابع به احتمال زیاد دچار خطا میشوند. بنابراین FT برای سیستمهای HPC موجود در ابر، فنآوری بسیار مهمی است که میتواند از راه اندازی مجدد سیستمها جلوگیری بکند و هزینههای عملیاتی و در نتیجه انرژی مصرفی را کاهش میدهد .[3 ,2]

3. سیاستهای مختلف تحملپذیری خطا با انرژی کارآمد در ابر
حداکثر سیاستهای مختلفی بمنظور ارائه تحملپذیری خطا برای سیستمهای HPC موجود در ابر به وجود آمده است. که در این بخش از مقاله 3 تا از این سیاستها ارزیابی شده است.


(1-3 تحملپذیری خطا واکنشی
سیاستهای تحمل خطا واکنشی با اقدامات خود باعث کاهش تأثیر خطا در اجرا برنامههای کاربردی موجود ابر میشود. برخی از روشهای FT براساس سیاست تحمل خطا واکنش عبارتند از: Checkpoint /Restart , Replication ,Task Resubmission وغیره راپیادهسازی کرد.

:Checkpoint/Restart .A وقتی یک خطا رخ میدهد بجای راه اندازی از نقطه اولیه شروع به کار سیستم، راه اندازی مجدد از نقطه قبل از وقوع خطا در سیستم اجرا میشود، که این کار برای محاسبات با کارایی بالا در ابر مناسب است.

: Replication .B تکرار باعث نگهداری نسخههای متعدد از دادهها و اشیاء است که کاربر از میان مجموعهای ازکپیهای یک کپی را درخواست میکند. افزونگی در سیستم یکی از چالشهای این روش است هر چه تعداد نسخهها زیاد بشود هزینه حفظ و نگهداری نیز افزایش مییابد. وظایف مختلف تکرار بر روی منابع مختلف به منظور اجرای موفقیت آمیز تا زمانی که تمام وظیفه تکرار بدون از بین رفتن و تصادم انجام شود Replication را میتوان با استفاده از ابزاری مانند: HAP Roxy، Amazon EC2 وغیره را پیادهسازی کرد.

:Task Resubmission .C در این نوع روش تحمل خطا که به طور گسترده در سیستمهای گردش کار علمی کنونی استفاده میشود. هرگاه یک وظیفه خراب شود شناسایی شده، و درخواست مجدد به همان منبع یا منابع مختلف در زمان اجرا ارسال میگردد .[6 ,7]

(2-3 تحملپذیری خطا بلادرنگ

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

.A مهاجرت پیشگیرانه: این کار باعث استفاده از بازخورد حلقه کنترل سیستم است که در آن برنامهها به طور مداوم تحت نظارت و تجزیه و تحلیل میشوند.

.B نرم افزار جوانسازی: در این روش راهاندازی مجدد به صورت دورهای برای سیستم برنامه ریزی میشود، و سیستم را با وضعیت تنظیمات اولیه راهاندازی مجدد میکند .[6 ,7]

(3-3 تحملپذیری خطا Daemon

این روش مبتنی بر روشهای پیشبینی خطا است و خطاهای آینده را پیشبینی میکند. و بر روی واسط عبور پیام، برنامههای کاربردی تمرکز میکند. معماری تکنیک FT Daemon در شکل (1) نشان داده است. در این روش 4 ماژول وجود دارد هر کدام وظیفه خاصی را به عهده دارند که در ادامه مقاله مورد بررسی قرار میگیرند.

در معماری FT Daemon، Domin0 (سیستم عامل میزبانی) برای 4 ماژول، نظارت کننده، پیشبینی و برای سیاست های مهاجرت زیرساخت فراهم میکند که دستورات مدیریت را اجرا میکند و امتیازهای خاص بر دسترسی به سختافزار دارند. FT Daemon با سختافزار از طریق محرکهای ارتباط برقرار میکند. Domu1… Domun (دامنههای غیر ممتازاند) که مهمان VMS هستند (گرههای محاسبه). مهمان VMS به فرم یک خوشه پیکربندی شده است و برنامههای کاربردی با محاسبات فشرده را اجرا میکند. قطعه کد FT Daemon در شکل (2) نشان داده شده است .[5 , 4]


شکل .2 قطعه کد .[5 , 4] FT Daemon

.A ماژولهای سیاست FT Daemon، عبارتند از

(1 ماژول نظارت بر گره با سنسور LM (2 پیشبینی مبتنی بر قواعد (3 ماژول سیاست مهاجرت (4 ماژول کنترل کننده


.A ماژول کنترل کننده ماژول نظارت بر گره با سنسور LM

گره ناظر با سنسورهای LM یک منبع باز از ابزارهای نرمافزاری برای نظارت بر صحت کامپیوترهای جدید است. چون پردازنده های مدرن با نسورهایی ساخته شدهاند که میتوانند برای نظارت بر دمای CPU، سرعت فن، حافظهها و پارامترهای دیگر مورد استفاده قرار بگیرند .[4] با استفاده سنسور LM،

ابزارها، محرکها، میتوان بر پارامترهای مورد نظر نظارت کرد و برای دسترسی به مقادیر نظارت شده از سنسورهای کناری استفاده میشود. به این دلیل از سنسورهای LM استفاده شود چون اکثر سیستمهای HPC، Linux را اجرا میکنند و سنسورهای LM از سیستم عامل Linux استفاده میکنند و سنسورهای LM موجب توسعه FT Daemon میشود و با این کار روش FT Daemon براحتی روی سیستمهای HPC در ابر مستقر میشود. در سیستمهای HPC از نظارت مرکزی استفاده میشود پس با داشتن گره ناظر سختافزار به صورت دورهای پارامترها را میخواند. اطلاعات موردنظر که توسط سنسورهای LM (مثل درجهی حرارت پردازنده) هر چند میلی ثانیه جمع آوری شده و به سرمیزبان اطلاع داده میشوند هر زمان که پارامترهای ناظر، از میزان مورد نظر حداکثر بالا برود باعث ایجاد اعلان خطر میشود که این اعلان خطر یعنی این که احتمالاً خطا در سیستم رخ داده است.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید