ماشین مجازی چیست؟
ماشین مجازی (Virtual Machine) یک دستگاه مجازی و نرمافزاری شبیه به یک کامپیوتر واقعی است که امکان اجرای سیستمعاملها و اپلیکیشنهای مختلف روی یک دستگاه فیزیکی مثل کامپیوتر دسکتاپ یا سرور فیزیکی را فراهم میکند.
ماشین مجازی چطور کار میکند؟
ماشین مجازی با استفاده از تکنولوژی مجازیسازی کار میکند. درواقع، برای مجازیسازی از نرمافزارهایی استفاده میشود که باعث میشوند چندین ماشین مجازی روی یک دستگاه فیزیکی واحد اجرا شوند. به این دستگاه فیزیکی میزبان (Host) و به ماشینهای مجازی نیز مهمان (Guest) گفته میشود.
تمامی فرایند مجازیسازی با نرمافزاری موسوم به Hypervisor مدیریت میشود. بهبیان ساده، هایپروایزر وظیفه تأمین و مدیریت منابع از Host تا Guest را برعهده دارد. همچنین، این نرمافزار عملیات مختلف را در ماشینهای مجازی زمانبندی میکند تا از حفظ تقدم و تأخیر زمانی اجرای تمامی آنها مطمئن شود. نکته دیگر اینکه ماشینهای مجازی فقط در صورتی کار میکنند که هایپروایزری برای مجازیسازی و توزیع منابع میزبان وجود داشته و برای این منظور پیکربندی شده باشد.
مزایای Virtualization
- امنیت بالاتر در سرور ها
- کاهش شدید تجهیزات شبکه
- صرفه جویی در تهیه سخت افزار
- استفاده بهینه از فضا در دیتا سنتر ها
- جبران کمبود جا برای نگهداری سرور
- استفاده از حداکثر توان و ظرفیت سرور
- اطمینان کامل در بک آپ گیری و بازیابی سرور ها
- بهره وری هرچه بیشتر از سخت افزار و کاهش هزینه ها
- کاهش شدید مصرف انرژی الکتریسیته مصرفی در دیتاسنتر ها
- مستقل شدن سیستم عامل ها از سخت افزار و افزایش قابلیت جا بجایی
- کاهش هزینه نگهداری و مدیریت سرور ها و سرویس های مورد استفاده
کاربرد ماشین مجازی
به این جمله دقت کنید: «مجازیسازی راهی برای شبیهسازی سختافزار ازطریق نرمافزار است!» این جمله ساده و کاملاً کاربردی دقیقاً ما را به جایی میرساند که به این نتیجه برسیم مجازیسازی و ماشین مجازی چیست. با استفاده از مجازیسازی، درحقیقت یک سیستم کامپیوتری دارید؛ اما میتوانید آن را به قسمتهای مختلفی تقسیم کنید و انتظار داشته باشید که هریک از آنها نیز دقیقاً کار یک سیستم مجزا را انجام دهند.
استفاده از ماشینهای مجازی در حوزههای مختلف، توانست کار انسان را بسیار راحت کند. برای مثال، مجازیسازی راهی پیش پای شرکتهای هاستینگها گذاشت تا با استفاده از آن بتوانند سرورهای خود را ادغام کنند.
تا پیش از اینکه تکنولوژی ماشین مجازی پا به میدان بگذارد، دیتاسنترها پر از سرورهای متعدد بودند که امکان استفاده از فقط یک سیستمعامل روی هریک از آنها وجود داشت. بااینحال، مجازیسازی کاری کرد تا هر سرور به بخشهای متعددی تقسیم شود و هریک از آنها نیز دقیقاً مشابه با سیستمی واحد عمل کند. اینجا بود که اصطلاح « سرور مجازی» متولد شد.
یکی از کاربردهای مهم ماشین مجازی تولید سرورهای مجازی است؛ اما کاربرد این تکنولوژی به شرکتهای هاستینگ محدود نمیشود. درادامه، به برخی از کاربردهای مهم ماشین مجازی اشاره خواهیم کرد.
۱. استفاده از سیستمعاملی متفاوت
یکی از کاربردهای مهم ماشین مجازی این است که به کاربران امکان میدهد تا از سیستمعاملی بهغیر از سیستمعامل نصبشده روی دستگاهشان استفاده کنند. بهعنوان نمونه، فرض کنید توسعهدهنده حرفهای وب هستید و برای انجام کارهایتان از سیستمعامل لینوکس استفاده میکنید.
حالا اگر به هر دلیل بخواهید از نرمافزارهایی مثل اتوکد و فتوشاپ هم استفاده کنید که فقط روی سیستمعامل ویندوز و مک نصب میشوند، ماشین مجازی را بهراحتی میتوانید روی سیستم خود ایجاد و روی آن سیستمعامل ویندوز نصب کنید. بدینترتیب هم سیستمعامل لینوکس و هم سیستمعامل ویندوز را بهصورت همزمان روی لپتاپتان خواهید داشت.
۲. اجرای نرمافزارهای قدیمی
ممکن است نیاز داشته باشید از نرمافزاری قدیمی استفاده کنید که آپدیت جدیدی برایش منتشر نشده است. در این مواقع، نمیتوانید این نرمافزار را روی سیستمعامل جدید نصب و از آن استفاده کنید. یکی دیگر از کاربردهای ماشین مجازی نصب سیستمعامل قدیمی (مثلاً سیستمعامل ویندوز XP) و سپس استفاده از نرمافزارهایی است که امکان نصب آنها روی این سیستمعاملها وجود دارد.
۳. استفاده از ماشین مجازی برای آزمایش بدافزارها
اگر متخصص امنیت وب باشید، احتمالاً نیاز مبرمی به ماشین مجازی خواهید داشت. یکی از اصولی که با استفاده از VMها میتوانید به آن دسترسی داشته باشید، سند باکسینگ است. سند باکسینگ فضایی ایزوله است که به شما امکان میدهد تا بدافزارهای مخرب را فقط روی قسمتی از کامپیوترتان آزمایش کنید تا بتوانید راهی برای مقابله به آن بیابید.
برای مثال، فرض کنید میخواهید به وبسایتی وارید شوید که بدافزاری را روی سیستمتان نصب میکند. درصورتیکه این کار را ازطریق ماشین مجازی انجام دهید، میتوانید مطمئن باشید که این ویروس یا بدافزار فقط روی VM شما که حالتی ایزوله دارد، نصب خواهد شد. بهبیان بهتر، نمیتواند کل سیستم شما را آلوده کند.
۴. استفاده از VM برای توسعه پلتفرمها روی سیستمعاملهای دیگر
ماشین مجازی برای آزمایش نرمافزاری روی سیستمعاملی دیگر نیز کاربرد دارد. فرض کنید توسعهدهنده نرمافزار هستید و از سیستمعامل ویندوز برای برنامهنویسی استفاده میکنید؛ اما نرمافزار شما قرار است روی سیستمعامل مک اجرا شود.
در این مواقع، میتوانید ماشین مجازی را روی سیستمتان پیادهسازی و سیستمعامل مک را روی آن نصب کنید. حالا میتوانید نرمافزاری که در حال توسعه آن هستید، بهصورت کاملاً حقیقی روی این سیستمعامل نصب و آزمایش کنید.
هایپروایزر منابع موجود را مدیریت میکند و آنها را به ماشین یا ماشینهای مجازی در حال کار روی دستگاه اختصاص میدهد.
اکثر هایپروایزرها را میتوان به دو دسته اصلی تقسیم کرد که شامل موارد زیر میشود:
- هایپروایزر برهنه (bare-metal hypervisor): این نوع هایپروایزر مستقیماً روی دستگاه فیزیکی میزبان اجرا میشود و به سختافزار آن دسترسی مستقیم دارد. این نوع هایپروایزر معمولاً روی کامپیوترهای سرور اجرا میشود و نسبت به نوع دوم آن کارآمدتر است و عملکرد بهتری دارد و به همین دلیل برای ایجاد ماشین مجازی روی کامپیوترهای سرور و دسکتاپ و همچنین مجازیسازی اپلیکیشنها گزینه مناسبی هستند. Hyper-V مایکروسافت و VMware ESXi نمونهای از هایپروایزر برهنه هستند.
- هایپروایزر میزبانیشده (hosted hypervisor): این نوع هایپروایزر روی سیستمعامل دستگاه میزبان نصب و برای مدیریت فراخوانیهای مختلف برای دسترسی به منابع سختافزاری مختلف استفاده میشود. هایپروایزر میزبانیشده معمولاً برای کاربردهای خاص روی دستگاههای کاربران استفاده میشود؛ بهعنوانمثال ممکن است یک توسعهدهنده برای ایجاد یک محیط خاص برای ساخت یک اپلیکیشن، از هایپروایزر میزبانیشده استفاده کند یا یک فرد تحلیلگر داده برای آزمایش کردن اپلیکیشنی در محیط ایزوله نیز آن را به کار گیرد.
روش های Virtualization:
- مجازی سازی سرور
- Virtualization شبکه
- Virtualization ابری
- مجازی سازی I/O
- مجازی سازی storage
- Virtualization دسکتاپ
- مجازی سازی نرم افزار
معرفی ابزارهای Virtualization:
Virtualization ابزار های مخصوص به خودش را دارد، این ابزار های مفید و کار آمد در پیاده سازی زیر ساخت های مجازی، رفع خطا ها، پشتیبان گیری اطلاعات، مانیتورینگ و گزارش گیری به شما کمک شایانی می کنند و استفاده از آن ها بسیار راحت است. ابزار هایی مانند:
- ESXi
- VEEAM
- RVTools
- Unitrends
- VM-Turbo
- Oracle VirtualBox