–41

1938020topوزارت علوم، تحقيقات و فناوری
دانشگاه علوم و فنون مازندران
پایان‏نامه
مقطع کارشناسی ارشد
رشته مهندسي فناوری اطلاعات
عنوان : ارایه‏ی یک الگوریتم مقیاس‎پذیر آگاه از بار کاری جهت زمان‏بندی ماشین‏های مجازیاستاد راهنما: دكتر محسن شريفي
استاد مشاور: مهندس هادی سليمی
دانشجو: مهدی چشمی
اسفندمهرماه 1391

تقديم به
به همسر م كه بي همراهي او، اين اندك مقصد نمي رسيد.

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

چكيده
با توجه به نياز جامعه‌ي امروز به توان پردازشي بالاتر و قابليتفراهم نمودن امکان استفاده از امکانات پردازشی برای عموم متقاضيان، استفاده از فناوری پردازش ابری به عنوان يک راهکار عملی در صدر مسايل مورد بحث اين حوزه قرار داردگرفته است.. از سوی ديگر مديريت فنی و هزينه‏ی زيرساخت‏هايی عمومي ارايه‏دهنده‏ي اين که چنين سرويس‏هايی را برای عموم ارايه دهند يکی از چالش‌هاي مهم امروز است. اگرچه با به خدمت گرفتن فناوری مجازی‏سازی در اين حوزه بسياری از چالش‏های اين حوزه رفع گرديده، ولی مسايل جديدی را پيش روی محققان قرار داده است. در اين پايان‌نامه سعي کرده‏ايم با معرفی يکی از چالش‏های مجازی‏سازی به نام تداخل بار کاری و تببين اثر آن بر زمان اجرای نرم‏افزارها كه که در نهايت علاوه بر کاهش کيفيت سرويس و افزايش، مصرف انرژی را نيز در پي داردافزايش می‏دهد، الگوريتمی جهت زمان‏بندی ماشين‏های مجازی بر مبنای کاهش تداخل بار کاری ارايه نماييمکنيم. اين الگوريتم مي‏كوشد كه ماشين‏هاي مجازي با تداخل بار كاري بالا بر روي يك كارگزار تجميع نشوند. اين مساله را مي‏توان با مساله‏ي كوله‏پشتي دودويي چندگانه مدل نمود كه متاسفانه در زمره‏ي مسايل NP-Complete است. با توجه به اين كه در مقوله‏ي زمان‏بندي، زمان اجراي الگوريتم نيز اهميت شاياني دارد، جهت حل مساله از روش تقريبي استفاده شده است. به اين ترتيب كه با پذيرش خطا، مساله‏ي زمان‏بندي ماشين‏هاي مجازي در زماني قابل قبول حل شده است. نتايج ارزيابي‌ الگوريتم ارايه شده و مقايسه‏ي آن با ديگر الگوريتم‏ها، نشان از کاهش زمان اجرای نرم‏افزار با اين رويکرد دارد که باعث بهبود پارامترهای کيفی و هزينه‏ای سيستم‏های پردارش ابری خواهد شد. مثلا براي مركز داده‏اي كه قرار است 1000 ماشين مجازي را بر روي 50 ماشين فيزيكي زمان‏بندي نمايد، الگوريتم ارايه شده بهبود 6% در زمان اجرا و افزايش 5/2برابري ضريب تجميع را نسبت به الگوريتم شناخته شده‏ي چرخشي دارد.واژه‌هاي كليدي: مجازی‏سازی، پردازش ابری، تداخل بار کاری، زمان‏بندی، مقياس‏پذيری.، مجازی‏سازی، پردازش ابری
فهرست مطالب
TOC o “1-3” h z u HYPERLINK l “_Toc339057413” فصل 1: مقدمه و كليات تحقيق PAGEREF _Toc339057413 h 1 HYPERLINK l “_Toc339057414” 1-1- مقدمه PAGEREF _Toc339057414 h 2 HYPERLINK l “_Toc339057415” 1-2- اهداف PAGEREF _Toc339057415 h 3 HYPERLINK l “_Toc339057416” 1-3- ساختار پايان‌نامه PAGEREF _Toc339057416 h 3 HYPERLINK l “_Toc339057417” فصل 2: مجازي‏سازي و پردازش ابري PAGEREF _Toc339057417 h 5 HYPERLINK l “_Toc339057419” 2-1- مقدمه PAGEREF _Toc339057419 h 6 HYPERLINK l “_Toc339057420” 2-2- تعريف مجازي‏سازي PAGEREF _Toc339057420 h 6 HYPERLINK l “_Toc339057421” 2-3- تاريخچه‏ي مجازي‏سازي PAGEREF _Toc339057421 h 7 HYPERLINK l “_Toc339057422” 2-4- ناظر ماشين مجازي PAGEREF _Toc339057422 h 8 HYPERLINK l “_Toc339057423” 2-5- کاربردهاي مجازي‏سازي PAGEREF _Toc339057423 h 9 HYPERLINK l “_Toc339057424” 2-5-1- جعبه‏ي شني PAGEREF _Toc339057424 h 9 HYPERLINK l “_Toc339057425” 2-5-2- محيط‏هاي اجرايي چندگانه PAGEREF _Toc339057425 h 9 HYPERLINK l “_Toc339057426” 2-5-3- سخت‏افزار مجازي PAGEREF _Toc339057426 h 9 HYPERLINK l “_Toc339057427” 2-5-4- سيستم‏عامل‏هاي چندگانه همزمان PAGEREF _Toc339057427 h 9 HYPERLINK l “_Toc339057428” 2-5-5- اشکال‏زدايي PAGEREF _Toc339057428 h 10 HYPERLINK l “_Toc339057429” 2-5-6- مهاجرت نرم‏افزار PAGEREF _Toc339057429 h 10 HYPERLINK l “_Toc339057430” 2-5-7- بسته‏ي پيش‏نصب مجازي PAGEREF _Toc339057430 h 10 HYPERLINK l “_Toc339057431” 2-5-8- تجميع كارگزار PAGEREF _Toc339057431 h 10 HYPERLINK l “_Toc339057432” 2-6- سطوح مختلف مجازي‏سازي PAGEREF _Toc339057432 h 14 HYPERLINK l “_Toc339057433” 2-6-1- معماري يک سيستم قابل مجازي سازي PAGEREF _Toc339057433 h 14 HYPERLINK l “_Toc339057434” 2-6-2- مجازي‏سازي در سطح معماري مجموعه دستور PAGEREF _Toc339057434 h 18 HYPERLINK l “_Toc339057435” 2-6-3- مجازي‏سازي در سطح انتزاع سخت‏افزار PAGEREF _Toc339057435 h 19 HYPERLINK l “_Toc339057436” 2-6-4- مجازي‏سازي در سطح سيستم‏عامل PAGEREF _Toc339057436 h 24 HYPERLINK l “_Toc339057437” 2-6-5- مجازي‏سازي در سطح برنامه‏ي کاربردي PAGEREF _Toc339057437 h 26 HYPERLINK l “_Toc339057438” 2-6-6- مجازي‏سازي در سطح کتابخانه PAGEREF _Toc339057438 h 29 HYPERLINK l “_Toc339057439” 2-7- پردازش ابري PAGEREF _Toc339057439 h 30 HYPERLINK l “_Toc339057441” 2-7-1- تاريخچه PAGEREF _Toc339057441 h 30 HYPERLINK l “_Toc339057442” 2-7-2- مزاياي اقتصادي ابر PAGEREF _Toc339057442 h 31 HYPERLINK l “_Toc339057443” 2-7-3- انواع ابر پردازشي PAGEREF _Toc339057443 h 32 HYPERLINK l “_Toc339057444” فصل 3: تحقيقات مرتبط PAGEREF _Toc339057444 h 33 HYPERLINK l “_Toc339057445” 3-1- مقدمه PAGEREF _Toc339057445 h 34 HYPERLINK l “_Toc339057446” 3-2- رويكردهاي متفاوت به زمان‏بندي ماشين‏هاي مجازي PAGEREF _Toc339057446 h 34 HYPERLINK l “_Toc339057447” 3-2-1- مزايا و معايب رويکردهاي زمان‏بندي ماشين‏هاي مجازي PAGEREF _Toc339057447 h 36 HYPERLINK l “_Toc339057448” فصل 4: الگوريتم DVMS PAGEREF _Toc339057448 h 37 HYPERLINK l “_Toc339057471” 4-1- مقدمه PAGEREF _Toc339057471 h 38 HYPERLINK l “_Toc339057472” 4-2- ملاحظات زمان‏بندي در يک محيط پردازش ابري PAGEREF _Toc339057472 h 38 HYPERLINK l “_Toc339057473” 4-2-1- کارايي PAGEREF _Toc339057473 h 38 HYPERLINK l “_Toc339057474” 4-2-2- هزينه PAGEREF _Toc339057474 h 38 HYPERLINK l “_Toc339057475” 4-2-3- همجواري PAGEREF _Toc339057475 h 39 HYPERLINK l “_Toc339057476” 4-2-4- قابليت اعتماد و دسترس‏پذيري مستمر PAGEREF _Toc339057476 h 39 HYPERLINK l “_Toc339057477” 4-3- چالش‏هاي زمان‏بندي PAGEREF _Toc339057477 h 39 HYPERLINK l “_Toc339057479” 4-4- الگوريتم ارايه شده براي زمان‏بندي ماشين‏هاي مجازي PAGEREF _Toc339057479 h 39 HYPERLINK l “_Toc339057480” 4-4-1- نگاشت مساله‏ي زمان‏بندي به مساله‏ي کوله پشتي PAGEREF _Toc339057480 h 40 HYPERLINK l “_Toc339057481” 4-4-2- مدل سيستم PAGEREF _Toc339057481 h 40 HYPERLINK l “_Toc339057482” 4-4-3- فرمول‏بندي مساله PAGEREF _Toc339057482 h 40 HYPERLINK l “_Toc339057483” 4-4-4- الگوريتم DVMS PAGEREF _Toc339057483 h 42 HYPERLINK l “_Toc339057484” 4-4-5- قضيه PAGEREF _Toc339057484 h 45 HYPERLINK l “_Toc339057485” 4-4-6- بررسي پيچيدگي زماني الگوريتم: PAGEREF _Toc339057485 h 47 HYPERLINK l “_Toc339057486” 4-4-7- پيچيدگي فضايي الگوريتم: PAGEREF _Toc339057486 h 48 HYPERLINK l “_Toc339057488” فصل 5: ارزيابي الگوريتم ارايه شده PAGEREF _Toc339057488 h 49 HYPERLINK l “_Toc339057489” 5-1- مقدمه PAGEREF _Toc339057489 h 50 HYPERLINK l “_Toc339057490” 5-2- شرايط و محدوديت‏هاي ارزيابي PAGEREF _Toc339057490 h 50 HYPERLINK l “_Toc339057491” 5-2-1- مشخصات سخت‏افزاري و نرم‏افزاري محيط ارزيابي PAGEREF _Toc339057491 h 51 HYPERLINK l “_Toc339057492” 5-3- فرض‏ها و تعريف‏ها PAGEREF _Toc339057492 h 51 HYPERLINK l “_Toc339057493” 5-4- بررسي زمان اجراي الگوريتم PAGEREF _Toc339057493 h 52 HYPERLINK l “_Toc339057494” 5-4-1- تعداد ماشين‏هاي فيزيکي ثابت، تعداد ماشين‏هاي مجازي متغير PAGEREF _Toc339057494 h 52 HYPERLINK l “_Toc339057495” 5-4-2- تعداد ماشين‏هاي مجازي ثابت، تعداد ماشين‏هاي فيزيکي متغير PAGEREF _Toc339057495 h 55 HYPERLINK l “_Toc339057496” 5-5- مقايسه الگوريتم DVMS با دو الگوريتم پايه PAGEREF _Toc339057496 h 56 HYPERLINK l “_Toc339057497” 5-5-1- الگوريتم تصادفي PAGEREF _Toc339057497 h 57 HYPERLINK l “_Toc339057498” 5-5-2- الگوريتم توازن بار PAGEREF _Toc339057498 h 57 HYPERLINK l “_Toc339057499” 5-5-3- روش مقايسه الگوريتم DVMS با الگوريتم تصادفي و چرخشي PAGEREF _Toc339057499 h 57 HYPERLINK l “_Toc339057500” فصل 6: نتيجه‏گيري و كارهاي آينده PAGEREF _Toc339057500 h 61 HYPERLINK l “_Toc339057503” 6-1- نتيجه‏گيري PAGEREF _Toc339057503 h 62 HYPERLINK l “_Toc339057504” 6-2- کارهاي آينده PAGEREF _Toc339057504 h 62 HYPERLINK l “_Toc339057505” منابع PAGEREF _Toc339057505 h 64فصل 1: مقدمه و كليات تحقيق11-1- مقدمه21-2- اهداف31-3- ساختار پايان‌نامه3فصل 2: ادبيات و پيشينه‏ي تحقيق52-1- مقدمه62-2- تعريف مجازي‏سازي62-3- تاريخچه‏ي مجازي‏سازي72-4- ناظر ماشين مجازي92-5- کاربردهاي مجازي‏سازي102-5-1- جعبه‏ي شني 102-5-2- محيط‏هاي اجرايي چندگانه102-5-3- سخت‏افزار مجازي102-5-4- سيستم‏عامل‏هاي چندگانه همزمان112-5-5- اشکال‏زدايي112-5-6- مهاجرت نرم‏افزار112-5-7- تعبيه122-5-8- تجميع سرور122-6- سطوح مختلف مجازي‏سازي152-6-1- معماري يک سيستم قابل مجازي سازي162-6-2- مجازي‏سازي در سطح معماري مجموعه دستور202-6-3- مجازي‏سازي در سطح انتزاع سخت‏افزار222-6-4- مجازي‏سازي در سطح سيستم‏عامل272-6-5- مجازي‏سازي در سطح برنامه کاربردي292-6-6- مجازي‏سازي در سطح کتابخانه332-7- پردازش ابري342-7-1- تاريخچه342-7-2- مزاياي اقتصادي ابر352-7-3- انواع ابر پردازشي36فصل 3: كارهاي مرتبط383-1- کارها و تحقيقات مرتبط383-1-1- مزايا و معايب رويکردهاي زمان‏بندي ماشين‏هاي مجازي40فصل 4: روش تحقيق414-1- زمان‏بندي424-2- ملاحظات زمان‏بندي در يک محيط پردازش ابري424-2-1- کارايي424-2-2- هزينه424-2-3- محليت434-2-4- قابليت اعتماد و دسترس‏پذيري مستمر434-3- چالش‏هاي زمان‏بندي434-4- الگوريتم ارايه شده براي زمان‏بندي ماشين‏هاي مجازي434-4-1- نگاشت مساله‏ي زمان‏بندي به مساله‏ي کوله پشتي444-4-2- مدل سيستم444-4-3- فرمول‏بندي مساله454-4-4- الگوريتم DVMS464-4-5- قضيه494-4-6- بررسي پيچيدگي زماني الگوريتم:504-4-7- پيچيدگي فضايي الگوريتم:52فصل 5: محاسبات و يافته‏هاي تحقيق535-1- مقدمه545-2- شرايط و محدوديت‏هاي ارزيابي545-2-1- مشخصات سخت‏افزاري و نرم‏افزاري محيط ارزيابي555-3- فرضيات و تعاريف565-4- بررسي زمان اجراي الگوريتم575-4-1- تعداد ماشين‏هاي فيزيکي ثابت، تعداد ماشين‏هاي مجازي متغير575-4-2- تعداد ماشين‏هاي مجازي ثابت، تعداد ماشين‏هاي فيزيکي متغير605-5- مقايسه الگوريتم DVMS با دو الگوريتم پايه625-5-1- الگوريتم تصادفي625-5-2- الگوريتم توازن بار625-5-3- روش مقايسه الگوريتم DVMS با الگوريتم تصادفي و Round Robin62فصل 6: نتيجه‏گيري و كارهاي آينده676-1- نتيجه‏گيري676-2- کارهاي آينده68فصل 7: منابع69

فهرست شكل‏ها
TOC h z t “زيرنويس شکل,1” HYPERLINK l “_Toc339057519” شکل (1-1) ساختار پايان‌نامه PAGEREF _Toc339057519 h 4 HYPERLINK l “_Toc339057520” شکل (2-1) ناظر ماشين مجازي و ماشين‏هاي مجازي PAGEREF _Toc339057520 h 8 HYPERLINK l “_Toc339057521” شکل (2-2) تجميع كارگزارها PAGEREF _Toc339057521 h 11 HYPERLINK l “_Toc339057522” شکل (2-3) مشكل مقياس‏پذيري تجميع كارگزارها PAGEREF _Toc339057522 h 13 HYPERLINK l “_Toc339057523” شکل (2-4) سطوح انتزاعي مجازي‏سازي PAGEREF _Toc339057523 h 16 HYPERLINK l “_Toc339057524” شکل (2-5) ساختار ماشين مجازي مستقل PAGEREF _Toc339057524 h 21 HYPERLINK l “_Toc339057525” شکل (2-6) ساختار ماشين مجازي ميزباني PAGEREF _Toc339057525 h 22 HYPERLINK l “_Toc339057526” شکل (2-7) معماري VMware Workstation PAGEREF _Toc339057526 h 23 HYPERLINK l “_Toc339057527” شکل (2-8) معماري VMware ESX PAGEREF _Toc339057527 h 24 HYPERLINK l “_Toc339057528” شکل (2-9) يك ماشين با دو jail PAGEREF _Toc339057528 h 26 HYPERLINK l “_Toc339057529” شکل (4-1) شبه‏كد الگوريتم DVMS PAGEREF _Toc339057529 h 42 HYPERLINK l “_Toc339057530” شکل (4-2) فاز دوم از بخش اول الگوريتم PAGEREF _Toc339057530 h 44 HYPERLINK l “_Toc339057531” شکل (4-3) بخش دوم الگوريتم DVMS PAGEREF _Toc339057531 h 45 HYPERLINK l “_Toc339057533” شکل (4-4) شبه كد محاسبه‏ي تداخل دو به دوي ماشين‏هاي مجازي PAGEREF _Toc339057533 h 47 HYPERLINK l “_Toc339057535” شکل (4-5) شبه‏كد تداخل بين ماشين‏هاي زمان‏بندي شده و ماشين‏هاي زمان‏بندي نشده PAGEREF _Toc339057535 h 48 HYPERLINK l “_Toc339057536” شکل (5-1) نتيجه‏ي آزمايش شماره 1 PAGEREF _Toc339057536 h 53 HYPERLINK l “_Toc339057537” شکل (5-2) نتيجه‏ي آزمايش شماره 2 PAGEREF _Toc339057537 h 53 HYPERLINK l “_Toc339057538” شکل (5-3) نمودار تلفيقي دو آزمايش 1و2 PAGEREF _Toc339057538 h 54 HYPERLINK l “_Toc339057539” شکل (5-4) نتيجه‏ي آزمايش شماره 3 و4 PAGEREF _Toc339057539 h 55 HYPERLINK l “_Toc339057540” شکل (5-5) نتيجه‏ي زمان‏بندي 100 ماشين مجازي PAGEREF _Toc339057540 h 56 HYPERLINK l “_Toc339057541” شکل (5-6) مقايسه‏ي زمان اجراي ماشين‏هاي مجازي در سه الگوريتم مورد آزمايش PAGEREF _Toc339057541 h 58 HYPERLINK l “_Toc339057542” شکل (5-7) مقايسه‏ي زمان اجراي سه الگوريتم مورد آزمايش PAGEREF _Toc339057542 h 59 HYPERLINK l “_Toc339057543” شکل (5-8) مقايسه‏ي زمان اجراي ماشين‏هاي مجازي در سه الگوريتم مورد آزمايش بدون زمان اجراي الگوريتم PAGEREF _Toc339057543 h 59 HYPERLINK l “_Toc339057544” شکل (5-9) مقايسه‏ي ميزان تداخل ماشين‏هاي مجازي در سه الگوريتم مورد آزمايش PAGEREF _Toc339057544 h 60 HYPERLINK l “_Toc339057545” شکل (5-10) مقايسه‏ي نسبت تجميع سه الگوريتم مورد آزمايش با توجه به تعداد ماشين‏هاي مجازي PAGEREF _Toc339057545 h 60شکل (1-1) ساختار پايان‌نامه4شکل (2-1) ناظر ماشين مجازي و ماشين‏هاي مجازي9شکل (2-2) تجميع سرور12شکل (2-3) مشكل مقياس‏پذيري تجميع سرورها14شکل (2-4) سطوح انتزاعي مجازي‏سازي18شکل (2-5) ساختار ماشين مجازي مستقل23شکل (2-6) ساختار ماشين مجازي ميزباني24شکل (2-7) معماري VMware Workstation26شکل (2-8) معماري VMware ESX26شکل (2-9) يك ماشين با دو jail29شکل (3-1) فاز دوم از بخش اول الگوريتم47شکل (3-2) بخش دوم الگوريتم DVMS48شکل (4-1) نتيجه‏ي آزمايش شماره 157شکل (4-2) نتيجه‏ي آزمايش شماره 258شکل (4-3) نمودار تلفيقي دو آزمايش 1و259شکل (4-4) نتيجه‏ي آزمايش شماره 3 و460شکل (4-5) نتيجه‏ي زمان‏بندي 100 ماشين مجازي61شکل (4-6) مقايسه‏ي زمان اجراي ماشين‏هاي مجازي در سه الگوريتم مورد آزمايش63شکل (4-7) مقايسه‏ي زمان اجراي سه الگوريتم مورد آزمايش64شکل (4-8) مقايسه‏ي زمان اجراي ماشين‏هاي مجازي در سه الگوريتم مورد آزمايش بدون زمان اجراي الگوريتم64
فهرست جدول هادول‏ها TOC h z t “Title,1,بالانويس جدول,1” HYPERLINK l “_Toc338603460” جدول (2-1) بهره‏و‏ري كارگزارها PAGEREF _Toc338603460 h 11 HYPERLINK l “_Toc338603461″ جدول (5-1) مشخصات بستر سخت‌افزاري مورد استفاده در آزمايش‏ها PAGEREF _Toc338603461 h 51جدول (2-1) : بهره وري سرورها13جدول (4-1) مشخصات بستر سخت‌افزاري مورد استفاده در آزمايشات56

ممقدمه و كليات تحقيق
مقدمهفناوري مجازي‏سازي به عنوان يک رکن اساسي در سيستم‏هاي مبتني بر پردازش ابري و مراکز داده مورد توجه ويژه مي‏باشد. مفهوم مجازي‏سازي داراي قدمتي طولاني در دنياي رايانه است و سرآغاز آن به دهه 60 ميلادي، براي استفاده‏ي بهينه از توان رايانه‏هاي بزرگ مي‏رسد. با ظهور رايانه‏هاي شخصي ارزان قيمت اين فناوري به فراموشي سپرده شد، ولي در آغاز قرن جاري به مدد پيشرفت‏هاي قابل توجه در ساخت رايانه‏هاي توانمند، شبکه‏هاي با پهناي باند بالا و ابزارهاي ذخيره‏سازي مدرن اين فناوري امکان ظهور مجدد يافته ‏است. استفاده‏ي بهينه از منابع کارگزارها با تجميع سرويس‏ها بر تعداد کمتري ماشين سخت‏افزاري کمتر، کاهش هزينه‏هاي زيرساخت مانند مصرف برق و خنک‏کنندگي، مديريت بهتر و آسان‏تر كارگزارهاسرورها، امکان مهاجرت ماشين‏هاي مجازي در حال اجرا به ميزبان‏هاي فيزيکي ديگر، ايجاد محيط‏هاي سازگار با نرم‏افزارهاي قديمي، ايجاد محيط‏هاي اجرايي مجزا جهت نرم‏افزارهاي نامطمئن و يا تست و عيب‏يابي نرم‏افزارهاي جديد مي‏باشد از علت‏هاي ل مورد توجه قرار گرفتن اين فناوري مي‏باشند. هسته اصلي محيط مجازي، يک ميزبان نرم‏افزاري به نام ناظر ماشين مجازي است. وظيفه‏ي اصلي ناظر ماشين مجازي ايجاد و مديريت منابع محيط‏هاي اجرايي است. از آن‏جا که منابع موجود، محدود و مشترک مي‏باشند، رقابت بر سر استفاده از آن‏ها باعث ايجيجاد پديده‏اي به نام تداخل بار کاري مي‏شود که تاثير قابل توجهي بر کاهش کارايي ماشين‏هاي مجازي مي‏گذارد. در اين ميان نقش کليدي ناظر ماشين ‏‏‏ مجازي اين است که منابع موجود را به گونه‏اي تسهيم و زمان‏بندي نمايد که کارايي ماشين‏هاي مجازي تحت تاثير قرار نگيرد.
معمولا زمان اجراي يک برنامه بر روي يک ماشين مجازي طولاني‎تر از زمان اجراي آن بر روي يک ماشين فيزيكيفيزيکي مي‏باشد که علت اصلي آن سربار ناشي از مجازي‏سازي و تداخل بارهاي کاري است. از اين رو ارايه‏ي الگوريتم‏هايي با رويکرد کاهش تداخل بار کاري، مي‏تواند نقش بارزي در کاهش زمان اجراي برنامه‏هاي اجرايي در محيط‏هاي مجازي بشود. از سويي ديگر با توجه به تنوع و تعدد ميزبان‏هاي سخت‏افزاري يک در محيط پردازش ابري، مقياس‏پذيري به عنوان يک مشخصه‏ي کليدي در الگوريتم‏هاي ارايه شده مي‏بايست مورد توجه ويژه قرار گيرد.
اهدافدر اين پايان‏نامه سعي بر آن است كه با توجه به اثر منفي پديده‏ي تداخل بار کاري بر زمان اجراي ماشين‏هاي مجازي يک الگوريتم زمان‏بندي با رويکرد کاهش تداخل بار کاري، ارايه شودنموده که علاوه بر کاهش زمان اجرا و صرفه‏جويي در مصرف انرژي، مقياس‏پذير نيز بوده و قابل اجرا بر روي ابرهاي معمول امروزي باشد.
بنابراين در اين پايان‌نامه باه بررسي دقيق فن‌آاوري مجازي‌سازي و، اثر تداخل بار کاري پرداخته، سعي در ارايه الگوريتمي جهت زمان‏بندي ماشين‏هاي مجازي با رويکرد کاهش تداخل بار کاري خواهيم نمود.
ساختار پايان‌نامهمطالب مندرج در اين پايان‌نامه، همان طور که در شكل (1-1) نشان داده شده است، به صورت زير سازمان‌دهي شده‌اند: فصل 2دوم به بررسي پيشينه‏‏ي مجازي‏سازي و سيستم‏هاي پردازش ابري مي‏ی پردازد. اين فصل در ادامه گذري بر مفهوم زمان‏بندي و پديده‏ي تداخل بار کاري دارد. فصل سوم در نهايت تحقيقاتکارهاي مرتبط در زمينه‏ي زمان‏بندي ماشين‏هاي مجازي مورد بررسي قرار خواهد داد. در فصل چهارم3 ضمن فرموله کردن مساله‏ي زمان‏بندي ماشين‏هاي مجازي با رويکرد تداخل بار کاري، الگوريتمي با همين رويکرد ارايه مي‏شود. در فصل پنجم4 راهکار ارايه شده را ارزيابي گرديدهنموده، کارايي، بهبودها و يا مشکلات آن را بيان خواهد شد. در نهايت در فصل ششم5 به نتيجه‌گيري از کل بحث در خصوص رويکرد کاهش تداخل بار کاري در زمان‏بندي ماشين‏هاي مجازي و نيز کارهاي آيندهتي قابل انجام در ادامه‌ي اين پايان‌نامه پرداخته خواهد شد.

ساختار پايان‌نامه
مجازي‏سازي و پردازش ابري ادبيات و پيشينه‏ي تحقيقمقدمه
مجازي‏سازي يکي از فناوري‏هاي به‏روز و مهم فناوري اطلاعات در مراکز داده مي‏باشد، هرچند که مفاهيم اوليه‏ي آن به دهه‏ي 60 ميلادي بازمي‏گردد. امروزه مجازي‏سازي نامي آشنا براي کارشناسان فناوري اطلاعات است اما با وجود عموميت آن، تعريف کاملي از آن ارايه نشده است. تعاريف ارايه شده معمولا محدود به حوزه‏ي استفاده از مجازي‏سازي و نگاه ارايه‏کنندگان به مقوله‏ي مجازي‏سازي مي‏باشد. مجازي‏سازي مي‏کوشد با قرار دادن لايه‏هاي انتزاعي در سطوح معماري سيستم، از پيچيدگي کار با منابع کاسته، و امکان استفاده‏ي موثرتري و کارآمدتري از اين منابع سيستم را فراهم آورد.
تعريف مجازي‏سازيپيشينه‏ي طولاني و کاربردهاي متنوع مجازي‏سازي ارايه‏ي يک تعريف جامانع و کامل از آن را بسيار دشوار مي‏کند. تعاريفي که از مجازي‏سازي ارايه مي‏شود معمولا جنبه‏هاي خاصي از مجازي‏سازي را پوشش مي‏دهند. به عنوان نمونه از ديدگاه مديران مراکز داده، مجازي‏سازي يعني تجميع سروركارگزارها و يا از ديدگاه يک برنامه‏نويس جاوا مجازي سازي يعني ماشين مجازي جاوا. زانگ ADDIN EN.CITE <EndNote><Cite><Author>Zhang</Author><Year>2010</Year><RecNum>56</RecNum><DisplayText>[1]</DisplayText><record><rec-number>56</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>56</key></foreign-keys><ref-type name=”Conference Proceedings”>10</ref-type><contributors><authors><author>Xu Zhang</author></authors></contributors><titles><title>A Survey of Sys– Virtualization</title></titles><dates><year>2010</year></dates><pub-location>Chicago</pub-location><urls></urls></record></Cite></EndNote>[1] مجازي‏سازي را اين گونه تعريف مي‏کند: مجازي‏سازي نمونه‏هاي جايگزيني براي منابع واقعي ايجاد مي‏کند که از نظر عملکرد و رابطه با جهان خارج همانند نمونه‏ي واقعي مي‏باشند ولي ممکن است از نظر کارايي، اندازه و هزينه با آن متفاوت باشند. به اين منابع، منابع مجازي گفته مي‏شود. سين ADDIN EN.CITE <EndNote><Cite><Author>Singh</Author><Year>2004</Year><RecNum>57</RecNum><DisplayText>[2]</DisplayText><record><rec-number>57</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>57</key></foreign-keys><ref-type name=”Conference Paper”>47</ref-type><contributors><authors><author>Amit Singh</author></authors></contributors><titles><title>An Introduction to Virtualization</title></titles><dates><year>2004</year></dates><urls><related-urls><url>http://www.kernelthread.com/publications/virtualization/</url></related-urls></urls></record></Cite></EndNote>[2] نيز مجازي‏سازي را اين گونه تعريف مي‏کند: مجازي‏سازي فناوری‌اي است که با ترکيب يا تقسيم منابع محاسباتي يک يا چند محيط عملياتي را با استفاده از روش‏هاييمتدلوژيهايي نظير تقسيم سخت‏افزار و نرم‏افزار، شبيه‏سازي کامل يا جزيي ماشين، نمونه‏سازي يا (تقليد) و اشتراک زماني نمايش مي‏دهد. راي ADDIN EN.CITE <EndNote><Cite><Author>Ray</Author><Year>2009</Year><RecNum>58</RecNum><DisplayText>[3]</DisplayText><record><rec-number>58</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>58</key></foreign-keys><ref-type name=”Conference Proceedings”>10</ref-type><contributors><authors><author>Edward Ray</author><author>Eugene Schultz</author></authors></contributors><titles><title>Virtualization security</title><secondary-title>Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies</secondary-title></titles><dates><year>2009</year></dates><urls></urls></record></Cite></EndNote>[3] تعريفي ديگري از مجازي‏سازي ارايه مي‏دهد. به اين صورت كه مجازي‏سازي به فناوري‏هايي دلالت دارد که هدف آن ايجاد يک لايه‏ي انتزاعي بين سخت‏افزارها و نرم‏افزارهايي است كه روي آن سخت‏افزارها اجرا مي‏شودده بر روي آن ايجاد مي‏نمايند. راي مجازي‏سازي را فقط بين سخت‏افزار و نرم‏افزار در نظر گرفته است در صورتي که لايه‏هاي مجازي‏سازي بين لايه‏هاي نرم‏افزاري هم قرار مي‏گيرند. ماشين مجازي جاوا يک نمونه از اين گونه است. در اين رساله با تغيير و تکميل تعريف راي، مجازي‏سازي را به اين صورت تعريف مي‏نماييم: مجازي‏سازي به فناوري‏هايي دلالت دارد که با ايجاد لايه‏‏هاي انتزاعي بين لايه‏هاي مختلفتفاوت معماري سيستم کامپيوتري ايجاد مي‏نمايد و دو لايه‏ي مجاور را به صورتي كه مد نظر ما است به هم مي‏نماياند.ارتباط اين لايه‏ها را ساده‏تر و موثرتر مي‏نمايد. (همیشه ساده‌تر؟؟؟؟)از ديدگاه صوري، مجازي‏بودن با واقعي‏بودن متفاوت است، حال آن‏که ماهيت يا تاثير يکساني دارند ولي در دنياي کامپيوتر برنامه‏هاي کاربردي درک يکساني از محيط‏هاي مجازي و واقعي دارند، اگرچه ممکن است اين محيط‏ها از نظر صوري کاملا متفاوت باشند. گاهي يک ماشين‏مجازي تصويري غير واقعي از يک ماشين يا منبع فيزيکي به نمايش مي‏گذارد به اين معني که ممکن است ماشين يا منبع مجازي‏سازي شده قابليت‏هايي کمتر يا بيشتر از نمونه‏ي واقعي داشته باشد. يک سيستم کامپيوتري معمولي نيز از چنين ترفندهايي استفاده مي‎‏کند. مثالي از اين دست، پياده‏سازي حافظه مجازي در يک سيستم‏عامل‏ است که اجازه مي‏دهد يک پردازه حافظه‏اي بيش از مقداري که سيستم به آن عرضه مي‏کند را استفاده کند. حافظه مجازي همچنين امکان مي‏دهد که حافظه فيزيکي بين چند صد فرايند به اشتراک گذاشته شود. چند وظيفه‏اي مثالي ديگر از اين نوع است که در آن يک پردازنده به روش اشتراک زماني تقسيم مي‏شود تا يک پردازنده‏ي مجازي به هر وظيفه تخصيص دهد. از ديدگاهي ديگر، يک دسته از پردازنده‏هاي با سرعت متوسط با يکديگر در يک خوشه قرار مي‏گيرند تا يک پردازنده‏ي مجازي با سرعت بالا ايجاد کنند. در دنياي امروزي نمونه‏هاي بسيار زيادي وجود دارند که از چنين روش‏هايي بهره مي‏گيرند. اين فناوري‏ها که کمک مي‏کند چنين اشيايء مجازي شده‏اي ايجاد کنيم همه نيز در حوزه‏ي نيز مجازي‏سازي قرار مي‏گيرند.
تاريخچه‏ي مجازي‏سازيفناوري مجازي‌سازي کاربردهاي گسترده و بسيار مهمي در دامنه‏ي گسترده‏اي از زمينه‏هايي نظير تجميع سروركارگزارها، سکوهاي محاسباتي امن، پشتيباني از چند سيستم‏عامل، توسعه و اشکال‏زدايي هسته و مهاجرت پيدا کرده است. اکثر اين فناوري‏ها محيط‏هاي عملياتي مشابهي را به کاربر نهايي ارايه مي‏کنند در حالي که با توجه به سطوح انتزاعي و معماري زيرين با هم متفاوت مي‏باشند. مفهوم ماشين‏هاي مجازي از سال 1960 توسط IBM مطرح شد تا دسترسي همزمان و تعاملي به يک کامپيوتر بزرگ را فراهم آورد ADDIN EN.CITE <EndNote><Cite><Author>Bayles</Author><Year>1996</Year><RecNum>51</RecNum><DisplayText>[4]</DisplayText><record><rec-number>51</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>51</key></foreign-keys><ref-type name=”Report”>27</ref-type><contributors><authors><author>R. U. Bayles</author><author>L. W. Comeau</author><author>R. J. Creasy</author><author>R. J. Adair</author></authors></contributors><titles><title>A Virtual Machine Sys– for the 360/40</title><secondary-title>IBM Corporation</secondary-title></titles><dates><year>1996</year></dates><publisher>Cambridge Scientific Center</publisher><isbn>320</isbn><urls></urls></record></Cite></EndNote>[44]. هر ماشين مجازي نمونه‏اي از ماشين فيزيکي بود به گونه‏اي که کاربران آن تصور مي‏کردند که به طور مستقيم به ماشين فيزيکي دسترسي دارند. اين کار روشي مناسب و شفاف براي امکان اشتراک منابع و اشتراک زماني براي سخت‏افزار بسيار گران قيمت بود. هر ماشين مجازي يک کپي کاملا مجزا و حفاظت شده از سيستم زيرين بود. کاربران مي‏توانستند نرم‏افزارها را ايجاد، اجرا و تست کنند بدون اين که نگران ايجاد مشکل براي سيستم‏هايي باشند که ساير کاربران روي همان کامپيوتر استفاده مي‏کردند. بنابراين مجازي‏سازي با ايجاد امکان استفاده‏ي‏ همزمان چندين کاربر از يک سخت‏افزار باعث کاهش هزينه استفاده از سخت‏افزار و بهبود بهره‏وري مي‏شد. با ارزان‏تر شدن سخت‏افزار و ظهور سيستم‏هاي چندپردازندهشي در سال‏هاي 1970 و 1980 استفاده از فناوريتکنولوژي مجازي‏سازي تقريبا منسوخ شد. ولي با رشد گسترد‏ه‏ي رايانه‏هاي شخصي هاي مبتني بر سخت‏افزار و سيستم‏عامل در سال 1990 ايده‏هاي مجازي‏سازي مجددا مطرح شدند. در آن زمان کاربرد اصلي ماشين مجازي اين بود که امکان اجراي محدوده‏اي از برنامه‏هاي کاربردي را که اساسا روي سيستم عامل‏ها و سخت‏افزارهاي متفاوتي بودند را روي يک ماشين مشخص فراهم مي‏کرد.

ناظر ماشين مجازي و ماشين‏هاي مجازيناظر ماشين مجازييک لايه‏ي مجازي‏سازي، با استفاده از منابع سطح-پايين، يک لايه زير بنايي فراهم مي‏کند تا ماشين‏هاي مجازي چندگانه‏اي ايجاد کند که مجزا و مستقل هستند. چنين لايه مجازي ناظر ماشين مجازي ناميده مي‏شود. ناظر ماشين مجازي شرايطي را به وجود مي‏آورد كه هر ماشين مجازي قرار گرفته روي آن، گمان مي‏كند كنترل سخت‏افزار به عهده دارد. حال آن كنترل سخت‏افزار به عهده‏ي ناظر ماشين مجازي است.مولفه‏اي نرم‏افزاري است که ميزبان ماشين‏هاي مجازي مهمان است. ناظر ماشين مجازي منابع فيزيکي مورد استفاده ماشين‏هاي مجازي را پنهان مي‏کند. به دليل همين انتزاع مي‏تواند چندين ماشين مجازي را روي يک سيستم اجرا کند. شکل 1(2-1) رابطه بين ناظر ماشين مجازي و ماشين‏هاي مجازي را نشان مي‏دهد. يک پردازنده مجازي و ساير نسخه‏هاي مجازي شده از دستگاه‏هاي سيستم نظير دستگاه‏هاي I/O ، انباره‏، حافظه و غيره. ناظر ماشين مجازي علاوه بر ميزباني ماشين‏هاي مجازي، آن‏ها را از هم مجزا مي‏کند تا مشکلات يک ماشين ديگري را تحت تاثير قرار ندهد.
کاربردهاي مجازي‏سازي
مجازي‏سازي مي‏تواند در کاربردهاي عملي گوناگوني داشته باشد که به اختصار به آن اشاره مي‎شود:
جعبه‏ي شني ماشين‏هاي مجازي دربراي ايجاد محيط‏هاي امن و مجزا براي اجراي برنامه‏هاي کاربردي بيگانه و مشکوک مفيد هستند. تکنولوژي مجازي‏سازي مي‏تواند به ايجاد سکوهاي محاسباتي امن کمک نمايد. اصطلاح جعبه‏ي شني از بازي کودکان در گودال ماسه اقتباس شده است که در آن کودکان هرکاري بخواهند انجام مي‏دهند ولي آسيبي به جايي نمي‏رسانند.
محيط‏هاي اجرايي چندگانه مجازي‏سازي مي‏تواند براي ايجاد محيط‏هاي اجرايي چندگانه استفاده شود که با ضمانت تخصيص منابع مورد نياز به هر محيط، کيفيت سرويس را افزايش دهد.
سخت‏افزار مجازيمجازي سي‏سازي مي‏تواند سخت‏افزاري ايجاد کند که وجود واقعي ندارد مثلا درايوهاي SCSI مجازي، ادپتورهاي اترنت مجازي، هاب‏ها و سوييچ‏هاي اترنت مجازي.
سيستم‏عامل‏هاي چندگانه همزمانمجازي‏سازي مي‏تواند امکان داشتن سيستم‏عامل‏هاي چندگانه همزمان را فراهم کند که چندين نوع متفاوت از برنامه‏هاي کاربردي را اجرا کند را فراهم كند..اشکال‏زدايي
مجازي‏سازي کمک مي‏کند نرم‏افزارهاي پيچيده نظير سيستم‏عامل يا درايور دستگاه از طريق اجراي آنها روي يک رايانه‏ي تقليد شده با تمام کنترل‏هاي نرم‏افزاري توسط کاربر اشکال‏زدايي شود.
مهاجرت نرم‏افزارمجازي‏سازي مهاجرت نرم‏افزار را ساده کرده و بنابراين به جابجايييي ‏پذيري کمک مي‏کند. مهاجرت خصوصيت مفيد و يک توسعه‏ي طبيعي براي سکوهاي مجازي‏سازي است که اجازه انتقال ماشين‏هاي مجازي از يک ماشين فيزيکي به ماشين فيزيکي ديگر را فراهم مي‏کند، بدون اندک تعليق در سرويس‏هايي که روي ماشين‏هاي مجازي قرار گرفته‏اند. مهاجرت زنده، حالت کاري و حافظه ماشين‏هاي مجازي را درحالي‏که در حال اجرا هستند در شبکه منتقل مي‏کند.
بسته‏ي پيش‏نصب مجازيتعبيهيک بسته‏ي نرم‏افزاري حاوي برنامه کاربردي است که بر روي سيستم‏عامل مناسب خود نصب شده، و تنظيمات آن نيز انجام گرديده، است. و در قالب يك ماشين مجازي ارايه مي‏شود. از مزاياي آن مي‏توان سادگي استفاده، بهينه بودن از نظر نيازمندي‏هاي نرم‏افزار و قابليت‏هاي سيستم‏عامل را نام برد.
تجميع سروركارگزارتجميع بارهاي کاري چند ماشين کم بهره بر روي يک ماشين براي کاهش تعداد و تنوع مولفه‏هاي موجود در محيط مانند: سروركارگزارها، ابزارهاي ذخيره‏سازي، بسترهاي ارتباطي، سيستم‏عامل‏ها در نتيجه صرفه‏جويي در سخت‏افزار ، مديريت و اداره‏ي زيرساخت مي‏باشد..
تجميع سروركارگزارهاتجميع سروركارگزارها به عنوان يکي از ارمغان‏هاي مهم و کليدي مجازي‏سازي کاربرد فراواني در مراکز داده پيدا کرده است. معمولا بهره‏وري منابع سروركارگزارها در محيط‏هاي غير مجازي‏سازي ‏شده بين 5 تا 10 درصد است در حالي که بهره‏وري سخت‏افزار با تجميع سروركارگزارها به بالاي 50 درصد مي‏رسد ADDIN EN.CITE <EndNote><Cite><Author>Uddin</Author><Year>2010</Year><RecNum>4</RecNum><DisplayText>[5]</DisplayText><record><rec-number>4</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>4</key></foreign-keys><ref-type name=”Journal Article”>17</ref-type><contributors><authors><author>M. Uddin</author><author>A. Abdul Rahman</author></authors></contributors><titles><title>Server Consolidation: An Approach to make Data Centers Energy Efficient and Green</title><secondary-title>International Journal of Scientific &amp; Engineering Research</secondary-title></titles><periodical><full-title>International Journal of Scientific &amp; Engineering Research</full-title></periodical><volume>1</volume><number>1</number><dates><year>2010</year><pub-dates><date>October</date></pub-dates></dates><urls></urls></record></Cite></EndNote>[5]. گزارشي از شرکت VMware با بررسي 300000 سروركارگزار در سراسر جهان در سال 2007 نشان مي‏دهد 20% سروركارگزارها بهره‎وري زير 0.55/0% دارند و 75% آن‏ها نيز بهره‏وري زييرر 5% دارند ADDIN EN.CITE <EndNote><Cite><Author>virtualization</Author><RecNum>6</RecNum><DisplayText>[6]</DisplayText><record><rec-number>6</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>6</key></foreign-keys><ref-type name=”Journal Article”>17</ref-type><contributors><authors><author>VMware Report server virtualization</author></authors></contributors><titles></titles><dates></dates><urls></urls></record></Cite></EndNote>[6] . همچنين مطالعه‏اي بر روي يک مرکز داده‏ي نمونه، اثر تجميع سروركارگزارها را بر مصرف انرژي نشان مي‏دهد ADDIN EN.CITE <EndNote><Cite><Year>2010</Year><RecNum>5</RecNum><DisplayText>[7]</DisplayText><record><rec-number>5</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>5</key></foreign-keys><ref-type name=”Journal Article”>17</ref-type><contributors></contributors><titles><title>Using Virtualization to Improve Data Center Efficiency</title></titles><dates><year>2010</year></dates><publisher>Green Grid</publisher><work-type>White Paper</work-type><urls><related-urls><url>http://www.thegreengrid.org</url></related-urls></urls></record></Cite></EndNote>[7]. جدول شماره (2-1) خلاصه‏ي اين مطالعه را نمايش مي‏دهد.
: بهره‏وه ‏وري كارگزارهاسرورها
همان گونه كه در جدول (2-1) مشاهده مي‏شود، با تجميع سروركارگزارها بهره‏وري به 50 درصد افزايش يافته است و در حدود 87% صرفه‏جويي در مصرف انرژي صورت گرفته است.
مزايا و معايب تجميع سروركارگزارها
تجميع كارگزارها علاوه برگذشته از بهره‏وري انرژي، کاهش تعداد ماشين‏هاي سخت‏افزاري در يک مرکز داده، کاهش فضاي فيزيکي مورد نياز، نگهداري ساده‏تر ،و کاهش حرارت ناشي از کارکرد ماشين‏هاي سخت‏افزاري را به دنبال دارد. از طرفي با قرار دادن برنامه‏هاي کاربردي بر روي سروركارگزارهاي مجازي مجزا، از تاثير منفي نرم‏افزارها بر يکديگر جلوگيري مي‏شود. از آن‏جا که ماشين‏هاي مجازي ماهيتي نرم‏افزاري داشتهرند و از سخت‏افزار مستقل مي‏باشند، در مقايسه با ماشين‏هاي فيزيکي به آساني قابل انتقال به ديگر بسترهاي فيزيکي قابل انتقال مي‏باشندرا دارند. اين به آن مفهوم است که در صورت بروز اشکال در ماشين فيزيکي، ماشين‏هاي مجازي به راحتي به ماشين فيزيکي ديگر مهاجرت مي‏نمايند كرده و به سرويس‏دهي خود ادامه مي‏دهند. تهيه نسخه‏ي پشتيبان از ماشين‏هاي مجازي به آساني پشتيبان‏گيري ازکپي کردن يک فايل است و بازيافت نسخه‏ي پشتيبان به آساني اجراي يک برنامه. است. در نتيجه مجازي‏سازي سروركارگزارها يک بستر قابل اعتماد را نيز براي مديران مراکز داده ايجاد مي‏نمايد که به آساني مي‏توانند به مديريت سروركارگزارها بپردازند. تجميع سروركارگزارها با وجود مزاياي غير قابل انکاري که دارند از معايبي نيز برخوردار است که مواردي از آن‏ها به شرح زير است:
مقياس‏پذيري: با افزايش تعداد ماشين‏هاي مجازي بر روي يک ماشين فيزيکي در ابتدا بهره‏وري منابع به صورت قابل قبولي افزايش پيدا مي‏کند، ولي زماني که تعداد ماشين‏هاي مجازي بيشتر مي‏شود، و يا به عبارت ديگر بار سروركارگزار افزايش مي‏يابد، رشد بهره‏وري کاهش مي‏يافتهبد و پارامترهاي ديگر دخيل در اندازه‏گيري کارايي سيستم مانند زمان پاسخ به شدت افزايش مي‏يابد. هواي و همکاران ADDIN EN.CITE <EndNote><Cite><Author>Lv</Author><Year>2012</Year><RecNum>52</RecNum><DisplayText>[8]</DisplayText><record><rec-number>52</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>52</key></foreign-keys><ref-type name=”Conference Paper”>47</ref-type><contributors><authors><author>H. Lv</author><author>Y. Dong</author><author>J. Duan</author><author>K. Tian</author></authors></contributors><titles><title>Virtualization challenges: a view from server consolidation perspective</title><secondary-title>VEE &apos;12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments</secondary-title></titles><pages>15-26</pages><dates><year>2012</year><pub-dates><date>march</date></pub-dates></dates><pub-location>London, United Kingdom</pub-location><urls></urls></record></Cite></EndNote>[8] دلايل افزايش زمان پاسخ را اين ‏گونه بيان مي‏نمايند که با افزايش تعداد پردازنده‏هاي مجازي اختصاص داده شده به ماشين‏هاي مجازي، سربار مديريت اين پردازنده‏ها توسط ناظر ماشين‏مجازي ناشي افزايش مي‏يابد در نتيجه منابع قابل توجهي از ميزبان فيزيکي توسط خود ناظر ماشين‏مجازي مصرف مي‏شود. به اين ترتيب تجميع سروركارگزارها با مشکل مقياس‏پذيري روبرو است. شکل شماره(2-3) اين واقعيت را نمايش مي‏دهد.
مشكل مقياس‏پذيري تجميع سروركارگزارها[8]همچنين همين مطالعه نشان مي‏دهد که در حدود 7% بهره‏وري پردازنده در سيستم‏هاي تجميع‏شده، صرف تعويض متن مي‏شود.
مديريت سروركارگزارها: همان گونه که اشاره شد اگرچه مجازي‏سازي سروركارگزارها امکانات مديريتي فوق‏العاده‏اي را براي مديران مراکز داده فراهم مي‏آورد، اما اين آساني کار با ماشين‏هاي مجازي پديده‏اي به نام ماشين‏هاي مجازي هرز را به وجود آورده است ADDIN EN.CITE <EndNote><Cite><Author>Barrett</Author><Year>2006</Year><RecNum>55</RecNum><DisplayText>[9]</DisplayText><record><rec-number>55</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>55</key></foreign-keys><ref-type name=”Electronic Article”>43</ref-type><contributors><authors><author>Alex Barrett</author></authors></contributors><titles><title>VMware users worry about virtual machine sprawl</title></titles><dates><year>2006</year><pub-dates><date>Agust</date></pub-dates></dates><urls><related-urls><url>http://searchservervirtualization.techtarget.com/news/article/0,289142,sid94_gci1209313,00.html</url></related-urls></urls></record></Cite></EndNote>[9]. تجربه نشان داده است که تعداد ماشين‏هاي مجازي در مراکز داده به مرور زمان افزايش مي‏يابد نه از آن جهت كه به آن‏ها نياز هست بلکه به خاطر اين ‏که ايجاد و پيکربندي ماشين مجازي در مقايسه با ماشين فيزيکي بسيار آسان و سريع است. به عبارت ديگر کارشناسان مراکز داده به جاي اين که تعداد ماشين‏ها را در حالت بهينه قرار دهند، براي صرفه‏جويي در زمان و راحتي، حتي براي مقاصد غير ضروري، بلافاصله يک ماشين مجازي ايجاد نموده از آن استفاده مي‏نمايند. به اين ترتيب پس از مدتي بستر مجازي، مملو از ماشين‏هايي مي‏شود که واقعا نيازي به آن‏ها نيست. وجود اين ماشين‏هاي مجازي هرز، هزينه‏ي زيرساخت مجازي را افزايش مي‏دهدداده، و همچنين منابع اين زير ساخت را به هدر مي‏دهد.
سطوح مختلف مجازي‏سازيتا قبل از سال 2000 پشتيباني از مجازي‏سازي در طراحي سخت‏افزارها لحاظ نمي‏شد. هر ماشين سخت‏افزاري يک واسط “ساده” عرضه مي‏کرد که فقط مي‏توانست يک نمونه از هسته‏ي سيستم عامل را پشتيباني کند. براي مثال، در يک زمان فقط يک مولفه‏ي نرم‏افزاري در کنترل پردازنده بود و مي‏توانست يک دستورالعمل ممتاز را اجرا کند. اجراي دستورالعمل‏هاي ممتاز براي پردازه‏ها با کمک هسته‏ي سيستم‏عامل ممکن بود. به اين ترتيب که هنگامي که يک پردازه مي‏خواست يک دستورالعمل ممتاز را اجرا نمايد، اين درخواست توسط هسته‏ي سيستم‏عامل به تله مي‏افتاده، و هسته آن را اجرا مي‏کرد. اين تکنيک اغلب براي مجازي‏سازي پردازنده کاربرد دارد. پردازنده‏ها شامل دستوراتي هستند که مي‏توانند حالت ماشين را تحت تاثير قرار دهند، نظير دستورات I/O يا دستوراتي براي اصلاح يا دستکاري ثبات‏هاي سگمنت، ثبات‏هاي کنترل پردازنده، پرچم‏ها و غيره. اين دستورات حساس ناميده مي‏شوند.
معماري يک سيستم قابل مجازي سازي
در سال 1974 پوپک و گلدبرگ نظر خود را در مورد نيازمندي‏هاي رسمي معماري کامپيوتر قابل مجازي‎سازي بيان کردند ADDIN EN.CITE <EndNote><Cite><Author>Goldberg</Author><Year>1974</Year><RecNum>1</RecNum><DisplayText>[10]</DisplayText><record><rec-number>1</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>1</key></foreign-keys><ref-type name=”Magazine Article”>19</ref-type><contributors><authors><author>G. J. Popek </author><author>R. P. Goldberg</author></authors></contributors><titles><title>Formal requirements for virtualizable third generation architectures</title><secondary-title>Communications of the ACM</secondary-title></titles><pages>412-421</pages><volume>17</volume><number>7</number><dates><year>1974</year><pub-dates><date>July</date></pub-dates></dates><urls></urls></record></Cite></EndNote>[10]. [2] براي هر کامپيوتر يک ناظرمانيتور ماشين مجازي مي‏تواند ايجاد شود اگر مجموعه دستورات حساس براي آن کامپيوتر زيرمجموعه‏اي از مجموعه دستورات ممتاز باشد. دستورات ممتاز به دستوراتي گفته مي‏شود كه فقط زماني که پردازنده در بالاترين مد امتياز است اجازه‏ي‏ اجرا دارند. به‏عبارت ديگر، ضروري‏ترين نيازمندي يک معماري کامپيوتري براي اينکه قابل مجازي‏سازي شود اين است که دستورات ممتاز بايد به تله بيفتند شوند به اين معني که وقتي يک ماشين مجازي مهمان (زماني‏که روي يک پردازنده به‏طور مستقيم در حال اجراست) تلاش مي‏کند که يک دستور ممتاز را اجرا کند، پردازنده متوقف شده و کنترل را به ناظر ماشين مجازي مي‏دهد و سپس ناظر ماشين مجازي تصميم مي‏گيرد که دستور را اجرا کند يا نه، يا دستور را به روش‏هاي ديگري شبيه‏سازي کند. دستورات حساس مي‏تو‏انند روي لايه مجازي‏سازي زيرين و بقيه ماشين تاثير گذاشته، و بنابراين بايد براي پياده‏سازي مجازي‏سازي به صورت صحيح به تله بيفتد. کار لايه مجازي‏سازي (مثلا ناظر ماشين مجازي) اين است که حالت ماشين را براي هر يک از موجوديت‏هاي مستقل نگه داشته و در صورت لزوم اين حالت را فقط براي مجموعه‏اي که موجوديت خاصي را نشان مي‏دهد به روز رساني کند. اما موضوع اين‏قدر هم ساده نيست. معمول‏‏ترين معماري يعني x86 کاملا قابل مجازي‏سازي نيست. زيرا مجموعه دستورات حساس زير مجموعه‏ي مجموعه دستورات ممتاز نيست. يعني دستورات حساسي وجود دارد که وقتي در مد امتياز-پايين اجرا مي‏شود به‏جاي اين‏که به تله بيفتد بي‏صدا دچار خرابي مي‏شود. پس مجازي‏سازي چنين معماري‏هايي چالشي بيش از آن‏چه به نظر مي‏رسد مي‏طلبد.
علاوه بر معماري‏ها، مشکلات زياد ديگري نيز وجود دارد که مجازي‏سازي را مشکل مي‏کند. از آنجا که لايه مجازي‏سازي دانش کمي در مورد آن‏چه که درون يک ماشين مجازي اتفاق مي‏افتد دارد، براي اين لايه، تشخيص اين که چه کاري را انجام ندهد مشکل است. مثلا، يک استثناي نبود صفحه که توسط يک سيستم‏عامل مهمان درون يک ماشين مجازي ايجاد مي‏شود نبايد توسط لايه‏ي مجازي‏سازي اداره شود بلکه بايد سيستم‏عامل مهمان خودش آن را مديريت کند. به طور مشابه، يک لايه مجازي‏سازي در سطح سيستم‏عامل نبايد هيچ فراخوان سيستمي را که توسط يکي از پردازه‏هاي روي ماشين مجازي فرستاده مي‏شود، مديريت کند بلکه بايد مديريت آن را به هسته‏ي سيستم‏عامل مهمان واگذار کند. انجام بهينه‏سازي‏ها در نرم‏افزار مجازي‏سازي نيز دشوار است زيرا نمي‏داند چه موقع يک ماشين مجازي به منابع نياز ندارد. مثلا براي ناظر ماشين مجازي دشوار است بداند که سيستم عامل مهمان روي يکي از نمونه‏هاي ماشين مجازي يک رشته‏ي معلق را اجرا مي‏کند و به اين ترتيب سيکل‏هاي پردازنده را تلف مي‏کند در حالي‏که براي بهبود کارايي مي‏تواند به ماشين‏هاي مجازي ديگر اختصاص داده شود.علاوه بر معماري‏ها، مشکلات زياد ديگري نيز وجود دارد که مجازي‏سازي را مشکل مي‏کند. براي نمونه براي ناظر ماشين مجازي تشخيص اين که چه کاري را انجام ندهد مشکل است زيرا دانش کمي در مورد آن‏چه که درون يک ماشين مجازي اتفاق مي‏افتد دارد، مثلا، يك استثناي نبود صفحه که توسط يک سيستم‏عامل مهمان درون يک ماشين مجازي ايجاد مي‏شود نبايد توسط لايه‏ي مجازي‏سازي اداره شود بلکه بايد سيستم‏عامل مهمان خودش آن را مديريت کند. به طور مشابه، يک لايه مجازي‏سازي در سطح سيستم‏عامل نبايد هيچ فراخوان سيستمي را که توسط يکي از پردازه‏هاي روي ماشين مجازي فرستاده مي‏شود، مديريت کند بلکه بايد مديريت آن را به هسته‏ي سيستم‏عامل مهمان واگذار کند. انجام بهينه‏سازي‏ها در نرم‏افزار مجازي‏سازي نيز دشوار است زيرا نمي‏داند چه موقع يک ماشين مجازي به منابع نياز ندارد. مثلا براي ناظر ماشين مجازي دشوار است بداند که سيستم عامل مهمان روي يكي از نمونه‏هاي ماشين مجازي يک رشته‏ي معلق را اجرا مي‏کند و به اين ترتيب سيکل‏هاي پردازنده را تلف مي‏کند در حالي‏که براي بهبود کارايي مي‏تواند به ماشين‏هاي مجازي ديگر اختصاص داده شود.يک ماشين مجازي يک محيط عملياتي براي برنامه‏هاي کاربردي سطح کاربر ارايه مي‏کند که مي‏تواند کتابخانه‏ها، سرويس/واسط فراخوان سيستم، پيکربندي سيستم، پردازه‏هايفرايندهاي ديمن ح ديمن و حالت سيستم فايل را شامل شود. مجازي‏سازي مي‏تواند در چندين سطح انتزاع پياده‏سازي شود: سطح مجموعه دستورات، سطح انتزاع سخت‏افزار(HAL)، سطح سيستم عامل (واسط فراخوان سيستم)، واسط کتابخانه سطح-کاربر يا در سطح برنامه کاربردي (همانطور که در شکل (2-4) نمايش داده شده است). سطح انتزاع هر چه باشد پديده کلي يکي است. به اين معني که با استفاده از تکنيک‏هايي منابع سطح پايين را تقسيم مي‏شود و به صورت شفاف به چند ماشين مجازي در سطح بالا نگاشت مي‏گردد.

سطوح انتزاعي مجازي‏سازيمنظور از مجازي‏سازي در سطح معماري مجموعه دستور (ISA)، نمونه‏سازي مجموعه دستور است. براي مثال، نمونه‏ساز x86 روي پردازنده اسپاركس مي‏تواند هر برنامه کاربردي x86 را اجرا کند بنابراين برنامه‏ي کاربردي را با حيله دچار اين توهم مي‏کند که روي يک پردازنده واقعي اجرا مي‏شود. براي رسيدن به اين هدف، يک نمونه‏ساز بايد قادر باشد ISA مهمان (x86 در اينجا) را به ISA ميزبان (اسپاركس) ترجمه کند.
لايه‏ي مجازي‏سازي سطح سخت‏افزار بين ماشين واقعي و نمونه‏ساز قرار مي‏گيرد. ماشين مجازي محيطي است که توسط ناظر ماشين مجازي ايجاد مي‏شود. خود ناظر ماشين مجازي، نرم‏افزاري است که بين سخت‏افزار لخت و سيستم‏عامل قرار مي‏گيرد و يک ديد مجازي‏ از کل سخت‏افزار را به سيستم‏عامل مهمان مي‏دهد. ناظر ماشين مجازي مي‏تواند چندين ماشين مجازي روي يک ماشين سخت‏افزاري ايجاد کند. در حالي‏که يک نمونه‏ساز يک لايه کامل بين سيستم عامل يا برنامه‏هاي کاربردي و سخت‏افزار ايجاد مي‏کند، ناظر ماشين مجازي يک يا چند ماشين مجازي را مديريت مي‏کند که هر ماشين مجازي به يک سيستم عامل يا برنامه کاربردي امکان مي‏دهد که باور کند گويا روي يک محيط نرمال و مستقيما روي سخت‏افزار اجرا مي‏شود.
مجازي‏سازي در سطح سيستم عامل در حقيقت ماژولي است که بين هسته و فضاي کاربر قرار مي‏گيرد و فراخواني سيستم را مجازي ‏سازي مي‏کند. از آن‏جا که احضار فراخوان سيستم تنها راه ارتباط بين فضاي کاربر و فضاي هسته است نرم‏افزار مجازي سازي بايد بتواند با مديريت اين واسط پردازه‏هاي فرايندهاي فضاي کاربر را به‏طور کامل کنترل کند.
اکثر برنامه‏هاي کاربردي براي پياده‏سازي منطق خود به‏جاي فراخوان‏هاي مستقيم سيستم از مجموعه APIهاي صادر شده از کتابخانه‏هاي سطح- کاربر استفاده مي‏کنند. به همين دليل در بيشتر سيستم‏ها مجموعه APIهاي به خوبي- مستند شده و روش‏هاي خوش-‏تعريفي براي بدست آوردن آن‏ها ايجاد مي‏شودکنند. چنين واسطي داوطلب ديگري براي مجازي‏سازي است. مجازي‏سازي در واسط کتابخانه با کنترل لينک ارتباطي بين برنامه‏هاي کاربردي و بقيه‏ي سيستم از طريق قلاب‏هايAPI امکان‏پذير است. به جاي اين مي‏توان پياده‏سازي‏هاي متفاوتي را که همگي از يک مجموعه از API استفاده مي‏کنند و در عين حال يک سيستم در حال اجرا دارند را نمايش داد. نرم‏افزار ADDIN EN.CITE <EndNote><Cite><RecNum>53</RecNum><DisplayText>[11]</DisplayText><record><rec-number>53</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>53</key></foreign-keys><ref-type name=”Web Page”>12</ref-type><contributors><authors><author>Wine Project</author></authors></contributors><titles></titles><volume>2012</volume><number>August</number><dates><year>2012</year></dates><urls><related-urls><url>http://www.winehq.org/</url></related-urls></urls></record></Cite></EndNote>[11]Wine کار مشابهي براي پشتيباني برنامه‏هاي کاربردي ويندوز روي Unix/X انجام داده است.
مجازي‏ي سازي در سطح برنامه کاربردي اندکي متفاوت است. يعني به اين صورت نيست که يک لايه مجازي را در ميانه قرار دهند، بلکه يک لايه مجازي را به‏عنوان يک برنامه کاربردي پياده‏سازي مي‏کنند که در نهايت يک ماشين مجازي ايجاد مي‏کند. ماشين مجازي ايجاد شده مي‏تواند به سادگي يک مفسر زبان يا به پيچيدگي يک JVM باشد.
فناوريتکنولوژي‏هاي مجازي‏سازي ذکر شده از نظر کارايي، انعطاف‏پذيري، راحتي استفاده، مصرف منابع و مقياس‏پذيري با هم متفاوت هستند و در عمل نيز کاربردهاي متفاوت دارند. به عنوان مثال، نمونه‏سازهاي مجموعه دستور که در سطح ISA عمل مي‏کنند بار زيادي را تحميل مي‏نمايند که استفاده از آن‏ها را به صورت دايمي غيرعملي مي‏سازد،. اما در اشکال‏زدايي و يادگيري بسيار مفيد هستند. اکثر ماشين‏هاي مجازي تجاري که در سطح HAL کار مي‏کنند مثلا VMware اين قابليت انعطاف را به سيستم مي‏دهد که با ارايه‏ي واسط کامل ماشين، سيستم‏عامل‏هاي متفاوت يا نسخه‏هاي مختلفي از يک سيستم‏عامل روي يک ماشين اجرا کند. اين حالت منابع بسيار زيادي مي‏طلبد. زماني‏که چنين انعطاف‏پذيري نياز نباشد ماشين‏هاي مجازي سطح سيستم‏عامل بسيار مفيد هستند. در اين حالت اگرچه سيستم‏عامل در تمام ماشين‏هاي مجازي مانند سيستم‏عامل زيرين به نمايش ‏گذاشته مي‏شود ولي نيازمندي به منابع بسيار کم، کارايي بسيار بهتر و دستکاري (مثلا ايجاد) بسيار سريعتر است. فناوريتکنولوژي‏هاي مجازي‏سازي سطح- کتابخانه بي‏نهايت سبک-‏وزن هستند و مي‏توانند به ايجاد يک زير سيستم کامل زير همان ساختار کمک کند(مثلا Win32روي Unix) . مجازي‏سازي سطح- برنامه کاربردي در محاسبات سيار و ايجاد زيرساخت‏هاي محاسباتي مورد اطمينان کاربردهايي پيدا کرده‏اند.
مجازي‏سازي در سطح معماري مجموعه دستور مجازي‏سازي در سطح معماري مجموعه دستور، نمونه‏سازي کامل مجموعه دستورات معماري به صورت نرم‏افزاري است. يک کامپيوتر نوعي شامل پردازنده‏ها، تراشه‏هاي حافظه، گذرگاه‏ها، درايوهاي سخت، کنترل‏گرهاي ديسک، تايمر، دستگاه‏هاي چندگانه I/O و غيره است. نمونه‏ساز تلاش مي‏کند که دستورهاي صادره از ماشين مهمان را با ترجمه آن‏ها به مجموعه‏اي از دستورات محلي و اجراي آن‏ها روي سخت‏افزار موجود اجرا کند. اين دستورات شامل دستورات يک پردازنده نوعي (جمع، تفريق، پرش و غيره) و دستورات خاص ورودي/خروجي براي دستگاه‏ها (مثلا IN/OUT) هستند. نمونه‏ساز براي تقليد موفق يک کامپيوتر واقعي بايد هر چيزي را که يک کامپيوتر واقعي انجام مي‏دهد نظير تراشه‏هاي ROM، راه‏اندازي مجدد کردن و سوييچ کردن روي آن را تقليدنمونه‏سازي مي‏کند.
اگرچه اين معماري ماشين مجازي از نظر سادگي و پايداريقدرت خوب کار مي‏کند ولي مسايل خود را دارد. از جنبه مثبت، معماري در حالي‏که با چندين سکو سرو کار دارد راحتي پياده‏سازي را فراهم مي‏کند. با توجه به اين‏که نمونه‏ساز با ترجمه‏ي دستورات سکوي مهمان به سکوي ميزبان کار مي‏کند زماني‏که معماري سکوي مهمان تغيير مي‏کند و روشي براي انجام همان کار با دستورات موجود سکوي ميزبان وجود دارد به راحتي وفق داده مي‏شود. با اين روش، هيچ تاکيدي براي پيوند محکم بين سکوي مهمان و ميزبان وجود ندارد که ايجاد زيرساختي را ممکن مي‏سازد که ماشين‏هاي مجازي مي‏توانند بر اساس آن ساخته شوند مثلا x86 بر روي سکوهايي نظير x86، اسپاركس، آلفا و غيره. به هرحال قابليت حمل به بهاي کارايي به دست مي‏آيد. با توجه به اين که هر دستورالعمل صادره از طريق کامپيوتر تقليد شده بايد در نرم‏افزار تفسير شود، کارايي چنين رويکردهايي چندان مطلوب نيست. سه نمونه از چنين مجازي‏سازي‏هايي عبارتنداز:
BochsBochs ADDIN EN.CITE <EndNote><Cite><RecNum>54</RecNum><DisplayText>[12]</DisplayText><record><rec-number>54</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>54</key></foreign-keys><ref-type name=”Web Page”>12</ref-type><contributors></contributors><titles><title>Bochs</title></titles><volume>2012</volume><number>August</number><dates><year>2012</year></dates><urls><related-urls><url>http://bochs.sourceforge.net/</url></related-urls></urls></record></Cite></EndNote>[12] يک نمونه‏ساز x86 PC منبع باز است که توسط گروهي به رهبري کويل لاوتن و به زبانC++ نوشته شده است. Bochs يک نمونه‏ساز با قابليت حمل بالاست که مي‏تواند روي مشهورترين سکوهايي که شامل X86، PowerPC، Alpha، Sun و MIPS است اجرا شوده و مي‏تواند براي تقليد بيشتر نسخه‏هاي ماشين‏هاي x86 شامل 386، 486، پنتيوم، پنتيوم پرو يا AMD64 CPU شامل دستورات انتخابي MMX، SSE، SSE2و 3DNow کامپايل شود. Bochs تمام محيط يک PC از دستورالعمل‏هاي روشن شدن گرفته تا ماوس و کارت شبکه را نمونه‏سازي مي‏کند. به طوري که نرم‏افزاري که در داخل آن اجرا مي‏شود گمان مي‏کند بر روي يک سخت‏افزار PC در حال اجرا است. Bochs دايما دستورالعمل‏هاي x86 را تقلیيد مي‏کند اين بدان معني است که تک تک دستورالعمل‏ها تقليد مي‏شوند که نتيجه‏ي آن سر بار دايمي و زياد اين مجازي‏ساز مي‏باشد. هنگامي که کليدي در ماشين مجازي Bochs فشرده مي‏شود، اين رويداد به نمونه‏ي‏ شبيه‏سازي شده‏ي صفحه‏کليد ارسال مي‏شود و اين نمونه رويداد را براي ميزبان ترجمه مي‏نمايد. اگرچه عملکرد Bochs ببسيار کند است ولي امکاناتي را فراهم مي‏آورد که در سطوح ديگر مجازي‏سازي فراهم نمي‏شود. به عنوان نمونه Bochs امکان اجراي نرم‏افزارهاي مبتني بر معماري x86 را بر روي سکوهاي غيرx86 فراهم مي‏آورد. همچنين با توجه به متن باز بودن آن امکان اشکال‏زدايي سيستم‏عامل‏هاي جديد در Bochs فراهم است. در دنياي صنعتي از Bochs براي اجراي نرم‏افزارهاي قديمي بر روي سخت‏افزارهاي مدرن استفاده مي‏شود.
BIRDBIRD [5] ADDIN EN.CITE <EndNote><Cite><Author>Chiueh</Author><Year>2005</Year><RecNum>75</RecNum><DisplayText>[13]</DisplayText><record><rec-number>75</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>75</key></foreign-keys><ref-type name=”Journal Article”>17</ref-type><contributors><authors><author>Tzi-cker Chiueh</author><author>Wei Li</author><author>Yanjun Wu</author><author>Susanta Nanda</author><author>Lap-Chung Lam </author></authors></contributors><titles><title>Binary Interpretation using Runtime Disassembly</title></titles><dates><year>2005</year></dates><urls></urls></record></Cite></EndNote>[13] يک موتور مفسر براي سكوهاي x86 د x86 هاي دودويي است که در حال حاضر فقط x86 را به عنوان ISA ميزبان پشتيباني مي‏کند و هدف توسعه به ساير معماري‏ها را نيز در پيش دارد. BIRD از شباهت بين معماري‏ها و tries بهره مي‏گيرد تا تعداد بيشتري دستور را روي سخت‏افزار بومي اجرا کند. تمام دستورات ديگر با تقليد نرم‏افزار پشتيباني مي‏شوند. BIRD جدا از تفسير، ابزارهايي براي تحليل دودويي و نوشتن مجدد دودويي فراهم مي‏کند که براي رفع آسيب‏هاي امنيتي و بهينه‏سازي کد مفيد هستند. BIRD تکنيک‏هاي تحليل و ترجمه ايستا و پويا را براي تقليد کارآمد برنامه‏هاي مبتني بر x86 ترکيب مي‏کند.
مجازي‏سازي در سطح انتزاع سخت‏افزارمجازي‏سازي در HAL از شباهت معماري سکوهاي ميزبان و مهمان استفاده مي‏کند تا بار عمليات تفسير را کاهش دهد. بيشتر نمونه‏سازهاي PC تجاري امروزي از اين تکنيک مجازي‏سازي روي سکوهاي x86 معروف استفاده مي‏‏کنند تا استفاده از آن را عملي و کارا کنند. تکنيک‏هاي مجازي‏سازي کمک مي‏کنند تا منابع مجازي را به منابع فيزيکي نگاشت کرده، از سخت‏افزار محلي براي محاسبات در ماشين مجازي استفاده شودکنيم. وقتي‏که ماشين تقليد شده نياز دارد با منابع فيزيکي بحراني تعامل کند، شبيه‏ساز کنترل را به دست مي‏گيرد و به طور مناسب منابع را تسهيم مي‏کند.
براي اين‏که چنين فناوری مجازي‏سازي به‏طور مناسب کار کند، ماشين مجازي بايد بتواند اجراي هر دستور ممتاز شده را در تله انداخته، و آن را براي رسيدگي به ناظر زيرين ارسال كندپاس دهد، زيرا در محيط يک ناظر و چندين ماشين مجازي وجود دارد که هر کدام سيستم‏عامل در حال اجراي خود را دارند ممکن است بخواهند دستورات ممتاز خود را صادر کرده و توجه پردازندهCPU را به خود جلب کند. زماني‏که در طول اجراي دستور ممتاز به‏جاي توليد استثنا و بروز اتفاقات ناخواسته يک تله اتفاق مي‏افتد دستور به ناظر ماشين مجازي ارسال مي‏شود. به اين ترتيب ناظر، کنترل کامل ماشين را در دست مي‏گيرد و هر ماشين مجازي را به‏طور مجزا نگه‏ داشته مي‏شود. بعد از اين کار ناظر يا دستور را روي پردازنده اجرا مي‏کند يا نتايج آن را تقليد کرده و به ماشين مجازي بر مي‏گرداند. با همه‏ي اين توصيفات همان گونه که گفته شد مشهورحبوب‏ترين سکو،x86، به طور کامل قابل مجازي‏سازي نيست به‏عنوان مثال، دستورات ناظر(ممتاز) خاص زماني‏که با امتياز ناکافي اجرا مي‏شوند به‏جاي اين‏که موجب تله مناسب شوند بي‏صدا دچار شکست مي‏شوند. بنابراين تکنيک مجازي‏سازي در زمان نقص اجراي دستور براي انتقالپاس دادن کنترل به ناظر ماشين مجازي بايد مقدار کار اضافي انجام دهد. بيشتر نمونه‏سازهاي تجاري براي غلبه بر چنين مسايلي از تکنيک‏هايي نظير پويش کد و نوشتن مجدد دستور پويا استفاده مي‏کنند. در اين بخش، تکنيک‏هايي که توسط تعدادي از مقلدهاي PC تجاري براي ايجاد ماشين‏هاي مجازي مناسب و کارا استفاده مي‏شوند و ساير ويژگي‏ها و کاستي‏هاي آن‏ها را بررسي مي‏کنيم.

ساختار ماشين مجازي مستقلVMWareVMware يکي از شرکت‏هاي بزرگ در زمينه‏ي توليد نرم‏افزارهاي مجازي‏سازي مي‏باشد. دو گونه از ناظرهاي ماشين مجازي توليدي اين شرکت به نام‏هاي VMware ESX و VMware workstation بيشتر مورد نظر مي‏باشند که به آن‏ها اشاره خواهد شد.
ناظر ماشين مجازي مي‏تواند مستقل يا ميزباني باشد. شکل شماره (52-25) معماري يک ناظر ماشين مجازي مستقل را نمايش مي‏دهد. ناظر ماشين مستقل مستقيما بر روي سخت‏افزار نصب مي‏شود. اين نوع ناظر ماشين مجازي همانند يک سيستم‏عامل نياز براي ارتباط با اجزاي سخت‏افزاري نياز به گردانندهدرايور دارد. به همين دليل اين ناظران ماشين مجازي در پشتيباني از سخت‏افزارهاي مختلف محدوديت دارند و معمولا بر روي سروركارگزارها نصب مي‏شوند. VMware ESX يک نمونه از اين ناظران ماشين مجازي مي‏باشد. ناظر ماشين مجازي ميزباني به ناظري اطلاق مي‏شود که به عنوان يک نرم‏افزار بر روي يک سيستم‏عامل ميزبان نصب مي‏شود.( شکل شماره(6-2)) شماتيكي از اين نوع ناظر ماشين مجازي را نشان مي‏دهد. اين نوع ناظر ماشين مجازي از امکانات سيستم‏عامل ميزبان مانند مديريت حافظه، زمان‏بندي پردازه‏ها، گردانندهدرايور‏ها و مديريت منابع استفاده مي‏نمايند. VMware Workstation يک نمونه از اين نوع ناظر است.

ساختار ماشين مجازي ميزبانيبراي فهم چگونگي عملکرد VMware Workstation نخست بايد مروري بر معماري x86 داشته باشيم. در اين معماري مکانيسم حفاظتي، 3سه سطح عملياتي فراهم مي‏آورد كه از صفر0 تا سه3. نام گرفته‏اند. به اين سطوح اصطلاحا حلقه‏ نيز گفته مي‏شود. طبق اين معماري، سيستم‏عامل و سرويس‏هاي هسته در حلقه‏ي شماره‏ي صفر 0 و گرداننده‏هادرايورها در حلقه‏هاي شماره‏ي 1يك و دو2 و در نهايت نرم‏افزارهاي کاربردي در حلقه‏ي شماره‏ي سه3 اجرا مي‎‏شوند، وليلي در عمل سيسيستم‏عامل و گرداننده‏هادرايورها در حلقه‏ي صفر0 و نرم‏افزارهاي کاربردي در حلقه‏ي سه3 اجرا ممي‏ي‏شوند. دستورالعمل‏هاي ممتاز فقط در حلقه‏ي شماره 0 اجازه‏ي اجرا دارند و اجراي آن‏ها در حلقه‏هاي ديگر با ممانعت سخت‏افزار مواجه مي‏شود.
VMware Workstation از 3سه جز تشکيل شده است. درايور VMX و ناظر ماشين مجازي در حلقه‏ي صفر اجرا مي‏شوند و VMapp در حلقه‏ي شماره 3سه اجرا مي‏شود. پس از اجراي VMapp، با کمک درايور VMX ناظر ماشين مجازي نيز در حافظه بارگذاري مي‏شود و به اين ترتيب امکان اجراي دستورات در حلقه‏ي صفر0 را فراهم مي‏شود. سيستم‏عامل ميزبان از وجود VMapp در حلقه‏ي 3سه و VMX در حلقه‏ي صفر0 آگاه است ولي در مورد ناظر ماشين مجازي مقيم در حافظه آگاهي ندارد. به اين ترتيب دو دنياي متقاوت بر روي يک سخت‏افزار ايجاد مي‏شود. يکي دنياي سيستم‏عامل ميزبان و ديگري دنياي ناظر ماشين مجازي.
در خواست‏هاي پردازنده و حافظه در ماشين‏هاي مجازي از طريق ناظر مستقيما روي سخت‏افزار اجرا مي‏شود، ولي درخواست‏هاي ورودي/خروجي نخست به ناظر ارجاع مي‏شود و ناظر اين درخواست را به VMapp مي‏فرستد. همان گونه که به آن اشاره شد، VMapp در حلقه‏ي 3سه و در دنياي سيستم‏عامل ميزبان قرار دارد. درخواست‏ها از طريق VMapp به سيستم‏عامل ميزبان ارسال مي‏شود و نتايج آن به VMapp باز مي‏گردد. سپس VMapp اين نتايج را به ناظر انتقال مي‏دهد و ناظر نيز پاسخ‏هاي مناسب را به ماشين مجازي ارسال مي‏نمايد. شکل (2-7) اين فرايند را نمايش مي‏دهد.

معماري VMware Workstationاز آن‏جا که نسخه‏ي ناظر ماشين مجازي VMware ESX مستقيما بر روي سخت‏افزار نصب مي‏شود،. تمام وظايف سيستم‏عامل ميزبان را نيز بايد به دوش بکشد. يعني اين که مديريت منابع، ارتباط با وسايل ورودي خروجي، پشتيباني از سخت‏افزار و … همه به عهده‏ي ناظر است. علاوه بر آن، اين ناظر يک سوييچ مجازي نيز در اختيار کاربران قرار مي‏دهد که به کمک آن ماشين‏هاي مجازي مي‏تواننداز طريق اين سوييچ با خود و دنياي بيرون از VMware ESX ارتباط شبکه‏اي داشته باشند. شكل(2-8) معماري VMware ESX را نمايش مي‏دهد.

معماري VMware ESXVirtual PCاين محصول ساخته‏ي شرکت مايکروسافت مي‏باشد. از نظر عملکردي مانند VMware Workstation است. يعني يک ناظر ماشين مجازي ميزباني تلقي مي‏شود. ويژگي خاص آن نسبت به VMware Workstation اين است که با استفاده از تکنيک ترجمه دودويي امکان داشتن ماشين‏هاي مبتني بر X86 بر روي بستر فيزيکي مبتني بر Mac فراهم مي‏آورد. ترجمه‏ي دودويي تکنيکي است که مجموعه دستور يک ماشين منبع را به مجموعه دستور يک ماشين مقصد ترجمه مي‏کند. متاسفانه در Virtual PC فقط سيستم‏عامل‏هاي مبتني ويندوز مي‏توانند به عنوان ماشين ميزبان اجرا شوند.
مجازي‏سازي در سطح سيستم‏عاملماشين‏هاي مجازي سطح-سخت‏افزار ويژگي‏هايي نظير درجه‏ي بالايي از مجزاسازي هم براي ماشين‏هاي مجازي نسبت به يکديگر و هم نسبت به ماشين فيزيکي زيرين، نزديکي به مفهوم مجازي‏سازي (افراد آن را به‏صورت ماشين نرمال مي‏بينند همان‏طور که عادت دارند)، پشتيباني سيستم‏عامل‏ها و برنامه‏هاي کاربردي متفاوت بدون نياز به راه‏اندازيريست مجدد يا عبور از رويه راه‏اندازي بوت-دوگانهدوتايي پيچيده، ريسک پايين و نگهداري راحت را به ارمغان مي‏آورند. از آن‏جا که يک ماشين مجازي در اين سطح اجازه دسترسي به يک ماشين خام را مي‏دهد، بنابراين کاربر قبل از اين‏که به بتواند برنامه کاربردي خود را اجرا نمايد، نيازمند نصب سيستم‏عامل و برنامه‏هاي كاربردي مودر نياز و پيكربندي ماشين مي‏باشد كه اين موضوع نيازمند صرف زمان قابل توجهي استنياز دارد زمان کافي براي نصب و مديريت کامپيوتر مجازي صرف کند قبل از اين‏که به فکر آزمون يا اجراي برنامه کاربردي مورد نياز خود باشد. اين فرايند شامل نصب سيستم‏عامل، نصب برنامه‏هاي کاربردي درخواستي، راه‏اندازي شبکه و غيره است.. اگر سيستم عامل مورد نياز همانند سيستم‏عاملي باشد كه روي ماشين فيزيکي نصب استباشد و کاربر ماشين‏مجازي را به منظور امنيت/گودال ماسه‏بازي، به عنوان زمين بازي، يا هر چيزي که نياز به ماشين اضافي را تضمين مي‏کند استفاده مي‏کند، کاربر اساسا از تکرار بسياري از كارهاتلاش‏هايي معاف مي‏شود چون قبلاکه براي راه‏اندازي ماشين فيزيکي انجام داده است معاف مي‏شود. در اين بخش مجازي‏سازي را در سطح بالاتري ازدر پشته‏ي ماشين بررسي مي‏نماييم. (شکل1) بررسي مي‏کنيم که موضوع کمينه کردن افزونگي نيازمندي‏هاي سيستم‏عامل در ماشين مجازي را نشان مي‏دهد. در اين سطح ماشين‏هاي مجازي هم سخت‏افزار و هم سيستم‏عامل ماشين فيزيکي را به اشتراک مي‏گذارند و در بالاي سيستم‏عامل سطح مجازي‏سازي را استفاده مي‏کنند تا چند ماشين مجزا و مستقل را به کاربر ارايه کنند.
يک محيط عملياتي براي يک برنامه کاربردي شامل سيستم عملياتي، کتابخانه‏هاي سطح کاربر، برنامه‏هاي کاربردي ديگر، بعضي ساختار داده‏هاي خاص سيستم، يک سيستم فايل و ساير تنظيمات محيطي است. اگر همه اين‏ها دست‏نخورده باقي بمانند براي يک برنامه کاربردي تشخيص تفاوت آن با محيط واقعي سخت خواهد بود. ايده کلي پشت تمام اين تکنيک‏هاي مجازي‏سازي در سطح سيستم‏عامل اين است که سطح مجازي‏سازي بالاي سيستم‏عامل براي هر ماشين مجازي يک بخشي ايجاد شودمي‏کند که يک نسخهکپي از محيط عملياتي روي ماشين فيزيکي استباشد. هر ماشين مجازي مي‏تواند با يک تکنيک تقسيم و تسهيم دقيق، يک محيط عملياتي کامل و مجزا از ساير ماشين‏ها و از ماشين فيزيکي زيرين صادرايجاد کند. در اين بخش مثال‏هايي از اين نوع انتزاع در نرم‏افزار مجازي‏شده و تکنيک‏هايي که براي رسيدن به هدف به‏کار مي‏گيرند، عنوان مي‏شود.
Jail
“Jail ” ADDIN EN.CITE <EndNote><Cite><Author>Kamp</Author><Year>2000</Year><RecNum>59</RecNum><DisplayText>[14]</DisplayText><record><rec-number>59</rec-number><foreign-keys><key app=”EN” db-id=”sfsx05ppmsx0x2e99v5pvxdmt2ppttsz9wed”>59</key></foreign-keys><ref-type name=”Conference Proceedings”>10</ref-type><contributors><authors><author>Poul-Henning Kamp</author><author>Robert N. M. Watson</author></authors></contributors><titles><title>Jails:Confining the omnipotent root</title><secondary-title>International Sys– Administration and Networking(SANE)</secondary-title></titles><dates><year>2000</year><pub-dates><date>May</date></pub-dates></dates><urls></urls></record></Cite></EndNote>[14] يک نرم‏افزار مجازي‏سازي مبتني بر FreeBSD است که امکان تفکيک محيط سيستم عملياتي را فراهم مي‏کند در حالي‏که سادگي مدل “ريشه” يونيکس را ابقا مي‏کند. محيط قرارگرفته درون jail منابع نوعي سيستم و ساختار داده‏ها نظير پردازه‏ها، سيستم فايل، منابع شبکه وغيره هستند. در jail ، دامنه درخواست‏هاي کاربران با امتياز مخصوص محدود مي‏شود و به مديران سيستم اجازه داده مي‏شود قابليت‏هاي مديريتي را به محيط هر ماشين مجازي محول کند.

Author:

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *