ماشین مجازی یا Virtual Machine نرم افزاری است که امکان اجرای یک یا چند سیستم عامل به همراه برنامههای کاربردی مختلف را روی یک دستگاه فیزیکی مانند کامپیوتر یا سرور فیزیکی فراهم میکند. ماشین مجازی این امکان را به کاربران میدهد تا چندین سیستم عامل را به صورت همزمان و مجزا بر روی یک دستگاه فیزیکی اجرا کنند، بدون اینکه نیازی به سخت افزار اضافی داشته باشند.
پیدایش ماشینهای مجازی به دهه ۱۹۶۰ بر میگردد و با پیشرفت تکنولوژي و پیدایش نیازهای مختلف، به تدریج تکامل یافته است. شرکت IBM پیشگام در توسعه ماشینهای مجازی بود و در سال ۱۹۶۴، سیستم چند برنامهای System/360 را معرفی کرد که قابلیت اجرای چند برنامه را به صورت همزمان داشت.
در اوایل دهه ۱۹۷۰، شرکت IBM سیستم VM/370 را معرفی کرد که اولین هایپروایزر واقعی برای اجرای ماشین های مجازی بود. این سیستم به کاربران، امکان اجرای چندین سیستم عامل بر روی یک دستکاه فیزیکی را میداد.
در سال ۱۹۹۸، VMware تاسیس شد و اولین نرم افزار مجازی سازی خود را به نام VMware Workstation معرفی کرد.
در دهه ۲۰۰۰ استفاده از ماشین های مجازی در مراکز داده و محیط های ابری به طور چشمگیری افزایش یافت و همچنین در این دهه ماکروسافت، هایپروایزر Hyper-V را معرفی کرد که امکان مجازی سازی در سیستم عامل ویندوز را فراهم میکرد.
در حال حاضر، ماشین های مجازی نقش بسیار مهم و گستردهای در فناوری اطلاعات دارند. در ادامه بیشتر دربارهی کاربرد ماشین های مجازی در دنیای امروزه فناوری اطلاعات صحبت میکنیم.
ماشین های مجازی با استفاده از تکنولوژی مجازیسازی کار میکنند. تمامی فرآیند مجازی سازی با نرم افزاری به نام Hypervisor مدیریت و اجرا میشود.
این نرمافزار CPU، RAM، هارد، شبکه و سایر قطعات نرم افزاری کامپیوتر را به صورت مجازی شبیه سازی میکند و با این روش منابع سختافزاری لازم را متناسب با نیاز هر ماشین مجازی در اختیار آنها قرار میدهد.
هایپروایزرها را میتوان به دو دسته اصلی تقسیم کرد که شامل موارد زیر میشود:
· Bare-Metal Hypervisor : این نوع هایپروایزر مستقیما بر روی سختافزار فیزیکی اجرا میشود و نیازی به سیستم عامل میزبان ندارد و به دلیل عملکرد بالا و کارایی بهترش نسبت به نوع دیگر، بیشتر در محیط های سازمانی و مراکز داده استفاده میشود. از نمونه های معروف این نوع میتوان به VMware ESXI، Microsoft Hyper-V و KVM اشاره کرد.
· Hosted Hypervisor : این نوع هایپروایزر بر روی سیستم عامل میزبان نصب میشود و از منابع سیستم عامل میزبان برای اجرای ماشینهای مجازی استفاده میکند و بیشتر برای استفاده شخصی، توسعه و تست مناسب است. از نمونه های معروف این نوع میتوان به VMware Workstation، Oracle VirtualBox و Parallels Desktop اشاره کرد.
ماشینهای مجازی به انواع مختلفی تقسیم میشوند که هر کدام برای کاربردهای خاصی طراحی شدهاند و توضیح مختصری برای هر نوع در زیر آورده شده است.
۱.ماشینهای مجازی سیستم (System VMs) : این نوع ماشینهای مجازی نوعی فناوری مجازیسازی هستند که به منظور ایجاد محیطهای مجازی کامل و مستقل، طراحی شده اند. به گونهای که هر محیط مجازی قادر است یک سیستمعامل متفاوت و مجزا داشته باشد.
۲.ماشینهای مجازی فرآیند (Process VMs) : این نوع ماشینهای مجازی به منظور پشتیبانی از اجرای یک برنامه کاربردی در یک محیط مجازی طراحی شدهاند. ماشینهای مجازی فرآیند یک لایه انتزاعی بین برنامه کاربردی و سیستم عامل ایجاد میکنند. برای نمونه میتوان ماشین مجازی جاوا را معرفی کرد که به هر سیستم عامل این امکان را میدهد که برنامههای جاوا را به گونهای اجرا کند که گویی بومی آن سیستم هستند.
ماشینهای مجازی در دنیای فناوری اطلاعات کاربردهای گستردهای دارند که به بهبود کارایی، امنیت، مدیریت منابع و صرفهجویی در هزینهها کمک میکنند. مهمترین کاربردهای ماشینهای مجازی به شرح زیر است :
· توسعه و تست نرم افزار : توسعهدهندگان میتوانند با استفاده از ماشینهای مجازی، محیطهای مجازی جداگانهای برای هر پروژه ایجاد کنند تا از تداخل پروژه ها جلوگیری شود و همچنین در صورت بروز مشکل، به تمامی پرژوه ها آسیب نرسد.
· ایجاد محیطهای ایزوله : با توجه به اینکه ماشینهای مجازی میتوانند سیستمعامل های مختلفی را روی یک سرور اجرا کنند، سازمانها میتوانند با استفاده از ماشینهای مجازی، بسته به نیاز و اهداف موردنظرشان، سیستمعامل های مختلف را بر روی یک سرور اجرا کنند.
· محاسبات ابری (Cloud Computing) : ماشینهای مجازی به عنوان یکی از ارکان اصلی IaaS یا زیرساخت به عنوان خدمات استفاده میشوند.
· استفاده بهینه از منابع سخت افزاری : بهدلیل امکان اجرای چندین ماشینمجازی روی یک کامپیوتر یا سرور، لازم نیست برای نصب هر سیستم عامل، سرور یا کامپیوتر جدیدی خریداری شود.
· انعطاف پذیری و مقیاس پذیری : با استفاده از ماشینهای مجازی، اضافه یا حذف منابع و سرورها به راحتی و سریعتر انجام میشود. همچنین با CloudComputing، به راحتی میتوان چندین نسخه از یک ماشینمجازی را برای ارائه بهتر و افزایش بار همزمان استفاده کرد.
· بازیابی سریع : ماشینهای مجازی امکان ایجاد نسخههای پشتیبان و بازگردانی سریع به حالتهای قبلی را فراهم میکنند، که این امر در مواقع خرابی سیستم کارآمد است.
· کاهش هزینه : استفاده از ماشینهای مجازی منجر به کاهش نیاز به سختافزارها و فضای فیزیکی، کاهش مصرف انرژي و در نهایت کاهش هزینهها میشود.
· کارایی کمتر نسبت به سیستمهای فیزیکی : ماشین مجازی قسمتی از هاست یا سیستم فیزیکی است و قدرت سختافزاری سیستم کامل را ندارد.
· پیچیدگی مدیریت : مدیریت و نگهداری ماشینهای مجازی پیچیدهتر از سیستمهای فیزیکی است و نیاز به دانش و تخصص بیشتری دارد.
· نصب نشدن برخی از برنامهها بر روی ماشینهای مجازی : اگر چه بسیاری از برنامهها به راحتی روی ماشینهای مجازی نصب میشوند، اما گاهی اوقات ممکن است برخی از آنها به دلیل ساختار معماری خود، روی ماشینهای مجازی نصب نشوند.
داکر و ماشینهای مجازی هر دو ابزارهایی برای مجازیسازی هستند، اما داکر به طور دقیق یک نوع ماشین مجازی محسوب نمیشود. داکر از کانتینرها برای مجازیسازی در سطح سیستمعامل استفاده میکند، در حالی که ماشینهای مجازی، مجازیسازی در سطح سختافزار را انجام میدهند. کانتینرها سبکتر و سریعتر از ماشینهای مجازی هستند و منابع کمتری مصرف میکنند. ماشینهای مجازی یک سیستمعامل کامل را در یک محیط مجازی اجرا میکنند که شامل هسته سیستمعامل و تمام لایههای برنامهها میشود. این باعث میشود که ماشینهای مجازی ایزولهتر و امنتر باشند، اما به منابع بیشتری نیاز دارند. بنابراین، داکر و ماشینهای مجازی هر دو ابزارهای مجازیسازی هستند، اما برای کاربردهای مختلف طراحی شدهاند.
پلتفرم مانیتورینگ معین، در حال حاضر با استفاده از پروتکل ارتباطی REST با ابزارهای vCenter و ESXI از شرکت VMware و Docker ارتباط برقرار میکند و اطلاعات بسیاری از آنها را استخراج نموده و شاخصهای کارایی آنها را مانیتور میکند. برای مشاهده تمامی شاخصها و پارامترهای هر ابزار که معین آنها را مانیتور میکند، بر روی اسم هر ابزار در متن بالا کلیک کنید.