تاكنون چندبار دلتان خواسته است كه يك كامپيوتر اضافه داشتيد كه براي تست‌كردن سيستم‌عامل يا برنامه‌هاي جديد از آن استفاده مي‌كرديد، و كامپيوتر اصلي خود را براي اين‌كارها به‌خطر نمي‌انداختيد؟ يا چندبار به‌دنبال راهي بوده‌ايد كه از سرورهايي كه در اتاق سرور چيده شده‌اند و با آن‌كه برق مصرف مي‌نمايند و گرما توليد مي‌كنند، هركدام فقط يك كار انجام مي‌دهند، بهتر استفاده كنيد؟ اگر مثل ما سروكارتان با تست‌كردن برنامه‌ها باشد، حتما مي‌گوييد: خيلي زياد! نرم‌افزارهاي ‌VM (ماشين‌مجازي) مي‌توانند اين آرزوها را برآورده كنند. با استفاده از اين برنامه‌ها مي‌توانيد از يك سرور براي چند كاربرد مختلف استفاده كنيد و يا كامپيوتري با چند سيستم‌عامل كاملا مستقل داشته باشيد و از آن براي تست نرم‌افزار و مسائل مربوط به آن استفاده كنيد. ‌در اين مقاله محصولاتي را بررسي كرده‌ايم كه يك سيستم‌ 86‌x را به‌طور كامل به‌همراه ‌BIOS، شبيه‌سازي مي‌كنند. به‌همين خاطر بررسي ما به‌پنج مورد از محصولات مايكروسافت و‌ ‌VMware محدود شد. مزيت محصولات VMware ‌نسبت به ‌محصولات مايكروسافت اين است كه سيستم‌عامل ميزبان آن‌ها مي‌تواند ويندوز يا لينوكس باشد. براي كاربردهايي كه نياز زيادي به‌منابع سيستم دارند، محصول منتخب ما ‌‌VMware ESX Server بود؛ چون فقط اين برنامه امكان استفاده از محيط ‌SMP را براي ‌VM فراهم مي‌كند. ولي در مقابل مايكروسافت از مزيت قيمت برخوردار است. به‌علاوه، خريد كامپيوتر مجازي ‌(Virtual PC) يا‌ سرور مجازي (Virutal Server) از فروشگاه‌هاي مايكروسافت به اين معني است كه براي امور پشتيباني فقط بايد به‌يك فروشنده مراجعه كنيد. ‌مقاله حاضر قصد ندارد كارنامه اي از عملكرد اين پنج محصول را ارائه دهد و آن‌ها را با هم مقايسه كند، بلكه فقط امكانات مختلفي معرفي‌خواهد شد كه هر يك از محصولات براي ساخت ماشين‌هاي مجازي روي سرور يا ايستگاه كاري فراهم‌مي‌كنند.


منبع:‌ نت‌ورك كامپيوتينگ 
معرفي‌
به‌طور خلاصه، مجازي‌سازي ‌(‌virtualization) يعني استفاده از يك نرم افزار خاص براي جداسازي منابع فيزيكي يك كامپيوتر در قالب كامپيوترهاي مجازي. لايه جداسازي امكان مي‌دهد كه روي هر كامپيوتر فيزيكي چند VM‌ داشته باشيم. هريك از ‌VMها مي‌توانند داراي سيستم‌عامل خود باشند و آن را اجرا كنند. اگر راه‌اندازي ‌VM در لايه جداسازي به‌درستي صورت گيرد، سيستم‌عاملي كه روي‌ ‌VM اجرا مي‌شود، درست مثل اين‌كه روي خود سخت افزار نصب شده باشد، كار مي‌كند. سيستم‌عامل ميزبان ‌(‌host)، اولين سيستم‌عامل است و مستقيما روي سخت‌افزار فيزيكي نصب مي‌شود. مجازي‌سازي به وسيله نرم‌افزاري كه روي اين سيستم‌عامل نصب مي‌شود و كار مي‌كند، انجام مي‌گيرد. سيسستم‌عامل‌هاي ميهمان ‌(‌guest)، تحت نرم‌افزار مجازي‌سازي و روي ‌VMهاياختصاصي خودشان اجرا مي‌شوند. سيستم‌عامل‌هاي ميهمان از طريق لايه مجازي‌سازي به‌منابع  ماشين فيزيكي (كامپيوتر اصلي) دسترسي دارند. ‌

 بخش كليدي در ساختن لايه جداسازي، معمولا ‌ناظر ماشين‌مجازي يا ‌Virtual Machine Monitor‌) VMM) و گاهي هم ‌Hypervisor خوانده مي‌شود. اين قسمت از نرم‌افزار مسئول به‌اشتراك گذاشتن منابع فيزيكي كامپيوتر بين ‌VMهايي است كه روي آن اجرا مي‌شوند. نوشتن برنامه‌ ‌VMM كار ساده اي نيست. چون اين برنامه بايد طوري به‌سيستم‌عامل ميهمان وانمود كند كه انگار كنترل سخت افزار واقعي سيستم را در دست دارد. براي انجام اين كار،‌VMM در سطح پردازنده، يعني حلقه صفر، كار مي‌كند.

سيستم‌عامل ميهمان يك سطح بالاتر و در حلقه يك اجرا مي‌شود. اكثر سيستم‌عامل‌ها برنامه‌هاي كاربردي را در حلقه سه اجرا مي‌كنند. در اين سطح حفاظتي، برنامه‌هاي كاربردي مجوزهاي محدودي دارند و نمي‌توانند كارهايي را انجام دهند كه به ‌از كارافتادن سيستم‌عامل يا خطرات امنيتي منجر مي‌شوند.  اجرا‌كردن ‌‌OS در حلقه يك باعث مي‌شود ‌VMM عمليات مختلفي را كه سيستم‌عامل مي‌خواهد انجام دهد (مثلا دسترسي به‌حافظه)،  تشخيص دهد وخودش آن‌ها را انجام دهد. ‌

بخش مهم ديگر در ساختن VM، جداسازي لايه سخت‌افزار است. نرم‌افزار ‌VM بايد براي ‌‌OS ميهمان، دستگاه‌ها و سخت‌افزارهاي مختلف، نظير چيپ ست IDE، كارت شبكه و كارت اسكازي را به‌طور مجازي شبيه‌سازي كند. هر يك از نرم‌افزارهاي ‌VM،‌ سخت‌افزارهاي خاصي را شبيه‌سازي مي‌كنند. بعد، دستورات و داده‌هايي كه  سيستم‌عامل ميهمان به‌اين دستگاه مجازي ارسال ‌مي‌‌كند، از طريق نرم‌افزار ‌‌VM براي سخت‌افزار فيزيكي موجود ترجمه و فرستاده مي‌شود.
 
با استفاده از اين دستگاه‌هاي سخت‌افزار مجازي، اين امكان به وجود مي‌آيد كه سيستم‌عامل ميهمان را روي كامپيوتري با سخت‌افزار كاملا متفاوت كپي كنيم و بدون مشكل به‌كار خود ادامه دهيم. ‌VMM مسئول فرستادن داده‌ها و دستورات از دستگاه مجازي به‌دستگاه فيزيكي است. براي مثال، محصولات ‌VM مايكروسافت، كارت شبكه‌ ‌‌Intel 21141  و محصولات VMware‌ هم كارت ‌‌AMD PCnet را شبيه‌سازي مي‌كنند.‌

استفاده از ‌VMها‌
يكي از موارد استفاده متداول از مجازي‌سازي، فراهم‌كردن يك نسخه بدل مجازي از سخت افزار موجود روي يك سيستم براي ساختن يك محيط تست است. تعداد ‌VMهايي كه مي‌توان روي يك ماشين ساخت، به‌مقدار رم و اندازه ‌OS بستگي دارد.
 
براي مثال Novell Netware 6.5 حداقل به ‌512 مگابايت رم نياز دارد. شما مي‌توانيد روي يك ايستگاه كاري با يك گيگابايت رم، بيش از يك ‌‌VM با سيستم‌عامل ‌Netware 6.5 بسازيد؛ فقط نمي‌توانيد به‌طور همزمان هردوي آن‌ها را در حال كار، در اختيار داشته باشيد.

يكي ديگر از مزاياي مجازي‌سازي، صرفه‌جويي در هزينه‌هاست. بسياري از شركت‌ها، چه به‌خاطر توصيه توليدكنندگان و چه به‌خاطر جلوگيري از اثرات جانبي نامطلوب، روي هر كامپيوتر فقط يك سرويس يا كاربرد را اجرا مي‌كنند.


مثلا براي هريك از امور وب، DNS ،DHCP، ايميل، يا پراكسي، يك سرور جداگانه دارند. اين مسئله باعث شلوغ شدن اتاق سرورها هم مي‌شود. خيلي از اين كاربردها نياز به‌حداكثر توان ‌‌CPU ندارند.
 

شكل 1‌ - از طريق يك رابط كاربر مبتني بر وب مي‌توانيد ‌VMware GSX و‌ ‌ESX را مديريت و كنترل كنيد. اين تصوير ميزان استفاده از ‌‌CPU كل سيستم و براي هريك از ‌VMها را نشان مي‌دهد.

ولي مصلحت حكم مي‌كند براي داشتن حداكثر زمان آمادگي ‌‌(uptime)، هريك از آن‌ها روي سخت افزار كاملا جداگانه اجرا شوند.


مي‌توانيد به‌جاي خريد يك كامپيوتر جداگانه براي هريك از اين كاربردها، چند سرور قوي بخريد و چند‌ VM‌ را روي آن‌ها اجرا كنيد. با استفاده از ‌VMها، در هزينه‌هاي بلند مدت سخت‌افزار و هزينه‌هاي جانبي مربوط به‌آن هم صرفه‌جويي خواهيد كرد.

مثلا هزينه برق كاهش مي‌يابد و تهويه و خنك‌سازي اتاق سرور هم بهتر و آسان‌تر مي‌شود. ‌علاوه‌براين، بسياري از شركت‌ها زيرساخت‌هاي خود را براي پاسخگويي به‌حداكثر بار طراحي مي‌كنند.
 
حتي اگر حداكثر اين موضوع فقط چند بار در سال رخ دهد. در اين‌گونه موارد، مديران سيستم مي‌توانند از مجازي سازي بهره بگيرند و كامپيوترهاي يدكي را راه بيندازند و VMها را روي آن‌ها پخش كنند. ‌

آينده مجازي سازي
برخي از مشكلات موجود در شبيه سازي كامل يك كامپيوتر، ريشه در مجموعه دستورالعمل‌هاي 86‌x دارد. يك ‌VMM براي اين‌كه به‌درستي كار كند، بايد بتواند سيستم‌عامل ميهمان را به‌طور كامل در بر بگيرد و مانع از دسترسي آن به‌سخت‌افزار فيزيكي بشود. با وجود اين، بعضي از دستورات ‌‌x86 هستند كه ‌VMM نمي‌تواند آن‌ها را در كنترل خود بگيرد. البته اين مشكل در حال رفع شدن است. تراشه آينده اينتل با نام رمز ‌(Vanderpool) و ‌تراشه‌AMD با نام رمز ‌(‌Pacifica) دستورالعمل‌هاي اسمبلي اضافه‌اي مخصوص مجازي سازي خواهند داشت.

مايكروسافت و ‌‌VMware هم به‌زودي شاهد رقيب جديدي در اين صحنه خواهند بود. پروژه‌ ‌Xen كه در دانشگاه كمبريج اجرا مي‌شود، مي‌خواهد VMM را روي لينوكس پياده‌سازي كند. البته هنوز جايي براي نگراني  مايكروسافت و ‌VMware نيست. چراكه ‌VMهاي ‌Xen در حال حاضر فقط براي لينوكس قابل اجرا هستند. با وجود اين، وب سايت اين پروژه مي‌گويد كه وقتي چيپ‌هاي جديد اينتل و اي‌ام‌دي به‌بازار بيايند، شايد ويندوز هم جزء سيستم‌عامل‌هاي ميهمان اين پروژه باشد. ناول هم از پروژه ‌‌Xen پشتيباني‌مي‌كند.

در كنفرانس ‌‌BrainShare در ماه مارس، شركت ناول تلاش‌هاي خود در زمينه هماهنگي هسته ‌‌NetWare با ‌Xen را به‌نمايش گذاشت. در يكي از اين نمايش‌ها، يك سرور ‌‌NetWare كه تحت ‌Xen كار مي‌كرد، متوقف شد و به‌يك كامپيوتر فيزيكي ديگر انتقال داده شد و چنان‌كه انگار هيچ اتفاقي نيفتاده است، مجددا به‌كار خود ادامه داد. 
البته كمي‌طول خواهد كشيد اين امكانات در دسترس كاربران قرار بگيرد.اينتل اعلام كرده است كه تا اواخر امسال چيپ‌هايي را كه از مجازي سازي پشتيباني مي‌كنند، به‌بازار خواهد فرستاد. چيپ‌هاي ‌‌AMD هم در سال 2006 به‌بازار خواهند آمد. ‌

ما ‌‌VMware Workstation و Microsoft Virtual PC را روي يك ايستگاه كاري با يك گيگابايت رم و ويندوز‌اكس‌پي حرفه‌اي نصب كرديم. ‌‌Microsoft Virtual Server و ‌‌VMware GSX Server روي يك سرور ‌‌Whitebox با يك گيگابايت رم و يك پردازنده ‌‌P4 سه گيگاهرتزي تحت ويندوز 2003 سرور نسخه ‌Enterprise نصب شدند.‌
 
‌VMware ESX Server هم روي سرور چهار پردازنده‌اي‌‌ HPDL 850 نصب شد. سپس تعدادي VM ‌ساختيم و انواع مختلفي از سيستم‌عامل‌هاي مهمان را كه از اين برنامه‌ها پشتيباني مي‌كردند، روي آن‌ها نصب كرديم. (از جمله ويندوزاكس‌پي، ويندوز 2003 سرور، SuSE Linux Enterprise Server، و NetWare 6.5) ما سه محصول از ‌‌VMware را تست كرديم كه عبارتند از: ‌VMware Workstation ،‌VMware GSX Server و VMware ESX Server.

  همان‌طور كه احتمالا حدس‌زده‌ايد، محصول ‌‌Workstation براي استفاده روي يك كامپيوتر مستقل با بار كاري در حد يك سيستم براي ساخت و توسعه نرم‌افزار، ارائه شده است. دو محصول ديگر نيز براي كار روي سرورهاي شبكه طراحي شده‌اند. همچنين براي ‌VMهايي كه به‌طور دائم در محيط‌هاي كاري طراحي و ساخت نرم‌افزار و امور توليدي در حال اجرا هستند. بعضي از قابليت‌هاي اين برنامه‌ها با هم مشابه‌است. ولي تفاوت‌هاي مهمي ‌هم ميان آن‌ها وجود دارد.
از محصولات مايكروسافت دو محصول ‌‌Virtual PC 2004 ‌و ‌‌Virtual Server 2005 را تست كرديم. ‌Virtual PC و Virtual Server به‌ترتيب شبيه ‌VMware Workstation و ‌‌‌VMware GSX Server هستند. ‌Virtual PC براي كامپيوترهاي منفرد و‌ Virtual Sever ‌براي محيط‌هاي شبكه و بار كاري سنگين‌تر ارائه شده است. ‌ 

نرم افزار‌ VM‌مناسب براي سازندگان نرم‌افزار
برنامه Microsoft Virtual PC 2004.  فقط براي فروشگاه‌هاي مايكروسافتي و ساختن ‌‌VM براي استفاده بعدي روي ‌‌Virtual Server انتخاب مناسبي هستند. اولين چيزي كه پس از اجراي برنامه متوجه مي‌شويم، ساده و ابتدايي بودن رابط كاربر نسبت به ‌‌VMware Workstation است. براي مثال، ما مي‌خواستيم براي ساختن يك ‌VM جديد، ‌OS را از روي يك ايميج ‌‌ISO نصب كنيم. ولي اين امكان وجود نداشت كه ‌CD-ROM به‌جاي استفاده از سخت افزار اصلي، از يك فايل ‌‌ISO استفاده‌كند. البته اين‌كار امكانپذير است. ولي اول بايد ‌VM را اجرا كنيم تا بتوانيم درايو ‌‌CD-ROM را به‌يك فايل ايميج‌ ‌ISO نگاشت يا map كنيم. ‌

تفاوت قابل توجه ديگر اين بود كه امكانات موجود براي سخت‌افزارهاي مجازي نسبت به‌‌ VMware Workstation ‌محدودتر بود. در ‌Virtual PC فقط مي‌توانيد ديسك‌هاي ‌‌IDE بسازيد و اين نرم‌افزار نمي‌تواند ديسك‌هاي اسكازي را شبيه‌سازي كند. البته اين مسئله براي بسياري از كاربران چندان مهم نيست. ولي براي كساني كه از دستگاه‌هاي اسكازي، (مثلا درايوهاي تِيپ)، استفاده مي‌كنند،‌‌ ‌Virtual PC انتخاب خوبي نخواهد بود. ‌

مايكروسافت براي اين‌كه سيستم‌عامل ميهمان بهتر بتواند با سيستم‌عامل ميزبان كار كند، مجموعه ابزارهايي به‌نام ‌Virtual Machine Additions‌) VMA) را ارائه‌كرده است. اين ابزارها امكاناتي مثل بهينه‌سازي درايور تصوير، و همزمان‌سازي با سيستم‌عامل ميزبان را فراهم مي‌كنند. اما فقط وقتي سيستم‌عامل ميهمان، ويندوز باشد قابل‌استفاده هستند. ‌

در Virtual PC ‌هم مثل محصولات VMware، وقتي كه پنجره ‌VM فوكوس دارد، صفحه كليد و ماوس در داخل آن قفل مي‌شوند. وقتي در ‌‌VM از پنجره‌هاي ‌DOS استفاده مي‌كنيم، صفحه كليد و ماوس ديگر روي پنجره ‌VM قفل نيستند؛ مگر اين‌كه به‌يك محيط گرافيكي مثل برنامه نصب ويندوز برويم. براي آزاد‌كردن ماوس بايد از كليد
‌‌<‌alt‌>راست استفاده كنيم. اگر ‌VMA را نصب كنيم، ديگر نشانگر ماوس در داخل پنجره ‌‌VM قفل نمي‌شود. ‌

شكل 2-  VMware Workstation مي‌تواند چندين نقطه snap shot از سيستم تهيه كند. مديران سيستم مي‌توانند به‌آساني وضعيت سيستم را به‌هريك از اين نقاط بازگردانند. ‌

قابليت "ديسك‌هاي قابل بازگشت" در ‌‌‌Virtual PC مثل قابليت snap shot در ‌VMware است. اگر اين قابليت را روي ديسك‌هاي مجازي فعال كنيد، وقتي كه ‌VM را خاموش مي‌كنيد، از شما مي‌پرسد كه تغييرات را ذخيره كند يا خير.

يك قابليت خوب ‌‌Virtual PC اين است كه مي‌توانيد فايل‌هاي ماشين VM، فايل ديسك‌مجازي (vhd.)، و فايل تعريف ماشين را روي ‌‌Virtual Server كپي كنيد و از آن استفاده نماييد. اين قابليت در‌ Virtual PC‌ بهتر از ‌VMware Workstation كار مي‌كند.

در ‌VMware Workstation،‌ اگر ‌VM خوب نصب و راه اندازي شود، مي‌توان از آن روي ‌ESX يا ‌GSX Server هم استفاده كرد. با اين‌حال، بعضي از قابليت‌ها، نظير snap shotهاي قبلي، قابل استفاده نيستند.

زيرا فايل‌ها ديسك در نسخه‌هاي مختلف ‌‌VMware تفاوت كرده است و فرمت جديد آن با فرمت‌هاي قبلي سازگاري ندارد.‌

Virtual PC مثل ‌VMware Workstation قابليت ذخيره سازي چند نقطه بازگشت را ندارد. يك راه براي رفع اين مشكل، استفاده از ديسك‌هاي مجازي تفاضلي ‌(‌differencing virtual disks) است.

اين ديسك‌ها بر مبناي يك‌هارددرايو مجازي موجود ساخته مي‌شوند. ولي فقط تغييراتي را ذخيره مي‌كنند كه روي آن اعمال شده است. البته براي ساختن هريك از اين نقاط بازگشت، بايد يك ‌VM جديد بسازيد. ‌

VMware Workstation 5.0 
‌VMware Workstation را مي‌توان روي ويندوز يا لينوكس اجرا كرد. ما از ويندوز‌اكس‌پي حرفه‌اي به‌عنوان سيستم‌عامل ميزبان استفاده كرديم. ‌بعد از اين‌كه ‌‌VMware Workstation نصب شد، با استفاده از يك ويزارد مي‌توانيد به‌آساني ‌VM‌ها را بسازيد. در مرحله اول سيستم‌عامل ميهماني را كه مي‌خواهيد روي ‌‌VM نصب كنيد، مشخص نماييد. برحسب سيستم‌عامل ميهمان، برنامه، پيكربندي سخت افزاري مناسبي را براي آن پيشنهاد مي‌كند. براي مثال، وقتي يك ‌VM ‌براي نصب ويندوز اكس‌پي‌ مي‌سازيد، پيكربندي پيشنهادي يك ‌VM با هاردديسك‌IDE و 256 مگابايت رم مي‌سازد. ولي وقتي كه يك ‌‌VM براي NetWare 6.5 ‌مي‌سازيد، ويزارد يك درايو ديسك سخت اسكازي و 512 مگابايت رم توصيه مي‌كند. البته مدير سيستم (Admin) مي‌تواند اين تنظيمات پيش فرض را تغيير دهد.

 همچنين بعد از اين‌ هم كه ‌VM ساخته شد، مي‌توان پيكربندي سخت افزاري آن را تغيير داد. ولي اگر بعد از نصب سيستم‌عامل، زيرسيستم ديسك را تغيير دهيد، ‌VM ‌ديگر درست كار نخواهد كرد. چون ممكن است درايورهاي سيستم‌عامل ميهمان ديگر براي سخت افزار مجازي جديد مناسب نباشند يا سيستم‌عامل سعي‌كند از روي دستگاهي كه ديگر موجود نيست، بوت شود.

از ميان تمام محصولاتي كه ما آزمايش كرديم، VMware Workstation‌ از انواع بيشتري سيستم‌عامل ميهمان پشتيباني مي‌كند. با وجود اين، اگر اين برنامه رسما از سيستم‌عاملي پشتيباني نكند، به‌اين معني نيست كه نتوان آن سيستم‌عامل را نصب كرد. ممكن است حتي ‌‌DOS و نسخه‌هاي قديمي ‌‌‌NetWare هم به‌خوبي تحت اين برنامه كار كنند؛ فقط اگر به ‌مشكلي برخورديد، ديگر نمي‌توانيد از بخش پشتيباني ‌‌VMware انتظار كمك داشته باشيد.

تا قبل از ورود مايكروسافت به‌بازار مجازي‌سازي، ‌VMware ‌يكه‌تاز اين ميدان بود. اما در سال 2004 مايكروسافت با تبليغات زياد به‌اين بازار وارد شد و جنگ قيمت را با‌ ‌VMware شروع كرد. اين خبر بدي براي‌ ‌VMware و خبر خوبي براي مصرف كنندگان بود. بايد ببينيم كه آيا ظهور پروژه اپن سورس ‌‌Xen بر اين دو رقيب فشار بيشتري وارد خواهد ساخت.

واقعيت مجازي: مطابق تحقيقات موسسه گارتنر تا سال 2009، روي بيش از 25 درصد پي‌سي‌هايي كه در محيط‌هاي تجاري كار مي‌كنند، حداقل يك ماشين مجازي وجود خواهد داشت. ‌ 

در تمام محصولات ‌‌VMware مي‌توانيد تعيين كنيد كه درايو ‌CD-ROM مجازي از درايو فيزيكي سيستم و يا از يك فايل ايميج ‌ISO استفاده كند. براي بسياري از ‌OS‌ها، مديران سيستم مي‌توانند فايل ايزوي رسانه نصب را دانلود كنند؛ و بعد به‌جاي اين‌كه اين ايزو را روي‌ سي‌دي‌ رايت كنند، فقط كافي است كه درايو CD-ROM‌ مجازي ‌VM را به‌آن نگاشت كنند. ما انواع مختلف سيستم‌عامل‌هاي ميهمان، از جمله ‌‌Red Hat Fedora ،‌‌Windows 2000 Professional و
 ‌NetWare 6.5 را هم با استفاده از فايل ايزو و هم با استفاده از سي دي رام فيزيكي روي‌ VM نصب كرديم.

بعد از نصب‌كردن سيستم‌عامل، مجموعه اي از ابزارهاي ‌‌VMware را نصب كرديم كه به ‌اشتراك گذاشتن منابع را بين سيستم‌عامل ميهمان و ميزبان بهبود مي‌بخشند. براي هريك از ‌OSهايي كه‌ VMware از آن‌ها پشتيباني مي‌كند، يك فايل ‌installer ارائه شده‌‌است كه مجموعه ابزارهاي مختص آن سيستم‌عامل را نصب‌مي‌كند. مثلا براي سيستم‌عامل ويندوز، اين مجموعه ابزارها درايور تصوير را بهتر مي‌كنند كه امكان مي‌دهد سيستم‌عامل ميهمان، تصويري با وضوح بالاتر داشته باشد. همچنين باعث مي‌شود كه ماوس بتواند آزادانه بين پنجره ‌‌VM و محيط سيستم‌عامل ميزبان حركت كند. بدون نصب اين درايورها، وقتي كه پنجره ‌VM فوكوس داشته باشد، ماوس در داخل آن قفل مي‌شود و براي آزاد‌كردن آن بايد كليدهاي ‌‌ctrl و ‌‌‌alt‌ را با هم فشار دهيم.

فناوري ماشين‌هاي مجازي‌

بازار نرم‌افزارهاي ماشين مجازي براي ‌PC‌ها و سرورها، هر روز جذاب‌تر مي‌شود. اگرچه در حال حاضر فقط مايكروسافت و ‌‌VMware نرم‌افزارهاي ‌VM ارائه مي‌كنند كه مي‌تواند يك سيستم‌‌ ‌x86 را با ‌‌BIOS شبيه‌سازي كند، رويكرد منبع باز پروژه ‌Xen به ‌مجازي‌سازي سرورها باعث‌شده‌است كه شركت‌هاي زيادي از جمله آي‌ام‌دي، ناول، ردهت، سان مايكروسيستمز و يوني‌سيس، از اين پروژه حمايت كنند.

مايكروسافت قصددارد در سال 2008 نسخه جديدي از HyperVisor (نرم‌افزاري كه امكان اجراي چند سيستم‌عامل روي يك كامپيوتر را فراهم مي‌كند) را به‌بازار بفرستد. اينتل و‌اي‌ام‌دي هم به‌زودي تراشه‌هايي ارائه خواهند كرد كه دستورالعمل‌هاي اضافي اسمبلي براي پشتيباني از مجازي‌سازي خواهند داشت. نام رمز تراشه اينتل ‌‌Vanderpool  و نام رمز تراشه اي‌ام‌دي ‌‌Pacifica است.
 
‌در اين ميان ما تصميم گرفتيم دو نرم‌افزار ‌‌VM براي ايستگاه كاري‌ (‌Virtual PC 2004) و (‌VMware Workstation 5.0) و سه محصول سرور مجازي (‌‌VMware GSX Server و ‌VMware ‌‌‌ESX Server و ‌Microsoft Virtual Server 2005) را ارزيابي كنيم. اين مقاله به‌صورت گزارش‌هاي جداگانه تهيه شده است و قابليت‌هاي اين محصولات را با هم مقايسه نمي‌كند. مزيت محصولات ‌VMware در اين بود كه سيستم‌عامل ميزبان آن‌ها مي‌توانست ويندوز يا لينوكس باشد؛ ولي در مقابل محصولات مايكروسافت از قيمت پايين‌تري برخوردار بودند. جدول‌هاي اين صفحه قابليت‌هاي مختلف اين نرم‌افزارها، از جمله سيستم‌عامل‌هاي ميزبان، سيستم‌عامل‌هاي ميهمان، سخت‌افزار VM، امكانات شبكه و پشتيباني از اسكريپت را نشان مي‌دهند.


براي مشاهده تصاوير در ابعاد بزرگتر روي آنها كليك كنيد.

يكي از بهترين قابليت‌هاي ‌VMware Workstation،snap shot آن است كه امكان مي‌دهد در هر لحظه دلخواه يك ايميج كامل از وضعيت سيستم مجازي بگيريم (حتي وقتي كه ‌VM در حال اجرا نيست). ما به‌طور آزمايشي يك snap shot از ‌VM ساختيم و بعد تغييرات زيادي در آن داديم. سپس به‌سادگي سيستم را به ‌وضعيت snap shot  برگردانديم. snap shot‌هايي كه در زمان اجراي سيستم‌عامل گرفته مي‌شوند، محتويات حافظه و وضعيت سيستم را به‌طور كامل ذخيره مي‌كنند.
 
اين قابليت باعث صرفه‌جويي زيادي در وقت برنامه‌نويسان مي‌شود. تمام محصولات ‌‌VMware اين قابليت را دارند. ولي  در نسخه ‌‌Workstation از همه بهتر است. براي مثال، فقط نسخه ‌‌Workstation امكان تهيه چندين snap shot  را دارد. ما يك snap shot را بعد از نصب ويندوز اكس‌پي‌ و يكي را هم بعد از نصب چند برنامه از سيستم ساختيم. در ساير محصولات VMware‌ و همچنين محصولات مايكروسافت، فقط مي‌توانيم يك فايل از وضعيت سيستم داشته باشيم.
   يك قابليت ديگر ‌VMware Workstation،‌ امكان ساختن "تيم" است. يك تيم مجموعه‌اي از ‌VMهاست كه به‌صورت يك گروه مديريت مي‌شوند و مي‌توان بين آن‌ها ارتباط شبكه و منابع اشتراكي داشت. براي مثال، ما يك تيم از سه ‌ VM‌ ساختيم و ترتيب بوت‌شدن و فاصله زماني بين بوت شدن هريك از آن‌ها را تعيين كرديم. همچنين با ايجاد يك اتصال مجازي ‌‌ISDN بين ‌VM 1 و ‌VM2 در داخل تيم، توانستيم يك سگمنت‌‌LAN  با عرض باند ‌‌64Kbps را شبيه سازي كنيم. اين قابليت بسيار مفيد است. زيرا با ساختن چند ‌VM و ايجاد يك شبكه مجازي بين آن‌ها مي‌توان يك شبكه واقعي را با دقت زيادي شبيه‌سازي كرد. ‌

ساختن ‌Clone يكي ديگر از قابليت‌هاي منحصربه‌فرد  ‌VMware Workstation است. كلون‌ها مي‌توانند كامل
 ‌(‌Full Clone) يا وابسته (‌Linked Clone) باشند. يك كِلون كامل يك كپي كامل از يك ‌VM است. اين امكان در واقع فرايند كپي‌كردن يك ‌VM را خودكار مي‌كند. در مقابل، يك كِلون وابسته، فايل ديسك مجازي را به‌طور كامل كپي نمي‌كند.

به‌جاي آن، كپي جديد فقط به‌نسخه اصلي اشاره مي‌كند و بر آن مبتني است. تغييرات در ديسك مجازي ‌VM ‌جديد در يك فايل جدا ذخيره مي‌شوند. اين قابليت واقعا عالي است. با استفاده از آن مي‌توان كتابخانه‌اي از سيستم‌عامل‌هاي مختلف روي يك ديسك اشتراكي ساخت و براي هر كاربرد هم يك كلون وابسته ساخت كه مبتني بر پيكربندي مورد نظر در اين مجموعه پايه است. وقتي از يك ‌VM ‌كه چند snap shot دارد يك كلون تهيه مي‌كنيم، مي‌توانيم تعيين كنيم كه كدام‌يك snap shot مبناي كلون جديد باشد. نسخه‌هاي ‌ESX و‌ ‌GSX قابليت ساختن تيم و كلون را ندارند. ‌

نرم افزار ‌‌VM سمت سرور‌
Microsoft Virtual Server 2005 قابليت‌هاي ‌‌Virtual PC را در محيط يك سرور پياده‌سازي مي‌كند؛ بسيار شبيه كاري كه ‌VMware GSX Server براي VMware Workstation‌ انجام مي‌دهد. قيمت 999 دلاري اين محصول، براي نسخه‌‌Enterprise Edition كه از 32 پردازنده، پشتيباني مي‌كند (در مقايسه با قيمت 1400 دلاري ‌VMware GSX Server، براي دو پردازنده و 2400 دلار براي تعداد نامحدود پردازنده آن را  به گزينه‌اي كم هزينه براي محيط‌هايي كه فقط با سيستم‌عامل‌هاي ويندوز سروكار دارند، تبديل كرده است). ‌

قبل از نصب ‌‌Virtual Server بايد ابتدا ‌‌IIS را روي سيستم‌عامل ميزبان نصب كرد. اين‌كار لازم است. چون  تنظيمات و مديريت ‌Virtual Server از طريق يك رابط كاربر مبتني بر وب انجام مي‌شود؛ حتي اين امكان وجود دارد كه سيستم‌عامل‌هاي ميهمان را از راه دور از طريق وب كنترل كنيد. تنها ايراد كار اين است كه براي امور مديريتي، فقط بايد از اينترنت اكسپلورر استفاده كرد. چون رابط كاربر كنترل ‌Virtual Server از يك Plug-in اكتيواكس استفاده مي‌كند.
 
البته يك برنامه جداگانه هم وجود دارد كه امكان كنترل سيستم‌عامل‌هاي ميهمان را فراهم مي‌كند؛ شبيه برنامه ‌VMC‌ در محصولات VMware.  اما اين ابزار نمي‌تواند ‌VMها‌را آغاز/ مكث/ توقف كند يا آن‌ها را دوباره پيكربندي نمايد. براي اين كارها بايد از رابط كاربر مبتني بر وب استفاده كرد. ‌رابط كنترل ‌Virtual Server نسبت به ‌رابط‌هاي مشابه‌ در محصولات VMware، از امكانات مفيد و قابل‌توجهي برخوردار است.

در اين رابط كاربر براي هريك از ‌VM‌هاي موجود روي سيستم يك تصوير بندانگشتي وجود دارد كه كنسول آن ‌VM را نشان مي‌دهد. اين تصوير كوچك است. ولي براي ديدن پيغام‌هاي خطا يا آن دسته از كادرهاي محاوره‌اي كه به‌توجه نياز دارند، خيلي مناسب است.

يك قابليت خوب ديگر در رابط كاربر ‌Virtual Server نمودارهاي استفاده از ‌‌CPU به صورت جداگانه براي هريك از ‌VMها است. در مقابل در رابط وب‌ VMware‌ فقط يك گراف وجود دارد كه ميانگين استفاده از ‌CPU در پنج دقيقه گذشته را براي همه ‌VMها نشان مي‌دهد. ‌يكي ديگر از قابليت‌هاي مفيد رابط وب Virtual Server، نمايش رويداد‌ها‌ است. در اين رابط كاربر مي‌تواند به‌راحتي پنج رويداد اخير، مثلا روشن شدن، يا خاموش شدن ‌VM يا تغييرات پيكربندي را مشاهده و دنبال كند. تعداد رويدادهايي كه در صفحه اصلي نشان داده مي‌شوند، قابل تنظيم است و مي‌توان فهرست كامل آن‌ها را در ‌event viewer ديد.

‌‌Virtual Server يك آداپتور اسكازي مجازي هم دارد. بنابراين ديگر فقط به‌دستگاه‌هاي ‌‌IDE محدود نيستيم. اين قابليت براي مواقعي كه مي‌خواهيد تعداد زيادي درايو مجازي را به ‌يك ‌‌VM وصل كنيد، خيلي مناسب است. البته اگر بخواهيد ايميج‌هاي ‌VM را ميان ‌Virtual Server و‌‌ ‌Virtual PC به‌اشتراك بگذاريد، نمي‌توانيد از آداپتور اسكازي استفاده كنيد. ‌

در ‌‌Virtual Server مشكل تخصيص دادن يك فايل ‌‌ISO به‌درايو ‌CD-ROM در پيكربندي ‌‌VM حل شده است. ما براي آزمايش، سيستم‌عامل ‌‌ ‌SuSE Enterprise Linux Server 9  را كه جزء سيستم‌عامل‌هاي پشتيباني شده ‌Virtual Server نيست، نصب كرديم. در موقع نصب اين ‌OS از طريق برنامه نصب GUI، ماوس به‌خوبي كار نمي‌كرد و گاهي از كار مي‌افتاد. در نتيجه ‌VM را دوباره راه اندزي كرديم و اين‌بار سيستم‌عامل را از طريق محيط متني نصب نموديم كه بدون هيچ مشكل نصب شد. حتي با وجود اين‌كه ‌‌SuSE جزء سيستم‌عامل‌هاي پشتيباني شده ‌‌Virtual Server  نيست، بدون هيچ مشكلي در آزمايش‌هاي ما كار كرد. ‌

VMware GSX Server 3.2
GSX Server براي كار در محيط‌هاي اشتراكي طراحي شده است. همانند نسخه Workstation،‌ مي‌توان ‌GSX Serve‌r را هم روي ويندوز و هم روي لينوكس به‌عنوان سيستم‌عامل ميزبان نصب كرد. ما در آزمايش‌هاي خود از ‌ ‌Windows 2003 Server Enterprise استفاده كرديم. ‌

‌GSX Server مثل نسخه‌ ‌Workstation كار مي‌كند و براي كنترل ‌VMهاي آن مي‌توان از يك رابط مبتني بر وب و يا از برنامه كمكي ‌VMC استفاده كرد.‌ VMC (كنسول ماشين مجازي) هم براي ويندوز و هم براي لينوكس ارائه شده است. براي كار با كنسول ‌VM سيستم‌عاملي كه در حال اجراست، فقط مي‌توانيد از ‌‌VMC استفاده كنيد. ‌رابط كاربر‌VMC ‌شبيه رابط كاربر ‌ VMware Workstation ‌است؛ با اين تفاوت كه اطلاعات نمايش داده شده و تمام فعاليت‌هاي ماوس و صفحه كليد از طريق شبكه به ‌‌‌GSX Server ارسال مي‌شود.
 
قبل از اين‌كه بتوانيد به ‌VMها دسترسي داشته باشيد، بايد با دادن رمز، خود را به ‌‌‌GSX Server بشناسانيد. به عبارت ديگر، بايد هويت خود را اثبات كنيد. بعد از اين‌كه ‌‌GSX Server هويت شما را تاييد كرد، مي‌توانيد‌ ‌VMها را راه بيندازيد، آن‌ها را متوقف نماييد، پيكربندي كنيد و VMهاي جديد بسازيد. با استفاده از رابط مديريتي تحت وب ‌‌GSX Server هم مي‌توانيد ‌VMها را خاموش و روشن كنيد. ‌

شكل 3- ‌Microsoft Virtual Server يك رابط كاربر مبتني بر وب براي مديريت و كنترل تمام ‌VM‌ها دارد. در اين رابط مديريتي، كنسول هريك از ‌VM‌ها در يك تصوير بندانگشتي نشان‌داده‌مي‌شود. همچنين يك نمودار، وضعيت استفاده از CPU را براي هريك از ‌VMها ‌نشان‌مي‌دهد. اين رابط مديريتي از طريق يك كنترل اكتيواكس در اينترنت اكسپلور قابل دستيابي است. 

همچنين مي‌توانيد از طريق رابط مديريتي وب  اطلاعات كلي درباره ‌VMهايي كه روي‌ GSX Server‌ در حال اجرا هستند را به‌دست آوريد. در اين رابط مديريتي مي‌توانيد ‌VMهاي در حال اجرا، مقدار رمي ‌كه هريك از آن‌ها مصرف مي‌كنند و ميانگين استفاده از سي پي يو در پنج دقيقه گذشته را مشاهده كنيد.
 
علاوه بر اين اطلاعات، مقدار استفاده سيستم‌عامل ميزبان هم از رم و ‌‌CPU نشان داده مي‌شود. اين اطلاعات مفيد است. چون اگر مدير سيستم بخواهد بداند كه چرا يك ‌VM‌ به‌خوبي عمل نمي‌كند، داشتن اطلاع از وضعيت سيستم‌عامل ميزبان مي‌تواند خيلي كارساز باشد. ‌

از طريق اين رابط مي‌توان اطلاعات جزئي و دقيقي را هم درباره هريك از ‌VMها به‌دست آورد. البته اين اطلاعات انتظار ما را برآورده نكرد. چون اطلاعي درباره مقدار استفاده هر ‌VM از شبكه نمي‌دهد.

‌‌VMware اين كمبود را با ارائه يك برنامه افزودني به‌نام ‌Virtual Center رفع كرده است كه با آن مي‌توانيد از طريق يك كنسول بر تمام ‌VM هاي موجود روي ‌GSX Server و ‌‌VSX Server نظارت كنيد.
 
اين برنامه اطلاعات مربوط به‌مصرف CPU، رم، ديسك و شبكه هر ‌VM‌ را  نشان مي‌دهد. اگر بيش از يك سرور ‌‌GSX و يا ‌‌ESX داريد، استفاده از‌ ‌Virtual Center به‌شما كمك فراواني خواهد كرد. ‌

ESX ServerVMware
‌ESX Server محصول بسيار جالبي است. اين برنامه بعضي از قابليت‌هايي كه در‌ ‌Workstation و ‌GSX Server يافت مي‌شود را ندارد. ولي در عوض قابليت‌هايي دارد كه در هيچ يك از محصولات ديگر يافت نمي‌شود. مثلا، در حالي‌كه ‌‌Workstation و ‌‌GSX به‌يك سيستم‌عامل ميزبان نياز دارند، ‌‌ESX سيستم‌عامل ميزبان مخصوص خود را به‌همراه دارد. اين سيستم‌عامل مبتني بر هسته 4/2 لينوكس است. ولي براي پشتيباني بهتر از اجراي ‌VMها، تغييرات و بهبودهايي در آن اعمال شده است.
 
‌ESX را نمي‌توان روي سيستم‌عامل ميزبان ديگري نصب كرد. ولي با توجه به‌ مزايايي كه اين سيستم‌عامل اختصاصي دارد، اين مسئله اهميتي ندارد. ‌ESX بيشتر براي ساختن ‌VMهايي مناسب است، كه نياز به‌قدرت پردازشي بالا دارند. سيستم‌عامل ميزبان اختصاصي كه به‌همراه ‌‌ESX Server ارائه مي‌شود، امكانات بهتري براي اشتراك منابع سيستم بين ‌OS‌هاي ميهمان دارد و نياز به‌اشتراك گذاشتن منابع با سيستم‌عامل ميزبان را، آن‌طور كه در‌ ‌GSX Server ديده مي‌شود، كمتر كرده است. ‌

امكانات اصلي‌اي كه ‌ESX Server براي كار با ‌VM‌ها فراهم مي‌كند، با همتايانش تفاوت چنداني ندارد. ولي اين برنامه از انواع كمتري از سيستم‌عامل پشتيباني مي‌كند. باوجوداين، ‌ESX Server تنها محصولي است كه به‌سيستم‌عامل‌هاي ميهمان امكان مي‌دهد از بيش از يك پردازنده استفاده كنند. در تمام محصولات ديگري كه ما آزمايش كرديم، حتي اگر سيستم ميزبان بيش از يك ‌CPU داشت، سيستم‌عامل‌هاي ميهمان فقط مي‌توانستند يكي از آن‌ها را ببينند. در حالي‌كه ‌‌ESX به ‌سيستم‌عامل‌هاي ميهمان‌‌ويندوز 2000 تا 2003 و بعضي از انواع لينوكس، امكان مي‌دهد از دو پردازنده استفاده كنند. ساير انواع سيستم‌عامل‌هاي ميهمان فقط مي‌توانند با يك پردازنده تحت ‌ESX Server كار كنند. ‌

‌ESX Server همچنين شيوه مديريت حافظه منحصر به‌فرد خودش را دارد. اين برنامه، حافظه مجازي‌اي را كه توسط هريك از ‌VMهاي درحال اجرا اشغال شده است، اسكن مي‌كند و Page‌هاي يكسان را در آن‌ها تشخيص مي‌دهد. سپس به‌جاي هدردادن حافظه براي نگهداشتن هر دو كپي، فقط يك كپي از Pageهاي يكسان را نگه‌مي‌دارد و آن را بين ‌VMها به‌اشتراك مي‌گذارد. براي مثال، اگر تمام ‌VM‌هاي موجود روي يك ماشين از يك سيستم‌عامل، فرضا ويندوز 2003 سرور، استفاده كنند، احتمال اين‌كه بخشي از حافظه را ‌DLL و برنامه‌هاي تكراري كه در تمام نسخه‌هاي سيستم‌عامل مشترك هستند اشغال كرده باشد، خيلي زياد است.
 
وقتي كه ‌‌ESX اين نسخه‌هاي تكراري را پيدا مي‌كند، آن‌ها را بين ‌VM‌ها به‌اشتراك مي‌گذارد. اگر هريك از‌ VM‌ بخواهد در يك فضاي مشترك تغييراتي بدهد، يك نسخه جداگانه از آن Page براي آن ‌‌VM ساخته مي‌شود و آن ‌‌VM نسخه اختصاصي خودش را در اختيار خواهد داشت و ديگر از نسخه مشترك استفاده نخواهد كرد. اين قابليت پيشرفته مديريت حافظه، به‌مديران سيستم امكان مي‌دهد ‌VMهاي بيشتري را روي يك كامپيوتر اجرا كنند.

‌در آزمايش‌هايي كه ما انجام داديم، ميزان صرفه‌جويي در حافظه با اين شيوه چشمگير بود. ما چند VM ‌با ويندوز 2003 سرور را روي‌ ‌ESX Server در حال اجرا داشتيم و به‌دو تا از آن‌ها يك گيگابايت رم اختصاص داده‌بوديم. اولين بار كه همه ‌VMها را با هم روشن كرديم، مقدار حافظه مشترك چندان زياد نبود. ولي بعد از مدتي اين‌ دو‌ VM ‌بيش از هفتصد مگابايت حافظه را به‌طور اشتراكي استفاده مي‌كردند. وقتي كه همه پنج ‌VM موجود روي كامپيوتر را با هم روشن كرديم، كنسول مديريتي وب گزارش داد كه 1/2 گيگابايت حافظه صرفه جويي شده است. 

با توجه به‌اين‌كه‌ ‌ESX Server بيش از همه براي ساخت ‌VM‌هايي با نياز بالا به‌منابع سيستم استفاده‌مي‌شود، ‌‌VMwareبه‌همراه اين برنامه يك درايور جايگزين كارت شبكه ارائه كرده است كه در شرايطي كه ‌VM با ترافيك سنگين شبكه روبه‌رو است، عملكرد آن را بهبود مي‌بخشد. علاوه‌بر‌‌اين، در ‌‌ESX Server مي‌توانيم سوييچ‌هاي مجازي بسازيم و از اين طريق دسترسي ‌VMها به‌ شبكه را گروه‌بندي كنيم.
 
اين قابليت همچنين امكان مي‌دهد به‌بعضي از ‌VMها كارت‌هاي شبكه فيزيكي اختصاصي بدهيم و به‌اين ترتيب از رقابت ‌VMهايي كه نيازهاي شبكه بالايي دارند، بر سر منابع فيزيكي سيستم ممانعت به عمل آوريم. ‌ESX Server همچنين امكان ساختن ‌VLANها را هم دارد. ‌

 براي مواردي كه برنامه‌هاي كاربردي تحت ‌‌VM نياز به‌ عملكرد بالايي دارند، ‌‌ESX نسبت به ‌GSX‌ انتخاب بهتري است. فقط به‌خاطر داشته باشيد كه نيازهاي سخت‌افزاري ‌‌ESX Server سنگين‌تر و محدودكننده‌تر هستند. مثلا تحت ‌‌ESX Server نمي‌توانيد از درايو‌هاي ‌‌IDE/SATA براي ذخيره‌سازي ‌VMها استفاده كنيد و براي اين‌كار نياز به‌ درايو اسكازي، Fibre Channel، يا ‌SAN داريد.

 

ترجمه: زردشت هدايي