ح مختلف یک رایانه قابل اعمال است. سطوح سخت افزار , برنامه کاربردی و سیستم عامل برخی از مواردی هستند که ایجاد انتزاع می تواند در آنها انجام می شود. آنچه که در اینجا بیشتر مورد بحث است, مجازی سازی سیتم عامل است که از آن تحت عنوان Server Virtualization نیز یاد می شود.در این حالت مجازی سازی به فرایند ایجاد استقلال یک سیستم عامل از سخت افزاری که درآن اجرا می شود گفته می شود. در این حالت ماشین مجازی شامل سیستم عامل , برنامه کاربردی و داده های مربوط به آن می باشد و لایه ای به نام فوق ناظر وظیفه نگاشت منابع سخت افزاری فیزیکی(حافظه , دیسک , و …) را به منابع مجازی (حافظه مجازی , دیسک مجازی و…) بر عهده دارد.
شکل 1-5 نمایی کلی از ساختار مجازی سازی
دستیابی به مجازی سازی از جهات مختلف در سیستم های رایانه ای مطرح بوده است که نمونه هایی از آن به این شرح می باشد:
– مجازی سازی برنامه ها با استفاده از تکنولوژی هایی مانند java virtual machine
– مجازی سازی صفحه نمایش کاربر با استفاده از ابزارهایی مانند VNC
– مجازی سازی فضای ذخیره سازی با استفاده از روش های RAID یا logical volumes
– مجازی سازی سیستم عامل و مجازی سازی ماشین
مواردی از این نمونه مجازی سازی که در مورد آخر به ان اشاره شده است, Xen Virtual Machine Monitor و VMware ESX server هستند که یک سطح زیرسیستم عامل قرار میگیرد و سیستم های عامل مهمان می توانند روی آن اجرا شوند. به این سطح زیرین سیستم عامل فوق ناظر گفته می شود که می توانید آن را بعنوان هسته اصلی مجازی سازی در نظر بگیرید. فوق ناظر به سیستم های عامل مهمان اجازه می دهد که منابع را به اشتراک بگذارند, ایجاد شوند, حذف شوند یا به دیگر میزبان ها مهاجرت کنند[13]. مجازی سازی امکان کنترل ریزدانه بیشتری را از چگونگی استفاده از منابع فیزیکی فراهم می کنند. نمونه این موضوع را در شکل2-2 زیر مشاهده می کنید.
شکل 1-6 سرورهای مجازی اجرا شده بر روی یک سخت افزار فیزیکی
شکل فوق نشان می دهد که چندین سیستم عامل مهمان روی یک سرور یکسان اجرا شده اند. این نوع ایجاد انتزاع مزایای زیادی را دربر دارد:
– کارایی در استفاده از منابع: دلیلی وجود ندارد که کل یک سرور را برای اجرای یک کار کوچک, مثلا سرویس ایمیل شرکت هدر دهیم. اگر منابع پردازنده , حافظه یا دیسک اضافه وجود داشته باشد, می توان آنها را در اختیار دیگر سرویس ها قرار دارد بطوری که از منابع استفاده بهتری شود.
– به همین دلیل , سازمان ها از مجازی سازی برای یکپارچه کردن چندین سرور بر روی یک سرور استفاده می کنند.(شکل 2-3.)
شکل 1-7 تاثیر مجازی سازی در کاهش تعداد سرورهای فیزیکی
قابلیت حمل و تحمل خطا: وقتی یک میزبان فیزیکی به انتهای ظرفیت خود می رسد, یا دچار مشکل سخت افزاری می شود, یک سیستم عامل مهمان(و بار مربوط به آن) می تواند به راحتی روی یک میزبان دیگر منتقل شود.
Sandbox های توسعه: به دلیل اینکه کل سیستم عامل می تواند بدون صدمه زدن به محیط میزبان, ایجاد شود و یا از بین برود, مجازی سازی برای ایجاد چندین محیط توسعه که نیاز به سیستم عامل های مختلف , هسته های سیستم عامل یا پیکربندی های سیستمی مختلف در آنها احساس می شود, بسیار ایده آل است. به این ترتیب اگر یک مشکل بزرگ اتفاق بیفتد که بستر تست را از کار بیندازد, مشکلی پیش نخواهد آمد. زیرا می توان به راحتی آن را دوباره ایجاد کرد.
سربار مدیریت کمتر: مجازی سازی به شما امکان یکپارچه کردن چندین سرور با منابع بیکار را در یک سرور با بهره وری منابع بیشتر می دهد. این کار سبب مصرف توان کمتر و اشغال فضای فیزیکی کمتر در مرکز داده می شود. دیگر مزیت کاهش سخت افزار , کاهش تعداد قطعاتی است که امکان خراب شدن آنها وجود دارد, نظیر دیسک ها , CPU ها و منابع تغذیه(توان). البته نقطه مقابل این کار این است که یکپارچه کردن سرورها , می تواند باعث افزایش SPOF (single point of failure)شود. زیرا تعداد سرویس های بیشتری وابسته به یک سخت افزار فیزیکی هستند . بسته های مجازی سازی برای حل این مشکل بالقوه , امکان مهاجرت ماشین ها را از یک سرور به سرور دیگر(برای بازیابی از سوانح و تعدیل بار مجدد) فراهم می کند.
مجازی سازی این شرایط را برای کاربر فراهم می کند تا بتواند با سخت افزار کمتر , کار بیشتری انجام دهد. البته این مزیت باعث پیچیده تر شدن اندازه گیری ها هم می شود. تعیین اینکه کدام منبع مجازی استفاده شده است و کدام منبع فیزیکی می تواند باعث سردرگمی شود, زیرا که لایه انتزاع , سطح دیگری از واحدهای اندازه گیری را ارائه می دهد.
شکل1-8 شمای کلی مجازی سازی مرکز داده
بنابراین بطور خلاصه می توان گفت که براساس رویکرد مجازی سازی , ما می توانیم مرکز داده ای داشته باشیم که کلیه منابع فیزیکی آن دارای یک لایه فوق ناظر باشند.(شکل 2-4) , بصورت انتزاعی از یک دید سطح بالاتر مدیریت می شوند و به این ترتیب منابع سخت افزاری به شکل مجازی , بصورت سرویس , برحسب تقاضا و با سهولت بیشتری در اختیار کاربران قرار داده می شوند [14].
1-4 مقدمه ای بر مهاجرت ماشین های مجازی13
استفاده از ماشین های مجازی درون مراکز داده با هدف پاسخگویی به نیاز مشتریان کافی نیست و نمی توان تنها با بکارگیری این ابزار، در بازار رقابت باقی ماند. بنابراین نیاز به استفاده از ابزار یا بهتر بگوییم تکنیک جدیدی است که با استفاده از آن، از یک سو با جابجایی و تعیین بهترین مکان برای هر کدام از ماشین های مجازی ، مرکز داد ه ای با ظرفیت بالا داشت و از سوی دیگر هزینه های جانبی از جمله هزینه ی برق را کاهش داد. این تکنیک مهاجرت است که یکی دیگر از محصولات تکنولوژی مجازی سازی است و امروزه توسط اکثر مراکز داده با اهداف مختلفی از قبیل تعادل بار 14، تعمیر سرورها، پیشگیری از خرابی و… مورد استفاده قرار می گیرد.
1-4-1 مهاجرت
با توجه به مزایای تکنولوژی مجازی سازی، امروزه اکثر مراکز داده از این روش برای بهبود راندمان کاری و افزایش مشتریان خود استفاده می کنند. این تکنولوژی محیطی را فراهم می آورد که به صورت مجازی بوده و می توان گفت یک ماشین فیزیکی را با تمام حالات و داده های آن در قالب یک فایل منطقی ارائه می دهد. با توجه به این ویژگی، می توان ماشین ها را از مکانی به مکان دیگر منتقل کرد که این عمل انتقال، مهاجرت نام دارد. از جمله محیط های پرکاربرد این تکنیک مراکز داده ای هستند که میزان بار و حجم درخواست ها به صورت کاملا پویا در حال تغییر است. همان طور که در شکل مشاهده می کنید، با این تکنیک می توان ماشین های مجازی در حال اجرا را، بین منابع فیزیکی جابجا نمود. به عبارت دیگر، ماشین مجازی همراه با تمام برنامه های موجود در آن(که در حال اجرا هستند)، از یک منبع به منبع دیگری مهاجرت می کند، بدون این که اجرای برنامه ها بر روی آن مختل شده و کاربر متوجه چنین مهاجرتی شود. به طور کلی از تکنیک مهاجرت برای اهدافی نظیر توازن و تقسیم بار، تحمل پذیری در برابر خطا، مدیریت انرژی، کاهش زمان پاسخ(بهبود دسترس پذیری) و تعمیرو نگهداری سرورها استفاده می شود[15].
شکل 1-9 مهاجرت ماشین مجازی
1-4-2 انواع روش های مهاجرت زنده
فرایند مهاجرت به دو دسته کلی تقسیم می شود که هر کدام از روش های ارائه شده جهت جابجایی ماشین مجازی، در زیرشاخه ی یکی از این دو قرار خواهند گرفت:
– مهاجرت غیر زنده15
– مهاجرت زنده16
در مهاجرت غیر زنده:
ماشین مجازی در مبدأ به طور کامل متوقف می شود، سپس تمام حالت های پردازنده، صفحات حافظه و در صورت امکان(با توجه به سیاست های مورد نظر)داده های دیسک، به ماشین مقصد منتقل می شود. ماشین مقصد پس از دریافت کامل حالات و صفحات، از آخرین حالت ماشین که قبل از انتقال ذخیره شده بود، شروع به کار می کند. یکی از معایب این روش طولانی بودن زمان عدم دسترس پذیری به سرویس ارائه شده توسط ماشین مجازی است، اما از جمله مزایای این روش عدم وجود ناسازگاری های ناشی از انتقال داد ه ها، سادگی در پیاده سازی و تضمین ارسال هر صفحه از حافظه تنها برای یک مرتبه است.
اما در مهاجرت زنده:
ماشین مجازی در حالی که روشن است و به درخواست های رسیده از سوی کاربران پاسخ می دهد، به ماشین مقصد منتقل می شود. در واقع می توان این طور تصور کرد که ماشین به تدریج و رفته رفته به سمت مقصد ارسال می شود. از جمله مزایای این روش می توان به ارائه ی سرویس توسط ماشین مجازی حتی در هنگامی که فرایند مهاجرت و جابجایی صفحات و حالات آن در حال انجام است، اشاره کرد.[16].
1-5 الگوریتم ژنتیک
الگوریتمهای ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق
الگو استفاده میکنند. الگوریتمهای ژنتیک اغلب گزینه خوبی برای تکنیک های پیش بینی بر مبنای
رگرسیون یا برگشت17 هستند.
موتور الگوریتم ژنتیک یک جمعیت اولیه ای از فرمول را ایجاد میکند. هر فرد در برابر مجموعه ای از داده های مورد آزمایش قرار می گیرند و مناسب ترین آنها انتخاب میشوند. مناسب ترین افراد با هم دیگر عمل جفت گیری18 (ترکیب عناصر DNA ) و تغییر19(تغییر تصادفی عناصر DNA )را انجام می دهند. مشاهده می شود با گذشت از میان تعداد زیادی از نسل ها، الگوریتم ژنتیک به سمت ایجاد فرمول هایی که بیشتر دقیق هستند، میل میکند.
جذابیت زیاد الگوریتمهای ژنتیک این است نتایج نهایی قابل ملاحظه تری دارند. فرمول نهایی برای کاربر قابل مشاهده خواهد بود و برای ارایه سطح اطمینان نتایج می توان تکنیکهای آماری متعارف را برروی این فرمولها اعمال کرد. به اختصار گفته میشود که الگوریتم ژنتیک یک فن برنامه نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مساله استفاده میکند. الگوریتم ژنتیک یک فن جستجو در علوم مهندسی برای یافتن راه حل بهینه ومسایل جستجو است . الگوریتم های ژنتیک یکی از انواع الگوریتمهای تکاملی هستند؛ که از علم زیست شناسی مثل وراثت ، جهش ، انتخاب ناگهانی، انتخاب طبیعی و ترکیب الهام گرفته شده است.
به طور معمول راه حلها به صورت اعداد دودویی نشان داده میشوند، ولی روشهای نمایش دیگری هم وجود دارد. تکامل از یک مجموعه به طور کامل تصادفی از موجودیتها شروع میشود و در نسلهای بعدی تکرار میشود و در هر نسل ، مناسب ترین ها انتخاب میشوند نه بهترین ها. راه حلهای هر مساله به وسیله یک لیست از پارامترها نشان داده میشود که به آنها کروموزوم 20 یا ژنوم گفته میشود. کروموزومها21 به طور معمول به صورت یک رشته ساده از داده ها نمایش داده میشوند، البته انواع ساختمان داده های دیگر هم می توانند مورد ا ستفاده قرار بگیرند .
الگوریتمهای ژنتیک پس از طی چندین مرحله از تولید نسل در نهایت باید بر اساس یک سری شرایط
خاصی به اجرای خود خاتمه دهند. تعدادی از شرایط خاتمه الگوریتمهای ژنتیک عبارتند از:
– به اندازه تعداد محدود و مشخص عمل تولید نسل را انجام دهد.
– به اندازه یک زمان ثابت تعریف شده عمل تولید نسل را انجام دهد.
– یک فرد(فرزند تولید شده)پیدا شود که نتیجه مطلوب را حاصل سازد.
– بیشترین درجه برازندگی فرزندان حاصل شود و یا نتایج بهتری دیگر حاصل نشود.
– با بازرسی دستی متوقف شود.
– به صورت ترکیبی از روشهای بالا عمل توقف صورت گیرد[17].
در زیر توضیح مختصری درباره هرکدام از مراحل الگوریتم ژنتیک داده می شود.
1-5-1 جمعیت ژنتیکی22
به مجموعه ای از کروموزوم ها جمعیت گفته می شود. یکی از ویژگیهای الگوریتمهای ژنتیک این است
که به جای تمرکز بر روی یک نقطه از فضای جستجو یا یک کروموزوم، بر روی جمعیتی از

مطلب مشابه :  منابع پایان نامه درموردبهره بردار
دسته بندی : No category

دیدگاهتان را بنویسید