آموزش انجام پایان نامه رایانش ابری

در این مقاله سعی داریم تا نمونه ای از انجام پایان نامه در حوزه رایانش ابری را خدمت شما عزیزان معرفی نمائیم. یکی از موضوعاتی که در رایانش ابری مورد توجه پژوهشگران این حوزه قرار دارد و برای انجام پایان نامه نیز بسیار مناسب است توازن بار به صورت پویا و ایستا در رایانش ابری می باشد. مقاله پیش رو فصل اول یک پایان نامه در این حوزه می باشد. این مقاله می تواند چراغ راهی برای انجام پایان نامه کارشناسی ارشد و دکتری در حوزه رایانش ابری و توازن بار پویا باشد.

انجام پایان نامه ارشد و دکتری موسسه ادیب مشاور


1-1مقدمه

رایانش ابری[1] تکنولوژی نسبتاً جدیدی است که در سال‌های اخیر نظر خیلی از محققان را به خود جلب نموده است. هدف آن ارائه روش‌هایی برای افزایش ظرفیت‌های پردازشی به‌صورت پویا  می‌باشد. یکی از اصلی‌ترین تکنیک‌های رایانش ابری مجازی‌سازی[2] است و یکی از مهم‌ترین دستاوردهای مجازی‌سازی مهاجرت ماشین‌های مجازی[3] است، که از اهداف آن می‌توان به توازن بار[4]، افزایش کیفیت سرویس، کاهش مصرف  انرژی و نگهداری سرورها اشاره نمود.

در ادامه با تعریف رایانش ابری و مجازی‌سازی و همچنین مهاجرت ماشین‌های مجازی زمینه مناسب را برای درک بهتر این مقاله فراهم می‌نماییم.

1-1-1 مراکز داده ابر

مراکز داده ابر(CDC) یک استخر از رایانش و اجزا ناهمگن ذخیره‌سازی است که با استفاده از لینک‌های ارتباطی بسیار سریع به برنامه ­های میزبان­های متعدد و برای ذخیره داده‌ها متصل می­شوند[1]. یک اپراتور ابراز روش "پرداخت و استفاده" برای ارائه خدمات به مشتری استفاده می‌کند[2]. مرکز داده ابر طیف وسیعی از انواع خدمات از طریق لینک وب ارائه می‌دهد [3]. با این‌ حال هزینه رایانش ابری و عملکرد نرم‌افزار به دلیل تکه‌تکه شدن داخلی منابع (استفاده از سرورهای کم) و محدودیت پهنای باند اعمال ‌شده توسط طراحی معماری مراکز داده ابر، به ‌شدت آسیب ‌دیده است [1].

معماری شبکه یک عنصر حیاتی در طراحی شبکه مرکز داده ابر است و به‌طور قابل‌ توجهی بر روی عملکرد مرکز داده ابر اثرگذار است[4]. طرح معماری مرکز داده در شبکه مدرن مبتنی بر ساختار سه لایه سلسله مراتبی است. در معماری سه لایه‌ای، لایه هسته CDC متصل به ستون فقرات اینترنت است، لایه تجمیع کننده که ویژگی‌های همه فن‌آوری‌ها ازجمله دیوار آتش و تعویض محتوا را پیاده‌سازی می‌کند و لایه دسترسی که اتصال را تضمین می‌کند. شکل زیر نشان‌ دهنده این ساختار سلسله مراتبی است.

با توجه به طراحی شبکه پروتکل مسیریابی، معماری CDC در طبقه‌بندی به‌صورت، راه­یاب مرکزی، سرور مرکزی و مدل ترکیبی است [5]. شکل 2 مجموعه‌ای از خدمات برجسته ارائه ‌شده به مشتریان توسط CDC را نشان می‌دهد.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-1 طراحی اولیه لایه‌ای زیرساخت شبکه مرکز داده [4]

ویژگی‌های مهم مراکز داده مبتنی برابر[6] :

  • ساخت منابع با توجه به تقاضا در دسترس است. عملیات تعمیر و نگهداری از مراکز داده با ارائه‌دهندگان ابر مخفی هستند. بنابراین مدل ابر، کاربران را قادر می‌سازد که یک محیط رایانش بدون سرمایه‌گذاری زیاد برای زیرساخت داشته باشند.
  • تأمین منابع انعطاف‌پذیر است. این توانایی وجود دارد که هرآنچه نیاز است به‌صورت پویا در مقیاس با کوچک شدن منابع فراهم می‌شود.
  • ریزدانه اندازه‌گیری. امکان "پرداخت برای استفاده" را به مدل می‌دهد، کاربران تنها برای خدمات مورد استفاده پرداخت می‌کنند و نیاز نیست تعهدات بلند مدت داشته باشند.

1-1-2 رایانش ابری

با پیشرفت فناوری ‌و اطلاعات نیاز به انجام کارهای رایانشی مشاهده می‌شود. از طرف دیگر افراد بدون داشتن سخت‌افزارها و نرم‌افزارهای قوی باید بتوانند رایانش سنگین خود را انجام دهند. رایانش ابری روش نوینی برای ارائه سرویس‌های فن‌آوری و اطلاعات مانند سخت‌افزار، نرم‌افزار، داده‌ها و دیگر منابع پردازشی، با هدف ارائه قابل ‌اعتماد، محیط‌های محاسباتی پویای سفارشی و کیفیت سرویس تضمین‌شده برای کاربران نهایی بر پایه­ی شبکه‌های بزرگ همچون اینترنت است[7, 8]. دلیل استفاده از واژه ابر آن است که پردازش‌های ابری از دید کاربر جزئیات فنی‌اش را مخفی نگه می‌دارد و لایه­ی انتزاعی­ای مابین کاربر و جزئیات فنی موجود است.

معماری یک محیط رایانش ابری را ی توان به 4 لایه تقسیم نمود: لایه سخت‌افزاری، لایه زیرساخت، لایه زیرساخت و لایه کاربردی، همان‌طور که در شکل 1 نشان داده ‌شده است [4]. هر لایه را جداگانه توضیح خواهیم کرد:

  • لایه سخت‌افزار : این لایه مسئول مدیریت منابع فیزیکی از ابر، ازجمله سرور فیزیکی، روتر، سوئیچ[5]، دستگاه‌های خنک‌کننده و غیره است. در عمل لایه‌های سخت‌افزاری به‌طور معمول در مراکز داده اجرا می‌شوند. یک مرکز داده معمول شامل هزاران سرور است که در قفسه‌ها سازمان ‌یافته‌اند. مسائل معمولی در لایه سخت‌افزار شامل پیکربندی سخت‌افزار، تحمل خطا و غیره وجود دارد.
  • لایه زیرساخت: این لایه با عنوان لایه مجازی نیز شناخته می‌شود. لایه زیرساخت یک استخر ذخیره‌سازی با استفاده از فن‌آوری‌های مجازی مثل Xen، VMware و غیره ایجاد می‌کند. لایه زیرساخت جز ضروری در رایانش ابری است چراکه بسیاری از ویژگی‌های کلیدی مانند منابع پویا تنها از طریق فن‌آوری‌های مجازی ساخته می‌شود.
  • لایه زیرساخت : در بالای لایه زیرساخت است . لایه زیرساخت شامل سیستم‌عامل و چارچوب برنامه‌ها است. هدف از لایه زیرساخت ارائه پشتیبانی API برای اجرای ذخیره‌سازی، پایگاه داده و استفاده از برنامه‌های کاربردی است.
  • لایه کاربرد : در بالاترین لایه قرار دارد. این لایه شامل برنامه‌های کاربردی واقعی ابر است.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-2 معماری رایانش ابری [4]

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

مدل‌های متفاوتی برای ارائه سرویس‌ها موجود است که در زیر اشاره‌ای به آن شده است شکل 2 نشان‌دهنده مفاهیم زیر است:

  • نرم‌افزار ابری به‌عنوان سرویس [6](SaaS): چیزی که برای مشتری فراهم ‌شده است برنامه کاربردی فراهم‌کننده است که بر روی زیرساخت ابری، در حال اجراست و توسط دستگاه‌های مشتری مختلف  از طریق یک رابط برای مشتری[7] ضعیف همچون مرورگر وب (مثل: ایمیل وب [8]) در دسترس است. مشتری زیرساخت ابری، شبکه، سرورها، دستگاه‌های عامل، فضای ذخیره‌سازی زیرین یا حتی نرم‌افزار کاربردی را مدیریت یا کنترل نمی‌کند، البته به‌ جز تنظیمات محدود پیکربندی‌های  برنامه در سطح کاربر.[8]
  • بستر ابری به‌عنوان سرویس [9](PaaS):مشتری امکان دارد که برنامه کاربردی ساخته‌شده توسط خود را  بر روی  زیرساخت ابری قرار دهد. این برنامه  با استفاده از زبان‌های برنامه‌نویسی و ابزارهایی که توسط فراهم‌کننده پشتیبانی می‌شوند (مثل: جاوا[10]، پایتون[11]، دات‌نت[12]) ساخته‌شده است. مشتری زیرساخت ابری، شبکه، سرورها یا  فضای ذخیره‌سازی زیرین را مدیریت یا کنترل نمی‌کند اما بر روی برنامه کاربردی قرار داده ‌شده و احتمالاً پیکربندی محیط میزبانی برنامه کنترل دار. [9].
  • زیرساخت ابری به‌عنوان سرویس [13](IaaS):امکانی که برای مشتری فراهم آوری شده توان پردازشی، فضای ذخیره‌سازی، شبکه‌ها و دیگر منابع پایه‌ای رایانشی است به ‌گونه‌ای که مشتری می‌تواند نرم‌افزار دلخواه خود که می‌تواند شامل دستگاه‌های عامل و برنامه‌های کاربردی باشد را قرار داده و اجرا کند. مشتری زیرساخت ابری زیرین را مدیریت یا کنترل نمی‌کند ولی بر روی دستگاه‌های عامل، فضای ذخیره‌سازی، برنامه‌های قرار داده‌ شده و احتمالاً گزینش اجزا شبکه‌بندی (مثل: دیواره‌های آتش، همسنگ (متعادل) کننده بار) کنترل دارد. [10]

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-3 مدل سرویس ابر [7]

1-1-3 انواع روش‌های توسعه رایانش ابری

عمومی[14]: در این نوع، قابلیت اطمینان، دسترس‌پذیری و امنیت محدود می‌شود نظیر اینترنت. در واقع قراردادی وجود دارد که بیان‌کننده این امر است که تمامی موارد ( نظیر پاک شدن داده و Hacking و ... ) بر عهده خود فرد است و بسیاری از سرویس‌های این نوع، رایگان یا دارای هزینه بسیار کمی هستند که می‌توان به‌عنوان نمونه سرویس‌های شرکت‌های  آی بی ام[15]، گوگل[16] و آمازون را نام برد[11, 12].

خصوصی[17]: در عمل یک سازمان یک ابر خصوصی برای خود ایجاد می‌نماید و مدیریت آن به‌طور کامل بر عهده خود سازمان است و زمانی دارای معنا است که سازمان دارای فناوری، قابل‌ اندازه‌گیری است که به‌عنوان نمونه می‌توان سرویس‌دهنده‌ای مانند سیسکو[18] را نام برد[8, 12].

ترکیبی[19]: در سازمانی که ابر خصوصی وجود دارد می‌تواند بسته به نیاز از منابع عمومی هم استفاده نماید، در واقع ترکیبی از دو مورد فوق؛ که به‌طور عمده مشتریان این نوع، سازمان‌ها هستند. این مورد زمانی پیش می‌آید که Cloud Burst پیش می‌آید یعنی منابع به­حدی محدودشده و امکان توسعه وجود ندارد و با یک ایجاد اتصال بین ابر خصوصی سازمان و ابر عمومی از منابع عمومی استفاده می‌شود و برنامه‌های کاربردی که حساسیت بیشتری دارند روی ابر خصوصی قرار می‌گیرند و مابقی روی ابر عمومی قرار داده می‌شود که منجر به تعدیل هزینه می‌گردد[12-14].

مزایای اصلی رایانش ابری در زیر لیست شده است :

  • چابکی[20]
  • هزینه
  • نابستگی به دستگاه و مکان
  • چند مستأجری[21]
  • قابلیت اطمینان [22]
  • سنجش پذیری
  • امنیت
  • نگهداری

1-1-4 تاریخچه رایانش ابری

پیدایش رایانش ابری به دهه 1960 زمانی که جان مک کارتی[23] اظهار داشت " رایانش ممکن است روزی به‌عنوان یکی از صنایع همگانی سازمان‌دهی شود " برمی‌گردد. پارک سرسرا داگلاس[24] در کتابی با عنوان «مشکل صنعت همگانی رایانه» در سال 1966 تمام ویژگی‌های امروز رایانش ابری به همراه مقایسه با صنعت برق و شکل‌های مصرف عمومی و خصوصی و دولتی و انجمنی را آورده است. واژه ابر برگرفته از صنعت تلفن است به‌طوری ‌که شرکت‌های ارتباطات راه دور که تا دهه 1990 تنها خطوط نقطه ‌به ‌نقطه اختصاصی را ارائه می‌کردند شروع به ارائه شبکه‌های خصوصی مجازی با کیفیتی مشابه و با قیمت‌های کمتر نمودند. نماد ابر برای نشان دادن نقطه مرزی بین حیطه مسئولیت کاربر و عرضه‌کننده به کار گرفته می‌شود.

سایت آمازون با مدرن سازی مرکز داده نقش مهمی در گسترش رایانش ابری ایفا نموده است . آمازون از سال 2006 امکان دسترسی به سامانه خود از طریق وب‌سرویس‌های آمازون را بر پایه رایانش همگانی ارائه کرد. در سال 2007 گوگل و آی بی ام به همراه چند دانشگاه پروژه‌های تحقیقاتی در مقیاس بزرگ را در زمینه رایانش ابری را آغاز نمودند. در اواسط سال 2008 شرکت گارتنر[25] متوجه وجود موقعیتی در رایانش ابری شد که برای « شکل‌دهی ارتباط بین مصرف‌کنندگان خدمات فن‌آوری اطلاعات، بین آن‌هایی که سرویس مصرف می‌کنند و آن‌هایی که سرویس می‌فروشند » به وجود می‌آید.

1-1-5 مجازی‌سازی

مجازی‌سازی به انتزاع سازی منابع پردازشی می‌پردازد. مجازی‌سازی سطح نوینی از انعطاف‌پذیری در استفاده از منابع فیزیکی را فراهم آورده و امکان یکپارچه‌سازی منابع فیزیکی که مستقل از یکدیگر هستند را در قالب منابع مجازی را فراهم می‌آورد. هدف اصلی مجازی‌سازی بهینه‌سازی استفاده از منابع است [15]. مجازی‌سازی در سطوح مختلفی صورت می‌گیرد که ازجمله مهم‌ترین آن‌ها که در رایانش ابری مورد استفاده قرار می‌گیرد: مجازی‌سازی سرور، مجازی‌سازی میز کار[26]، مجازی‌سازی نرم‌افزار، مجازی‌سازی ذخیره‌سازی، مجازی‌سازی شبکه است. اما نکته حائز اهمیت این است که مجازی‌سازی به‌ تنهایی، مشکلاتی را در بردارد که در صورت خرابی یک سرور تمامی سرویس‌های مجازی‌سازی شده رویان از مدار خارج خواهند شد. برای حل این مشکل می‌توان از تکنولوژی‌هایی مانند خوشه­بندی که شامل گروهی از میزبان­ها(ESX) می‌باشد استفاده نمود. با استفاده از قابلیت خوشه­بندی ما قادر خواهیم بود تمامی منابع، میزبان­های خود(ESX) را مدیریت نماییم و از مواردی مانند دسترس‌پذیری بالا و توازن بار بهره ‌جوییم.

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

با استفاده از مجازی‌سازی می‌توان در یک ‌زمان بروی یک سرور چندین سیستم‌عامل را راه‌اندازی نمود که هر یک از سیستم‌عامل‌ها به‌طور مستقل برنامه‌های کاربردی خود را اجرا می‌کنند. یک ماشین مجازی همانند یک ماشین فیزیکی دارای منابع سخت‌افزاری مانند پردازنده و حافظه است که در هنگام ایجاد ماشین مجازی به آن اختصاص می‌یابد [16]. شکل 1-4 مجازی‌سازی را به تصویر کشیده است.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-4 مجازی‌سازی[17]

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

  • مجازی‌سازی ذخیره‌سازی[29] : ادغام دستگاه‌های ذخیره‌سازی شبکه‌های متعدد درصورتی‌ که یک واحد ذخیره‌سازی به ­نظر می­رسد. مجازی‌سازی ذخیره‌سازی معمولاً از طریق برنامه‌های کاربردی اجرا می‌شود و اغلب در SAN(منطقه شبکه ذخیره‌سازی)[30]، یک زیر شبکه با سرعت بالا از دستگاه‌های ذخیره‌سازی مشترک استفاده می‌شود و باعث می‌شود وظایفی مانند آرشیو، برگشت به عقب و بازیابی آسان‌تر و سریع‌تر شود.
  • مجازی‌سازی سرور [31]: پارتیشن بندی یک سرور فیزیکی به سرورهای مجازی کوچک‌تر است که برای کمک به حداکثر رساندن منابع سرور به کار می‌رود. در مجازی‌سازی سرور از منابع سرور خود پنهان هستند و یا با نقابی از کاربران و نرم‌افزار استفاده ‌شده به تقسیم سرور فیزیکی به محیط‌های متعدد مجازی به نام سرورهای مجازی و یا خصوصی می‌پردازد.
  • استفاده معمول از سرور مجازی : یکی از استفاده‌های مشترک از این تکنولوژی در سرورهای وب است. با استفاده از وب سرور مجازی راه‌حلی محبوب برای ارائه هزینه کم خدمات میزبانی وب است. به‌جای نیاز به یک سرور جداگانه برای هر سرویس‌دهنده وب، ده‌ها تن از سرورهای مجازی می‌توانند از یک سرور استفاده کنند.
  • مزایای سرور مجازی : مجازی‌سازی سرور فواید بسیاری دارد . به‌عنوان ‌مثال اجازه می‌دهد تا هر سرور مجازی سیستم‌عامل خود را اجرا کند و هر سرور مجازی می‌تواند مستقل از دیگری شروع به­کار[32] شود. مجازی‌سازی سرور هزینه‌ها را به دلیل سخت‌افزارهای قوی کمتر کاهش می‌دهد.
  • سیستم‌عامل در سطح مجازی[33] : معمولاً سیستم‌عامل در سطح مجازی نامیده می‌شود. یک نوع از تکنولوژی سرور مجازی است که در لایه سیستم‌عامل (هسته) صورت می‌گیرد. بروی سرور فیزیکی قسمت­بندی[34] متعدد ایجاد شده که در هر پارتیشن یک سرور واقعی مجازی ایجاد می‌شود. هسته سیستم‌عامل یک سیستم‌عامل تک اجرا خواهد کرد و قابلیت آن را دارد که در هر پارتیشن یک سیستم‌عامل اجرا شود.
  • مجازی‌سازی شبکه[35] : مجازی‌سازی شبکه (NV) با استفاده از منابع شبکه از طریق یک تقسیم‌بندی منطقی از یک شبکه فیزیکی است. مجازی‌سازی شبکه با نصب نرم‌افزار و خدمات برای مدیریت به اشتراک‌گذاری ذخیره‌سازی، حلقه­های[36] اصلی و برنامه‌های کاربردی رایانش به دست آید. مجازی‌سازی شبکه رفتار همه سرورها و سرویس در شبکه به‌عنوان یک استخر تک منابع است که می‌توان بدون توجه به اجزای فیزیکی قابل‌دسترسی است. اصطلاح مجازی‌سازی شبکه اغلب برای توصیف بسیاری چیزها ازجمله مدیریت شبکه، مجازی‌سازی ذخیره‌سازی و حتی رایانش شبکه استفاده می‌شود.
  • مجازی‌سازی برنامه کاربردی [37]: مجازی‌سازی‌ای است که در بالای فن‌آوری‌های مجازی دیگر، مانند مجازی‌سازی ذخیره‌سازی یا ماشین مجازی قرار می‌گیرد و اجازه می‌دهد تا لایه میانی رایانشی به‌صورت پویا و در زمان واقعی توزیع شود. در رایانش استاندارد، برنامه‌های کاربردی بروی میزبان نصب‌شده و سخت‌افزار و برنامه‌نویسی آن متناسب با نیاز نرم‌افزار تنظیم می‌شود. با مجازی‌سازی هر برنامه مجموعه تنظیمات با توجه به تقاضای خود را دارد و طوری اجرا می‌شود که تنها تنظیمات خود قابل ‌مشاهده است.

به‌طور کلی مزایای مجازی‌سازی شامل موارد ذیل است:

  • کاهش هزینه خرید تجهیزات سخت‌افزاری زیاد
  • متمرکز سازی
  • کاهش هزینه‌های جاری نظیر برق، نگهداری، تعمیرات
  • کاهش گرمای تولیدی توسط دستگاه‌ها
  • عدم نیاز به فضای زیاد به نسبت حالت سنتی
  • استفاده از بیشترین ظرفیت تجهیزات سخت‌افزاری
  • جابجایی راحت
  • پشتیبان گیری راحت از اطلاعات
  • تسریع امور به خاطر وجود بالقوه دستگاه‌ها و عدم نیاز به ‌صرف زمان برای خرید، نصب و آماده‌سازی
  • امکان تنظیم و نصب سرورها و تجهیزات مجازی با استفاده از الگو و نسخه‌برداری[38]

دو نوع مجازی‌سازی در مورد ابرها وجود دارد :

  • مجازی‌سازی کامل : در مجازی‌سازی کامل نصب و راه‌اندازی کامل یک دستگاه بر روی دستگاه دیگر انجام می‌شود. اهداف مجازی‌سازی کامل – به اشتراک‌گذاری یک سیستم کامپیوتری در میان کاربران مختلف – جداسازی کاربران از یکدیگر و از برنامه کنترل – تقلید سخت‌افزار در دستگاه دیگر، است. شکل زیر بیانگر مجازی‌سازی کامل است.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-5 مجازی‌سازی کامل[18]

  • شبه مجازی‌سازی : در شبه مجازی‌سازی، سخت‌افزار اجازه می‌دهد چندین سیستم‌عامل را بروی دستگاه واحد با استفاده از منابع سیستم مانند حافظه، پردازنده، اجرا شود شکل 6 نشان‌دهنده شبه مجازی‌سازی است. شبه مجازی‌سازی دارای مزایای زیر است :
  • بازیابی فاجعه : در صورت خرابی سیستم، می‌تواند تا زمانی که سیستم تعمیر و یا جایگزین شود به سیستم دیگر مهاجرت کند.
  • مدیریت ظرفیت : در یک محیط مجازی افزودن ظرفیت حافظه و قدرت پردازش آسان‌تر و سریع‌تر است [19].

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-6 شبه مجازی‌سازی[18]

1-1-6 مهاجرت ماشین مجازی

یکی از دستاوردهای مهم در مجازی‌سازی مهاجرت ماشین مجازی است. مهاجرت به معنی انتقال حالت ماشین مجازی از یک ماشین فیزیکی به ماشین فیزیکی دیگر است[20]. مهاجرت ماشین از تکنیک انتقال پردازش تکامل‌یافته است. هدف از مهاجرت رسیدن به تعادل بار، تحمل خطا و تعمیر و نگهداری سیستم در یک DC است. در شکل یک‌ روند کلی از مهاجرت ماشین مجازی در CDC نشان داده ‌شده است.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-7 روند کلی مهاجرت ماشین مجازی در CDC [7]

 روش زنده مهاجرت ماشین مجازی تأمین خدمات مستمر به برنامه‌های کاربردی میزبانی در طول فرآیند انتقال حافظه ماشین مجازی را تضمین می‌کند و هیچ وقفه‌ای[39] در سرویس رخ نخواهد داد [21]، درحالی ‌که در روش غیر زنده مهاجرت ماشین مجازی اجرای برنامه‌ها قبل از انتقال را تعلیق می‌کند، در این روش کاربر متوجه قطع سرویس می‌شود[22]. مهاجرت زنده به دو روش قبل از کپی و یا پس از کپی طبقه‌بندی می‌شود. چرخه زندگی قبل از کپی و بعد از کپی در شکل 1-8 نشان داده ‌شده است.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-8 مراحل مهاجرت ماشین مجازی الف) پیش از کپی ب) بعد از کپی [23]

روش مهاجرت ماشین مجازی پیش از کپی به شرح : انتخاب سرور هدف، رزرو منابع در سرور هدف، تکرارکننده دورهای پیش از کپی، توقف و کپی و فاز ازسرگیری[40] است ( شکل2 قسمت الف ). در این روش همچنان که ماشین منبع در حال کار است همه صفحات از منبع به مقصد کپی می‌شوند اگر برخی از صفحات حافظه در حین کپی تغییر کنند باید مجدداً کپی شوند پس از اتمام کپی ماشین مجازی در مقصد از آخرین حالت قبل از تعلیق در مبدأ شروع به کار می‌کند.

 مراحل روش بعد از کپی، مدیریت مهاجرت یک سرور مناسب( با منابع کافی)، رزرو منابع موردنیاز سیستم برای ماشین مجازی و صفحات حافظه تکرار شونده به سرور هدف انتخابی تا زمانی که فاز توقف و کپی ( دور نهایی) موجب توقف و انتقال صفحات باقی‌مانده شود. هنگامی ‌که ماشین‌های مجازی هماهنگ شدند سرور هدف ماشین مجازی شروع کرده و اتصال با منبع پایان می‌پذیرد (شکل 2 قسمت ب). به ‌عبارت ‌دیگر ابتدا حالات پردازنده به مقصد ارسال خواهند شد و پس از شروع به کار ماشین عمل ارسال صفحات حافظه از مبدأ به مقصد انجام می‌شود. اگر همزمان با مرحله ارسال صفحه‌ای نیاز شد و صفحه موجود نبود (هنوز انتقال نیافته است) وقفه فقدان صفحه رخ می‌دهد. برعکس روش قبل که احتمال کپی چندباره صفحات وجود داشت این روش تضمین می‌کند هر صفحه فقط یک ‌بار کپی خواهد شد که باعث کاهش سربار ناشی از ارسال چندباره می‌شود. البته قابل ‌ذکر است که کارایی این روش به تعداد وقفه‌های فقدان صفحه بستگی دارد.

در مدیریت منابع، می‌توان گفت مهاجرت با 2 هدف اصلی توازن بار و تلفیق سرورها انجام می‌شود. که منظور از توازن بار: بار پردازشی به‌صورت مساوی مابین سرورهای فیزیکی توزیع گردد. تلفیق سرورها از اهمیت به سزایی برخوردار است و از الگوریتم‌های بهینه‌سازی در خصوص تصمیم‌گیری این‌ که ماشین مجازی در کدام سرور مجاز باید قرار گیرد استفاده می‌شود.

فن‌آوری مهاجرت ماشین مجازی با اهداف دستیابی به اهداف مختلف مدیریت منابع به وجود آمده است در شکل زیر این اهداف مشاهده می‌شود.

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-9 برنامه‌های کاربردی مهاجرت ماشین مجازی [7]

1-1-7 مزایای مهاجرت ماشین مجازی

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

1-1-8   اهداف مهاجرت ماشین مجازی

اهداف اصلی عبارت‌اند از[24] :

  • یکپارچگی سرور: الگوریتم یکپارچگی سرور برای کاهش پراکندگی سرور در مرکز داده نیاز است. تلاش برای استفاده بیشتر از دارایی‌ها است که این امر کاهش هزینه‌های عملیاتی را برای مدیران مراکز داده کاهش می‌دهد.
  • توازن بار : این امر باعث کاهش عدم تعادل در میزان استفاده از منابع در سرورها می‌شود. بار سیستم با حرکت دادن ماشین‌های مجازی به توازن خواهد رسید.
  • کاهش نقطه گرم و نقطه سرد[41]: به‌طور معمول، بهره‌برداری از منابع به حد بالا و حد پایین نزدیک است. به حد بالا نقاط گرم و به حد پایین نقاط سرد گویند.

1-1-9 مزایا و چالش‌های خدمات میزبانی ماشین مجازی

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

اما همانند اجرای سخت‌افزار سرور اختصاصی تعدادی مزایا و معایب در ماشین‌های مجازی وجود دارد.

1-1-10 مزایای خدمات سرور مجازی

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

1-1-11 چالش‌های میزبان ماشین مجازی

هیچ فن‌آوری بدون چالش نخواهد بود. مجازی‌سازی مزایای زیادی دارد اما برخی چالش‌ها در هنگام انتخاب شرکت سرور مجازی وجود دارد.

  • امنیت : اگر شما در حال حرکت برنامه‌های کاربردی از سرور فیزیکی به یک ابر عمومی هستید، تعدادی از خطرات امنیتی وجود خواهد داشت زیرا سرورهای ابری خود بروی ماشین‌های مجازی در زیرساخت‌های به اشتراک گذاشته ‌شده سرورها هستند. ماشین‌های مجازی در برابر حمله از یک سیستم‌عامل ضعیف‌تر هستند. البته هنوز دستگاه‌های پیچیده که هدف جدید برای حمله را فراهم می‌کنند به خصوصی در ابر عمومی وجود دارد. برای مثال لوله داده[43] یک محیط ابر فوق‌العاده امن را فراهم می‌کند که از نزدیک نظارت برای اطمینان از امنیت صورت می‌گیرد.
  • احتمال خاموشی[44](ازکارافتادن) : احتمال آنکه منابع مجازی همه به ‌یک‌باره خراب شوند بعید به نظر می‌رسد، اما راه‌اندازی مجدد ماشین‌های مجازی در صورت خرابی سخت‌افزار فاجعه است. ماشین‌های مجازی می‌توانند به‌راحتی به‌عنوان یک ماشین فیزیکی خاموش و روشن شوند اما یک ماشین مجازی برای راه­اندازی مجدد به زمان زیادی نیاز دارد.
  • کاهش بیش‌ازحد[45] : تقریباً تمام محیط‌های ابر مدرن بر یک مدل کاهش بیش‌ازحد ساخته‌شده‌اند. اساساً اگر شما پنج ماشین مجازی با استفاده از 2 گیگا بایت[46] حافظه در حال اجرا در یک ماشین فیزیکی با 8 گیگا بایت حافظه داشته باشید سخت‌افزار شما کاهش بیش‌ازحد است. خوشبختانه کاهش بیش‌ازحد بیش از ظرفیت نیست. اجتناب از کاهش بیش‌ازحد بروی ماشین مجازی خود مستلزم توجه اطمینان از تخصیص منابع در هنگام نیاز دارد.

1-1-12 توازن بار

یکی از چالش‌های مهم در زمینه رایانش‌ابری ، حفظ توازن بار بهینه[47] در محیط ابر در سرورها است [25]. رايانش ابري در سرور های توزیع شده[48] اصطلاحاً شامل مجازي سازي[49]، محاسبات توزيعي[50]، شبکه[51]، نرم افزار[52] و سرويس هاي وب مي‌باشد. يک سرور از چندين عنصر مانند کلاينت‏ها[53]، مراکز داده و سرور‌هاي توزيع شده تشکيل شده است که در آن مباحث تحمل خطا[54]، دسترسي بالا[55]، مقياس پذيري[56]، انعطاف‌پذيري[57]، کاهش سربار[58] براي کاربران، کاهش هزينه ی مالکيت[59]، سرويس‏دهي به درخواست‌ها و غیره وجود دارد. بررسی روش‌های مختلف توازن بار به منظور کاهش زمان پاسخ در محیط‌های رایانش ابری که از مهم‌ترین موارد توافق سرویس و افزایش رضایت‌مندی مشتری محسوب می‌گردد، پرداخته می‌شود. در واقع با بهبود توازن بار، می‌توان به درجه‌ای از اطمینان در حوزه کارایی در رایانش ابری و در نتیجه افزایش رضایتمندی مشتری از سرويس دریافتی توسط شبکه ابری دست پیدا نمود [26] و [27].

توازن بار، فرايند توزيع بار بين انواع نودهاي پخش شده در سيستم مي­باشد تا بدين وسيله هم بهره­وري منابع و هم زمان پاسخ کار بهبود پيدا کند [28]. از طرفي وضعيتي که برخي از نود ها داراي بار زياد و برخي نود ها بدون بار و يا کم بار می‌باشند اجتناب شود. توازن بار روشی است كه ارائه حداكثر گذردهي و حداقل زمان پاسخگويي را در شبكه ها و منابع تسهيل مي‌كند. با تقسيم ترافيك بين سرورها، داده ها بدون تاْخير عمده اي ارسال و دريافت مي‌شوند [26]. الگوریتم‌های زمان‌بندی بسیاری برای این منظور از پیش آماده شده‌اند، مانند الگوریتم کاوش قطره های آب، خوشه بندی فعال ، OLB[60]+LBMM[61]، Min-Min،Max-Max[62] و غیره. می‌توان از یک الگوریتم خاص بر اساس نیاز استفاده کرد، اما رایانش ابری حوزه‌های وسیعی را تحت پوشش توزیع می‌کند، بنابراین به روش‌هایی نیاز است که برای انواع محیط‌ها مناسب باشد و هزینه را نیز کاهش دهد [27].

از آنجایی که الگوریتم‏های توازن بار به رفتار فعلی سیستم بستگی دارند پویا هستند. موارد مهمی که باید هنگام توسعه‌ی این نوع الگوریتم‌ها در نظر گرفته شوند شامل تخمین بار، نسبت بار، ماندگاری (ثبات) سیستم‌های مختلف، کارایی سیستم، تعامل بین نودها، مهاجرت [25]، ماهیت کاری که منتقل می‌شود، انتخاب نودها و بسیاری دیگر است. هنگامی که یک حجم کار داده شده به هر ماشین یک خوشه اعمال می‌شود(شکل 1-10)، اگر منابع در دسترس به طور موثر استفاده شوند،  این بار می‌تواند به صورت موثر اجرا شود. بنابراین باید مکانیسمی برای انتخاب ماشین‌هایی که این منابع را دارند، وجود داشته باشد. همانطور که در شکل 1-10 مشاهده می‏شود کاربرانی که به شبکه ابری متصل هستند، با ارسال درخواست به شبکه ابر می‏توانند از امکانات شبکه استفاده نمایند. از آنجایی که با درخواست زیاد از سوی کاربران، شبکه مجبور به جابجایی ماشین‏های مجازی می‏کند. زمانی که کاربران شبکه زیاده شود، بحث بار بر روی خوشه های ابری جدی می‏شود. با زیاد شدن کاربران و درخواست‏های متفاوت آنها، حالت های زیر رخ می‏دهد.

1- ممکن است ماشین مجازی در حال انجام عملیات باشد و درخواست دیگری را قبول کند [29].

2- درخواست بر روی ماشین جدیدی صورت گیرد [30].

3- درخواست بر روی ماشینی که مشغول است و توانایی دریافت کاربر جدید نیست اعمال گردد [31].

4- ممکن است عمل مهاجرت صورت گیرد (روش مد نظر این پروژه).

 

 

انجام پایان نامه کامپیوتر رایانش ابری Cloud Computing

شکل 1-10 شمای کلی شبکه ابری

زمانی که پهنای باند یک ماشین مجازی رو به پر شدن باشد، خوشه مرکزی درخواست‏ها را بر روی ماشین دیگری ارسال می‏کند. در این مرحله نیاز به الگوریتمی جهت برطرف کردن مشکل توازن بار می‏باشد. در این پروژه روشی برای کنترل توازن بار پیشنهاد می‏گردد. همانطور که در شکل 1-10 مشاهده می‏شود کاربرانی که به شبکه ابری متصل هستند، با ارسال درخواست به شبکه ابر می‏توانند از امکانات شبکه استفاده نمایند. با درخواست زیاد از سوی کاربران، شبکه مجبور به جابجایی ماشین‏های مجازی می‏نماید. زمانی که پهنای باند یک ماشین مجازی رو به پر شدن باشد، خوشه مرکزی درخواست‏ها را بر روی ماشین دیگری ارسال می‏کند. در این مرحله الگوریتم پیشنهادی پیاده‏سازی شده، عمل توانایی برطرف کردن مشکل توازن بار را دارد.

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

  • کاربری که بر روی محیط بار زیادی قرار داده است از شبکه قطع شود.
  • عمل مهاجرت به سرور قوی تر برای ادامه عملیات صورت پذیرد.
  • با زمانبندی و اختصاص پهنای باند مناسب از بروز مشکل جلوگیری نمود.

در این پیشنهاد تمرکز بر روی عمل مهاجرت می باشد. با توجه به اینکه اکثر سرورهای محیط ابر از نرم افزارهای مجازی سازی برای ارایه خدمات به مشتریان استفاده می‏کنند می توان عمل مهاجرت را انتقال سرور مجازی تعریف نمود. هدف این پیشنهاد در واقع ارایه روشی برای مهاجرت در صورتی که بار اضافی وارد شده به شبکه را کنترل نماید و از توانایی ارایه خدمات به مشتریان ابری را داشته باشد.

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

 

1-1-13 اهمیت و ضرورت انجام تحقیق

توافقنامه سطح سرویس یکی از مهمترین مسائلی که باید در رایانش ابری به آن توجه شود، فرآیندهای فراهم­کننده سرویس بر اساس توافقنامه سطح سرویس و مدیریت کارای منابع در یک وضعیت اتوماتیک، به عنوان چالش تحقیقاتی در محیط­های ابری شناسایی شده­اند. توافقنامه سطح سرویس برای تضمین کردن یک سطح مشخصی از کیفیت برا ی سرویس­های مشتریان استفاده می­شود. در صورتی که این سطح کیفیت مهیا نشود، فراهم­کننده باید به دلیل نقض قرارداد جریمه­ای پرداخت کند [31].

 دیگر از روش های برقراری توازن بار، الگوریتم تصادفی می‏باشد. این الگوریتم از شماره‌های تصادفی برای انتخاب پردازنده‌های برده[63] استفاده می‌کند. پردازنده‌های برده به طور تصادفی با شماره‌های تصادفی تولید شده بر اساس توزیع آماری انتخاب می‌شوند. این الگوریتم می‌تواند بهترین کارایی را میان تمام الگوریتم‌های توازن بار برای یک برنامه کاربردی با هدف خاص داشته باشد [32].

الگوریتم بعدی برای ایجاد توازن بار، الگوی مدیر مرکزی است[32]. در هر گام، پردازنده مرکزی یک پردازنده برده  را برای تخصیص کار انتخاب خواهد کرد. پردازنده برده انتخاب شده، پردازنده‌ای با حداقل بار است. پردازنده مرکزی قادر به جمع‌آوری اطلاعات بار تمامی پردازنده‌ی برده است؛ بنابراین انتخاب ممکن است بر اساس این الگوریتم انجام شود. مدیر بار تصمیمات توازن بار را بر اساس اطلاعات بار سیستم می‌گیرد و اجازه می‌دهد هنگامی که فرآیند ایجاد می‌شود، بهترین تصمیم گرفته شود. انتظار می‌رود که این الگوریتم بهتر از برنامه‌های کاربردی موازی اجرا شود. به ویژه زمانی که فعالیت‌های پویا توسط میزبان‌های متفاوت ایجاد می‌شوند [19].

در منبع [28] و [33] الگوریتم‌های توازن بار پویا مورد بررسی قرار گرفته است. در الگوریتم‌های توازن بار پویا حجم کاری در زمان اجرا میان پردازنده‌ها، توزیع می‌شود. ارباب[64] فرآیند جدید را بر اساس اطلاعات جمع‌آوری شده‌ی جدید به پردازنده برده تخصیص می‌دهد. در یک سیستم توزیع شده، توازن بار پویا می‌تواند به دو روش صورت پذیرد: توزیع شده و توزیع نشده. در نوع توزیع شده، الگوریتم‌های توازن بار توسط تمام ماشین‌های سیستم اجرا می‌شود و مسئولیت حفظ تعادل بار میان تمام آن‌ها مشترک می‌باشد. ارتباط میان ماشین‌ها برای دستیابی به توازن بار می‌تواند به دو شکل مشارکتی و غیر مشارکتی باشد. در الگوریتم‌های مشارکتی، پردازش‌ها برای یک توازن عمومی مشترک در عرض سیستم، با همدیگر کار می‌کنند. تصمیمات زمانبندی پس از در نظر گرفتن تاثیرات آن‌ها روی همان معیارهای موثر عمومی گرفته می‌شوند (به عنوان مثال زمان اتمام عمومی). از سوی دیگر، در الگوریتم‌های غیر مشارکتی، هر ماشین روی زمانبندی منابع خودش، مستقل است که در آن تصمیمات مستقل از بقیه‌ی سیستم گرفته می‌شود؛ بنابراین ماشین ممکن است بر اساس کارایی محلی وظایف را مهاجرت یا تخصیص دهد [26].