ماشین مجازی (VM) یک منبع محاسباتی است که از یک نرم ‌افزار به‌ جای رایانه فیزیکی برای اجرا و نصب برنامه ‌ها استفاده می‌ کند. یک یا چند ماشین مجازی به عنوان "مهمان" روی یک ماشین "میزبان" فیزیکی کار می کنند. هر ماشین مجازی سیستم عامل مختص به خود را اجرا و به طور جداگانه از سایر ماشین‌ های مجازی کار می ‌کند، حتی زمانی که همه آن‌ ها روی یک ماشین میزبان مشترک کار می ‌کنند. برای مثال، یک ماشین مجازی MacOS می ‌تواند روی یک رایانه شخصی PC اجرا شود.

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

کاربرد ماشین مجازی چیست؟

ماشین مجازی که به اختصار (VM) نامیده می شود، تفاوتی با کامپیوترهای فیزیکی دیگر مانند لپ تاپ، تلفن هوشمند یا سرور ندارد. این برنامه دارای CPU، حافظه و دیسک برای ذخیره سازی می باشد و در صورت نیاز می تواند به اینترنت نیز متصل شود. 

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

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

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

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

بسته به توان سخت افزاری ماشین میزبان، می توان چندین ماشین مجازی روی آن نصب کرد!

ماشین مجازی چگونه کار می کند؟

با استفاده از فناوری مجازی سازی این امکان را دارید تا یک سیستم را به محیط های مجازی تقسیم کنید. هایپروایزر (مدیر ماشین مجازی) سخت افزار را مدیریت می کند و منابع فیزیکی سیستم را از محیط های مجازی جدا می کند. منابع فیزیکی برحسب نیاز بین ماشین های مجازی تقسیم می شوند.

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

انواع هایپروایزر

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

  • نوع 1: هایپروایزر نوع 1 روی سیستم یا سرور فیزیکی قرار دارد. منابع مورد نیاز VM مستقیماً توسط Hypervisor در سخت افزار تقسیم بندی می شوند.
  • نوع 2: هایپروایزر نوع 2 میزبانی می شود یعنی منابع مورد نیاز ماشین مجازی در یک سیستم عامل میزبان تقسیم بندی می شوند سپس در داخل سخت افزار اجرا می شوند. VMware Workstation و Oracle VirtualBox نمونه هایی از هایپروایزرهای نوع 2 هستند.

هایپروایزر یا مدیر ماشین مجازی

مزایای استفاده از ماشین مجازی

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

همچنین از آنجایی که ماشین های مجازی مستقل از یکدیگر هستند، می توانید یک VM را از یک هایپروایزر به یک هایپروایزر دیگر در یک سرور کاملا متفاوت بلافاصله منتقل کنید.

ماشین های مجازی به دلیل انعطاف پذیری بالا و قابل حمل بودن شان مزایای بسیار زیادی دارند از جمله:

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

چابکی و سرعت: راه اندازی یک ماشین مجازی بسیار آسان و سریع است و توسعه دهندگان به راحتی می توانند برنامه های خود در این سیستم آزمایش کنند.

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

مقیاس پذیری: با استفاده از ماشین های مجازی می توانید برای کاهش حجم بار و توزیع کار، از منابع سرورهای فیزیکی یا مجازی استفاده کنید. در نتیجه عملکرد برنامه ها افزایش پیدا می کنند. به زبان ساده تر، مثلا اگر به حافظه بیشتری نیاز داشته باشید به سرعت می توانید حجم منابع در دسترس تان را افزایش دهید و منتظر یک سرور فیزیکی با ظرفیت بالاتر نباشید.

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

مزایای ماشین مجازی در برای فیزیکی

معایب ماشین مجازی

در حالی که VM ها نسبت به سرورهای فیزیکی مزایای زیادتری دارند، اما معایبی هم در کنار آن ها قرار دارد:

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

دو نوع ماشین مجازی

کاربران می توانند از بین دو نوع مختلف ماشین های مجازی – یعنی ماشین های مجازی پردازشی و ماشین های مجازی سیستمی - یکی را انتخاب کنند:

  1.  یک ماشین مجازی پردازشی به یک فرآیند اجازه می دهد تا به عنوان یک برنامه یا اپلیکیشن مستقل بر روی یک ماشین میزبان (سرور فیزیکی) اجرا شود. برای مثال برنامه های اندروید مختص گوشی های اندرویدی هستند اما می توانید با ماشین مجازی پردازشی برنامه های اندرویدی را بر روی دسکتاپ کامپیوتر خود اجرا کنید.
  2. یک ماشین مجازی سیستمی با استفاده از مجازی سازی جایگزین ماشین فیزیکی شده است. در این حالت منابع سرور فیزیکی بین سرورهای مجازی تقسیم شده اند و هر کدام سیستم عامل مختص به خود را اجرا می کنند. این فرآیند مجازی سازی متکی به یک Hypervisor است.

5 شیوه مجازی سازی

تمام داده های سرورها و سیستم های قدیمی را به 5 روش می توان مجازی سازی کرد:

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

2. مجازی سازی نرم افزاری: در این حالت به عنوان مثال می توان یک برنامه اندرویدی را بر روی یک سیستم ویندوزی اجرا کرد. یعنی با استفاده از مجازی سازی می توان از یک سخت افزار مشابه برای اجرای برنامه های مختلف استفاده کرد.

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

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

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

خلاصه

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