فصل دوم پایان نامه ارشد cloud computing (docx) 1 صفحه
دسته بندی : تحقیق
نوع فایل : Word (.docx) ( قابل ویرایش و آماده پرینت )
تعداد صفحات: 1 صفحه
قسمتی از متن Word (.docx) :
دانشکده آموزشهای الکترونیکیپاياننامه كارشناسی ارشد در رشته ی مهندسی فناوری اطلاعات(طراحی و تولید نرم افزار)طراحي و پياده سازي يک زمانبندِکار اشکالآگاه در سيستمهاي محاسبات ابريبه کوششروشنک لکی شیرازاستاد راهنماآقای دکتر فرشاد خون جوشاستادان مشاورآقای دکتر غلامحسین دستغیبی فردخانم دکتر منیژه کشتگریاسفند ماه 1391ﺑـﻪ ﻧﺎم ﺧـﺪاﺍﻇﻬﺎﺭﻧﺎﻣــﻪﺍﯾﻨﺠﺎﻧﺐ روشنک لکی شیراز( 897159 )ﺩﺍﻧﺸﺠــﻮی ﺭﺷﺘـــﻪی مهندسی فناوری اطلاعات ﮔﺮﺍﯾش طراحی و تولید نرم افزار، دانشکدﻩی آموزشهای الکترونیکی ﺍﻇﻬﺎﺭﻣﯽﮐﻨﻢ ﮐﻪ ﺍﯾﻦ ﭘﺎﯾﺎﻥ ﻧﺎﻣﻪ ﺣﺎﺻﻞ ﭘﮋوﻫﺶ ﺧﻮﺩﻡ ﺑﻮﺩﻩ و ﺩﺭ ﺟﺎﻫﺎﯾﯽ ﮐﻪ ﺍﺯ ﻣﻨﺎﺑﻊ ﺩﯾﮕﺮﺍﻥ ﺍﺳﺘﻔﺎﺩﻩ ﮐﺮﺩﻩﺍﻡ، ﻧﺸﺎﻧﯽ ﺩﻗﯿﻖ و ﻣﺸﺨﺼﺎﺕ ﮐﺎﻣﻞ ﺁﻥ ﺭﺍ ﻧﻮﺷﺘﻪﺍﻡ. ﻫﻤﭽﻨﯿﻦ ﺍﻇﻬﺎﺭﻣﯽﮐﻨﻢ ﮐﻪ ﺗﺤﻘﯿﻖ و ﻣﻮﺿﻮﻉ ﭘﺎﯾﺎﻥ ﻧﺎﻣﻪﺍﻡ ﺗﮑﺮﺍﺭیﻧﯿﺴﺖ و ﺗﻌﻬﺪ ﻣﯽﻧﻤﺎﯾﻢ ﮐﻪ ﺑﺪوﻥ ﻣﺠﻮﺯ ﺩﺍﻧﺸﮕﺎﻩ ﺩﺳﺘﺎوﺭﺩﻫﺎی ﺁﻥ ﺭﺍ ﻣﻨﺘﺸر ﻧﻨﻤﻮﺩﻩ و ﯾﺎ ﺩﺭ ﺍﺧﺘﯿﺎﺭ ﻏﯿﺮ ﻗﺮﺍﺭ ﻧﺪﻫﻢ. ﮐﻠﯿﻪ ﺣﻘﻮﻕ ﺍﯾﻦ ﺍﺛﺮ ﻣﻄﺎﺑﻖ ﺑﺎ ﺁﯾﯿﻦﻧﺎﻣﻪ ﻣﺎﻟﮑﯿﺖ ﻓﮑﺮی و ﻣﻌﻨﻮی ﻣﺘﻌﻠﻖ ﺑﻪ ﺩﺍﻧﺸﮕﺎﻩ ﺷﯿﺮﺍﺯ ﺍﺳﺖ.ﻧﺎﻡ وﻧﺎﻡ ﺧﺎﻧﻮﺍﺩﮔﯽ :ﺗﺎﺭﯾﺦ و ﺍﻣﻀﺎ:به نام خداطراحي و پياده سازي يک زمانبندِ کار اشکالآگاه در سيستمهاي محاسبات ابريبه کوششروشنک لکی شیرازپایان نامهاﺭﺍﺋﻪ ﺷﺪﻩ ﺑﻪ ﺗﺤﺼﯿﻼﺕ ﺗﮑﻤﯿﻠﯽ ﺩﺍﻧﺸﮕﺎﻩ ﺷﯿﺮﺍﺯ ﺑﻪ ﻋﻨﻮﺍﻥ ﺑﺨﺸﯽ ﺍﺯ ﻓﻌﺎﻟﯿﺖﻫﺎی ﺗﺤﺼﯿﻠﯽ ﻻﺯﻡ ﺑﺮﺍی ﺍﺧﺬ ﺩﺭﺟﻪ ﮐﺎﺭﺷﻨﺎﺳﯽ ﺍﺭﺷﺪﺩﺭ ﺭﺷﺘﻪی: فناوری اطلاعاتاز دانشگاه شیرازشیرازجمهوری اسلامی ایرانارزﻳﺎﺑﻲ ﻛﻤﻴﺘﻪي ﭘﺎﻳﺎنﻧﺎﻣﻪ، ﺑﺎ درﺟﻪي: ------------ دکتر فرشاد خون جوش استادیار بخش مهندسی و علوم کامپیوتر دانشگاه شیراز(رئیس کمیته)-----------------دکتر غلامحسین دسنغیبی فرد استادیار بخش مهندسی و علوم کامپیوتر دانشگاه شیراز-----------------------دکتر منیژه کشتگری استادیار بخش مهندسی کامپیوتر و فناوری اطلاعات دانشگاه صنعتی شیراز----------------ماحصل آموخته هایم را تقدیم می کنم به آنان که مهر آسمانی شان آرام بخش آلام زمینی ام است به استوارترین تکیه گاهم، دستان پرمهر پدرم به پراميدترين نگاه زندگیم، چشمان اميدبخش مادرم که هرچه آموختم در مکتب عشق شما آموختم و هرچه بکوشم قطره ای از دریای بی کران مهربانیتان را سپاس نتوانم بگویم. بوسه بر دستان پرمهرتانكه تمام تجربه های یکتا و زیبای زندگیم، مدیون حضور سبز شماستسپاسگزاریاکنون که این رساله به پایان رسیده است، بر خود لازم می دانم که پس از سپاسگزاری از خدای منان، از استاد راهنمای ارجمندم، جناب آقای دکتر فرشاد خون جوش، استادیار بخش مهندسی و علوم کامپیوتر دانشگاه شیراز، که در مسير انجام اين پروژه از مساعدتها و راهنماييهای بيشائبه ايشان بهرههای فراوان بردم، تشکر نمایم. بيشک بدون کمکهای ايشان پيمودن اين راه بسيار سخت مينمود.همچنین از اساتید گرانقدرم، جناب آقای دکتر غلامحسین دسنغیبی فرد استادیار بخش مهندسی و علوم کامپیوتر دانشگاه شیراز و سرکار خانم دکتر منیژه کشتگری استادیار بخش مهندسی کامپیوتر و فناوری اطلاعات دانشگاه صنعتی شیراز که بر من منت نهاده و اساتید مشاور من در این رساله بوده اند سپاسگزارم.روشنک لکی شیرازاسفند ماه 91
چکيدهطراحي و پياده سازي يک زمانبندِکار اشکالآگاه در سيستمهاي محاسبات ابريبه کوششروشنک لکی شیراز
با افزایش بازار استفاده از تکنولوژی محاسبات ابری، مراکز داده عظیمی به وجود آمدهاند تا محاسبات را سریعتر انجام دهند. يکي از دغدغههاي اصلي در محاسبات ابری، مواجهشدن با اشکالها در حين اجرا کردن يک برنامه موازي زمانبر است. براي غلبه بر اين قبيل مشکلات، عموما از روشهاي آزمون نقطهمقابلهگيري يا آرشيوکردن استفاده ميشود. اما اين روشها غالبا سربار بالايي دارند و به صورت واکنشي عمل ميکنند.
در اين پایاننامه روشي را معرفي ميکنيم که علاوه بر بازيافت و بازگشت به عقب برای تحمل پذیری اشکال، بتواند گرههای محاسباتی که احتمال وقوع خرابی در آنها بیشتر است را شناسایی نماید و به صورت پیشکنشی عمل کرده و ماشینهای مجازی را که بر روی آنها قرار دارد به گرههای محاسباتی امنتر مهاجرت دهد تا در صورت وقوع اشکال در گره مشکوک برنامه موازی بدون وقفه به کار خود ادامه دهد. علاوه بر آن، در این الگوریتم با بهرهگیری از قانون بیز و مدل هزینه پیشنهادی، آزمون نقطهمقابلهگيري زائد تا حد امکان حذف شده و زمان اجرای برنامه بهبود خواهد یافت. با استفاده ازشبیهسازی نشان میدهیم که روش پیشنهادی بسته به شرایط مختلف تا 78% زمان اجرا را بهبود میبخشد و از منابع کمتری استفاده میکند.
واژههای کلیدی: سیستمهای محاسبات ابر، پیشبینی اشکال، مدل مبتنی بر هزینه، قانون بیز، پیشکنشی، آزمون نقطهمقابلهگيري هماهنگ ، مهاجرت.
فهرست مطالب
عنوان صفحه
TOC \o "1-3" \h \z \u 1مقدمه PAGEREF _Toc347985971 \h 22قابليت دسترسي بالا PAGEREF _Toc347985972 \h 92-1مفاهيم پايه قابليت دسترسي بالا PAGEREF _Toc347985973 \h 102-1-1تعريف قابليت دسترسي بالا PAGEREF _Toc347985974 \h 102-1-2مفاهيم و مباحث مرتبط با قابليت دسترسي بالا PAGEREF _Toc347985975 \h 112-1-3معيارهاي سنجش قابليت دسترسي PAGEREF _Toc347985976 \h 132-1-4سطوح قابليت دسترسي بالا PAGEREF _Toc347985977 \h 152-1-5توقف برنامهريزي شده و توقف برنامهريزي نشده PAGEREF _Toc347985978 \h 162-1-6عوامل مؤثر بر ميزان دسترسي سيستم PAGEREF _Toc347985979 \h 182-2دستيابي به قابليت دسترسي بالا در سيستمهاي كلاستر PAGEREF _Toc347985980 \h 192-2-1تعريف نقاط منفرد بروز خرابی PAGEREF _Toc347985981 \h 192-2-2از بين بردن نقاط منفرد بروز خرابی در اجزاي سختافزاري PAGEREF _Toc347985982 \h 192-2-3از بين بردن نقاط منفرد بروز اشكال در اجزاي نرمافزاري PAGEREF _Toc347985983 \h 282-2-4تشخيص دهندۀ خرابي در كلاسترهاي با قابليت دسترسي بالا PAGEREF _Toc347985984 \h 302-2-5معماري کلاسترهاي با قابليت دسترسيبالا PAGEREF _Toc347985985 \h 322-2-6اتصالات و شبکه کلاستر PAGEREF _Toc347985986 \h 342-2-7مديريت و نظارت بر کلاستر PAGEREF _Toc347985987 \h 342-2-8تصوير يکپارچه سيستم (SSI) PAGEREF _Toc347985988 \h 413روالهای تحملپذیر اشکال برای رسیدن به قابلیت دسترسی بالا در سیستمهای مبادله پیام PAGEREF _Toc347985989 \h 363-1پيشزمينه و تعاريف PAGEREF _Toc347985990 \h 393-1-1مدل سيستم PAGEREF _Toc347985991 \h 393-1-2حالتهاي سيستم يكپارچه PAGEREF _Toc347985992 \h 403-1-3تعامل با دنياي خارج PAGEREF _Toc347985993 \h 423-1-4پيام در حال گذر PAGEREF _Toc347985994 \h 433-1-5قراردادهاي ثبت وقايع PAGEREF _Toc347985995 \h 443-1-6ذخيرهساز پايدار PAGEREF _Toc347985996 \h 463-1-7جمعآوري دادههاي زائد PAGEREF _Toc347985997 \h 473-2بازيافت براساس نقطه مقابله PAGEREF _Toc347985998 \h 483-2-1نقطه مقابله گرفتن به صورت غيرهماهنگ PAGEREF _Toc347985999 \h 483-2-2نقطه مقابله گرفتن به صورت هماهنگ PAGEREF _Toc347986000 \h 533-2-3نقطه مقابله گرفتن بر اساس ارتباطات PAGEREF _Toc347986001 \h 573-3بازيافت بر اساس ثبت وقايع PAGEREF _Toc347986002 \h 623-3-1شرط يكپارچگي بدون پروسههاي يتيم PAGEREF _Toc347986003 \h 633-3-2ثبت بدبينانه وقايع PAGEREF _Toc347986004 \h 643-3-3ثبت خوشبينانه وقايع PAGEREF _Toc347986005 \h 683-3-4ثبت علّي وقايع PAGEREF _Toc347986006 \h 713-3-5مقايسه قراردادهاي بازيافت PAGEREF _Toc347986007 \h 743-4مباحث مطرح در پيادهسازي PAGEREF _Toc347986008 \h 743-4-1بررسي PAGEREF _Toc347986009 \h 743-4-2پيادهسازي تکنيکهاي نقطه مقابله گرفتن PAGEREF _Toc347986010 \h 753-4-3مقايسة قراردادهاي نقطه مقابله گرفتن PAGEREF _Toc347986011 \h 773-4-4قراردادهاي ارتباطي PAGEREF _Toc347986012 \h 783-4-5بازيافت بر اساس روش ثبت وقايع PAGEREF _Toc347986013 \h 793-4-6ذخيرهساز پايدار PAGEREF _Toc347986014 \h 803-4-7دنبال كردن وابستگي PAGEREF _Toc347986015 \h 813-4-8بازيافت PAGEREF _Toc347986016 \h 824کارهاي انجام شده اخیر PAGEREF _Toc347986017 \h 714-1مروري بر روشهاي پيشبيني اشکال PAGEREF _Toc347986018 \h 724-1-1کلاسه بندي و اشکالهاي ريشه آماری PAGEREF _Toc347986019 \h 734-1-2مدل آماري زمان ميان خرابيها PAGEREF _Toc347986020 \h 744-1-3جمعآوري و پيشپردازش دادههاي مرتبط با خرابي PAGEREF _Toc347986021 \h 744-2تکنيکهاي پيشبيني اشکال PAGEREF _Toc347986022 \h 764-2-1حدآستانه مبتني بر آمار PAGEREF _Toc347986023 \h 764-2-2آناليز سريهاي زماني PAGEREF _Toc347986024 \h 764-2-3کلاسهبندي مبتني بر قانون PAGEREF _Toc347986025 \h 774-2-4مدلهاي شبکه بيزي PAGEREF _Toc347986026 \h 784-2-5مدلهاي پردازش شبه مارکوف PAGEREF _Toc347986027 \h 794-3مطالعات انجام گرفته PAGEREF _Toc347986028 \h 805روش پيشنهادي PAGEREF _Toc347986029 \h 865-1مدل اشکال PAGEREF _Toc347986030 \h 865-1-1متوسط زماني تا خرابي PAGEREF _Toc347986031 \h 905-2مبانی احتمال و پیشبینی PAGEREF _Toc347986032 \h 925-2-1مفاهیم اولیه PAGEREF _Toc347986033 \h 925-2-2رابطه قانون بيز و احتمال درستي پيشبيني PAGEREF _Toc347986034 \h 945-3رابطه الگوريتم پيشبيني و مدل اشکال PAGEREF _Toc347986035 \h 965-3-1تحليل روابط احتمالي PAGEREF _Toc347986036 \h 965-4مدل پيشنهادي PAGEREF _Toc347986037 \h 1005-4-1ارائه الگوريتم PAGEREF _Toc347986038 \h 1035-4-2مدل مبتني بر هزينه PAGEREF _Toc347986039 \h 1055-4-3اثر پيشبينيکننده بر روي مدلهاي هزينه PAGEREF _Toc347986040 \h 1105-4-4تصميمگيري سيستم در کارگزار ابر PAGEREF _Toc347986041 \h 1126نتایج آزمایشها PAGEREF _Toc347986042 \h 1096-1معرفی شبیهساز CloudSim PAGEREF _Toc347986043 \h 1096-1-1اجزای ابر PAGEREF _Toc347986044 \h 1106-1-2اجزای اصلی هسته PAGEREF _Toc347986045 \h 1126-1-3سرویسهای موجود و الگوریتمهای آنها PAGEREF _Toc347986046 \h 1166-1-4روند کار شبیهساز PAGEREF _Toc347986047 \h 1186-2نحوه پیادهسازی سیستم تحملپذیر اشکال در شبیهساز PAGEREF _Toc347986048 \h 1196-2-1FaultInjector PAGEREF _Toc347986049 \h 1216-2-2FaultPredictor PAGEREF _Toc347986050 \h 1246-2-3FTHost PAGEREF _Toc347986051 \h 1266-2-4FTDatacenter PAGEREF _Toc347986052 \h 1266-2-5FTDatacenterBroker PAGEREF _Toc347986053 \h 1276-3نتایج آزمایشات PAGEREF _Toc347986054 \h 1306-3-1بررسی اثر سربار نقطه مقابلهگیری PAGEREF _Toc347986055 \h 1336-3-2بررسی عملهای انتخابی PAGEREF _Toc347986056 \h 1346-3-3خرابیهای متوقف سازنده و غیر متوقف سازنده PAGEREF _Toc347986057 \h 1377نتیجه گیری و پیشنهادات PAGEREF _Toc347986058 \h 140منابع PAGEREF _Toc347986059 \h 142
فهرست شکلها
TOC \h \z \c "شکل" شکل 11رویکرد یه تکنولوژیهای مختلف محاسبات توزیع شده [1] PAGEREF _Toc347719165 \h 3
شکل 21 سهم عوامل مختلف در از کارافتادگی سیستم HA [11] PAGEREF _Toc347719166 \h 16
شکل 22 برخی SPOFها در سیستم سرویسدهنده/سرویسگیرنده PAGEREF _Toc347719167 \h 18
شکل 23 SPOFها در یک شبکه اترنت نوعی PAGEREF _Toc347719168 \h 22
شکل 24 حذف SPOFهای شبکه به روش افزونگی کامل PAGEREF _Toc347719169 \h 23
شکل 25 نمونهای از تشخیص خرابی با سیگنال ضربان قلب PAGEREF _Toc347719170 \h 26
شکل 26 نمای ساده از نظارت PAGEREF _Toc347719171 \h 31
شکل 27 ارتباط اجزا مختلف EMS PAGEREF _Toc347719172 \h 31
شکل 31 مثالی از يك سيستم مبادله پيام با سه واحد موازی PAGEREF _Toc347719173 \h 38
شکل 32 مثالی از حالت يكپارچه و غيريكپارچه سيستم PAGEREF _Toc347719174 \h 40
شکل 33 پيادهسازي مكانيسمهاي بازيافت PAGEREF _Toc347719175 \h 42
شکل 34 ثبت كردن پيام براي اجراي مجدد قطعي PAGEREF _Toc347719176 \h 43
شکل 35 انديس نقطه مقابله و بازه نقطه مقابله PAGEREF _Toc347719177 \h 46
شکل 36 (a) يك اجراي مثال (b) گراف وابستگي بازگشت به عقب (c) گراف نقطه مقابله PAGEREF _Toc347719178 \h 47
شکل 37 انتشار بازگشت به عقب، خط بازيافت و اثر دومينو PAGEREF _Toc347719179 \h 48
شکل 38 نقطه مقابله گرفتن به صورت هماهنگ و غيربلوكه شونده (a) غيريكپارچگي نقطه مقابله (b) با كانال FIFO (c) با كانال غيرFIFO PAGEREF _Toc347719180 \h 49
شکل 39 مسير Z سيكل Z PAGEREF _Toc347719181 \h 52
شکل 310 روش ثبت بدبينانه وقايع PAGEREF _Toc347719182 \h 57
شکل 311 روش ثبت خوشبينانه وقايع PAGEREF _Toc347719183 \h 60
شکل 312 روش ثبت علّي وقايع (الف) حالتهاي قابل بازيافت حداكثر (ب)گراف مقدم را براي پروسه P0 در حالت X PAGEREF _Toc347719184 \h 62
شکل 51 منحنی وان PAGEREF _Toc347719185 \h 88
شکل 52 نمودار مثبت واقعی، منفی واقعی و دقت پیشبینی PAGEREF _Toc347719186 \h 95
شکل 53 اثر تغییرات MTTF بر روی دقت پیشبینی PAGEREF _Toc347719187 \h 96
شکل 54 اثر حساسیت و ویژگی بر روی دقت پیشبینی PAGEREF _Toc347719188 \h 97
شکل 55 شماتیک خط زمانی نقطه مقابلهگیری هماهنگ دورهای PAGEREF _Toc347719189 \h 98
شکل 56 شماتیک خط زمانی نقطه مقابلهگیری هماهنگ دورهای در برخورد با اشکال PAGEREF _Toc347719190 \h 99
شکل 57 شماتیک خط زمانی الگوریتم تطبیقی پیشنهادی PAGEREF _Toc347719191 \h 101
شکل 61دیاگرام کلی شبیهساز[92] PAGEREF _Toc347719192 \h 116
شکل 62 جریان کار اجزای برنامههای موازی در شبیهساز [92] PAGEREF _Toc347719193 \h 116
شکل 63 نمونهای از محتویات یک فایل سناریوی خرابی گرها در یک مرکز داده PAGEREF _Toc347719194 \h 118
شکل 64 ماشین حالت خرابی یک گره محاسباتی در ابر PAGEREF _Toc347719195 \h 119
شکل 65 تکه کد تغییر وضعیت حالت میزبانهای یک مرکزداده به صورت بهینه PAGEREF _Toc347719196 \h 120
شکل 66 تکه کد پیشبینی وضعیت یک گره محاسباتی در زمان آینده time PAGEREF _Toc347719197 \h 121
شکل 67 در صد بهبود زمان اجرای الگوریتمهای پیشنهادی نسبت به الگوریتم آزمون نقطه مقابلهگیری دورهای کلاسیک PAGEREF _Toc347719198 \h 126
شکل 68 در صد بهبود زمان اجرای الگوریتمهای پیشنهادی نسبت به الگوریتم آزمون نقطه مقابلهگیری دورهای کلاسیک با افزایش زمان نقطه مقابلهگیری به 5 دقیقه PAGEREF _Toc347719199 \h 127
شکل 69 تعداد عملهای انتخابی در طول زمان اجرا با الگوریتم نقطه مقابلهگیری دورهای PAGEREF _Toc347719200 \h 128
شکل 610 تعداد عملهای انتخابی در طول زمان اجرا با الگوریتم تطبیقی اولیه PAGEREF _Toc347719201 \h 128
شکل 611 تعداد عملهای انتخابی در طول زمان اجرا با الگوریتم تطبیقی تصحیح شده PAGEREF _Toc347719202 \h 129
شکل 612 تعداد اشکالهایی که در طول اجرای برنامه سبب توقف یا عدم توقف ابر میشوند PAGEREF _Toc347719203 \h 130
فهرست جداول
TOC \h \z \c "جدول" جدول 11 قابلیت اطمینان در مراکز داده مختلف[4] PAGEREF _Toc347719204 \h 5
جدول 21 مقایسه کلاسترهای HA و FT [13] PAGEREF _Toc347719205 \h 11
جدول 22 زمانهای توقف و کارکرد یک سیستم 52×7×12 PAGEREF _Toc347719206 \h 14
جدول 23 زمانهاي توقف و كاركرد يك سيستم 52×5×12 PAGEREF _Toc347719207 \h 14
جدول 31 مقايسه بين قراردادهاي مختلف بازيابي [47] PAGEREF _Toc347719208 \h 64
جدول 51 رابطه وضعیت محیط و الگوریتم پیشبینی PAGEREF _Toc347719209 \h 91
جدول 52 تعاریف پارامترهای استفاده شده در مدلها PAGEREF _Toc347719210 \h 102
جدول 53 مدل هزینه عمل مهاجرت PAGEREF _Toc347719211 \h 103
جدول 54 مدل هزینه عمل نقطه مقابلهگیری PAGEREF _Toc347719212 \h 104
جدول 55 مدل هزینه عمل اجرای بلافاصل PAGEREF _Toc347719213 \h 105
جدول 61 مقداردهی اولیه متغیرهای شبیهساز PAGEREF _Toc347719214 \h 125
فصل اول
مقدمه
مقدمه
جهان محاسباتی که امروزه با آن روبرو هستیم روز بهروز در حال بزرگتر و پیچیدهتر شدن است. محاسبات ابری نیز در ادامه سبکهای دیگر مانند محاسبات توری با هدف پردازش حجم عظیمی از داده با استفاده از خوشههایی از کامپیوترهاست. طبق گراش ارائه شده ای از گوکل، در حال حاضر به لطف محاسبات توزیع شده روزانه بیش از 20 ترابایت داده خام اینترنتی مورد پردازش قرار میگیرد. تکامل و شکلگیری محاسبات ابری خواهد توانست این چنین مسائلی را به راحتی و به شکلی مناسبتر از طریق سرویسهای مبتنی بر تقاضا حل و فصل نماید. از زاویه دیگر، جهان محاسباتی اطراف ما در حال حرکت به سمت الگوهای "پرداخت برای استفاده" حرکت میکند و همین الگو یکی دیگر از پایههای اصلی محاسبات ابری محسوب میشود.
محاسبات ابری که در اواخر سال 2007 پا به عرضه ظهور گذاشت هماکنون به دلیل تواناییاش در ارائه زیر ساخت فناوری پویا و بسیار منعطف، محیطهای محاسباتی تصمین شده از نظر کیفیت و همچنین سرویسهای نرمافزاری قابل پیکربندی به موضوع داغ بدل شده است . در گزارش رویکردی گوگل همانطور که در REF _Ref347364413 \h \* MERGEFORMAT شکل 11 مشاهده مینمایید، محاسبات ابری، محاسبات توری را پشت سر گذاشته است [1]. محاسبات ابری از رویکرد مجازیسازی بهرهگیری مینماید که این امر سبب انعطافپذیری بیشتر سیستم ابر میشود. در حقیقت با استفاده از این تکنولوژی، برنامهها میتوانند سرویسهای مختلف را به صورت مجزا و انتزاعی از گرههای سرویسدهنده دریافت نمایند.
شکل STYLEREF 1 \s 1 SEQ شکل \* ARABIC \s 1 1رویکرد یه تکنولوژیهای مختلف محاسبات توزیع شده [1]
تعاریف زیادی در مورد محاسبات ابری ارائه شده است که سعی مینمایند مشخصههای اصلی محاسبات ابری را مد نظر بگیرند که سیستم ابری را " یک مدل برای دسترسی بنابر تقاضا و راحت تحت شبکه به یک مجموعه اشتراکی از منابع محاسباتی قابل پیکربندی" تعریف مینمایند درحالیکه "این منابع با کمترین تلاش و هزینه به صورت آزاد" فراهم گردند [2].
محاسبات ابری از خصوصیات منحصر به فردی بهره میبرد که این سبک محاسباتی را از سایر سبکها متمایز میکند. البته برخی از این خصوصیات کما بیش در سبکهای پیشین نیز وجود داشتهاند. بعضی از این خصوصیات عبارتند از:
ارائه سرویس مبتنی بر تقاضا: در اینجا لازم نیست تا برای آن چه استفاده نمیکنید هزینه پرداخت کنید. این بدان معناست که مشتریان تنها بر اساس مقدار و کیفیت سرویسی که مصرف مینمایند، هزینه استفاده پرداخت مینمایند. در حقیقت رویکرد این تکنولوژی همانند سرویسهای عمومی قابل استفاده دیگر امروزی است. برای مثال همانطور که برای تولید برق نیاز نیست که هر خانوار دارای ژنراتور و سایر وسایل تولید الکتریسیته باشد، دریافت سرویسی مانند محاسبات یا محل ذخیره داده نیز دیگر نیازی به خصوصی بودن ندارد و میتوان آن را از فراهم آوردنگان ابر اجاره کرد.
دسترسی شبکه گسترده (اینترنت): این سیستم برای تحویل و ارئه سرویسها از بستر موجود برای اینترنت استفاده مینماید. بنابراین مشتریان سرویسها به هیچگونه نرمافزار یا سختافزار خاصی نیاز ندارند و با همان مرورگری که هر روزه به گشت و گذار در وب میپردازند میتوانند از سرویسهای ابر بهره ببرند.
استخر منابع: در این سیستم با حجم وسیعی از منابع روبرو هستیم. این منابع از طریق مجازیسازی از محل فیزیکی خود مستقل شدهاند. بنابراین به راحتی میتوانند در بستر شبکه جابهجا شوند. در واقع نرمافزارها، پایگاههای داد، وب سرورها و سیستمهای عامل همگی به عنوان سرورهای مجازی در سیستم ابر حضور دارند.
قابلیت اطمینان بالا: فراهم آورندگان ابر به مشتریان خود تضمین میدهند که سیستم ابر همیشه قابلیت ارائه سرویس را داشته باشد. حال آنکه در سیستمهای خانگی یک اشکال در نرمافزار یا سختافزار میتواند موجب عدم دسترسی به اطلاعات و سرویس شود.
هزینه پایین: به صورت سنتی برای اجرای برنامههای سنگین محاسباتی یا داده ای عظیم نیاز به یک سیستم با توان بالای محاسباتی و دادهای احساس میشده است. این سیستم هزینه سنگینی را برای شرکت و یا افراد سرویسگیرنده فراهم میآورده است. حال با استفاده از سرویسهای موجود بر روی ابر، کاربران میتوانند بر روی پروژه خود تمرکز بیشتری داشته باشد و هزینه گزافی را بابت تهیه زیرساختها نپردازد.
بهروز بودن: هزینههای گزافی که برای برپا بودن و بهروز بودن زیرساختهای سختافزاری و نرمافزاری باید پرداخت شوند با استفاده از ابر از بین میرود. در حقیقت بهروز در آوردن زیرساختها از وظایف فراهمآورندگان ابر میشود که بدون آنکه کاربر نهایی از این موضوع مطلع شود انجام میپذیرد.
در سیستمهای محاسبات توزیعی به دلیل کم کردن هزینه و توان مصرفی، از اجزاء تجاری عاممنظوره موجود در بازار استفاده میشود[3]. این اجزا به مرور زمان مستهلک شده و دچار خرابی میشوند تا جاییکه برای همیشه غیرقابلاستفاده میگردند. همچنین با توجه به آمار ذکر شده، تعداد پردازندهها به منظور بهبود کارآیی سیستم محاسباتی توزیعی رو به افزایش است. با این حال احتمال وقوع خرابی در کل سیستم توزیعی با یک رابطه نمایی بالا میرود. برای مثال سیستم کلاستری که برای یکی از قسمتهای سایت گوگل استفاده میشود، بیش از 15000 پردازنده دارد که بر اساس آمار ذکر شده در [4]، نرخ خرابی هر گره محاسباتی تقریبا 2-3% در سال است. این سیستم به طور میانگین 20 بار در هر روز به علت خرابی ناگزیر به راهاندازی مجدد است. بزرگترین مرکز داده جهان بیش از 560000 هسته پردازشی دارد و در کمتر از هر 10 دقیقه با یک اشکال در سیستم مواجه میشود. درجدول 1-1 چند نمونه از تعداد اشکالهای گزارش شده در مراکز داده آمده است.
جدول STYLEREF 1 \s 1 SEQ جدول \* ARABIC \s 1 1 قابلیت اطمینان در مراکز داده مختلف[4]
سیستمتعداد پردازندهمیانگین زمان تا خرابی بعدیASCI Q81926.5 ساعتASCI White81925 ساعت و 40 دقیقهPSC Lemieux30169.7 ساعتGoogle1500020 راهاندازی مجدد در روز
برای برنامههای علمی-کاربردی موازی امروزی که بسیار پیچیدهتر شدهاند و معمولا برای روزها، هفتهها و یا بیشتر طراحی شدهاند تا به اتمام برسند، برخورد با اشکال در حین اجرا برنامه موازی امری اجتنابناپذیر به نظر میرسد. امروزه رویکردهای تحملپذیر اشکال در مراکز به یکی از چالشهای اصلی در محاسبات توزیعی تبدیل شده است.
آزمون نقطه مقابلهگیری(cp) و بازیافت یک تکنیک معمول برای مدیریت اشکال در محاسبات توزیع شده میباشد و مقالات ارزشمندی در مورد بازیابی بر اساس الگوریتمهای آزمون نقطه مقابلهگیری مختلف موجود میباشد[5 و6 و7]. مطالعه بر روی هزینه نقطه مقابله گرفتن به صورت گسترده کماکان در حال انجام است. بیشتر کارها بر روی انتخاب بازه بهینه نقطه مقابله و کم کردن سربار برای عمل نقطه مقابله انجام شده است. در واقع مهمترین مساله در بازیافت، برخورد با اشکالها بعد از وقوع آن و رویکرد بازگشت به عقب است. در روش نقطه مقابله بهصورت هماهنگ دورهای، در ابتدای بازههای زمانی از پیش تعریف شده حالت کنونی تکتک واحدهای محاسباتی موجود (این واحد در ابر ماشینهای مجازی است) ذخیره میشود. پس از اتمام ذخیرهسازی تمام ماشینهای مجازی، سیستم تا ابتدای بازه زمانی بعدی به کار خود ادامه میدهد.
زمانیکه در یکی از گرههای محاسباتی خرابی رخ داد، این خرابی کشف میشود و تمام کارهای موازی متوقف شده تا اشکال در سیستم بر طرف گردد. پس از رفع اشکال سیستم به آخرین حالت ذخیره شده ماشینهای مجازی باز میگردد و عملیات را از آن نقطه دوباره آغاز میکند و به کار خود ادامه میدهد. در اغلب پیادهسازیها، پروتکل کشف و بازیافت اشکال از دید برنامهنویس پنهان میباشد. این قبیل پروتکلها به صورت واکنشی پس از وقوع اشکال در سیستم عمل مینماید. بنابراین در این حالت ممکن است زمان زیادی به لحاظ تعمیر سیستم و بازیابی مجدد ماشینهای مجازی از دست برود که روی کارآیی ابر بهصورت مستقیم تاثیر منفی میگذارد.
در مقابل این روشها، اخیرا روشهای دیگری پیشنهاد شده که مبتنی بر پیشبینی اشکال در هر گره محاسباتی هستند. در این سیستمها، یک مکانیسم مدیریت اشکال تطبیقی وجود دارد که سعی دارد تا بهصورت بهینه، بهترین عمل را در ابتدای هر بازه تصمیمگیری نماید.
در دهههای گذشته پیشرفتهایی در زمینه پیشبینی اشکال حاصل شده است. برای نمونه، وسایل سختافزاری مدرنی با خصیصههای مختلفی همچون سنسورهای سختافزاری طراحی شدهاند که میتوانند افت یک ویژگی در طول زمان را (برای شناسایی خرابیهای نزدیک) نشان دهند[8 و 9] و تعدادی روشهای یادگیری ماشینی و آماری مبتنی بر تکنیکهای احتمال برای بالابردن دقت آنها ارائه شده است[3 و 10]. تکنیکهای مقاومت در برابر اشکال پیشکنشی مبتنی بر پیشبینی به منظور دستیابی به دسترسیبالا، برای کاربردهای بحرانی- امن اتخاذ گردیده است. اما تاکنون مطالعات خوبی بر روی ابر صورت نگرفته است.
در این پایاننامه سیستمهای محاسبات ابری را به عنوان یکی از سیستمهای پردازش موازی مبتنی بر مبادله پیام مورد بررسی قرار میدهیم. این محیطها به علت ویژگی خاص خود که ارتباط کارهای موازی فقط از پیامهای رد و بدل شده انجام میپذیرد، دارای توانمندیهای بالقوه برای انجام عملیات بازیافت میباشند. از این رو، آنچه ما به طور خلاصه مورد مطالعه قرار خواهیم داد، قراردادهای بازیافت مختلف برای محیط مبادله پیام خواهد بود. این قراردادها برای توانمند کردن محیط پردازش موازی به منظور تحملپذیر کردن در برابر اشکال، اطلاعاتی نظیر حالت ماشینهای مجازی یا محتوی پیامها را در طول اجرای عادی نگهداری میکنند تا در زمان وقوع اشکال با استفاده از آنها، عملیات بازیافت انجام پذیرد.
در این پایاننامه در فصل دوم با قابلیت دسترسیبالا آشنا خواهیم شد و سپس در فصل سوم قراردادهای بازیافت در یک محیط پردازش موازی مبتنی بر مبادله پیام را مورد بررسی و مقایسه قرار میدهیم. در فصل چهارم به مطالعه کارهای اخیر انجام شده در زمینه برخورد پیشکنشی با اشکالهای محتمل میپردازیم. فصل پنجم را به معرفی الگوریتم پیشنهادی اختصاص داده و در آخر به پیادهسازی و ارزیابی الگوریتمهای پیشنهادی و مقایسه آن با روش کلاسیک پرداخته و نتیجهگیری مینماییم.
فصل دوم
قابليت دسترسيبالا
قابليت دسترسيبالا
با توجه به اين كه تمايل در مراکز داده به سمت استفاده از سيستمهاي پردازش موازي كلاستر با تعداد پردازنده خيلي زياد ميرود، توجه به خرابي اين سيستمها بسيار اهميت پيدا ميكند. لذا توجه به تحمل اشکال و قابليت دسترسيبالا در سيستمهاي كلاستر امري اجتنابناپذير است.
مسائل مهم در اين ارتباط پيشگيري از وقوع اشکال، پيدا كردن اشکالها و بازگرداندن جزء خراب شده به حالت قبل از خرابي است. پيشگيري اشکال در سيستمهاي پردازش موازي مبتني بر كلاستر را ميتوان با طراحي مناسب و داراي افزونگي اجزايي چون شبكههاي ارتباطي يا پردازندهها به وجود آورد. در مورد پيدا كردن اشکالها نيز ميتوان از انواع ابزارهاي نظارت و هشداردهندۀ سيستمهاي كلاستر بهره برد. در زمينه بازگرداندن سيستم در صورت وقوع خرابي به حالت قبل خود، با توجه به نوع سيستم مورد استفاده در محيط كلاستر اين بحث بررسي خواهد شد. به عنوان مثال سيستمهاي سرويسدهنده در صورت وقوع اشکال تنها بايد تقاضاي سرويسگيرنده را به ديگر گرهها هدايت كنند ولي در مراکز داده سرویس دهنده به ابر كه وقوع خرابي در حين اجراي يك برنامه به وقوع ميپييوندد، بايد اين قابليت دسترسيبالا ایجاد شود تا در مدت زمان کوتاهی به شرایط قبل از وقوع اشکال بازگردند.
در اين فصل ابتدا به مفاهيم پايه قابليت دسترسي بالا و مباحث مرتبط با آن خواهيم پرداخت و در ادامه براي بررسي قابليت دسترسيبالا در ابر بهطور خاص، روشهاي دستيابي به قابليت دسترسيبالا در مراکز داده را توضيح خواهيم داد.
مفاهيم پايه قابليت دسترسي بالا
تعريف قابليت دسترسي بالا
قابليت دسترسي بالا مشخصۀ سيستمهايي است كه به منظور ارائۀ بدون وقفۀ خدمات به كاربران طراحي ميشوند. در اينگونه سيستمها علاوه بر استفاده از راهكارهايي به منظور كاهش بروز خرابي در اجزاي سختافزاري و نرمافزاري، تدابيري نيز براي برخورد با چنين خرابيهايي در نظر گرفته ميشود. به اين ترتيب اولاً امكان وقوع اشکال در سيستمهاي دسترس بالا (یا به اختصار HA) كاهش مييابد و ثانياً در اثر بروز اشکال، سيستم همچنان ميتواند به كار خود ادامه داده و خدمات در دست اقدام خود را بدون توقف پيگيري كند. البته روشن است كه بروز خرابي باعث كاهش كارايي سيستم خواهد شد.
يكي ديگر از امكاناتي كه معمولاً در سيستمهاي HA در نظر گرفته ميشود امكان تعمير، ارتقاء و تغيير پيكربندي سيستم در حين ارائۀ خدمات به كاربران يا مشتريان است؛ اين امكان نيز در جهت كاهش مدت زمان توقف سيستم از اهميت ويژهاي برخوردار است. براي مقايسۀ سيستمهاي HA از معياري با عنوان قابلیت دسترسي استفاده ميشود. قابلیت دسترسي يك سيستم به صورت (متوسط) درصدي از زمان كه سيستم قابل استفاده است تعريف ميشود. به عنوان مثال سيستمي را تصور كنيد كه بايد در تمام روزهاي هفته و در تمام 24 ساعت شبانهروز آماده ارادۀ خدمات به مشتريان نباشد. در صورتي كه اين سيستم به طور متوسط در هفته به مدت يك ساعت از كار بيافتد ميزان دسترسي برابر با 1-7×247×24×100=%99.4 خواهد داشت. هر چه مدت توقف و از كارافتادگي سيستم كمتر باشد ميزان دسترسي آن بيشتر خواهد بود.
مفاهيم و مباحث مرتبط با قابليت دسترسي بالا
قابليت دسترسي پيوسته
اين حالت، ايده آل HA است، به اين معني كه سيستم با قابليت دسترسي پيوسته هيچگاه متوقف نميشود. واضح است كه قابليت دسترسي پيوسته يك حالت فرضي است و در دنياي خارجي محقق نخواهد شد. اما گاهاً اين اصطلاح در مورد سيستمهايي كه قابليت دسترسي بسيار بالايي دارند و تنها مدت توقف معين و بسيار كوتاه قابل پذيرشي دارند، به كار ميرود[11].
قابليت تحملپذیری اشکال
سيستمهاي با قابليت تحملپذیری اشکال (FT) چنانكه از نامشان پيداست اين قابليت را دارند كه در اثر بروز يك اشکال در واحدهاي مختلف سختافزاري يا نرمافزاي، همچنان به كار خود ادامه دهند، بهطوريكه كاربر از وقوع اشکال مطلع نشود. نكتۀ اصلي در دستيابي به قابليت تحملپذیری اشکال ، استفاده از بلوكهاي سختافزاري و نرمافزاري اضافه است. اين بلوكها پيش از اينكه سيستم دچار اشکال شود نقشي در كاركرد سيستم ندارند اما به محض وقوع اشکال در يك واحد از سيستم، بلوك اضافي متناظر با آن وارد عمل شده و جاي واحد خراب را ميگيرد و وظايف آن را انجام ميدهد. در سيستمهايي كه قابليت تحملپذیری اشکال كامل دارند همۀ اجزاي تشكيل دهندۀ سيستم داراي افزونگي هستند تا وقوع هيچ اشکالی منجر به توقف سيستم نشود. لازم به ذكر است كه قابليت تحملپذیری اشکال و قابليت دسترسي بالا به يك معنا نيستند. در واقع يك سيستم با قابليت تحملپذیری اشکال در صورتي كه نرخ بروز خطا يا اشکال بالايي داشته باشد به هيچ وجه HA نخواهد بود [12].
البته بايد توجه داشت كه براي دستيابي به قابليت دسترسيبالا چارهاي جز بكارگيري بلوكهاي اضافي براي برخي از اجزاء سيستم نخواهيم داشت. ولي در سيستمهاي HA علاوه بر بكارگيري افزونگي براي برخي از اجزاء و استفاده از اجزاي مرغوب، مكانيسمهايي نيز در نظر گرفته ميشود تا در صورت وقوع اشکال در يكي از اجزاء، ساير اجزاء بتوانند علاوه بر وظيفۀ خود، وظيفۀ جزء خراب را نيز بر عهده بگيرند و در نتيجه سيستم به كار خود ادامه دهد. به اين مكانيسمها دور زدن خرابی گفته ميشود. از آنجا كه سيستمهاي FT از اجزاي سختافزاري و نرمافزاري خاصي استفاده ميكنند و حاوي حجم انبوهي از افزونگيها هستند لذا از سيستمهاي HA گرانتر ميباشند. در جدول 2-1 ساير مشخصات سيستمهاي HA و FT با هم مقايسه شدهاند [13].
جدول STYLEREF 1 \s 2 SEQ جدول \* ARABIC \s 1 1 مقایسه کلاسترهای HA و FT [13]
کلاسترHAسیستم FTزمان بازیابیچند ثانیه تا چند دقیقهچند میلی ثانیهمدل بازیابیبازیابی تراکنشی دادهمبتنی بر حافظه و دیسک سختدادههای بحرانیدیسکدیسک و حافظهپیادهسازیتوسعه اسکریپنیازمند به شبکهسیستمکلاسترسیستم منفردبرد محصولارزان قیمت تا دقت بالاچند برده
قابليت تحمل حادثه
قابليت تحمل حادثه به معناي اين است كه يك تأسيسات كامپيوتري اين امكان را داشته باشد كه در اثر بروز چند اشکال در يك سايت و يا در اثر از كارافتادگي كامل يك سايت همچنان به ارائه خدمات ادامه دهد. در اين دسته از سيستمها سايتها در يك ساختمان يا شهر و يا حتي قارّه پراكنده شدهاند و مكانيزمي پيشبيني شده است كه در اثر وقوع حادثهاي چون آتشسوزي براي يك از سايتها، سايت ديگر عمليات را برعهده بگيرد. ناگفته پيداست كه اين گونه سيستمها نياز به طراحي و پيادهسازي دقيق دارند و بسيار گران هستند.
قابليت اطمينان
قابليت اطمينان و قابليت دسترسي مفاهيم مرتبطي هستند ولي بايد به اختلاف بين آن دو توجه كرد. چنانچه پيش از اين ذكر شد ميزان دسترسي يك سيستم درصدي از كل زمانهاست كه سيستم قابل استفاده براي كاربرد معمول آن است. اما قابليت اطمينان مدت زماني است كه انتظار ميرود سيستم بدون از كارافتادگي همچنان به كار خود ادامه دهد. واضح است كه يك سيستم HA از قابليت اطمينان بالايي نيز برخوردار خواهد بود. ولي يك سيستم با قابليت اطمينان بالا ممكن است به دليل زمان زياد مورد نياز براي تشخيص و تعمير خرابي و راهاندازي مجدد، HA نباشد.
معيارهاي سنجش قابليت دسترسي
مهمترين و كاملترين اين معيارها، قابلیت دسترسي سيستم است كه در ضمن تعريف سيستمهاي HA توضيح داده شد. در ادامه به معرفي برخي ديگر از معيارهاي سنجش قابليت دسترسي ميپردازيم كه تنها از يك منظر، كيفيت سيستم HA را مشخص ميكنند و لذا معيار كاملي از سيستمهاي HA نيستند.
متوسط فاصلۀ زماني بين خرابیها (MTBF)
اين معيار مشخصهاي براي ميزان قابليت اطمينان سيستم است و معمولاً براي واحدهاي منفرد تشكيل دهندۀ سيستم مانند ديسكها بكار ميرود. MTBF از فرمول زير محاسبه ميشود:
MTBF=کارکرد زمان کلآمده پیش اشکالات کل تعداد
در صورتي كه بخواهيم MTBF را براي يك سيستم مركب محاسبه كنيم بايد مجموع خالص زمانهاي كاركرد واحدهاي تشكيلدهندۀ سيستم (اعم از واحدهايي كه دچار اشكال نميشوند) را بر تعداد كل اشكالات رخ داده در واحدهاي مختلف تقسيم كنيم. معمولاً MTBF از روي عملكرد گذشته سيستم محاسبه ميشود و بهعنوان تخميني از عملكرد گذشته سيستم مورد استفاده قرار ميگيرد.
متوسط زمان تعمير (MTTR)
اين معيار متوسط زمان مورد نياز براي تعمير سيستم را نشان ميدهد. هر چه اين زمان كوتاهتر باشد، بهتر است و به مفهوم بازگشت دوبارۀ واحد خراب به سيستم است. لازم به ذكر است كه ميزان دسترسي به هر دو پارامترهاي MTBF و MTTR بستگي دارد.
سطوح قابليت دسترسي بالا
ميزان دسترسي قابل قبول براي يك سيستم، به كاربرد آن و ميزان خسارات ناشي از بروز اشكالات در سيستم بستگي دارد. از طرف ديگر با افزايش ميزان دسترسي يك سيستم قيمت آن به سرعت رشد ميكند. لذا پيش از اقدام براي خريد و نصب سيستم بايد مطالعات كافي به منظور يافتن سطح HA مورد نياز در آن كاربرد انجام شده باشد. مسئلۀ ديگري كه در انتخاب سيستم HA بايد مد نظر باشد ساعات كاري سيستم است. در جدول 2-2 و جدول 2-3 سطوح مختلف HA و زمانهاي توقف و در دسترس بودن سيستمهايي با ساعات كاري 52×7×24 (يعني 24 ساعت در روز، 7 روز در هفته و 52 هفته در سال) و 52×5×12 درج شده است. در سيستمهايي كه در تمام طول شبانهروز مشغول خدماترساني نيستند ممكن است بتوان تعمير سيستم را تا پايان ساعت خدماترساني روزانه، به تعويق انداخت و به اين ترتيب زمان در دسترس بودن سيستم را افزايش داد اما در مورد سيستمهاي شبانهروزي معمولاً مكانيزمهايي براي تعمير سيستم به صورت برخط و بدون توقف در نظر گرفته ميشود.
جدول STYLEREF 1 \s 2 SEQ جدول \* ARABIC \s 1 2 زمانهای توقف و کارکرد یک سیستم 52×7×12قابلیت دسترسیکمترین زمان مورد انتظار دسترس بودنکمترین زمان مجاز خارج از دسترس بودنزمان باقیمانده99%867288099.5%871644099.95%875550100%876000
جدول STYLEREF 1 \s 2 SEQ جدول \* ARABIC \s 1 3 زمانهاي توقف و كاركرد يك سيستم 52×5×12قابلیت دسترسیکمترین زمان مورد انتظار دسترس بودنکمترین زمان مجاز خارج از دسترس بودنزمان باقیمانده99%308332564299.5%310416564299.95%311825642100%312005642
توقف برنامهريزي شده و توقف برنامهريزي نشده
سيستم HA ممكن است به دو صورت متوقف شود: برنامهريزي شده و يا برنامهريزي نشده. توقف برنامهريزي شدۀ سيستم طبق برنامۀ از پيش تعيين شدهاي توسط اپراتور انجام ميشود. توقف برنامهريزي شدۀ سيستم ممكن است به صورت روزانه، هفتگي، ماهانه و بیشتر انجام شود. هدف از توقف برنامهريزي شده ميتواند برخي از موارد زير باشد[11] :
تهيۀ نسخۀ پشتيبان به طور متناوب
ارتقاء نرمافزاري سيستم
توسعه و يا تعمير سختافزار
تغيير پيكربندي سيستم
تغيير و بهروز كردن دادهها
توقف برنامهريزي شده در صورتي كه به نحو مناسب زمانبندي شده باشد معمولاً مشكلي ايجاد نميكند. چنانكه پيش از اين هم اشاره شد، يك انتخاب جايگزين براي توقف برنامهريزي شده، روشهاي تهيۀ نسخههاي پشتيبان به صورت برخط و روشهاي تعمير و ارتقاء سختافزاري به صورت اتصال در زمان روشن بودن دستگاه است. نوع ديگري از توقفهاي سيستم، توقفهاي برنامهريزي نشده يا از كارافتادگيها هستند و در سيستمهاي HA بسيار نامطلوب ميباشند. بعضي از علل وقوع اين گونه از توقفها عبارتند از [11]:
از كار افتادن بخشي از سختافزار
خطاي سيستم فايل
پر شدن ديسك و نبودن جا براي ذخيرهسازي
رويداد پرش ناگهاني در تغذيۀ سيستم
از كار افتادن منبع تغذيه
مسائل مربوط به شبكۀ ارتباطي
نقص نرمافزاري
خطاي كاربرد
نقص ميانافزاري
حوادث طبيعي (مانند آتشسوزي، سيل)
اشتباه اپراتور يا مدير سيستم.
در شكل 1-1 سهم هر يك از گروههايي را كه منشاء توقف برنامهريزي نشده هستند، به صورت آماري نشان ميدهد [11].
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 1 سهم عوامل مختلف در از کارافتادگی سیستم HA [11]
عوامل مؤثر بر ميزان دسترسي سيستم
عاملهاي مؤثر بر ميزان دسترسي يك سيستم را ميتوان به سه دسته تقسيم كرد: پرسنل، پروسه و فناوري [14]. پرسنل و مديران سيستمهاي HA، خصوصاً سيستمهاي با مأموريت بحراني بايد مهارتها و دانش لازم براي مديريت اين گونه سيستمها و آگاهي از نحوۀ برخورد با خرابيها و اشكالات به وجود آمده در سيستم را دارا باشند. همچنين سازمانهايي كه از چنين سيستمهايي بهره ميگيرند بايد پروسههاي مشخصي را براي مواجهه با خرابيها و اشكالات احتمالي پيشبيني كرده باشند. عنصر سوم، فناوري به كار رفته در سيستم است. به اين معنا كه طراحان سيستمهاي HA ميبايستي از قطعات سختافزاري و نرمافزاري مناسب، شبكههاي ارتباطي كارا، سيستمهاي عامل و برنامههاي كاربردي خوبي استفاده كرده باشند. اگر چه ضعف هر يك از اين سه عامل منجر به كاهش ميزان دسترسي سيستم از ديد كاربران ميشود ولي ما در اين نوشته تنها به بُعد فناوري سيستمهاي HA خواهيم پرداخت.
دستيابي به قابليت دسترسي بالا در سيستمهاي كلاستر
با توجه اينكه تمايل در سطح سيستمهاي موازي به سمت استفاده از سيستمهاي پردازش موازي كلاستر با تعداد پردازشگر خيلي زياد ميرود، توجه به خرابي اين سيستمها بسيار اهميت پيدا ميكند. اين سيستمها از كامپيوترهايي كه با استفاده از يك شبكۀ ارتباطي به يكديگر متصل شدهاند تشكيل ميشوند. همۀ اين كامپيوترها در يك جعبه قرار ميگيرند و به صورت يك سيستم واحد و يكپارچه ديده ميشوند. در اين بخش نقاط منفرد بروز خرابی كه در اين فصل گاهي آن را اختصاراً SPOF ميناميم، در يك سيستم كلاستر مشخص كرده و راهكارهاي حذف آنها را بررسي ميكنيم. با حذف نقاط منفرد بروز اشكال نخستين گام به سوي سيستم HA برداشته خواهد شد.
تعريف نقاط منفرد بروز خرابی
نقاط منفرد بروز خرابی اجزائي هستند كه نبودن يا از كارافتادگي هر يك از آنها منجر به توقف خدمات ارائه شده توسط سيستم ميگردد. معمولاً جزئي از سيستم كه براي آن افزونگي در نظر گرفته نشده است يك SPOF خواهد بود. به عنوان مثال، در شكل 1-2 تعدادي از SPOFها در يك سيستم سرويسدهنده/ سرويسگيرنده نشان داده شده است.
از بين بردن نقاط منفرد بروز خرابی در اجزاي سختافزاري
از بين بردن نقاط منفرد بروز خرابی مربوط به منابع تغذيه
چنانكه در شكل 2-2 ملاحظه ميشود همۀ اجزاي مدار به يك منبع تغذيه متصل شدهاند. در نتيجه اين منبع تغذيه به وضوح يكي از SPOFهاي سيستم خواهد بود. به منظور رفع اين نقيصه ميتوان از منابع تغذيۀ اضطراري (UPS) استفاده كرد كه به صورت كلي دو نوع هستند. UPSهاي منفرد، منافع تغذيهاي هستند كه در صورت قطع توان ورودي، به يك باتري سوييچ ميكنند و براي مدت كوتاهي توان سيستم را تأمين ميكنند. در اين مدت سيستم ميتواند به نحو مناسب خاموش شود. در صورتي كه در اين مدت تغذيۀ سيستم مجدداً به حالت اول برگردد سيستم بدون خاموش شدن ادامۀ كارهايش را پيگيري ميكند. بايد توجه داشت كه اين نوع UPS خود ميتواند دچار اشكال شود و از كار بيفتد و لذا يك SPOF محسوب ميشود. براي حذف اين SPOF بايد از دو يا چند UPS استفاده كرد. علاوه بر اين براي اينكه در اثر از كارافتادن يك UPS، تمام سيستم يكباره متوقف نشود ميتوان براي قسمتهاي مختلف سيستم از UPSهاي مجزا استفاده كرد
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 2 برخی SPOFها در سیستم سرویسدهنده/سرویسگیرنده
نوعي ديگر از آنها، UPS عبور دهندۀ توان نام دارد. اين نوع كه از UPS منفرد گرانتر است، خودش SPOF نيست زيرا در حالتي كه توان ورودي در وضعيتي مناسب قرار دارد و دچار اشكال نشده است اين نوع UPS تنها توان را عبور ميدهد و به عبارت ديگر در مدار قرار ندارد. اما به محض بروز اشكال، اين نوع UPS وارد عمل شده و توان سيستم را از طريق يك باتري يا ژنراتور اضطراري تأمين ميكند.
از بين بردن نقاط منفرد بروز خرابی مربوط به ديسكها
همانطور كه در شكل 2-2 مشاهده ميشود سيستم مورد نظر از دو ديسك استفاده ميكند: ديسك ريشه و ديسك داده. ديسك ريشه محل قرار گرفتن سيستم عامل است و دادههاي كاربردهاي مختلف بر روي ديسك داده نگهداري ميشوند. در صورت بروز اشكال در ديسك ريشه، سيستم نميتواند پردازشهاي معمول خود را انجام دهد. براي رفع اشكال، اين ديسك بايد عوض شود و محتواي ديسك با نصب مجدد نرمافزارهاي سيستم و يا با استفاده از نسخههاي پشتيبان بازيابي شود. در صورت بروز اشكال در ديسك داده كاربردها متوقف ميشوند و پس از جايگزيني ديسك دادهها با ديسك مشابه بايد دادههاي موجود در آخرين نسخۀ پشتيبان موجود، بر روي ديسك جديد بارگذاري شود. دادههايي كه پس از تهيۀ آخرين نسخۀ پشتيبان تغيير كردهاند قابل بازيابي نخواهند بود. چنانكه ملاحظه ميشود هر يك از ديسكها يك SPOF هستند و تنها راه از بين بردن اين SPOFها استفاده از افزونگي است. دو روش براي به كارگيري افزونگي در مورد ديسكها وجود دارد كه عبارتند از:
محافظت دادهها با استفاده از آرايهاي از ديسكها
حافظت نرمافزاري از دادهها با بكارگيري ايدۀ قرينهسازي
محافظت دادهها با استفاده از آرايهاي از ديسكها
در اين روش آرايهاي از ديسك به صورت يك پيكربندي RAID مورد استفاده قرار ميگيرد و ميتوان از سطوح مختلف RAID بهره جست. برخي از اين سطوح RAID به روش قرينهسازي سختافزاري و برخي ديگر با استفاده از توازن از دادهها محافظت ميكنند بهطوري كه در اثر بروز اشكال در يك ديسك، همچنان بتوان دادهها را بازيابي كرد. سطوح متداول RAID عبارتند از:
RAID 0: داده به طور معمول بر روي ديسكها نوشته ميشود و محافظتي از دادهها به عمل نميآيد.
RAID 1: داده بر روي گروهي از ديسكها كه قرينه يكديگر هستند نوشته ميشود.
RAID 3: داده به صورت بايت- بايت خرد ميشوند و بيتهاي مختلف هر بايت بر روي ديسك مختلف نوشته ميشوند و در ضمن بيت توازن براي هر بايت بر روي يك ديسك معين ذخيره ميشود.
RAID 5: داده به بلوكهايي شكسته ميشود و علاوه بر ذخيرهسازي بلوكها اطلاعات مربوط به بلوكها نيز بر روي ديسك پراكنده شده و ذخيره ميشود.
از مزاياي استفاده از آرايهاي از ديسكها ميتوان موارد زير را برشمرد:
امكان و سهولت تعويض بر خط بلوكي از ديسكها كه يكي از آنها دچار اشكال شده است.
قابليت تخصيص خودكار يك بلوك از ديسكها به منظور بر عهد گرفتن وظيفۀ يكي از بلوكهايي كه دچار اشكال شده است (در حالت عادي بلوك مورد بحث در حالت منتظر ميباشد).
انعطافپذيري در پيكربندي آرايه (حالتهاي مختلف).
امكان حذف SPOFها با استفاده از كنترل كنندهها، منبع تغذيه و فن اضافي.
حجم بالاي حافظۀ پيوسته.
محافظت از دادهها با استفاده از قرينهسازي نرمافزاري
اين روش همان سطح RAID 1 است كه بر روي ديسكهاي منفرد و به صورت نرمافزاري پيادهسازي شده است. از مزاياي اين روش ميتوان به موارد زير اشاره كرد:
قرينهسازي با دو يا چند كپي قابل انجام است و ميتوان تعداد كپيها را به صورت نرمافزاري تعيين كرد.
كپيهاي داده را ميتوان به منظور تهيۀ نسخۀ پشتيبان به تكههاي كوچكتري خرد كرد و حتي ميتوان نسخۀ پشتيبان را بر روي يك سيستم ديگر نگهداري كرد.
ميتوان نحوۀ چنيش دادهها بر روي ديسكها را كنترل كرد تا كارايي يك كاربرد خاص افزايش يابد.
ميتوان قرينهها را طوري پيكربندي كرد كه از کانالهای فیبری يا گذرگاههاي SCSI مختلفي استفاده كنند و به اين ترتيب نرخ عمليات I/O را چند برابر كرد.
ديگر يك كنترلكنندۀ ديسك، گلوگاه نخواهد بود.
حذف نقاط منفرد بروز اشكال مربوط به اجزاي واحدهاي پردازشي (SPUها)
هر يك از واحدهاي پردازشي كه آن را اختصاراً SPU ميناميم، در يك سيستم از اجزايي تشكيل شدهاند كه آن اجزاء مستعد بروز اشکال هستند. مهمترين اين اجزاء عبارتند از:
يك يا چند پردازه
كنترلهاي I/O
بُردهاي حافظه
در صورت بروز اشكال در اين گونه اجزاء SPU قادر به انجام عمليات مورد انتظار نخواهد بود. براي حذف اين نوع از SPOFها دو راه وجود دارد: يكي استفاده از اجزاي SPU به صورت افزونگي و ديگري استفاده از كلاسترهاي HA.
در روش اول جعبههايي حاوي پردازندهها، كارتهاي شبكه، كارتهاي I/O، حافظهها، منابع تغذيه و اتصال دهندهها در نظر گرفته ميشود كه در صورت وقوع خرابي، جايگزين اجزاي خراب ميشوند. در روش دوم SPUهاي پشتيبان در نظر گرفته ميشود كه اين SPUها ممكن است در حالت عادي فعال بوده و يا منتظر باشند. در اثر وقوع خرابي در يكي از SPUها، SPUي پشتيبان طي فرايندي موسوم به دور زدن خطا، كاربردي كه در حال اجرا بر روي SPUي خراب بوده است را از سر ميگيرد. پروسۀ دور زدن خطا در مدت كوتاهي انجام ميشود و نرمافزار مربوط به آن همواره بر روي تمام واحدهاي كلاستر در حال اجرا است. اين روش نسبت به روش قبل انعطافپذيرتر بوده و در مورد برخي از كاربردها مقرون به صرفهتر است.
حذف نقاط منفرد بروز اشكال مربوط به شبكه
در سيستمهاي كلاستر شبكهها به دو منظور مورد استفاده قرار ميگيرند:
دسترسي سرويسگيرندهها و سيستمهاي ديگر به كاربردها
مبادلۀ پيام بين واحدهاي كلاستر
به منظور دسترسي گيرنده به كاربرد موجود بر روي سرويسدهنده معمولاً از شبكههاي محلي استفاده ميشود. در شكل 2-3 يك شبكه اترنت نوعي با همبندي ستاره به همراه SPOFها نشان داده شده است. چنانكه در اين مشاهده ميشود كابلها، مسيريابها، هابها و كارتهاي شبكه همگي ميتوانند SPOF باشند. علاوه بر اين نرمافزارهاي شبكه مانند كنترل كنندۀ DNS ميتوانند باعث وقوع اشكال شوند و از اين رو در زمرۀ SPOFها محسوب ميشوند.
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 3 SPOFها در یک شبکه اترنت نوعی
چنانكه ذكر شد واحدهاي كلاستر نيز براي برقراري ارتباط با يكديگر از شبكهها بهره ميجويند. پيامهايي كه واحدهاي شبكۀ HA با هم مبادله ميكنند دو گونه هستند. دستهاي از اين پيامها كار رد و بدل دادهها و برنامهها را انجام ميدهند و دستۀ ديگري از آنها پيامهايي است كه به منظور اطلاع از سلامت و صحت واحدهاي شبكه مبادله ميشوند و به پيامهاي ضربان قلب موسوم هستند. گاهي اوقات در برخي سيستمها از دو شبكۀ مجزا براي اين دو دسته از پيام استفاده ميشود. SPOFها در شبكههايي كه به منظور ارتباط بين واحدها در نظر گرفته شدهاند، شامل كابلها و كارتهاي شبكه ميباشند. البته لازم به ذكر است كه در بعضي از سيستمها ارتباط بين واحدها نيز از طريق همان شبكهاي كه براي دسترسي سرويسگيرندهها به كلاستر در نظر گرفته شده است انجام ميشود. براي حذف SPOFهاي شبكه دو راه حل وجود دارد:
افزونگي كامل در شبكه
راهگزيني محلي بر روي كارتهاي شبكه
در روش اول تمام ابزارهاي شبكه از جمله كارتهاي شبكه، مسيريابها، هابها و كابلها به صورت افزونگي مورد استفاده قرار ميگيرند و نمونهاي از اين شبكه در شكل 2-4 نشان داده شده است. در روش دوم در صورت قطع ارتباط، واحد مورد نظر از كارت شبكه اي كه قبلاً استفاده ميكرد به يك كارت شبكه ديگر كه پيش از اين در حالت منتظر بوده سوئيچ ميكند و به اين ترتيب ارتباط خود را با ساير واحدها حفظ ميكند.
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 4 حذف SPOFهای شبکه به روش افزونگی کامل
يكي از روشهايي كه ميتوان به منظور افزايش قابليت دسترسي شبكه از آن استفاده كرد APA است. APA تعدادي پورت اترنت سريع يا اترنت گيابيت را كه بر روي كارتهاي مختلفي قرار دارند به دستهاي از اتصالات كه همگي آدرس IP يكساني دارند متصل ميكند. با استفاده از اين فنّاوري امكان تشخيص و بازيابي اشکال به طور خودكار فراهم ميشود و علاوه بر آن ميتوان بار را بر روي اتصالات فيزيكي به نحو مناسب توزيع كرد.
از بين بردن نقاط منفرد بروز اشكال در اجزاي نرمافزاري
بسياري از اجزاي نرمافزاري از جمله موارد اشاره شده در زير مستعد بروز اشكال هستند:
سيستم عامل
نرمافزار مديريت پايگاه داده
Transaction Processing (TP) Monitors
برنامههاي كاربردي سرويسدهنده
برنامههاي كاربردي سرويسگيرنده
استفاده از كلاسترها ميتواند آثار سوء اين گونه اشكالها را كاهش دهد. به عنوان مثال در صورت بروز اشكال در سيستم عامل يك گره، آن گره خاموش شده و سرويسهايي كه بر روي آن در حال اجرا بودند بر روي واحدهاي ديگر ادامه يافته و يا از سر گرفته ميشوند. در واقع كاربردها به منزلۀ بستههايي ميباشند كه در صورت نياز از گرهي به گره ديگر منتقل ميشوند.
ايدۀ ديگر اين است كه چند نمونه از يك برنامۀ كاربردي بر روي گرههاي كلاستر در حال اجرا باشد تا در صورت بروز اشكال در يك گره، كاربر به طور خودكار به گره ديگري كه در حال اجراي آن برنامۀ كاربردي است متصل شود. در هر دو حالت استفاده از كلاستر امكان بازيابي برنامۀ كاربردي را در زمان قابل قبولي فراهم ميكند.
نرمافزارهاي مديريت پايگاه داده و ناظرهاي TP نيز ممكن است دچار اشكال شوند. با تشكيل اين نرمافزارها از بستههاي نرمافزاري كوچكتر، ميتوان قابليت HA را در آنها ايجاد كرد. برنامههاي كاربردي سرويسدهنده نيز متداول است. در صورت بروز اشكال در برنامۀ كاربردي سرويسدهنده كلاستر بايد مجدداً راهاندازي شود، يا برنامۀ كاربردي مورد نظر از ابتدا آغاز شود و يا بر روي يك SPUي ديگر اجرا شود.
بالاخره با توجه به امكان وقوع اشكال در برنامۀ كاربردي سرويسگيرنده، اين برنامههاي كاربردي بايد طوري طراحي شوند كه امكان از سرگيري دوباره و ارتباط مجدد با سرويسدهنده به طور خودكار وجود داشته باشد. علاوه بر حذف SPOFهاي مذكور برنامههاي كاربرديي كه براي يك محيط HA نوشته ميشوند بايد مشخصات زير را داشته باشند:
امكان دور زدن خطا بر روي گره ديگر
امكان از سرگيري مجدد بدون دخالت اپراتور
توابع مخصوص نظارت براي تشخيث برپا بودن يا توقف برنامۀ كاربردي
روالهاي تعريف شده براي شروع، اجرا و پايان آن
روالهاي مناسب براي تهيۀ نسخۀ پشتيبان، بازيابي و ارتقاء
امكان ارتباط كاربر با آن، مستقل از اينكه بر روي كدام گره كلاستر در حال اجرا باشد.
تشخيص دهندۀ خرابي در كلاسترهاي با قابليت دسترسي بالا
در يك كلاستر HA بايد همۀ واحدها فعال باشند و در صورتي كه واحدي به دلايلي از كار افتاد بايد از مجموعۀ كلاستر خارج شود. براي تست فعاليت يا به اصطلاح زنده بودن يك واحد دو روش عمده وجود دارد:
ضربان قلب
ديسك Quorum
تكنيك ضربان قلب
در اين روش كه يكي از معروفترين تكنيكها براي تشخيص خرابي است، واحدها با ارسال سيگنالهايي به يكديگر از سلامت همديگر مطلع ميشوند. اين سيگنالها به صورت ضرباني و در هر فاصلۀ زماني مشخص در شبكه ارسال و دريافت ميشوند. فاصلۀ زماني بين سيگنالهاي ضربان وابسته به نوع كاربرد، ممكن است متغير باشد. در اينجا، هر واحد يك سيگنال به مفهوم «آيا تو زنده هستي؟» ارسال ميكند و واحد گيرنده در صورت سالم بودن پاسخ «من زنده هستم» را به او برميگرداند. در صورتي كه بعد از زمان مشخصي سيگنال پاسخ نيايد ميتوان نتيجه گرفت كه واحد مقصد دچار خرابي شده است. البته ممكن است واحد فرستنده اين عمل را در چند نوبت انجام دهد، زيرا ممكن است واحد گيرنده مشغول باشد و پاسخ را با تأخير ارسال كند. نوع ديگر پيادهسازي اين روش، تخصيص يك سرويسدهندۀ خاص براي عمل ضربان قلب است. در اين روش سيگنالهاي درخواست از طرف سرويسدهنده به همۀ واحدها ارسال ميشود و واحدها بايد پاسخ خود را در زمان مشخص به سرويسدهنده ارسال كنند. همانطور كه قبلاً اشاره شد در بعضي از سيستمهاي كلاستر يك شبكۀ مجزا باري سيگنال ضربان قلب نصب ميشود تا ترافيك آن به شبكۀ ارتباطي گرهها منتقل نشود. در شكل 2-5 يك نمونه از اين سيستم را مشاهده ميكنيد.
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 5 نمونهای از تشخیص خرابی با سیگنال ضربان قلب
مشكل بزرگي كه در اين تكنيك وجود دارد، عدم تشخيص خرابي در شبكه (قطع اتصالات) است. اين امر باعث ميشود كه اگر سيگنال ضربان به دليل قطع شدن شبكه به گرهاي نرسد، فرستنده تصور ميكند كه گره گيرنده دچار خرابي شده كه صحيح نيست. براي حل اين مشكل از روش ديسك Quorum استفاده ميكنند.
تکنيک ديسک Quorum
در اين روش يک ديسک يا قسمتي از يک ديسک بين همه گرهها به صورت مشترک وجود دارد. در اين حالت هر گره ميتواند به صورت مستقل به آن دسترسي پيدا کند و دادهاي را در آن بنويسد يا از آن بخواند. نحوه استفاده از آن براي تشخيص خرابي به اين صورت است که هر گره پيام زنده بودن خود را در ديسک مينويسد و بقيه ميتوانند آن را بخوانند. در اين صورت اگر در اثر قطع شدن شبکه امکان استفاده از سيگنال ضربان قلب وجود نداشته باشد، ميتوان با مراجعه به ديسک Quorum از سلامتي واحد مطلع شد. بنابراين تشخيص خرابي در اتصالات شبکه نيز فراهم ميشود.
معماري کلاسترهاي با قابليت دسترسيبالا
کلاسترهاي HA مانند ساير کلاسترها از مجموعهاي از کامپيوترهاي مستقل تشکيل ميشوند که توسط يک شبکه با پهناي باند زياد و تأخير کم به يکديگر متصل شدهاند و تمامي سيستم با وجود منابع متعدد، از ديد کاربر به صورت يک سيستم يکپارچه ديده ميشوند. هر يک از ايستگاههاي کاري در يک کلاستر به طور کلي دربردارنده يک يا چند پردازنده، مقداري حافظه فرّار و غير فرّار و رابطهاي خارجي از قبيل USB و PCI ميباشد. البته امکان استفاده از ديسک، ديسکهاي فشرده، صفحه کليد، درگاه سريال RS-223، صفحات نمايش و غیره نيز در همه يا برخي از گرههاي کلاستر وجود دارد [15].
واحدهاي موجود در کلاستر به منظور انجام محاسبات و آگاهي از وضعيت ساير واحدها، پيامهايي را از طريق شبکه ارتباطي، رد و بدل ميکنند. شبکه مورد بحث ممکن است يک شبکه اترنت سريع، Myrinet, SI, Infiniband و يا هر چیز دیگری باشد. دو پارامتر مهم در کيفيت شبکههاي کامپيوتري «پهناي باند» و «تأخير شبکه» است. پارامتر ديگري که در انتخاب شبکه بايد مد نظر قرار گيرد قيمت ابزارهاي شبکه ميباشد [15].
کلاسترهاي HA به منظور دستيابي به مشخصه HA علاوه بر تمهيدات عمومي کلاسترها، تدابير ويژهاي را در معماري رعايت ميکنند. به طور کلي از نظر پيکربندي ميتوان کلاسترهاي HA را به سه دسته تقسيم کرد که در ادامه به توضيح آنها خواهيم پرداخت [11].
پيکربندي فعال/ منتظر
در اين پيکربندي دو يا چند SPU به ديسک داده يکساني متصل هستند. در صورتي که يکي از اين SPUها دچار اشکال شود، SPU ديگر پشتيباني برنامه کاربرديي را که بر روي SPU اصلي در حال اجرا بود از سر ميگيرد. در اين نوع پيکربندي SPUي پشتيبان در حالت عادي يا در وضعيت منتظر است و يا برنامه کاربردي کم اهميتتري بر روي آن در حال اجرا ميباشد. ابزار Service Guard که محصولي از شرکت HP است، قابليت پيکربندي به اين نحو را دارا ميباشد. در اين نوع پيکربندي سيستم عامل و نرمافزار HA بر روی SPUي پشتيبان در حال اجرا هستند و در نتيجه نياز به راهاندازي SPUي پشتيباني نيست و سرعت بازيافت نسبتاً بالا است. در آرايش فعال/ منتظر ممکن است يک واحد از چند واحد پشتيباني به عمل آورد. لازم به ذکر است که انتقال بستهها و برنامههاي کاربردي از يک واحد به واحد ديگر تنها در حالت وقوع اشکال انجام نميپذيرد، بلکه گاهي اوقات مدير سيستم به منظور راحتي کار مديريت، ميتواند بستهها و کاربردها را از واحدي به واحد ديگر منتقل سازد. مزيت اصلي سيستمهاي فعال/منتظر اين است که کارايي در اثر بروز اشکال کاهش نمييابد.
پيکربندي فعال/ فعال
در اين پيکربندي دستهاي از واحدها در حال اجراي برنامه کاربردي با مأموريت بحراني ميباشند و تعدادي از آنها علاوهبر اجراي برنامه کاربردي خود، از ساير واحدها نيز پشتيباني ميکنند. واضح است که در صورت بروز اشکال کارايي سيستم در اين پيکربندي کاهش مييابد. در عوض ميزان بهرهبرداري از منابع سيستم در اين پيکربندي حداکثر ميباشد. براي مثال، ابزار Service Guard را به صورت فعال/ فعال نيز ميتوان پيکربندي کرد. در اين پيکربندي نيز به هر ديسک داده چند SPU متصل ميشود.
پيکربندي پايگاه داده موازي
در اين پيکربندي هر يک از واحدها به طور مجزا در حال اجراي برنامه کاربرد پايگاه داده يکساني هستند و به طور همزمان به يک پايگاه داده دسترسي دارند. در صورت بروز اشکال در يکي از واحدها تنها کافيست کاربر را به برنامه کاربردي مورد درخواست او بر روي يکي از واحدهاي ديگر متصل کنيم. به منظور فراهمسازي امکان دسترسي همزمان به پايگاه داده يکسان بايستي از نرمافزارهاي خاصي چون (OPS) Oracle Parallel Server استفاده نمود.
اتصالات و شبکه کلاستر
يکي ديگر از واحدهاي موجود در کلاسترها شبکه ارتباطي واحدهاست. همبندي اين شبکه همان روشهاي شناخته شده در پردازش موازي و شبکههاي کامپيوتري است. چنان که پيش از اين ذکر شد مبادله پيامهاي مربوط به سلامت واحدهاي کلاستر ممکن است از طريق شبکه مجزايي موسوم به شبکه ضربان قلب انجام پذيرد. در مورد پارامترهاي کيفيت و انواع شبکههاي به کار رفته در کلاسترها در بخش پيش، و در مورد بکارگيري افزونگي در شبکه در بخش «حذف نقاط منفرد بروز اشکال مربوط به شبکه» توضيح کافي ارائه شد.
مديريت و نظارت بر کلاستر
با استفاده از کلاسترهاي HA ميتوان SPOFها را حذف کرد. اما به هر حال اجزاي سيستم در زمانهاي نامشخصي از کار خواهند افتاد. يکي از مسائل مهمي که در طراحيهاي HA بايد مورد توجه قرار گيرد چگونگي تشخيص و مديريت اشکالهاست.
به منظور تشخيص اشکالها يا نقاط مستعد بروز اشکال در سيستم کلاستر، اجزاي مختلف سختافزاري و نرمافزاري سيستم بايد به طور مداوم تحت نظارت قرار داشته باشند و چون سيستمهاي کلاستر داراي پيچيدگيهاي بسياري هستند لذا بايد نظارت به صورت خودکار انجام شود. يک سيستم نظارت ايدهآل بايد به صورتي باشد که پيش از بروز خرابی بتواند نقاط مستعد اشکال را به مديران شبکه گوشزد کند تا به اين ترتيب مديران با استفاده از افزونگيهاي در نظر گرفته شده براي آن قسمت يا طي عمليات دور زدن خطا وظايف آن بخش را به ساير بخشها محول کرده و پس از تعويض يا تعمير قسمت مورد نظر، سيستم را به حالت قبلي برگردانند. با به کارگيري چنين ناظرهايي ميتواند مدت توقف سيستم را به حداقل رساند و قابليت دسترسي سيستم را افزايش داد.
مديران سيستم علاوه بر ابزارهاي نظارت مناسب، نياز به ابزارهاي مديريتي ديگري دارند تا به راحتي بتوانند سيستم را تحت کنترل داشته باشند و وظايف خود را انجام دهند. از جمله وظايف مديران سيستم ميتوان مديريت بار شبکه و واحدها، نصب نرمافزارها، مديريت پيکربندي کلاستر، مديريت امنيت کلاستر، تخصيص پردازنده، حافظه و ديسک به صورت دستي يا خودکار، ايجاد شناسه کاربر، تغيير پيکربندي در نرمافزارها، سيستم فايل و ابزارهاي جانبي، شبيهسازي تغييرات پيش از اعمال آنها به کلاستر، تهيه اسکريپتهاي مناسب به منظور خودکارسازي فرايندها، تعيين نحوه انجام فرايند دور زدن خطا، نظارت بر شبکه و بستههاي در حال اجرا بر روي واحدها، بازيابي سيستم در صورت بروز برخي مسائل پس از اعمال تغييرات در سيستم و پاسخ مناسب به اعلان وضعيتهاي غيرعادي از سوي ناظرها را برشمرد. همگي اين وظايف ابزار مناسبي را طلب ميکنند تا مديران بتوانند بهسادگي و بهطور سرراست تغييرات مورد نظرشان را به سيستم اعمال کنند.
انواع روشهاي نظارت
پيش از توضيح در مورد انواع ناظرها به توضيح دو مفهوم رويداد و وضعيت ميپردازيم. يک «رويداد» در لحظهاي از زمان اتفاق ميافتد، به طوري که در آن لحظه شرط از پيش تعيين شدهاي محقق ميشود. به عنوان مثال در صورتي که بخواهيم با پيوستن کاربر صدم به جمع کاربران سيستم کلاستر، مدير سيستم را مطلع کنيم در صدد تشخيص يک رويداد هستيم که در لحظه ورود کاربر صدم به وقوع ميپيوندد. «وضعيت» يک سيستم يا يک نرمافزار مفهومي است که ممکن است با گذشت زمان تغيير کند و بر مقدار يک يا چند پارامتر تأکيد دارد. به عنوان مثال اگر در طول يک روز تعداد کاربران سيستم را در فواصل ده دقيقهاي در يک فايل ذخيره کنيم اين فايل نشانگر وضعيت سيستم در طول روز خواهد بود. حال به بحث اصلي باز ميگرديم. به طور کلي ناظرها به دو دسته تقسيم ميشوند: نمايشگرهاي وضعيت سختافزار و ناظرهاي نرمافزار.
نمايشگرهاي وضعيت سختافزار
اين نمايشگرها معمولاً براي ديسکها، ابزارهاي شبکه و کارتهاي رابط مورد استفاده قرار ميگيرند و حالت فعلي آن بخش سختافزاري را نمايش ميدهند. سادهترين نوع اين نمايشگرها چراغ قرمز يا چشمک زني است که بروز اشکال را نشان ميدهند. استفاده از اين چراغها بسيار ساده است اما در يک محيط بزرگ که شامل ديسکها و ابزارهاي زيادي است بررسي مداوم اين چراغها خسته کننده و مشکل است.
بهعنوان مثال برای جايگزيني براي اين چراغها ميتوان اجزاي سختافزاري را طوري طراحي کرد که در صورت بروز اشکال، سيگنالي را ارسال کنند. يک کامپيوتر وظيفه دريافت اين سيگنالها را بر عهده دارد و تنها در صورت نياز به رفع اشکال، پرسنل را مطلع ميسازد. اما اين روش، روش مطمئن و کاملي نيست زيرا جزئي که دچار اشکال ميشود ممکن است ديگر قادر به ارسال سيگنال نباشد. راه حل ديگر سرکشي است. در اين روش به صورت متناوب اجزاي مختلف تحريک ميشوند و در صورتي که يک جزء به اين تحريک پاسخ ندهد بهعنوان يک جزء خراب شناخته ميشود.
ناظرهاي نرمافزار
اين ناظرها براي کنترل برنامههاي کاربردي (مثلاً يک پايگاه داده) به کار ميروند و هدف آنها اين است که تشخيص دهند يک برنامه کاربردي متوقف شده است يا نه؟ براي اين منظور يک برنامه نرمافزاري به طور پيوسته با برنامه کاربردي مورد نظر ارتباط برقرار ميکند. مثلاً محتواي يک جدول کوچک را که بين دو نرمافزار مشترک است ميخواند و در صورتي که برنامه کاربردي عمليات مورد انتظار را انجام نميداد با ارسال پيامهاي مناسب، مدير سيستم را مطلع ميکند. بعضي از اين ناظرها نقشهاي از ابزارهاي سيستم را نمايش ميدهند و مدير امکان مشاهده اطلاعات حالت هر يک از آنها را دارد. ايده چراغهاي هشداردهنده را ميتوان در اين محيطهاي GUI به وسيله نمايش آيکنهاي کوچکي در کنار ابزارها، شبيهسازي کرد.
سرويسهاي نظارت بر رويدادها (EMS)
سرويس نظارت بر رويدادها، امکان تعيين نحوه نظارت و استفاده از اطلاعات بهدستآمده از آن را در اختيار مديران سيستم قرار ميدهد. در يک محيط EMS امکان پيکربندي منابع نظارت، دستهاي از روشهاي هشدار دهنده بهمنظور ارسال پيامها در صورت بروز وضعيتهاي غيرعادي يا رسيدن به وضعيتهاي بحراني، و امکان ايجاد منابع جديد نظارت با استفاده از برنامههاي استاندارد API فراهم ميشود. ناظرهاي تعريف شده در محيط EMS وظيفه تشخيص رويدادهايي را بر عهده دارند که در يک محيط HA بايد مورد توجه واقع شوند. اين رويدادها شامل بروز اشکال در يک واحد، از دست رفتن قابليت دسترسيبالا (يعني تشخيص و يافتن يک SPOF) و يا کاهش تدريجي کيفيت يکي از واحدها ميباشد. شکل 2-6 چگونگی ارتباط ناظرها را نشان میدهد. EMS از اجزاي زير تشکيل ميشود:
برنامههاي کاربردي ناظر
رجيستري
نرمافزار پيکربندي کننده (Configuration Clients)
برنامههاي کاربردي هدف (Target Applications)
در شکل 2-7 اجزای EMS و نحوه ارتباط آنها با هم نشان داده شده است.
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 6 نمای ساده از نظارت
شکل STYLEREF 1 \s 2 SEQ شکل \* ARABIC \s 1 7 ارتباط اجزا مختلف EMS
ابزارهاي نظارت، برنامههايي هستند که حالت منابع سيستم را مشاهده کرده و در صورت بروز وضعيت غيرعادي، رجيستري را مطلع ميکنند. اين ناظرها در بازههاي زماني معيني توسط رجيستري فعال ميشوند. گاهي اوقات شرکتهاي سازنده به همراه اجزاي سختافزاري (مانند آرايه ديسکها، ابزارهاي شبکه، حافظهها) مانيتورهاي متناسب با آنها را نيز ارائه ميکنند که ميتوان از آنها در محيط EMS استفاده نمود. ابزارهاي نظارت امکان شناسايي اجزائي که رو به اشکال و خرابی حرکت ميکنند را نيز فراهم ميسازند. نرمافزار پيکربندي کننده، نرمافزاري است که امکان تعريف تقاضاهاي نظارت را به مديران ميدهد. يک تقاضاي نظارت از قسمتهاي زير تشکيل ميشود:
چه منابعي از سيستم بايد مورد نظارت قرار گيرند؟
چه رويدادهايي تحت نظارت باشند و در چه فواصل زماني رويدادها ديده شوند؟
در صورت وقوع رويداد، نحوه هشدار دادن چگونه باشد؟
هشدارها به کجا فرستاده شوند؟
انواع هشدارهاي به کار رفته در نظارت ميتواند بسيار متنوع باشد که به عنوان نمونه ميتوان به سه مورد زير اشاره کرد:
روشن کردن چراغهاي هشداردهنده قرمز رنگ
ارسال پيام به يک پيجر
نمايش پيغام بر روي صفحه نمايش کامپيوتر مدير سيستم
رجيستري وظيفه فعالسازي ناظرها را در زمانهاي معين به عهده دارد و به عنوان رابط بين سه جزء ديگر EMS عمل ميکند. وقتي يک تقاضاي نظارت در رجيستري ثبت ميشود اطلاعات آن در يک ليست نگهداري ميشود. در صورتي که يکي از ناظرها رويدادي را تشخيص دهد و به رجيستري اطلاع دهد، رجيستري برنامه کاربردي هدف را از وقوع رويداد باخبر ميکند.
برنامههاي کاربردي هدف، برنامههايي هستند که مديران سيستم به منظور دريافت هشدارها و احتمالاً مديريت رويداد مورد استفاده قرار ميدهند. اين برنامههاي کاربردي ميتوانند هر برنامهاي که با قراردادهاي EMS سازگار است، باشند. در برخي موارد ممکن است نتيجه نظارت به صورت فايلهاي ثبت (وقايع) به مدير سيستم ارائه شود. در زير تعدادي از ناظرهايي که به صورت مجزا در اختيار مشتريان قرار ميگيرد، اشاره شده است:
ناظر ديسک به منظور کسب اطلاعات در مورد فضاهاي منطقي و فيزيکي حافظه
ناظر کلاستر به منظور گزارش وضعيت کلاستر، واحدها و بستهها
ناظر شبکه به منظور گزارش وضعيت رابطهاي شبکه
ناظر سيستم به منظور کنترل بر تعداد برنامههاي کاربردي، اندازه صف کارها و فضاي خالي سيستم فايل
ناظر پايگاه داده به منظور کسب اطلاعات در مورد سرويسدهندههاي پايگاه داده (مثل Informix و Oracle)
سنجش ميزان قابليت دسترسيبالا
سنجش دسترسی پذیری به عنوان وسيلهاي براي تهيه گزارش از منابعي که منجر به اشکال در سيستم شدهاند و نيز به منظور تعيين ميزان دسترسي سيستم ميتواند در سيستمهاي HA مورد استفاده قرار گيرد. سنجش دسترسی پذیری به درستي رويدادهايي را که منجر به از کارافتادگي سيستم ميشوند را شناسايي ميکند و تاريخچه وقوع اشکالات سيستم را در اختيار مديران قرار ميدهد. سنجش دسترسیپذیری به عنوان يکي از مانيتورهاي EMS وظايف خود را انجام ميدهد.
تصوير يکپارچه سيستم (SSI)
تصوير يکپارچه، يک ويژگي از سيستم است که طبيعت غيريکنواخت و توزيع شده منابع موجود در سيستم را مخفي کرده و سيستم را به صورت يک منبع محاسباتي واحد به کاربران و کاربردها مينماياند. به عبارت ديگر کاربران يک سيستم SSI مستقل از اين که به طور فيزيکي به کدام واحد متصل شدهاند يک ديد کلي نسبت به منابع سيستم خواهند داشت. علاوه بر اين SSI امکان پوشاندن اشکالها از ديد کاربر، توزيع يکنواخت بار در سيستم و استفاده همزمان از منابع پردازشي سيستم را فراهم ميسازد. به طور کلي ميتوان اهداف SSI را به قرار زير برشمرد: شفافيت کامل مديريت منابع، کارايي مقياس پذير و در دسترس بودن سيستم براي کاربردهاي کاربران.
سرويسهاي ارائه شده توسط SSI
سرويسهاي ارائه شده توسط يک ميانافزار SSI را ميتوان به قرار زير برشمرد:
ارتباط با کلاستر از طريق نقطه منفرد: کاربران هنگام ارتباط برقرار کردن با کلاستر چنين ميپندارند که به يک ميزبان مجازي متصل ميشوند در حالي که سيستم کلاستر از واحدهاي ميزبان فيزيکي متعددي تشکيل شده است. سيستم به طور کاملاً شفاف تقاضاهاي ارتباط کاربران با کلاستر را بر روي واحدهاي مختلف سيستم توزيع ميکند تا بار سيستم را متعادل سازد.
رابط منفرد با کاربر: ارتباط با کاربر از طريق يک GUI منفرد صورت ميگيرد و کاربر دقيقاً همان ديد و احساسي را دارد که در کار با ايستگاههاي کاري منفرد دارد.
فضاي پروسه يکتا: همه پروسههاي کاربر در تمام کلاستر با يک شناسه منحصر به فرد شناخته ميشوند، اگر چه ممکن است پروسهها بر روي واحدهاي ديگر ارتباط برقرار کند و يا پروسههاي کوچکتري را ايجاد کند و بر روي همان واحد يا واحدهاي ديگر اجرا شوند.
فضاي حافظه يکتا: کاربر حافظه سيستم را به صورت يک حافظه متمرکز با حجم بسيار زياد مشاهده ميکند در حالي که در واقع ممکن است حافظهها در سيستم به صورت محلي و توزيع شده باشند.
فضاي ورودي/ خروجي منفرد: اين قابليت به هر واحد امکان انجام عمليات ورودي/ خروجي محلي و يا انجام عمليات ورودي/ خروجي بر روي ديسکها يا ادوات جانبي که بر روي يک واحد ديگر قرار دارند را ميدهد.
سلسله مراتب فايلي يکسان: کاربر پس از ورود، يک سيستم فايل واحد را ميبيند که سلسله مراتب فايلها و دايرکتوريها نيز به صورت يکپارچه است، اگر چه اين فايلها در واقع ممکن است بر روي ديسکهاي محلي يا سراسري و يا ساير ادوات نگهدارنده فايلها قرار داشته باشند.
شبکه مجازي منفرد: اگر چه ممکن است در سيستم شبکههاي متعددي وجود داشته باشند که به طور فيزيکي همگي به هم متصل نيستند اما هر واحد ميتواند با ساير واحدهاي شبکه ارتباط برقرار کند.
سيستم واحد مديريت کارها: به وسيله يک زمانبند، کارهاي رسيده از سوي کاربران براي اجرا بر روي يک يا چند واحد زمانبندي ميشوند. کارها ميتوانند به منظور اجراي گروهي، تعاملي و يا موازي زمان بندي شوند.
نقطه کنترل و مديريت واحد: تمام کلاستر و واحدها ميتوانند با استفاده از يک ابزار واسط گرافیکی (GUI) و از يک نقطه معين پيکربندي، مانيتور، تست و کنترل شوند.
تهيه نقطه مقابله و انتقال پروسهها: که به منظور بازيابي سيستم در حالت بروز اشکال و همچنين براي مديريت بار انجام ميشوند.
مزاياي تصوير يکپارچه از سيستم
مزاياي تصوير يکپارچه از سيستم به قرار زير است:
ارائه يک ديد ساده نسبت به همه منابع و فعاليتها در يک سيستم کلاستر
عدم نياز کاربران به دانستن اين که کاربرد آنها در کدام قسمت از کلاستر اجرا ميشود.
امکان استفاده از منابع سيستم به صورتي کاملاً شفاف و بدون نگراني در مورد محل فيزيکي آنها
امکان کار کردن کاربران با رابطها و دستورات آشنا
امکان مديريت کلاستر به صورت يک سيستم منفرد براي مديران سيستم
کاهش ريسک اشتباهات اپراتورها (به دليل آشنا بودن دستورات) و در نتيجه کارايي و قابليت اطمينان و قابليت دسترسي بالاتر از ديد کاربران
فراهم سازي امکان مديريت و کنترل به صورت متمرکز يا غير متمرکز و در نتيجه عدم احتياج به مديران بسيار ماهر براي سيستم
تسهيل مديريت سيستم و کاهش هزينه مالکيت سيستم
امکان ارسال و دريافت پيامها مستقل از محل
عدم نياز به زمان، مهارت و دانش زياد براي انجام کارها توسط برنامه نويسان سيستم و امکان کار کردن کارکنان موجود با سيستمهاي پيچيدهتر و بزرگتر
عامل مثبتي در جهت توسعه و پيشرفت ابزارهاي استاندارد.
البته بحث تصوير يکپارچه سيستم بسيار مفصل است و در محدوده اين پایاننامه نميگنجد. آنچه اهميت دارد توجه به اين نکته است که با وجود قابليت دسترسيبالا و تحملپذیری اشکال امکان فراهم شدن تصوير يکپارچه محقق خواهد شد و کاربر از اشکالهاي احتمالي مطلع نميشود.
همان طور که قبلاً عنوان شد، ما در اين پروژه سيستمهاي محاسبات ابری مبتنی بر مراکز داده که از روش مبادله پيام استفاده ميکنند را مورد بررسي قرار خواهيم داد. اين محيطها به علت ويژگي خاص خود که ارتباط کارهای موازي فقط از طريق پيامهاي رد و بدل شده انجام ميپذيرد، داراي توانمنديهاي بالقوه براي انجام عمليات بازيافت ميباشند. از اين رو در فصل آينده قراردادهاي مختلف بازيافت را در اين گونه محيطها معرفي ميکنيم.
فصل سوم
روالهاي تحملپذیر اشکال براي رسيدن به قابليت دسترسي بالا در سيستمهاي مبادله پيام
کارهای انجام شده اخیر
کارهاي انجام شده اخیر
نقطه مقابله و بازيافت يکي از تکنيکهاي معمول براي مديريت اشکال در سيستمهاي محاسبات کلاستري است. در روشهاي کلاسيک مطالعات، بيشتر بر روي نحوه نقطه مقابله گرفتن و يا کم کردن سربار ناشي از اين روش بوده است و بر همين اساس تکنيکها و الگوريتمهاي مختلفي ارائه شده است. همچنين طول بازه نقطه مقابله نقش عمدهاي در کارايي سيستمهاي تحملپذير اشکال دارد. يکي از مسائلي که در روشهاي پيشين بسيار مورد توجه قرار ميگرفت، مسئله مواجه شدن با اشکالها، بازيافت و بازگشت به عقب بوده است.
يکي از مزاياي نقطه مقابله هماهنگ، بازگشت به آخرين نقطه مقابله گرفته شده ميباشد. و اين امر باعث سهولت الگوريتم بازيافت ميشود. بنابراين در هر لحظه سيستم تنها به آخرين نقطه مقابله گرفته شده هر پروسه نياز دارد و به اين ترتيب نياز به دسترسي به حافظه جانبي، زياد ندارد. نتيجتا سربار کمي به سيستم تحميل ميشود. با اين وجود، اگر يک سيستم در طول بازه نقطه مقابله گرفته شده تا ابتداي نقطه مقابله بعدي دچار نقص نشود، اين عمل زائد بوده و سرباري را به سيستم تحميل کرده است. بهعبارت ديگر تکنيکهاي تحملپذيري در برابر اشکالها در روشهاي کلاسيک به صورت واکنشي عمل کرده و سيستم به صورت کورکورانه در ابتداي هر بازه زماني آزمون نقطه مقابله را انجام ميدهد. بديهي است که در صورت بروز اشکال، سيستم به حالت تعمير رفته و تا درست شدن اشکال تمام سيستم کلاستر بايد متوقف شود.
در دهههاي گذشته پيشرفتهاي خوبي در زمينه پيشبيني اشکال حاصل شده است. براي نمونه، اغلب وسايل سختافزاري امروزي با خصيصههاي مختلفي طراحي شدهاند تا بتوانند يک ويژگي را در طول زمان کارکرد وسيله مورد نظر اندازهگيري نمايند. اين اندازهها در طول زمان استاندارد شدهاند و به راحتي و بدون نياز به وسيله سختافزاري خاصي قابل دسترسي است. برای نمونه اين ويژگيها را ميتوان به سرعت فن سيستم، دماي سيستم، دماي پردازنده و سرعت فن آن، مقدار بار روي پردازنده، مقدار حافظه تخصيص داده شده، ورودي و خروجي شبکه يک واحد محاسباتي و وضيعت حافظه پنهان اشاره کرد. روشهاي يادگيري و آماري مبتني بر تکنيکهاي احتمال براي شناسايي محل (زماني و مکاني) اشکالها ارائه شده است. دقتهاي بالايي با استفاده از اين قبيل روشها گزارش شده است [54 و55].
تکنيکهاي تحملپذیر در برابر اشکال پيشکنشي، مبتني برپيشبيني اشکال براي دستيابي به دسترسيبالا براي کاربردهاي بحراني- امن اتخاذ گرديده است. اخيرا در محاسبات کلاستري از اين تکنيکها استفاده ميشود تا بتوان بدون آن که منتظر وقوع اشکال در سيستم بود تا به صورت واکنشي عمل کرد، سيستم اشکال را پيشبيني کند و به صورت پيشکنشي عمل نموده تا در صورت بروز اشکال سيستم به کار خود ادامه دهد. در ادامه فصل به بررسي بعضي از اين تحقيقات ميپردازيم.
مروري بر روشهاي پيشبيني اشکال
در بسياري از مقالات مطالعه شده بهطور خلاصه به پنج روش عمده در پيشبيني اشکال اشاره شده است که عبارتند از
حد آستانه مبتني بر آماري
تحليل سري زمان
کلاسهبندي مبتني بر قانون
مدلهاي شبکه بيزي
مدلهاي پردازش شبه مارکوف.
کلاسهبندي و اشکالهاي ريشه آماری
کلاسهبندي اشکال ميتواند در راهنمايي، به خصوص در ارتباط با تصميمگيري در مورد ممانعت، تحملپذيري، شناسايي و از بين بردن اشکال موثر باشد [56].
عمدتا اشکال ريشه به شش دسته تقسيم ميشود که عبارتند از
سختافزاري
نرمافزاري
شبکه
محيطي
انساني
ناشناخته.
در مطالعات نشان داده شده است که مهمترين اشکالها، اشکالهاي نرمافزاري و سختافزاري هستند که عمدتا به خرابي منجر ميشوند[57]. همچنين گزارش شده است که اشکالهاي سختافزاري بيشتر مربوط به واحد پردازش مرکزي، ديسک و حافظه است. براي مثال بارکاري بسيار زياد بر روي واحد پردازش مرکزي مسبب بيشتراشکالهاي اين قسمت از گرههاي محاسباتي است.
مدل آماري زمان ميان خرابيها
ميانگين زماني مابين خرابيها (MTBF) يکي از اصليترين مقياسهاي ارزيابي قابليت دستيابي يک سيستم کلاستر است و مدل آماري زمان بين خرابيها را براي پيشبيني خرابیهاي رسيده در سيستمهاي کلاستري مورد استفاده قرار ميگيرد. با اين وجود اين روش يک متد موثر در مدل مدت زمان طولاني براي ساختن مدل آماري نميباشد. مطالعات بسياري [58 و 59] به بررسي و تحليل زمان مابين خرابيها پرداختهاند و نتايج نشان ميدهند که توزيع weibull يک برآورد مناسب از تابع وقوع اشکال به نظر ميرسد. البته ميتوان به توزيعهاي ديگر مانند، توزيع نمايي، گاما و lognormal نيز در همين راستا اشاره نمود که در مقياس يک گره يا کل سيستم کلاستر خرابيها را بهخوبي مدل کردهاند.
جمعآوري و پيشپردازش دادههاي مرتبط با خرابي
جمعآوري دادههاي مرتبط با خرابي
اطلاعات مربوط به يک سيستم به طور کلي به دو دسته آرشيوهاي رويدادو گزارشات فعال سيستم يا بطور خلاصه SAR تقسيم ميشوند. دادههاي SAR و آرشيوهاي رويداد وضعيت موقتي محيطي و سلامت سيستم را تشکيل ميدهند. دادههاي SAR ميتوانند از طريق APIهاي سيستم عامل و آرشيوهاي رويداد از طرقع مکانيسمهاي آرشيو کردن به صورت خودکار يا به صورت دستي با کمک دسترسي سطح مديريت بهدست آيند [57].
پيشپردازش دادههاي مرتبط با خرابيها
تهيه و جمعآوري دادهها به دو طريق SAR و آرشيو رويداد برا ي طراحان کار سختي به نظر نميرسد . با اين حال پردازش کردن اين دادههاي خام بسيار دشوارتر است. براي مثال سيستمهاي کلاستر مختلف معمولا داراي فرمت مخصوص به خود در جمعآوري دادهها دارند و يا يک رويداد واحد ممکن است بارها تکرار شود. حتي بسياري از آرشيوها حاوي پيغامهايي از زبانهاي طبيعيهستند و عملا استخراج دانش کليدي را بدون تحليل شماتيک غيرممکن ميسازد به همين دليل در [60] به مطالعه بررسي نحوه توليد فايلهاي آرشيو خوشساختپرداخته شده است.
بر اساس متدهاي فعلي روي دادههاي پيشپردازش شده براي پيشبيني خرابيها، در [61، 62 و63] روند کاري زير براي پيشپردازش کردن رکوردهاي توليد شده خودکار پيشنهاد شده است
تعريف يک فرمت رکورد خوشساخت براي مقايسه آسان رکوردها با هم؛
فيلتر کردن رکوردها به منظور کاهش دادههايي که بايد آناليز شوند با حذف رويدادهاي تکراري در يک پنجره زماني مشخص؛
استخراج اطلاعات حياتياز مجموعه دادههاي منطبق شده و دوباره سازماندهي کردن اطلاعات در يک فرمت خوشساخت از پيش تعريف شده؛
دستهبندي رکوردهاي دوباره سازماندهي شده براي سهولت آناليز دادهها.
بعد از اجراي اين روند، مجموعههايي از رويدادهاي اشکال سازماندهي شده خوشساخت مختصرو جامع به دست ميآيد که باعث ميشود پيشبيني اشکال با دقت بهتري انجام شود.
تکنيکهاي پيشبيني اشکال
در اين قسمت به معرفي چند تکنيک که در طول سالها براي پيشبيني اشکال تدوين شدهاند ميپردازيم
حدآستانه مبتني بر آمار
اين تکنيک مبتني بر تعداد آستانه اشکالهايي است که به صورت پيشرو باعث از کار افتادن قريبالوقوع ميشود. در [63] نشان داده شده است که نرخ توليد اشکال با يک حد آستانه با خرابيهاي قريبالوقوع در رابطه است و همچنين بهرهوري بالا به معني احتمال بالاي خرابي در سيستم است.
در اين تکنيکها عمدتا براي هر رويداد يک حد آستانه مشخص ميکنند که ممکن است به مرور زمان اين حد آستانه تغيير نمايد.
آناليز سريهاي زماني
آناليز سريهاي زماني ميتواند در پيشبيني اشکالهاي مربوط به از کارافتادگي و فرسودگي منابع سيستمها به وسيله پيشبيني متغيرهاي پيوسته زماني مانند بهرهوري پردازنده، مقدار حافظه تخصيص داده شده و ترافيک شبکه مفيد باشد. مدلهاي سريهاي زماني متعددي مانند Mean، Last، BM(p)، AR(p)، MA(p) و ARMA(p,q) براي پيشبيني اشکالها استخراج شده است که در [3] کارآيي هر يک براي پيشبيني اشکال با هم مقايسه شدهاند. در [64] نشان داده شده است که ARMA از ساير مدلهاي ديگر براي پيشبيني متغيرهاي پيوسته زماني در سيستمهاي کلاستر بهتر جواب داده است.
کلاسهبندي مبتني بر قانون
بر خلاف آناليز سريهاي زماني که مبتني بر پيشبيني متغيرهاي پيوسته زماني است، اين روش براي پيشبيني رويدادهاي کمياباستفاده ميشود. ايده اصلي اين متد عبارتست از
يافتن انواعتمام رويدادهايي که تا رويدادهاي مقصد متناوبا در يک پنجره زماني مشخص رخ ميدهند؛
معتبرسازي مجموعه رويدادهايي که منحصرا رويدادهاي مقصد را توصيف مينمايند مجموعه رويدادهايي که منحصرا رويدادهاي مقصد را توصيف مينمايند؛
ترکيب مجموعههاي رويدادها با هم به منظور توليد يک سيستم احتمالي مبتني بر قانون براي پيشبيني کردن اشکالها.
با توجه به نتايج بدست آمده در[3] اين تکنيک ميتواند رويدادهاي کمياب بحراني را تا دقت 70% بر اساس استخراج قانونهاي دادههاي مرتبط، در يک پنجره زماني مشخص پيشبيني نمايد. همچنين، اضافه کردن پارامتر هشداردهنده پنجره در آناليزها نتايج کلاسهبندي مبتني بر قانون دقت پيشبينيها بيشتر بهبود ميبخشد.
مدلهاي شبکه بيزي
شبکههاي بيزي، BN، عمدتا براي ارائه دانش و استدلال با شرط عدم قطعيت استفاده ميشود. در فرم کلي، ساختار يک BN يک گراف بدون دور مستقيم است. عدم قطيعت وابستگي درونيمتغيرها به وسيله جدول احتمالي شرطي Pr(xi|pi) به ازاي هر گره xi و هر والد xi مانند Pi تعريف ميشود. ساختار گرافي BN اجازه ميدهد تا يک تعريف غيرمبهماز وابستگي دروني متغيرها وجود داشته باشد. اين موضوع و همچنين فرض وابستگي دروني منجر به يک ويژگي بسيار مهم BN ميشود: توزيع احتمالي توام از X=(xi,…,xn) ميتواند به صورت ضرب توزيعهاي شرطي در يک شبکه نوشته شود پس
استراتژي مدلهاي شبکه بيزي به کار رفته در پيشبيني اشکالها به صورت
تعريف چند متغير از آرشيوهاي اشکال فيلتر شده و آرشيوها SAR، (لازم به ذکر است که اين متغيرها ميتواند برچسب زماني رويداد، شماره شناسايي رويداد يا کلاس رويداد باشد)؛
آموزش ساختار گراف تا گرهها متغيرها را تعريف نمايند و احتمالات را از دادهها تخمين بزنند (که اين قسمت به دو زير قسمت سنجش يک مقدار و الگوريتم جستجوي فضاي ممکن BN براي يافتن يک متغير با بالاترين مقدار تقسيم ميشود)؛
پيشبيني رويدادها
ميباشد.
پيشبيني احتمال اشکال در سيستمهاي توزیعی در [3] مورد بررسي قرار گرفته است و نشان داده شده است که BN ميتواند به صورت موثري در يافتن روابط آماري متغيرهاي يک گره و يا يک تعداد از گرهها در سیستم پردازش توزیعی استفاده شود.
مدلهاي پردازش شبه مارکوف
مدلهاي پردازش شبه مارکوف، SMP، عمدتا براي پيشبيني اشکالها مورد استفاده قرار ميگيرند. در اين مدل متغيرها از حالت i به حالت j، تنها مبتني بر بودن در حالت i و توقف موقتي در اين حالت است. SMP را با سه احتمال Si، Pi,j و Di,j(t) ميتوان تصميمگيري کرد که Si احتمال اوليه حالت i، Pi,j اختمال تغيير حالت i به حالت j و توزيع احتمال Di,j(t) نمايانگر مدت زمان تغيير حالت i به j ميباشد.
عموما، آموزشمدل SMP شامل سه مرحله است که عبارتند از
ساختن مجموعه حالات SMP؛
تعريف زمان تغيير حالت Di,j(t) و تخمين احتمالات تغيير حالت Pi,j؛
محاسبه PF(t) که هشداردهنده اشکال پيشبيني شده است که بايد از يک مقدار حد آستانه تجاوز کند.
در [65] نشان داده شده است که پيشبينيکننده تا دقت بالاي 86% با هزينه محاسباتي ناچيز نيز رسيده است. اين تکنيک عليرغم پيچيدگي متوسطش در پيادهسازي، دقت بسيار بالايي را براي پيشبيني اشکال در کلاسترها به وجود ميآورد.
مطالعات انجام گرفته
لن و همکارانش در [66] با استفاده از سرويس جمعآوري دادهها موسوم به CMCS در سيستمهاي BlueGene/L که دادههاي RAS را تهيه مينمود يک پيشبيني کننده اشکال فراآموزشيرا براي سيستمهاي BlueGene/L طراحي کردند. دادههاي RAS شامل دادههاي مربوط به قابليت سرويسدهي، دستيابي و اعتماد است که در کمتر از يک ميلي ثانيه از هر گره موجود در اين کلاستر بهدست ميآيد.
حجم بالاي فايل آرشيو بهدست آمده از BlueGene/L در مدت زمان حدود 15 ماه بالغ بر 5 گيگا بايت ميباشد که اين حجم بالا، پردازش داده و همچنين کشف الگوي اشکال را مشکل ميسازد.
پيشبينيکنندهاي که دراين مقاله طراحي شده است داراي سه فاز ميباشد که عبارت است از
پيشپردازش رويدادها (که فايل آرشيو مربوط به دادههاي RAS را تميز و دستهبندي ميکند)؛
پيدا کردن الگوهاي اشکال با استفاده از متدهاي مختلف آموزش بر روي دادههاي پيشپردازش شده؛
پيشبيني فرا-آموزشي به صورت اجتماع متدهاي مختلف پيشبيني براي تقويت دقت پيشبيني کننده.
هدف نهايي اين مقاله، تهيه يک چارچوب کار است که بتواند به صورت خودکار دادههاي RAS بدست آمده توسط سرويس CMCS را پردازش کند و الگوي اشکال را براي پيشبيني سيستمهاي BlueGene بهدست آورد. به عبارت ديگر سرويس CMCS به عنوان يک سيستم مانيتورينگ سيستم و کشف اشکال بهکار گرفته شده است. در اين مقاله اطلاعات گرفته شده عمدتا سرعت فن، ولتاژ منبع تغديه، وضيعت گره، مادربورد گره و کارتهاي شبکه ارتباطي گرهها و بوردها بوده است و رويدادهايي که شامل اخطار يا اطلاعرساني و هشدار بوده است در مرحله پيشپردازش دادهها تشخيص و حذف ميشوند. در اين مقاله سعي شده است که اطلاعات RAS را بر اساس شدتشان به شش دسته
اطلاعاتي
هشداري
شديد
اشکال
مرگبار
خرابی
تقسيم نمايد.
البته يکي از نقصهاي ذکر شده سرويس CMCS اين است که اطلاعات مربوط به نگهداري زمانبندي، آغاز مجدد، تعمير در RAS نيامده است و همين کار را قدري مشکل ميسازد. يکي از چالشهاي اصلي در اين مقاله دستهبندي رويدادها، فشردهسازي زماني در يک گره (محل) و فشردهسازي مکاني در گرههاي ديگر است.
در قسمت فرا-آموزش نيز، از تکنيک عموميسازي مبتني بر پشته استفاده شده است که به صورت تطبيقي متد مبتني بر آمار را با متد مبتني بر قانون مجتمع ميسازد و به دقت حدود 80% در پنجره زماني مشخص رسيده است. سپس در مقالات [67، 68، 69 و70] با فرض مدل کردن يک پيشبينيکننده با دقت مشخص يک مدل مبتني بر هزينه را ارائه ميدهد. براي اين منظور زمان اجراي پروسهها را همانند تکنيک کلاسيک آزمون نقطه مقابلهگیری هماهنگ دورهاي به بازههاي مساوي تقسيم ميکند و در ابتداي هربازه (نقطه تصميمگيري)، هر پروسه اطلاعات مربوط به وقوع خرابی گره خود را به گسيلدهنده ارسال مينمايد. گسيلدهنده با استفاده از اين اطلاعات و مدل هزينه پيشنهادي ارائه شده بهترين عمل را انتخاب و به همه پروسهها اعلام ميدارد. اين عمل ميتواند مهاجرت پروسه، نقطه مقابله و يا اجراي بلافاصل برنامه باشد. در انتهاي مقاله [70] يک پنجره به نام پنجره پرش معرفي شده است تا جريمه حاصل از عمل اجراي بلافاصل برنامه زياد نشود. همچنين کار تشخيص اشکال به صورت مرکزي بر عهده سرويس گسيلدهنده است که با توجه به افزايش تعداد گرههاي محاسباتي سربار زيادي به سيستم تحميل ميشود. همچنين در اين روش جريمه اشکالهاي منفي کاذب که در فصل 6 در مورد آن توضيح داده خواهد شد، در نظر گرفته نشده است. دراين روش تا حدود 30% بهبود گزارش شده است.
لیانگ و همکارانش در [61] سه متد پيشبيني اشکال موثر ساده را معرفي کردهاند و ادعا ميکنند تا 80% از اشکالهاي حافظه و شبکه ارتباطي، 47% از اشکالهاي ورودي-خروجي برنامه کاربردي را اين متدها ميتوانند پيشبيني نمايند و در ادامه اين مقاله گزارش دادهاند که 50% از اشکالهاي شبکه و 35% از اشکالهاي ورودي-خروجي برنامه کاربردي در يک پنجره زماني يک و نيم ساعت قبل از وقوع خرابیها اتفاق ميافتد. به علاوه، 6% از گرههاي موجود در کلاستر سبب ايجاد 61% از اشکالهاي شبکه ميشوند و کارهايي که رويدادهاي غير مرگبار را گزارش ميدهند به دنبالشان يک رويداد مرگبار اتفاق ميافتد.
اين مشاهدات بيانگر آن است که پيشبيني موثر اشکالها ميتواند براي استراتژيهاي در زمان اجراي تحملپذیر اشکال بسيار کارآمد باشد. براي اين منظور ابتدا به معرفي آرشيو رويدادهاي دادههاي RAS پرداخته که از طريق سرويس CMCS تهيه شده است و سپس در طي سه مرحله استخراج و دستهبندي رويدادهاي اشکال، فشردهسازي مکاني و فشردهسازي زماني در مکانهاي مختلف اشکال عمليات پيشپردازش بر روي دادههاي RAS را انجام ميدهد و متدهاي پيشبيني اشکال مبتني بر چولگي مکاني و مبتني بر TBF با استفاده از رخداد رويدادهاي غيرمرگبار را معرفي مينمايد.
اولینر در [71] ابتدا يک پيشزمينه از آزمون نقطه مقابلهگیری هماهنگ دورهاي را معرفي و در ادامه به آناليز آن ميپردازد. براي اين منظور سناريوهاي محتمل را بررسي و مقدار زمان ذخيره/بههدررفته هرکدام را محاسبه مينمايد. سپس با يک الگوريتم برخط، نقطه مقابله گیری هماهنگ را با استفاده از تابع توزيع اشکال آناليز کرده و نتيجه ميگيرد که آناليزهاي بدترين حالت و حالت مورد انتظار ازنقطه مقابله گیری با دوره زماني مشخص کارآيي بهتري دارند.
اولینر در [72] يک زمانبند کار پيشنهاد مينمايد که قادر به پيشبيني اشکال است و براي ارزيابي اين الگوريتم يک شبيهساز طراحي مينمايد که از آرشيو سه سيستم BlueGene/L که در طي چهار ماه و شش ماه تهيه شدهاند استفاده مينمايد. نشان ميدهد که حتي با دقت پيشبيني حدود 10% نيز کارآيي سيستم را به طور قابل توجهي افزايش داده است. لن در [73] از اين شبيهساز استفاده کرده است و يک مکانيسم زمانبند ديگر را معرفي کرده است و نتايج آن را با [72] مقايسه ميکند. براي مکانيسم مدل هزينه نيز از [70] و پيشبيني کننده FARS [68] استفاده مينمايد.
ناگارجان [4] نيز با استفاده از تکنيک مجازيسازی سيستم عامل Xen يک مکانيسم مخفي از چشم کاربر و خودکار تحملپذیر اشکال به صورت پيشکنشي معرفي مينمايد. در اين پيادهسازي از مکانيسم مهاجرت زنده Xen براي يک سيستم عامل مهمان استفاده مينمايد تا يک کار MPI را از يک گره که مشکوک به خرابي است به يک گره سالم بدون وقفه در اجراي MPI انجام ميدهد. سعي شده که مهاجرت مبتني بر موازنه بار باشد و بنابراين در اين پيادهسازي از گرههاي يدکي استفاده نشده است. براي اين منظور از Ganglia [74] استفاده کرده است که يک سرويس مانيتورينگ سيستمهاي موازي است که بر اساس پارامترهاي مصرف پردازش، حافظه و شبکه، پيشبيني اشکال را انجام داده و پروسه را بر روي گرهاي مهاجرت ميدهد که کمترين بار را داشته باشد و هنوز ميزبان يک ماشين مجازي مهمان نبوده باشد. البته شرايط امکان مهاجرت مانند مقدار حافظه لازم نيز قبل از مهاجرت بررسي ميشود. لازم به ذکر است که با استفاده از مکانيسم مهاجرت زنده، سربار ناشي از اين عمل به مقدار قابل ملاحظهاي کاهش مييابد. دراين گزارش براي هر واحد مانيتوريتک يک حد آستانه استاتيک که از طريق آزمايشات بدست آمده در نظر گرفته ميشود و در صورتي که مقدار آن واحد از مقدار حد آستانه مربوطه بيشتر شود، پيشبيني اشکال مينمايد. براي اين منظور از يک فايل استفاده ميکند که بازه سالم بودن هر جزء مانيتور شده را نشان ميدهد و يک حد آستانه پايين و/يا بالا براي هر پارامتر تعيين ميکند.
گو [75 و 76] چارچوب کاري مديريت اشکال مبتني بر پيشبيني را معرفي ميکند و يک مدل پيشبيني موزون را طراحي ميکند تا بتواند به صورت بهينه هزينه جريمه/پاداش پيشبيني را محاسبه نمايد و از روشهاي کلاسهبندي درخت تصميمگيري مبتني بر استريم استفاده مينمايد. اين کلاسهبندي داراي سه فاز نرمال، هشدار و اشکال است.
موتو [77] از کتابخانه MPICH-P4MPD [78] و همچنين ابزار مانيتوريگ Ganglia استفاده کرده است وبه آن مکانيسم تزريق اشکال اضافه کرده است. البته در اين مقاله بهجاي مهاجرت پروسهها از تعويض رکوردهاي بين گرهها استفاده کرده است و يک مدل هزينه براي هر عمل پيشنهاد داده است. دراين مقاله تابع توزيع اشکال به صورت توزيع يکنواخت براي خطاي پردازش، فيزيکي و شبکه در نظر گرفته شده است.
در [79] مشکل آزمون نقطه مقابلهگیری هماهنگ دورهای عموما افزایش زمان ساعت دیوار بیان شده است که هزینه اجرای برنامه که معمولا زمان آن است بالا میبرد. در این مقاله به سایر هزینهها مانند ذخیرهساز SAN و شبکه اشارهای نشده و در ادامه به معرفی روش افزونگی سطح پروسه پرداخته است. در این مقاله از خواص و مزایای روشهای واکنشی و پیشکنشی صحبت به میان آماده است و زمان اجرا را تنها عامل سربار معرفی کرده و با طراحی سیستم جدید سعی در حل مشکل کرده است. این سیستم شامل قسمتهای
سررویس پیشبینی کننده اشکال،
برنامه پسزمینه کنترل PLR،
سرویس سیاستگذاری تحملپذیر اشکال،
پروتکل پسزمینه اشکال،
ماژول نقطه مقابلهگیر
است. معرفی سیستم پیشکنشی و زیر ساختها آن از نکات قابل توجه این مقاله است ولی به تشریح نحوه عملکرد هر جز نپرداخته که با چه الگوریتمی باید عمل کنند و تنها به ذکر وظیفه هر قسمت بسنده شده است.
در [80]، نویسندگان به توضیح راهکار و نحوه پیادهسازی یک محیط کاری برای فراهم آوردن زمینه مناسب برای عمل تحملپذیر اشکال به صورت پیشکنشی از طریق ترکیب نقطه آزمون مقابلهگیری و مهاجرت پرداختهاند. به عبارت دیگر هدف این مقاله، به وجود آوردن بستری است که بتواند اجزا محیط موازی (از قبیل پروسه، ماشین مجازی) را از روی یک گره در حال خراب یا مشکوک به خرابی در آینده منتقل کرد. در این مقاله بر روی چهار روش برای شناسایی اشکال بحث شده است که عبارتند از:
الگوریتمهای حساس به سطح آستانه حسگر،
الگوریتمهای فیلتر دادههای حسگر برای اطلاعرسانی،
الگوریتمهای همبستگی زمان کوتاه،
الگوریتمهای مبتنی بر پایگاه دادهای از تاریخچه.
این روشها میتواند به صورت ترکیبی با یکدیگر نیز برای پیشبینی اشکال مورد استفاده قرار گیرند. در این مقاله هزینه بازیافت و برگشت رو به عقب تحلیل نشده است. همچنین الگوریتم عدم برخورد با اشکال نیز به صورت کلی تبیین شده است. به عنوان مثال، با استفاده از روش پیشنهادی ممکن است حالتی رخ دهد که مهاجرتهای مکرر سبب کاهش تعداد گرههای محاسباتی روشن فعال شود. مکان مهاجرت اصولا توسط نرمافزار مدیریت ganglia با هدف توزیع بار انجام میگیرد. این امر سبب میگردد تا پارامترهای تحملپذیر اشکال در تصمیمگیری موقعیت گره مقصد موثر نباشد.
مالک و همکارانش [81] به اعتماد پذیر بودن سیستم به VM به صورت تطبیقی اشاره کردند. این اعتماد بعد از هر سیکل محاسباتی با زمان تغییر میکند. در الگوریتم چنانچه ضریب قابلیت اعتماد گرهای از یک حد آستانه کمتر شد، از لیست گرههای فعال سیستم کنار گذاشته شده و گره یدکی جدیدی به سیستم اضافه میگردد و جای آن را در محاسبات آتی میگیرد. در این مقاله اشکالها در سیستمهای بلادرنگ به دو دسته تقسیم شدهاند: یا خرابی فیزیکی صورت میپذیرد و گرهای که ماشین مجازی بر روی آن قرار دارد از کار خارج میشود و یا اینکه نتیجه محاسباتی مورد نظر در زمان مقرر تحویل و حاضر نمیشود. در حقیقت در کارهای بلادرنگ یک زمان مشخص که مهلت زمان اتمام کار است به عنوان برچسب به هر کار نسبت داده شده است. در این مدلها اکثرا از افزونگی یا کپی کردن استفاده میشود. که در اجرای یک برنامه، کپی ماشین مجازی یک سربار اضافی است که به سیستم اجبار میشود. یکی از چالشهای پیشرو مکان استقرار این کپیهاست که در مقاله اشارهای به این موضوع نشده است. در سیستم پیشنهادی (AFTRC)، از سربار زمانی مهاجرت و تعداد گرههای یدکی صحبتی به میان نیامده است.
در [82]، بالا به بررسی سیستم HAPROXY میپردازد. در این سیستم چنانچه، ماشین مجازی یا پایگاه داده یک گره دچار اشکال شد، گره پشیتبانی شروع به کار مینماید و چنانچه گره پشیبان دچار مشکل گردید، گره اول کار را ادامه میدهد. در این مقاله چالشهایی ممکن است به وجود بیاید که به بررسی آن پرداخته نشده است. به طور مثال، چنانچه هر دو گره با هم دچار اشکال شوند، سیستم چه رویکردی را اتخاذ مینماید؟ یا بازگشت به عقب از چه سیاستی تبعیت میکند، آیا از گره یدکی استفاده شده است؟ در صورت مثبت بودن پاسخ، تعداد این گرهها به چه میزان است؟
هدف مقاله [83]، معرفی VFT برای کاهش زمان در دسترس نبودن سیستم ابر با هدف برداشتن مساله SPOF در NameNode سیستمهای Hadoop است. برای این منظور، یک کپی از فایل سیستم HDFS بر روی میزبانهای مختلف انجام میپذیرد تا هم توان مصرفی کاهش پیدا کند و هم تحملپذیری اشکال میسر شود. همچنین این سیاست، گرههای اضافی را خاموش مینماید تا نه تنها کمتر دچار اشکالی شود، بلکه توان مصرفی سیستم نیز کاهش یابد. در این مقاله ازXen VM برای مهاجرت دادن ماشینهای مجازی و OpenNebula برای مدیریت مهاجرت استفاده شده است. الگوریتم مهاجرت زنده نیز بر اساس الگوریتم ژنیک بهبود یافته تعریف شده است. سیستم تشخیص اشکال به صورت ضربان قلب میباشد. برای کم کردن تعداد آزمون نقطه مقابلهگیری از کپی ماشینهای مجازی استفاده شده است. الگوریتم پیشنهادی به طور کل به این صورت است که:
اگر primary Node باشد که خراب شده، ماشین مجازی بر روی SecondaryNode قرار میگیرد.
اگر primary Node نباشد و بر روی Secondary Node ماشین مجازی قرار گرفته شده باشد، بهترین ماشین به عنوان مقصد VM در نظر گرفته میشود.
مدل خرابی گرهها یا نحوه تزریق اشکال به سیستم مشخص نیست. این مکانیسم از افزونگیهای زیادی استفاده میکند و گرههای یدکی و یا آزاد در آن مشخص نشده است. در این مقاله توضیح داده نشده که اگر یک گره خراب دوباره به سیستم باز گردد چه اتفاقی میافتد.
در [84]، نویسندگان به معرفی سیستم مانیتورینگ مقاوم در برابر اشکال و قابل اعتماد پرداخته اند. براین منظور، یک مدلbyzantine معرفی شده است تا بتواند ماشین حالت سیستم را مدل کند. . هدف مقاله در حقیقت راه حلی برای مانیتور کردن امن یک سیستم ابر است که با f کپی همزمان کار کند و حداقل δ اشکال همزمان را بتواند تحمل کند. الگوریتم کلی به این صورت است که در حال عادی پیامها و رویدادها فیلتر میشوند (ضروریها، غیرضروریها و اولویتهایشان) ولی در حالت وجود اشکال همه چیز مستقیما گزارش میشوند.
سان و همکاران در [85] با استفاده از مدل کردن سیستم، راه حلی برای پیدا کردن بهترین نقطه مقابلهگیری هماهنگ و بهترین کپی برداری از ماشین مجازیهای ارائه مینمایند. در این مقاله راه هریک از این استراتژیها به صورت جدا با الگوریتم هیبریدی از این دو مقایسه میشود. در این مقاله فرض شده است که اشکالها گذرا هستند بدین معنی که بعد از گذشت MTTR گره به سیستم بر میگردد و اشکالها بلافاصله قابل شناسایی و تشخیص هستند. همچنین اشکالها از یک تابع توزیع پیروی میکنند. در طول بازه تعمیر نیز، اشکال رخ نمیدهد. به علاوه، سیستم خراب شده همیشه میتواند با اخرین نقطه مقابله خود بر گردد که این زمان همیشه کمتر از طول بازه نقطه مقابلهگیری است. سربار نقطه مقابلهگیری در این مقاله، مقدار زمانی صرف شده سیستم برای انجام آزمون نقطه مقابلهگیریهایی که بعد از آن اشکالی به وجود نیامده تعریف شده است. بازه بهینه انجام نقطه مقابلهگیری با این فرضیات ∆T=Tchk.1-F(t)f(t)0.5 به دست آمده است که در Tchk مقدار زمان لازم برای انجام نقطه مقابلهگیری و F(t) تابع توزیع تجمعی اشکال است. علت متفاوت این فرمول با فرمول یانگ در [93]، تفاوت در فرضیات اولیه مساله است. همچنین در این مقاله به مساله کپی برداری بهینه نیز پرداخته شده است. این چالشها عبارتند از تعیین فایلهای واجد شرایط برای کپی برداری از آنها، تعداد و محل استقرار کپیها. نتایج این مقاله نشان میدهد که آزمون نقطه مقابلهگیری هماهنگ دورای از الگوریتم کپی برداری سربار بیشتری به سیستم تحمیل میکند. تکنیکهای به کار رفته در این مقاله به صورت واکنشی بوده و هیچ گونه پیشبینی اشکالی در آن لحاظ نشده است.
ژو و همکارانش [86] راهکاری برای کاهش سربار آزمون نقطه مقابلهگیری ارائه کردند. آنها مشکل اصلی این روش را اتلاف زمانهای نقطهمقابلهگیری در مواقعی که سیستم به روال کلی خود در حال انجام است معرفی مینمایند و ادعا مینمایند که در برنامه حافظهبر سبب کاهش کارآیی سیستم حتی بیشتر از 200 % شده است. راهکار ارائه شده در این مقاله به صورت است که در ابتدای هر بازه یک آزمون نقطه مقابلهگیری از حالت سیستم گرفته شود و این حالت ماشین مجازی به ماشین مجازی پشتیبان منتقل شود . برای کاهش ترافیک از نقطه مقابلهگیری افزایشی استفاده شده است. به این ترتیب که تنها تغییرات ماشینهای مجازی به پشتیبانشان انتقال یابد. برای این منظور مکانیسمهای تعقیب حافظه با استفاده از shadow page table (SPT) برای آزمون نقطه مقابلهگیری افزایشی پیشنهاد شده است. در حقیقت با انجام این مکانیسم، حجم ارسالها به صورت قابل توجهی کاهش مییابد. در این مقاله به مدیریت ماشینهای مجازی برای مهاجرت و تعیین طول بازه زمانی نقطه مقابلهگیری اشارهای نشده است و تنها به موضوع کاهش سربار این عمل پرداخته شده است. در حقیقت تنها سعی شده که جدا از وقوع یا عدم وقوع اشکال در یک گره، سربار ناشی از به روز رسانی ماشینهای مجازی پشتیبان کاهش یابد.
هدف مقاله [87]، به انجام رسیدن کارها ضمن رعایت کیفیت سرویس (که در اینجا منظور مهلت زمان اتمام منظور میباشد) است. روش کار در این مقاله که بر روی 2 مرکز داده واقعی در چین صورت گرفته به این ترتیب است که از مکانسیم N-Copy در دو ابر غیرهمگن استفاده شده و بر اساس پارامتر مهلت زمان اجرای برنامه به آنها مقداری از توان محاسباتی یک گره تخصیص داده شده است. هر کپی از کارها بر روی یک ماشین مجازی جدا قرار گرفته است و بر روی 3 مدل سیستم عامل مختلف اجرا میشوند. در این مقاله به بحث در مورد مکان هر کپی این عمل اشارهای نشده است. نتایج این الگوریتم وجود سربار زیاد به سیستم را نشان میدهد.
فصل پنجم
روش پيشنهادي
منابع
Google Trends, http://www.google.com/trends?q=Grid+Computing%2C+vitualization%2C+Cloud+computing.
Sriram, Ilango, Ali Khajeh-Hosseini, "Research agenda in cloud technologies." CoRR, 1001.3259 (2010).
R. K. Sahoo, A. Oliner, I. Rish, M. Gupta, J. E. Moreira, S. Ma, R. Vilalta, A. Sivasubramaniam, "Critical Event Prediction for Proactive Management in Large-Scale Computer Clusters", KDD’03, PP 426-435, August 2003.
A. B. Nagarajan, F. Mueller, C. Engelmann, S. L. Scott, "Proactive Fault tolerance for HPC with Xen virtualization", ICS’07, PP 23-32, Seattle, WA, USA, June 2007.
Duda, "The Effects of Checkpointing on Program Execution Time", Information Processing Letters, Vol. 16, No. 5, PP 221-229, June 1983.
A. Oliner, R. K. Sahoo, J. E. Moreira, M. Gupta, "Performance Implications of periodic Checkpointing on Large-Scale Cluster Systems", IPDPS’05, April 2005.
P. Lemarinier, A. Bouteiller, G. Krawezik, F. Cappello, "Coordinated Checkpoint versus Message Logging for Fault Tolerance MPI", International Journal of High Performance Computing and Networking, Vol. 2, No. 2/3/4, PP. 146-155, 2004.
Health Application Programming Interface (HAPI), http://www.renci.org/software/hapi/.
Hardware Monitoring by Lm-Sensors, http://secure.netroedge.com/lm78/info.html.
R. Vilalta, S. Ma, "Predicting Rare Events in Temporal Domains Using Associative Classification Rules", Technical Report, IBM Research, T. J. Watson Research Center, Yorktown Heights, Vol. 41, No 3, 2002.
P.S. Weygant, "Clusters for High Availability: A Primer of HP Solutions", Hewlett-Parker Company, Packard Company, Prentice Hall, Inc., 2nd ed., 2001.
B. Johnson, "Design & Analysis of Fault-Tolerant Digital Systems", Addison-Wesley Longman Publishing Co. Inc, 1989.
L. Sherman, "Choosing the Right Availability Solution: High Avaialbility Clusters & Fault Tolerant Systems", White Paper, Stratus Computer Inc., 1998.
"Stategies for Fault-Tolerant Computing", Microsoft Corporation, White Paper, 2003.
H. Shah, "Fault Tolerance in Cluster Computing Enviroment", CSCI 555 Research Paper Assignment, University of South California, 2002.
B. Randell, "System Structure for Software Fault Tolerance", IEEE Trans. Softw. Engin. 1, 2, PP 220–232, 1975.
M. Chandy, L. Lamport, "Distributed Snapshots: Determining Global States of Distributed Systems", ACM Trans Comput. Syst. 31, 1, PP 63–75, 1985.
D.L. Russell, "State Restoration in Systems of Communicating Processes", IEEE Trans. Softw. Eng., 6, 2, PP 183–194, 1980.
R. Strom, S. Yemini, "Optimistic Recovery in Distributed Systems", ACM Trans. Comp. Sys., 3, 3, PP 204–226, 1985.
L. Alvisi, "Understanding the Message Logging Paradigm for Masking Process Crashes", Ph.D. Thesis, Cornell university, Department of Computer Science, 1996.
E. N. Elnozahy, W. Zwaenepoel, "on the Use and Implementing of Message Passing", In Digest of Papers, FTCS-24, the Twenty Fourth International Symposium on Fault Tolerance Computing, PP 298-307, 1994.
R. Pausch, "Adding Input and Output to the Transactional Model", Ph.D. Thesis, Carnegie Mellon University, Department of Computer Science, 1988.
D.B. Johnson, W. Zwaenpoe, W. "Recovery in Distributed Systems Using Optimistic Message Logging and Checkpointing", J. Algorithms, 11, 3, PP 462–491, 1990.
A. Borg, W.Blau, W. Graetsch, F. Hermann, W. Oberle, "Fault Tolerance under UNIX ", ACM Trans. Comput. Syst., 34, 3, PP 1–24, 1989.
B.W. Lampson, H.E. Sturgis, "Crash Recovery in a Distributed Data Storage System", Technical Report, Xerox Palo Alto Research Center, 1979.
Y.M. Wang, "Space Reclamation for Uncoordinated Checkpointing in Message-Passing Systems", Ph.D. Thesis, University of Illinois, Department of Computer Science, 1993.
B. Bhargava, S.R. Lian, "Independent Checkpointing and Concurrent Rollback for Recovery—an Optimistic Approach", In Proceedings of Seventh Symposium on Reliable Distributed Systems, 3–12, 1988.
Y.M. Wang, "Consistent Global Checkpoints that Contain a Set of Local Checkpoints", IEEE Trans. Comp. 46, 4, PP 456–468, 1997.
Y. Tamir, C. H. Sequin, "Error Recovery in Multicomputers Using Global Checkpoints", In Proceedings of the International Conference on Parallel Processing, PP 32–41, 1984.
E.N. Elnozahy, D.B.Johnson, W.Zwaenepoel, "The Performance of Consistent Checkpointing", In Proceedings of Eleventh Symposium on Reliable Distributed Systems, PP 39–47, 1992.
Z. Tong R.Y. Kain, W.T. Tsai, "Rollback Recovery in Distributed Systems Using Loosely Synchronized Clocks", IEEE Trans. Parallel and Distributed Syst., 3, 2, PP 246–251, 1992.
R. Koo, S. Toueg, "Checkpointing and Rollback Recovery for Distributed Systems", IEEE Trans. Softw. Eng., 13, 1, PP 23–31, 1987.
R.H. Netzer, J. Xu, "Necessary and Sufficient Conditions for Consistent Global Snapshots", IEEE Trans. Parallel and Distributed Syst., 6, 2, PP 165–169, 1995.
L. Lamport, "Time, Clocks, and the Ordering of Events in a Distributed System", Com. ACM, 21, 7, PP 588–565, 1978.
J.M. Helary, A. Mostefaoui, R.H. Netzer, M. Raynal, "Preventing Useless Checkpoints in Distributed Computations", In Proceedings of Sixteenth Symposium on Reliable Distributed Systems, PP 183–190, 1997.
L. Alvisi, E.N. Elnozahy, S. Rao, S.A. Husain, A.D. Mel "An Analysis of Communication-Induced Checkpointing", In Digest of Papers, FTCS-29, The Twenty Nineth Annual International Symposium on Fault-Tolerant Computing (Madison,Wisconsin), PP 242–249, 1999.
J.F. Bartlett, "A Non Stop Kernel", In Proceedings of the Eighth ACM Symposium on Operating Systems Principles, PP 22–29, 1981.
R. Baldoni, F. Quaglia, B. Ciciani, "AVP-Accordant Checkpointing Protocol Preventing Useless Checkpoints", In Proceedings of Seventeenth Symposium on Reliable Distributed Systems, PP 61–67, 1998.
D. Briatico, A. Ciuffoletti, L. Simoncini "A Distributed Domino-Effect Free Recovery Algorithm", In IEEE International Symposium on Reliability, Distributed Software, and Databases, PP 207–215, 1984.
J.S. Plank, M. Beck, G. Kingsley, K. Li, "Libckpt: Transparent Checkpointing under UNIX," In Proceedings of the USENIX, PP 213–223, 1995.
Y. Huang, Y.M. Wang, "Why Optimistic Message Logging Has not Been Used in Telecommunication Systems", In Digest of Papers, FTCS-25, the Twenty Fifth Annual International Symposium on Fault-Tolerant Computing, PP 459– 463, 1995.
J.P. Banatre, M. Banatre, G. Muller, "Ensuring Data Security and Integrity with a Fast Stable Storage", In Proceedings of the Fourth Conference on Data Engineering, PP 285–293. 1988.
D.B. Johnson, W. Zwaenpoe, "Sender-Based Message Logging", In Digest of Papers, FTCS-17, the Seventeenth Annual International Symposium on Fault-Tolerant Computing, PP 14–19, 1987.
T.Y. Juang, S. Venkatesan, "Crash Recovery with Little Overhead", In Proceedings of the 11th International Conference on Distributed Computing Systems, PP 454–461, 1991.
E.N. Elnozahy, "Manetho: Fault Tolerance in Distributed Systems Using Rollback-Recovery and Process Replication", Ph.D. Thesis, Rice University, Department of Computer Science, 1993.
A. Sistla, J. Welch, "Efficient Distributed Recovery Using Message Logging", In Proceedings of the 8th Annual ACM Symposium on Principles of Distributed Computing (PODC), PP 223–238, 1989.
M. Elnozahy, L. Alvisi, Y. M. Wang, D. B. Johnson, "A Survey of Rollback-Recovery Protocols in Message Passing Systems,” Technical Report CMU-CS-96- 181, School of Comp. Scie., Carnegie Mellon University, Pittsburgh, PA, USA, October 1996.
J.S. Plank, "Efficient Checkpointing on MIMD Architectures", Ph.D. Thesis, Princeton University, Department of Computer Science, 1993.
C.C. Li, W.K. Fuchs, "CATCH: Compiler Assisted Techniques for Checkpointing", In Digest of Papers, FTCS-20, the Twentieth Annual, International Symposium on Fault-Tolerant Computing, PP 74–81, 1990.
M. Chandy, C.V. Ramamoorthy, "Rollback and Recovery Strategies for Computer programs", IEEE Trans. Comp., 21, 6, PP 546–556, 1972.
M. Ruffin, "KITLOG: A Generic Logging Service", In Proceedings of Eleventh Symposium on Reliable Distributed Systems, PP 139–148, 1992.
L.M. Silva, "Checkpointing Mechanisms for Scientific Parallel Applications", Ph.D. Thesis, University of Coimbra, Department of Computer Science, 1997.
S. Rao, L. Alvisi, H.M. Vin, "The Cost of Recovery in Message Logging Protocols", In Proceedings of Seventeenth Symposium on Reliable Distributed Systems, PP 10–18, 1998.
G. M. Weiss, H. Hirsh, "Learning to Predict Rare Events in Categorical Time-Series Data", AAAI Workshop, PP 359-363, 1998.
G. M. Weiss, H. Hirsh, "Learning to Predict Rare Events in Event Sequences", KDD, 1998.
B. Rasndell, "On Failures and Faults", In Formal Methods (FME), vol. 2805, LCNS, PP 18-39, 2003.
B. Schroeder, G. Gibson, "A Large Study of Failures in HPC Systems", In Proceedings of International Conf. on Dependable Systems and Networks, June 2006
T. Heath, R. P. Martin, T. D. Nguyen, "Improving Cluster Availability Using Workstation Validation", In Proceedings of ACM SIGMETRICS, 2002.
D. Nurmi, J. Brevik, R Wolski, "Modeling Machine Availability in Enterprise and Wide-Area Distributed Computing Environments", In Proceedings of EuroPar’05, August 2005.
F. Salfner, S. Tschirpke, M. Malek, "Comprehensive LogFiles for Autonomic Systems", In Proceedings of 9th IEEE Workshop on Fault-Tolerant Parallel Distributed and Network-Centric Systems ,2004.
Y. Liang, Y. Zhang, A. Sivasubramaniam, M. Jette, R. Sahoo, "BlueGene/L Failure Analysis and Prediction Models", In Proceedings of IEEE International Conference on Dependable System and Network (DSN '06), PP 425-434, 2006.
Y. Liang, Y. Zhang, A. Sivasubramaniam, R. Sahoo, J. Moreira, M. Gupta, "Filtering Failure Logs for a BlueGene/L Prototype", In Proceedings of the International Conference on Dependable Systems and Networks (DSN), 2005.
F. A. Nassar, D. M. Andrews, "A Methodology for Analysis of failure Prediction Data", CRC Technical Report No. 85-20, Stanford University, Polo Alto, CA, 1985.
B. Zou, Q. Liu, "ARMA-Based Traffic Forecasting and Overload Detection of Network", J. of Comp. Eng., 32, 12, PP 1645-1652, 2004.
X. Ren, S. Lee, R. Eigenmann, S. Bagchi, "Resource Failure Prediction in Fine-Grained CycleSharing Systems", In proceedings of the 15th IEEE International Syposium on High Performance Distributed Computing, June 2006
P. Gujrati, Y. Li, Z. Lan, R. Thakur, J. White, "Exploring Meta-Learning to Improve Failure Prediction in Supercomputing Clusters", In Proceedings of ICPP'07, 2007.
Z. Lan, Y. Li, "Adaptive Fault Management of Parallel Applications for High Performance Computing", IEEE Trans. on Comp., 57, 12, PP 1647-1660, December 2008.
Y. Li, P. Gujrati, Z. Lan, X. Sun, "Fault-Driven Re-Scheduling for Improving System-Level Fault Resilience", ICPP’07, 2007.
Y. Li, Z. Lan, P. Gujrati, X. Sun, "Fault-Aware Runtime Strategies for High Performance Computing", IEEE Trans. on Parallel and Distributed Systems, 99, 2, 2008.
Y. Li, Z. Lan, "Exploit Failure Prediction for Adaptive Fault-Tolerance in Cluster Computing", CCGrid06, 1, PP 531-538, Singapore, May 2006.
A. J. Oliner, L. Rudolph, R. K. Sahoo, "Cooperative Checkpointing Theory", In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS), Rhodes Island, Greece, April 2006.
A. J. Oliner, R. K. Sahoo, J. E. Moreira, M. Gupta, A. Sivasubramaniam, "Fault-Aware Job Scheduling for BlueGene/L Systems", In Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS), Santa Fe, NM, April 2004.
Y. Li, Z. Lan, P. Gujrati, X. Sun, "Fault-Aware Runtime Strategies for High Performance Computing", IEEE Trans. on Parallel and Distributed Systems , 20, 4, PP 460-473, 2009.
Ganglia, http://ganglia.sourceforge.net/.
X. Gu, S. Papadimitriou, P. S. Yu, S. Chang, "Toward Predictive Failure Management for Distributed Stream Processing Systems", IEEE International Conf. on Distributed Computing Systems (ICDCS), Beijing, China, June 2008.
X. Gu, S. Papadimitriou, P. S. Yu, S. Chang, "Online Failure Forecast for Fault-Tolerant Data Stream Processing", IEEE International Conf. on Data Eng. (ICDE), Cancun, Mexico, April 2008.
H. Jitsumoto, T. Endo, S. Matsuoka, "ABARIS: An Adaptable Fault Detection/Recovery Component Framework for MPIs", 12th IEEE Workshop on Dependable Parallel, Distributed and Network-Centric Systems DPDNS '07, CA, March 2007.
MPICH-P4MPD, http://mpich-v.lri.fr/.
Egwutuoha, Ifeanyi P., Shiping Chen, David Levy, and Bran Selic. "A Fault Tolerance Framework for High Performance Computing in Cloud." In Cluster, Cloud and Grid Computing (CCGrid), 2012 12th IEEE/ACM International Symposium on, pp. 709-710. IEEE, 2012.
Litvinova, Antonina, Christian Engelmann, and Stephen L. Scott. "A proactive fault tolerance framework for high-performance computing." In Proceedings of the 9th IASTED International Conference on Parallel and Distributed Computing and Networks (PDCN), pp. 16-18. 2010.
Malik, Sheheryar, and Fabrice Huet. "Adaptive Fault Tolerance in Real Time Cloud Computing." In Services (SERVICES), 2011 IEEE World Congress on, pp. 280-287. IEEE, 2011.
Bala, Anju, and Inderveer Chana. "Fault Tolerance-Challenges, Techniques and Implementation in Cloud Computing." IJCSI International Journal of Computer Science Issues 9, no. 1 (2012).
Yang, Chao-Tung, Wei-Li Chou, Ching-Hsien Hsu, and Alfredo Cuzzocrea. "On improvement of cloud virtual machine availability with virtualization fault tolerance mechanism." In Cloud Computing Technology and Science (CloudCom), 2011 IEEE Third International Conference on, pp. 122-129. IEEE, 2011.
Padhy, Smruti, Diego Kreutz, António Casimiro, and Marcelo Pasin. "Trustworthy and resilient monitoring system for cloud infrastructures." InProceedings of the Workshop on Posters and Demos Track, p. 3. ACM, 2011.
Sun, Dawei, Guiran Chang, Changsheng Miao, and Xingwei Wang. "Building a High Serviceability Model by Checkpointing and Replication Strategy in Cloud Computing Environments." In Distributed Computing Systems Workshops (ICDCSW), 2012 32nd International Conference on, pp. 578-587. IEEE, 2012.
Zhu, Jun, Zhefu Jiang, Zhen Xiao, and Xiaoming Li. "Optimizing the performance of virtual machine synchronization for fault tolerance." Computers, IEEE Transactions on 60, no. 12 (2011): 1718-1729.
Garraghan, Peter, Paul Townend, and Jie Xu. "Real-Time Fault-Tolerance in Federated Cloud Environments." In Object/Component/Service-Oriented Real-Time Distributed Computing Workshops (ISORCW), 2012 15th IEEE International Symposium on, pp. 118-123. IEEE, 2012.
M. L. Shooman, "Probabilistic Reliability: An Enineering Approach", McGraw-Hill, NY 1968.
D. P. Siewiorek, R. S. Swarz, "The Theory and Practice of Reliable System Design", Digital Press, Bedford, Mass., 1982.
J. W. Young, "A First Order Approximation to the Optimal Checkpoint Interval", Comm. ACM, 17, 9, PP 530-531, 1974.
Buyya, Rajkumar, Rajiv Ranjan, and Rodrigo N. Calheiros. "Modeling and simulation of scalable Cloud computing environments and the CloudSim toolkit: Challenges and opportunities." In High Performance Computing & Simulation, 2009. HPCS'09. International Conference on, pp. 1-11. IEEE, 2009.
Calheiros, Rodrigo N., Rajiv Ranjan, Anton Beloglazov, César AF De Rose, and Rajkumar Buyya. "CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms."Software: Practice and Experience 41, no. 1 (2011): 23-50.
Buyya, Rajkumar, and Manzur Murshed. "Gridsim: A toolkit for the modeling and simulation of distributed resource management and scheduling for grid computing." Concurrency and Computation: Practice and Experience 14, no. 13‐15 (2003): 1175-1220.
ABSTRACT
Design & Implementation of a Fault-aware Job Scheduler in Cloud Computing Systems
BY
ROSHANAK LAKISHIRAZ
With increasing market to use Cloud computing technology, huge data-centers are existed to execute calculations fast. One of the main challenges in cloud computing is facing to faults when a time-consuming parallel program runs. To overcome this problem, checkpointing or logging techniques are proposed. However, these techniques typically have considerable overheads. Besides, they operate reactively.
In this thesis, we propose an approach which more than recovery and rolling back for fault tolerance, can detect the computing nodes that are more likely to experience faults, and migrates their allocated virtual machines into safe computing nodes. Furthermore, using Bayes’ rule and proposed cost models, the algorithm avoid excess checkpointing with purpose of improve time executions of running programs. By simulation, we show that proposed method ameliorate the execution time up to 78% in cases and take advantage of less resource.
Keywords: Cloud Computing Systems, Fault Prediction, Cost-Based Model, Bayes’ Rules, Proactive, Coordinated Checkpoint, Migration.
Shiraz UniversityFaculty of Engineering Computer Engineering and IT DepartmentMaster of Science ThesisDesign & Implementation of a Fault-aware Job Scheduler in Cloud Computing SystemsBy:Roshanak LakishirazSupervisor:Dr. Farshad KhunjushMarch 2013