2-1      مفاهیم پایه قابلیت دسترسی بالا………………………. 9

2-1-1      تعریف قابلیت دسترسی بالا……………………….. 9

2-1-2      مفاهیم و مباحث مرتبط با قابلیت دسترسی بالا……………… 10

2-1-3      معیارهای سنجش قابلیت دسترسی………………………… 12

2-1-4      سطوح قابلیت دسترسی بالا……………………….. 13

2-1-5      توقف برنامه‌ریزی شده و توقف برنامه‌ریزی نشده………. 14

2-1-6      عوامل مؤثر بر میزان دسترسی سیستم……………………….. 16

2-2      دستیابی به قابلیت دسترسی بالا در سیستم‌های كلاستر………….. 16

2-2-1      تعریف نقاط منفرد بروز خرابی………………………… 17

2-2-2      از بین بردن نقاط منفرد بروز خرابی در اجزای سخت‌افزاری…………… 17

2-2-3      از بین بردن نقاط منفرد بروز اشكال در اجزای نرم‌افزاری…………… 23

2-2-4      تشخیص دهندۀ خرابی در كلاسترهای با قابلیت دسترسی بالا……………. 25

2-2-5      معماری کلاسترهای با قابلیت دسترسی بالا……………………….. 26

2-2-6      اتصالات و شبکه کلاستر………………………. 28

2-2-7      مدیریت و نظارت بر کلاستر………………………. 28

2-2-8      تصویر یکپارچه سیستم (SSI)………………………

3     روالهای تحمل‌پذیر اشکال برای رسیدن به قابلیت دسترسی بالا در سیستمهای مبادله پیام…… 36

3-1      پیش زمینه و تعاریف………………………… 38

3-1-1      مدل سیستم……………………….. 38

3-1-2      حالت‌های سیستم یكپارچه………………………. 39

3-1-3      تعامل با دنیای خارج……………………….. 40

3-1-4      پیام در حال گذر………………………. 41

3-1-5      قراردادهای ثبت وقایع……………………….. 42

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]، برای کاربر­د­های بحرانی- امن اتخاذ گردیده است. اما تاکنون مطالعات خوبی بر روی ابر صورت نگرفته است.

در این پایان نامه سیستم‌های محاسبات ابری را به عنوان یکی از سیستم­های پردازش موازی مبتنی بر مبادله پیام مورد بررسی قرار می‌دهیم. این محیط­ها به علت ویژگی خاص خود که ارتباط کارهای موازی فقط از پیام‌های رد و بدل شده انجام می‌پذیرد، دارای توانمندی‌های بالقوه برای انجام عملیات بازیافت می‌باشند. از این رو، آنچه ما به طور خلاصه مورد مطالعه قرار خواهیم داد، قراردادهای بازیافت مختلف برای محیط مبادله پیام خواهد بود. این قراردادها برای توانمند کردن محیط پردازش موازی به منظور تحمل‌پذیر کردن در برابر اشکال، اطلاعاتی نظیر حالت ماشین‌های مجازی یا محتوی پیام‌ها را در طول اجرای عادی نگه­داری می‌کنند تا در زمان وقوع اشکال با بهره گرفتن از آن­ها، عملیات بازیافت انجام پذیرد.

در این پایان نامه در فصل دوم با قابلیت دسترسی‌بالا آشنا خواهیم شد و سپس در فصل سوم قراردادهای بازیافت در یک محیط پردازش موازی مبتنی بر مبادله پیام را مورد بررسی و مقایسه قرار می‌دهیم. در فصل چهارم به مطالعه کارهای اخیر انجام­ شده در زمینه برخورد پیش‌کنشی با اشکال‌های محتمل می‌پردازیم. فصل پنجم را به معرفی الگوریتم پیشنهادی اختصاص داده و در آخر به پیاده­سازی و ارزیابی الگوریتم‌های پیشنهادی و مقایسه آن با روش کلاسیک پرداخته و نتیجه ­گیری می‌نماییم.

[1] Checkpoint

[2] Recovery

[3] Rollback

[4] Tasks

[5] Adaptive

[6] Proactive

[7] High Availability

[1] Cloud Providers

[2] Failure

[3] Reboot

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...