پایان نامه ارشد فناوری اطلاعات: طراحی و پیاده سازی یک زمانبندِ کار اشکال آگاه در سیستمهای محاسبات ابری |
![]() |
3-1-6 ذخیره ساز پایدار………………………. 43
3-1-7 جمع آوری داده های زائد……………………….. 44
3-2 بازیافت براساس نقطه مقابله………………………. 44
3-2-1 نقطه مقابله گرفتن به صورت غیرهماهنگ……………… 45
3-2-2 نقطه مقابله گرفتن به صورت هماهنگ………………………….. 48
3-2-3 نقطه مقابله گرفتن بر اساس ارتباطات………………………… 51
3-3 بازیافت بر اساس ثبت وقایع………………………. 54
3-3-1 شرط یكپارچگی بدون پروسه های یتیم……………………….. 55
3-3-2 ثبت بدبینانه وقایع……………………….. 56
3-3-3 ثبت خوشبینانه وقایع……………………….. 59
3-3-4 ثبت علّی وقایع……………………….. 61
3-3-5 مقایسه قراردادهای بازیافت…………………………. 63
3-4 مباحث مطرح در پیاده سازی……………………….. 63
3-4-1 بررسی………………………… 63
3-4-2 پیاده سازی تکنیکهای نقطه مقابله گرفتن………………………… 64
3-4-3 مقایسة قراردادهای نقطه مقابله گرفتن………………………… 66
3-4-4 قراردادهای ارتباطی………………………… 66
3-4-5 بازیافت بر اساس روش ثبت وقایع……………………….. 67
3-4-6 ذخیره ساز پایدار……………………….67
3-4-7 دنبال كردن وابستگی………………………… 68
3-4-8 بازیافت…………………………. 69
4 کارهای انجام شده اخیر………………………. 71
4-1ی بر روش های پیشبینی اشکال……………………….. 72
4-1-1 کلاسه بندی و اشکالهای ریشه آماری……………………….. 72
4-1-2 مدل آماری زمان میان خرابی ها……………………… 73
4-1-3 جمع آوری و پیش پردازش داده های مرتبط با خرابی…………. 73
4-2 تکنیک های پیش بینی اشکال……………………….. 74
4-2-1 حدآستانه مبتنی بر آمار………………………. 74
4-2-2 آنالیز سری های زمانی………………………… 75
4-2-3 کلاسه بندی مبتنی بر قانون……………………….. 75
4-2-4 مدل های شبکه بیزی………………………… 76
4-2-5 مدل های پردازش شبه مارکوف………………………… 76
4-3 مطالعات انجام گرفته………………………. 77
5 روش پیشنهادی……………………….. 86
5-1 مدل اشکال……………………….. 86
5-1-1 متوسط زمانی تا خرابی………………………… 89
5-2 مبانی احتمال و پیشبینی……………………….. 91
5-2-1 مفاهیم اولیه………………………. 91
5-2-2 رابطه قانون بیز و احتمال درستی پیش بینی………………………… 92
5-3 رابطه الگوریتم پیش بینی و مدل اشکال……………………….. 94
5-3-1 تحلیل روابط احتمالی………………………… 94
5-4 مدل پیشنهادی……………………….. 97
5-4-1 ارائه الگوریتم……………………….. 100
5-4-2 مدل مبتنی بر هزینه………………………. 101
5-4-3 اثر پیش بینی کننده بر روی مدل های هزینه………………………. 105
5-4-4 تصمیم گیری سیستم در کارگزار ابر………………………. 106
6 نتایج آزمایشها……………………… 109
6-1 معرفی شبیه ساز CloudSim…………………………
6-1-1 اجزای ابر………………………. 109
6-1-2 اجزای اصلی هسته………………………. 111
6-1-3 سرویس های موجود و الگوریتم های آن ها……………………… 114
6-1-4 روند کار شبیه ساز………………………. 115
6-2 نحوه پیادهسازی سیستم تحمل پذیر اشکال در شبیه ساز………… 116
6-2-1 FaultInjector……………………….
6-2-2 FaultPredictor……………………….
6-2-3 FTHost……………………….
6-2-4 FTDatacenter……………………….
6-2-5 FTDatacenterBroker……………………….
6-3 نتایج آزمایشات……………………….. 124
6-3-1 بررسی اثر سربار نقطه مقابله گیری………………………… 126
6-3-2 بررسی عمل های انتخابی………………………… 127
6-3-3 خرابی های متوقف سازنده و غیر متوقف سازنده………………………. 129
7 نتیجه گیری و پیشنهادات………………………… 132
منابع……………………… 133
چکیده:
با افزایش بازار استفاده از تکنولوژی محاسبات ابری، مراکز داده عظیمی به وجود آمدهاند تا محاسبات را سریعتر انجام دهند. یکی از دغدغه های اصلی در محاسبات ابری، مواجهشدن با اشکالها در حین اجرا کردن یک برنامه موازی زمانبر است. برای غلبه بر این قبیل مشکلات، عموما از روشهای آزمون نقطه مقابله گیری یا آرشیوکردن[2 استفاده میشود. اما این روشها غالبا سربار بالایی دارند و به صورت واکنشی عمل میکنند.
در این پایان نامه روشی را معرفی میکنیم که علاوه بر بازیافت و بازگشت به عقب برای تحمل پذیری اشکال، بتواند گره های محاسباتی که احتمال وقوع خرابی در آنها بیشتر است را شناسایی نماید و به صورت پیشکنشی عمل کرده و ماشینهای مجازی را که بر روی آنها قرار دارد به گرههای محاسباتی امنتر مهاجرت دهد تا در صورت وقوع اشکال در گره مشکوک برنامه موازی بدون وقفه به کار خود ادامه دهد. علاوه بر آن، در این الگوریتم با بهره گیری از قانون بیز و مدل هزینه پیشنهادی، آزمون نقطه مقابله گیری زائد تا حد امکان حذف شده و زمان اجرای برنامه بهبود خواهد یافت. با استفاده ازشبیه سازی نشان میدهیم که روش پیشنهادی بسته به شرایط مختلف تا 78% زمان اجرا را بهبود میبخشد و از منابع کمتری استفاده میکند.
فصل اول: مقدمه
1- مقدمه
جهان محاسباتی که امروزه با آن روبرو هستیم روز به روز در حال بزرگتر و پیچیده تر شدن است. محاسبات ابری نیز در ادامه سبک های دیگر مانند محاسبات توری با هدف پردازش حجم عظیمی از داده با استفاده از خوشه هایی از کامپیوتر هاست. طبق گراش ارائه شده ای از گوکل، در حال حاضر به لطف محاسبات توزیع شده روزانه بیش از 20 ترابایت داده خام اینترنتی مورد پردازش قرار می گیرد. تکامل و شکل گیری محاسبات ابری خواهد توانست این چنین مسائلی را به راحتی و به شکلی مناسب تر از طریق سرویس های مبتنی بر تقاضا حل و فصل نماید. از زاویه دیگر، جهان محاسباتی اطراف ما در حال حرکت به سمت الگوهای “پرداخت برای استفاده” حرکت می کند و همین الگو یکی دیگر از پایه های اصلی محاسبات ابری محسوب می شود.
محاسبات ابری که در اواخر سال 2007 پا به عرضه ظهور گذاشت هماکنون به دلیل توانایی اش در ارائه زیر ساخت فناوری پویا و بسیار منعطف، محیط های محاسباتی تصمین شده از نظر کیفیت و همچنین سرویس های نرم افزاری قابل پیکربندی به موضوع داغ بدل شده است . در گزارش رویکردی گوگل همانطور که در شکل 1‑1 مشاهده می نمایید، محاسبات ابری، محاسبات توری را پشت سر گذاشته است [1]. محاسبات ابری از رویکرد مجازیسازی بهرهگیری مینماید که این امر سبب انعطافپذیری بیشتر سیستم ابر میشود. در حقیقت با استفاده از این تکنولوژی، برنامهها میتوانند سرویس های مختلف را به صورت مجزا و انتزاعی از گره های سرویس دهنده دریافت نمایند.
تعاریف زیادی در مورد محاسبات ابری ارائه شده است که سعی می نمایند مشخصه های اصلی محاسبات ابری را مد نظر بگیرند که سیستم ابری را ” یک مدل برای دسترسی بنابر تقاضا و راحت تحت شبکه به یک مجموعه اشتراکی از منابع محاسباتی قابل پیکربندی” تعریف می نمایند درحالیکه “این منابع با کمترین تلاش و هزینه به صورت آزاد” فراهم گردند.
محاسبات ابری از خصوصیات منحصر به فردی بهره می برد که این سبک محاسباتی را از سایر سبک ها متمایز می کند. البته برخی از این خصوصیات کما بیش در سبک های پیشین نیز وجود داشتهاند. بعضی از این خصوصیات عبارتند از:
– ارائه سرویس مبتنی بر تقاضا: در اینجا لازم نیست تا برای آن چه استفاده نمی کنید هزینه پرداخت کنید. این بدان معناست که مشتریان تنها بر اساس مقدار و کیفیت سرویسی که مصرف می نمایند، هزینه استفاده پرداخت می نمایند. در حقیقت رویکرد این تکنولوژی همانند سرویس های عمومی قابل استفاده دیگر امروزی است. برای مثال همانطور که برای تولید برق نیاز نیست که هر خانوار دارای ژنراتور و سایر وسایل تولید الکتریسیته باشد، دریافت سرویسی مانند محاسبات یا محل ذخیره داده نیز دیگر نیازی به خصوصی بودن ندارد و می توان آن را از فراهم آوردنگان ابر[1] اجاره کرد.
– دسترسی شبکه گسترده (اینترنت): این سیستم برای تحویل و ارئه سرویس ها از بستر موجود برای اینترنت استفاده می نماید. بنابراین مشتریان سرویس ها به هیچگونه نرم افزار یا سخت افزار خاصی نیاز ندارند و با همانگری که هر روزه به گشت و گذار در وب می پردازند می توانند از سرویس های ابر بهره ببرند.
– استخر منابع: در این سیستم با حجم وسیعی از منابع روبرو هستیم. این منابع از طریق مجازیسازی از محل فیزیکی خود مستقل شده اند. بنابراین به راحتی می توانند در بستر شبکه جابه جا شوند. در واقع نرم افزارها، پایگاه های داد، وب سرورها و سیستم های عامل همگی به عنوان سرورهای مجازی در سیستم ابر حضور دارند.
– قابلیت اطمینان بالا: فراهم آورندگان ابر به مشتریان خود تضمین می دهند که سیستم ابر همیشه قابلیت ارائه سرویس را داشته باشد. حال آنکه در سیستم های خانگی یک اشکال در نرم افزار یا سخت افزار می تواند موجب عدم دسترسی به اطلاعات و سرویس شود.
– هزینه پایین: به صورت سنتی برای اجرای برنامه های سنگین محاسباتی یا داده ای عظیم نیاز به یک سیستم با توان بالای محاسباتی و دادهای احساس می شده است. این سیستم هزینه سنگینی را برای شرکت و یا افراد سرویسگیرنده فراهم می آورده است. حال با استفاده از سرویس های موجود بر روی ابر، کاربران می توانند بر روی پروژه خود تمرکز بیشتری داشته باشد و هزینه گزافی را بابت تهیه زیرساخت ها نپردازد.
– به روز بودن: هزینه های گزافی که برای برپا بودن و به روز بودن زیرساخت های سخت افزاری و نرم افزاری باید پرداخت شوند با استفاده از ابر از بین می رود. در حقیقت به روز در آوردن زیرساخت ها از وظایف فراهمآورندگان ابر می شود که بدون آنکه کاربر نهایی از این موضوع مطلع شود انجام می پذیرد.
در سیستمهای محاسبات توزیعی به دلیل کم کردن هزینه و توان مصرفی، از اجزاء تجاری عاممنظوره موجود در بازار استفاده میشود[3]. این اجزا بهزمان مستهلک شده و دچار خرابی می شوند تا جایی که برای همیشه غیرقابلاستفاده میگردند. همچنین با توجه به آمار ذکر شده، تعداد پردازندهها به منظور بهبود کارآیی سیستم محاسباتی توزیعی رو به افزایش است. با این حال احتمال وقوع خرابی[2] در کل سیستم توزیعی با یک رابطه نمایی بالا میرود. برای مثال سیستم کلاستری که برای یکی از قسمت های سایت گوگل استفاده میشود، بیش از 15000 پردازنده دارد که بر اساس آمار ذکر شده در [4]، نرخ خرابی هر گره محاسباتی تقریبا 2-3% در سال است. این سیستم به طور میانگین 20 بار در هر روز به علت خرابی ناگزیر به راه اندازی مجدد[3] است. بزرگترین مرکز داده جهان بیش از 51470000 هسته پردازشی دارد و در کم تر از هر 10 دقیقه با یک اشکال در سیستم مواجه می شود. درجدول 1-1 چند نمونه از تعداد اشکال های گزارش شده در مراکز داده آمده است.
برای برنامه های علمی-کاربردی موازی امروزی که بسیار پیچیده تر شده اند و معمولا برای روزها، هفته ها و یا بیشتر طراحی شده اند تا به اتمام برسند، برخورد با اشکال در حین اجرا برنامه موازی امری اجتناب ناپذیر به نظر می رسد. امروزه رویکردهای تحمل پذیر اشکال در مراکز به یکی از چالش های اصلی در محاسبات توزیعی تبدیل شده است.
آزمون نقطه مقابلهگیری(cp)[1] و بازیافت[2] یک تکنیک معمول برای مدیریت اشکال در محاسبات توزیع شده میباشد و مقالات ارزشمندی در مورد بازیابی بر اساس الگوریتمهای آزمون نقطه مقابلهگیری مختلف موجود میباشد. مطالعه بر روی هزینه نقطه مقابله گرفتن به صورت گسترده کماکان در حال انجام است. بیش تر کارها بر روی انتخاب بازه بهینه نقطه مقابله و کم کردن سربار برای عمل نقطه مقابله انجام شده است. در واقع مهمترین مساله در بازیافت، برخورد با اشکالها بعد از وقوع آن و رویکرد بازگشت به عقب[3] است. در روش نقطه مقابله بهصورت هماهنگ دورهای، در ابتدای بازه های زمانی از پیش تعریف شده حالت کنونی تکتک واحدهای محاسباتی موجود (این واحد در ابر ماشین های مجازی است) ذخیره می شود. پس از اتمام ذخیرهسازی تمام ماشین های مجازی، سیستم تا ابتدای بازه زمانی بعدی به کار خود ادامه می دهد.
زمانیکه در یکی از گرههای محاسباتی خرابی رخ داد، این خرابی کشف میشود و تمام کارهای موازی[4] متوقف شده تا اشکال در سیستم بر طرف گردد. پس از رفع اشکال سیستم به آخرین حالت ذخیره شده ماشین های مجازی باز میگردد و عملیات را از آن نقطه دوباره آغاز میکند و به کار خود ادامه می دهد. در اغلب پیادهسازیها، پروتکل کشف و بازیافت اشکال از دید برنامهنویس پنهان میباشد. این قبیل پروتکلها به صورت واکنشی پس از وقوع اشکال در سیستم عمل مینماید. بنابراین در این حالت ممکن است زمان زیادی به لحاظ تعمیر سیستم و بازیابی مجدد ماشین های مجازی از دست برود که روی کارآیی ابر بهصورت مستقیم تاثیر منفی میگذارد.
در مقابل این روشها، اخیرا روشهای دیگری پیشنهاد شده که مبتنی بر پیشبینی اشکال در هر گره محاسباتی هستند. در این سیستمها، یک مکانیسم مدیریت اشکال تطبیقی[5] وجود دارد که سعی دارد تا بهصورت بهینه، بهترین عمل را در ابتدای هر بازه تصمیمگیری نماید.
در دهههای گذشته پیشرفتهایی در زمینه پیشبینی اشکال حاصل شده است. برای نمونه، وسایل سختافزاری مدرنی با خصیصههای مختلفی همچون سنسورهای سختافزاری طراحی شدهاند که میتوانند افت یک ویژگی در طول زمان را (برای شناسایی خرابیهای نزدیک) نشان دهند و تعدادی روشهای یادگیری ماشینی و آماری مبتنی بر تکنیکهای احتمال برای بالابردن دقت آنها ارائه شده است. تکنیکهای مقاومت در برابر اشکال پیشکنشی[6] مبتنی بر پیشبینی به منظور دستیابی به دسترسی بالا[7]، برای کاربردهای بحرانی- امن اتخاذ گردیده است. اما تاکنون مطالعات خوبی بر روی ابر صورت نگرفته است.
فرم در حال بارگذاری ...
[چهارشنبه 1399-10-17] [ 06:35:00 ب.ظ ]
|