چکیده
تحمل خطا از جمله مسائل مهم و ضروری در محیط ابری برای تحویل خدمات قابل اطمینان است. پیاده سازی آن به دلیل زیرساخت پویای سرویس ها، پیکربندی های پیچیده و وابستگی های مختلفی که در ابر وجود دارد دشوار است. تحقیقات گسترده ای به طور پیوسته برای پیاده سازی تحمل خطا در ابر انجام شده است. پیاده سازی یک سیاست تحمل خطا در فضای ابر نه تنها نیازمند دانش ویژه ای از حوزه کاربری آن است بلکه همچنین تحلیل جامعی از فناوری های مختلف و شایع الزامی است. برخی از مطالعات اخیر معماری های مختلف تحمل خطا و روش های پیشنهادی را برای محیط ابر مورد بررسی قرار می دهند اما از برخی جهات محدود هستند. این مقاله توضیح نظام مند و جامعی از انواع مختلف خطاها، دلایل ایجاد آن ها و روش های متعدد تحمل خطا در ابر را ارائه می دهد. این مقاله تحقیق وسیعی از ساختارهای مختلف تحمل خطا در زمینه روش های اصلی، کاربرد خطا و دیگر ویژگی های کلیدی آن ها ارائه می کند. یک تحلیل مقایسه ای از ساختارهای بررسی نیز شده در این مقاله گنجانده شده است. برای اولین بار و براساس تحلیل ساختارهای مختلف تحمل خطا که در این مقاله به آن اشاره شده است و همچنین در تحقیقات قبلی منتشر شده است، یک دیدگاه کمی درباره کاربرد این ساختارها ارائه می شود. مشاهده می شود که تکنیک های شروع مجدد نقطه بررسی و تحمل خطا با محوریت تکرار برای هدف قرار دادن خطاها در محیط ابر مورد استفاده قرار می گیرند.
1. مقدمه
رایانش ابری به عنوان یک الگوی رایانشی سرویس دهی براساس تقاضا به وجود آمده است و برای کاربران در مقیاس کوچک و همچنین کاربردهای علمی و تجاری در مقیاس بزرگ سودآوری فوق العاده ای دارد. رایانش ابری به عنوان مدلی برای دسترسی فراگیر، مبتنی بر تقاضا و راحت شبکه به مخزن مشترکی از منابع رایانشی قابل پیکربندی (مانند شبکه ها، سرورها، ذخیره کننده ها، برنامه ها و سرویس ها) تعریف می شود که به سرعت و با حدقل فعالیت مدیریتی یا تعامل با ارائه دهنده خدمات قابل تدارک و انتشار است [1]. دسترسی براساس تقاضا، مستقل بودن منابع، انعطاف پذیری سریع و همواره در دسترس بودن از جمله مشخصات اصلی رایانش ابری است [2]. منابع ابری با استفاده از پروتکل های استاندارد (IAM، OAuth، OpenID و غیره برای احراز هویت ؛ AMI، OVF، SOAP، REST و غیره برای مهاجرت داده ها و حجم کار [3]) برای ایجاد پذیرش بیشتر خدمات ابری ارائه می شوند. علاوه بر این، محیط ابری چابکی بیشتر کسب و کار را با هزینه کمتر ارائه می کند که سبب جذب کاربران بیشتر می شود. اخیراً پژوهشی بر روی 433 شرکت انجام شده است که تعداد پاسخ دهندگان بیش از 1000 کارمند است؛ نتایج به دست آمده از این تحقیق نشان می دهد که 95 درصد از پاسخ دهندگان از محیط ابری استفاده می کنند [4]. Kazarian و همکاران [5] گزارش داده اند که 91 درصد از متخصصان فناوری اطلاعات (IT) در بیش از 3000 کسب و کار کوچک و متوسط فضای ابری را پذیرفته اند. با پیش بینی مزیت های گسترده فضای ابری، بسیاری از شرکت های شناخته شده حوزه فناوری اطلاعات (مانند آمازون، مایکروسافت، IBM، گوگل، یاهو و غیره) رقابت شدیدی برای ارائه خدمات ابری دارند.
7. نتیجه گیری
تحمل خطا یکی از مسائل مهم در محیط های رایانش ابری بوده است. زیرساخت پویا و پیکربندی پیچیده از جمله دلایل اصلی این موضوع است. در این مقاله انواع مختلف خطا (همراه با دلایل آن ها) و روش های متعدد و متنوع تحمل خطا در محیط رایانش ابری به صورت نظام مند مورد بحث قرار گرفته است. همچنین ساختارهای مهم تحمل خطا نیز براساس روش پایه ای آن ها، قابلیت به کارگیری خطا و ویژگی های اصلی مورد بررسی قرار گرفته است. بر این اساس، نتیجه گیری های ذیل به دست آمده است:
• محققان در راستای بررسی خطاهای کرش (تصادفی) در عوض خطاهای بیزانسی انگیزه بیشتری پیدا کرده اند.
• روش های واکنشی تحمل خطا اغلب بیشتر از روش های فعال به کار گرفته می شوند.
• سربارهای بیشتر و پیاده سازی های پیچیده به عنوان دلایل اصلی بی میلی محققان نسبت به روش های فعال مشاهده شده است.
• تکرار پر کاربردترین تکنیک تحمل خطا است و پس از آن به ترتیب روش های آغاز مجدد بازرسی و مهاجرت کار قرار دارند.
• در بسیاری از ساختارها، آغاز مجدد بازرسی و مهاجرت کار به عنوان تکنیک های کمکی همراه با تکرار مورد استفاده قرار می گیرند.
Abstract
Fault tolerance is among the most imperative issues in cloud to deliver reliable services. It is difficult to implement due to dynamic service infrastructure, complex configurations and various interdependencies existing in cloud. Extensive research efforts are consistently being made to implement the fault tolerance in cloud. Implementation of a fault tolerance policy in cloud not only needs specific knowledge of its application domain, but a comprehensive analysis of the background and various prevalent techniques also. Some recent surveys try to assimilate the various fault tolerance architectures and approaches proposed for cloud environment but seem to be limited on some accounts. This paper gives a systematic and comprehensive elucidation of different fault types, their causes and various fault tolerance approaches used in cloud. The paper presents a broad survey of various fault tolerance frameworks in the context of their basic approaches, fault applicability, and other key features. A comparative analysis of the surveyed frameworks is also included in the paper. For the first time, on the basis of an analysis of various fault tolerance frameworks cited in the present paper as well as included in the recently published prime surveys, a quantified view on their applicability is presented. It is observed that primarily the checkpoint-restart and replication oriented fault tolerance techniques are used to target the crash faults in cloud.
1. Introduction
Cloud computing has been prominently existing as an on-demand computing service paradigm and immensely benefiting the small-scale users as well as large-scale commercial and scientific applications. It is defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction [1]. On-demand access, resource autonomy, rapid elasticity and always-on availability are the primary characteristics of cloud computing [2]. Cloud resources are provisioned using standard protocols (IAM, OAuth, OpenID, etc. for authentication; and AMI, OVF, SOAP, REST, etc. for data and workload migration [3]) to create the wider acceptability of cloud services. Besides this, cloud offers greater business agility at the reduced cost which further attracts a vast user base. A recent survey conducted over 433 enterprise respondents containing 1000+ employees reveals that 95% of the respondents are using cloud [4]. Kazarian et al. [5] reported 91% adoption of cloud by the IT professionals in more than 3000 small and midsize businesses. Anticipating its vast benefits, distinguished IT organizations (such as Amazon, Microsoft, IBM, Google, Yahoo, etc.) are into the foray to deliver cloud services.
7. Conclusions
Fault tolerance has been one of the major issues in cloud computing environments. Dynamic infrastructure and complex configuration are among the key reasons. In this paper, different fault types (along with their causes) and various fault tolerance approaches in cloud computing have been discussed in a systematic manner. Eminent fault tolerance frameworks have also been surveyed in terms of their basic approach, fault applicability and key features. Following conclusions have been made:
• Researchers are more motivated towards addressing crash faults rather than byzantine faults.
• Reactive fault tolerance methods are more often applied rather than proactive ones.
• Higher overheads and complex implementations are observed as the core reasons behind the reluctance of researchers towards proactive approaches.
• Replication is the most applied fault tolerance technique followed by checkpoint restart and job migration respectively.
• In many frameworks, checkpoint restart and job migration are used as auxiliary techniques with replication.
چکیده
1. مقدمه
1-1 انگیزه تحقیق
1-2 حوزه تحقیق
1-3 طراحی و سازمان دهی تحقیق
2. طبقه بندی خطا و معماری تحمل خطا در فضای ابری
2-1 طبقه بندی خطا در فضای ابری
2-2 معماری تحمل خطا در ابر
3. روش های تحمل خطا در ابر
3-1 روش های فعال
3-2 روش های واکنشی
4. ساختارهای تحمل خطا
4-1 ساختارهای فعال تحمل خطا
4-2 ساختارهای واکنشی تحمل خطا
5. بحث
6. جهت گیری های تحقیقاتی
منابع
Abstract
1. Introduction
1.1. Motivation of the survey
1.2. Scope of the survey
1.3. Survey plan and organization
2. Fault classification and architecture of fault tolerance in cloud
2.1. Fault classification in cloud
2.2. Architecture of fault tolerance in cloud
3. Fault tolerance approaches in cloud
3.1. Proactive approaches
3.2. Reactive approaches
4. Fault tolerance frameworks
4.1. Proactive fault tolerance frameworks
4.2. Reactive fault tolerance frameworks
5. Discussion
6. Research directions
7. Conclusions
Acknowledgements
References