ماشین مجازیزمان مطالعه این مطلب 7 دقیقه

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

در این نوشته، ماشین­‌های مجازی، طریقه کارکرد، و مزیت­‌های آن­ها را بررسی خواهیم کرد.

ماشین مجازی چیست؟

در تعریفی ساده، ماشین مجازی، نمونه­‌ای شبیه­‌سازی­ شده از یک سیستم کامپیوتری است. ماشین‌های مجازی، بر اساس معماری کامپیوتری ساخته می­‌شوند و کارکردهای یک کامپیوتر فیزیکی را ارائه می‌­دهند.

ماشین مجازی یک فایل کامپیوتری است -عموما Image نامیده می­‌شود-که مانند یک کامپیوتر واقعی رفتار می‌­کند. در واقع، می‌­توان گفت ماشین مجازی یک فایل است که مانند هر برنامه­‌ی دیگری در یک کامپیوتر، در یک پنجره اجرا می­‌شود.

شکل ۱

تفاوت سرور مجازی با کامپیوتر فیزیکی چیست؟

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

ماشین‌­های مجازی این امکان را فراهم می‌­کنند که کاربر بتواند در سیستم عامل کنونی‌­اش-که میزبان نامیده می­‌شد-یک سیستم عامل جدا را شبیه­‌سازی کند. این سیستم عامل مستقل به طور معمول در پنجره‌­ای مختص خودش نمایش داده می­‌شود و به عنوان یک محیط مستتقل، از سیستم عامل کنونی جدا می­‌شود؛ هر چند، ممکن است برای مواردی نظیر انتقال فایل، ارتباط بین ماشین مجازی و کامپیوتر فیزیکی مجاز باشد.

موارد استفاده‌­ی ماشین مجازی

ماشین­‌های مجازی به شکل­‌های مختلفی به کار برده می­‌شوند. در ادامه چند مورد از استفاده‌­های آن­ها را بررسی می­‌‍کنیم.

استفاده از سیستم­‌های عامل جدید

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

اجرای نرم‌­افزارهای قدیمی یا ناسازگار

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

اجرای فایل­‌هایی که ممکن است مشکلاتی ایجاد کنند

با توجه به ماهیت مستقل و ایزوله‌­ی ماشین­‌های مجازی، شما می‌­توانید کمی بی‌­احتیاط باشید و فایل‌هایی را که از نظر امنیتی ممکن است مشکل داشته باشند، اجرا کنید. به عنوان نمونه، در شرایط کلی، ما ایمیل­‌های ناخواسته را که فایلی برای ما فرستاده‎‌­اند باز نمی­‌کنیم؛ اما در ماشین مجازی می­‌توانیم این کار را انجام دهیم، و اگر مشکلی در ماشین مجازی ایجاد شود، سیستم عامل اصلی ما در امان خواهد بود. علاوه بر این، شما می‌­توانید اساساً از ماشین­‌های مجازی برای اجرای فایل‌­های ویروسی استفاده کنید تا تاثیر آن ویروس را ببینید.

ایجاد Snapshotهایی برای بازیابی

یکی از دلایل استفاده از ماشین­‌های مجازی، توانایی ایجاد Snapshotهایی در سطح سیستم است که بتوان بر اساس نیاز، از آن­ها برای بازیابی استفاده کرد. به عنوان مثال، فرض کنید تصمیم گرفته‌­اید تعدادی از نرم‌­افزارهایی را که دارید پاک کنید؛ اما به دلیل عدم‌­اطمینان، مردد هستید. شما مطمئن نیستید که اگر این نرم‌­افزارها را پاک کنید، چه اتفاقی ممکن است برای سیستم عامل­تان بیافتد. برای رفع این نگرانی، کافی است یک Snapshot از حالتی که نرم­‌افزارها پاک نشده‌­اند بگیرید، و اگر بعد از پاک کردن نرم‌­افزارها مشکلی پیش آمد، با استفاده از Snapshot به حالت قبل از پاک کردن آن نرم‌­افزارها برگردید، طوری که انگار هیچ اتفاقی نیافتاده‌­است.

جابه­‌جایی سیستم­‌ها بین ماشین­‌ها

با توجه به اینکه تمام محتوای ماشین­‌های مجازی در قالب یک سری فایل ذخیره می­‌شود، می­‌توانید به سادگی این فایل را به یک کامپیوتر دیگر منتقل، و در آن اجرا کنید. به عنوان نمونه، ماشین­‌های مجازی VirtualBox در قالب فایل­‌های VDI ذخیره می‌­شوند. فارغ از اینکه در ابتدا از چه سیستم عاملی استفاده کرده‌­اید، می­‌توانید این فایل‌­های VDI را کپی کرده و در یک سیستم عامل جدید که دارای نرم‌­افزار VirtualBox است، بارگذاری و اجرا کنید.

توسعه­‌ی نرم­‌افزار برای پلتفرم­‌های دیگر

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

ماشین­‌های مجازی چطور کار می­‌کنند؟

برای دانستن اینکه ماشین مجازی چطور کار می‌­کند، ابتدا باید با مفهوم هایپروایزرآشنا شویم. هایپروایزر بین نرم‌­افزار و سخت‌­افزار قرار می­گیرد و یک لایه­‌ی مجازی از سخت‌­افزار را ایجاد می‌­کند. سپس، هایپروایزر از منابع رایانشی سخت­‌افزار، نظیر CPU و RAM، که در لایه­‌ای مجازی قرار دارند، برای ایجاد ماشین­‌های مجازی استفاده می­‌کند.
به طور کلی دو نوع هایپروایزر وجود دارد. هایپروایزرهای نوع ۱ به طور مستقیم روی سخت‌­افزار نصب می‌شوند. به این نوع از هایپروایزرها Bare-metal نیز گفته می‌­شود. هایپروایزرهای نوع ۲ روی سیستم عامل موجود نصب می‌­شوند. به این نوع از هایپروایزرها Hosted گفته می‌­شود. هایپروایزرهای نوع ۱ استفاده­‌ی متداول‌­تری دارند؛ به این دلیل که ارتباط مستقیم آن­ها با سخت‌­افزار، به طور کلی بهترین عملکرد را ایجاد می‌­کند و به این ترتیب می‌­توان بیشترین تعداد ماشین مجازی را روی آن سخت­‌افزار پیاده کرد. در مقابل، در مورد هایپروایزرهای نوع ۲ که روی سیستم عامل سوار می­‌شوند، فشار رایانشی که از طرف سیستم عامل بر هایپروایزر وارد می­‎‌شود منجر به کاهش عملکرد هایپروایزر، و در نتیجه محدود شدن تعداد ماشین‌­های مجازی می‌­شود.

حال، با شناختی که از هایپروایزر داریم، می­‌توانیم مکانیزم ماشین‌­های مجازی را به شکلی بهتر بررسی کنیم. در یک محیط مجازی ­شده، هایپروایزر نرم‌­افزاری­ست که سخت­‌افزار را مجازی سازی می­‌کند و تمام ماشین­‌های مجازی مهمان را در شرایطی ایزوله قرار می‌­دهد. بدون نظارت سختگیرانه­‌ی هایپروایزر، این مهمان­‌ها ممکن است از سیاست­‌های امنیتی میزبان تخطی کنند، منجر به شکل­‌گیری حمله‌­ها شوند یا داده‌­ها را بدون نظارت میزبان جابه‌­جا کنند. علاوه بر این، ماشین‌­های مجازی، مانند ماشین­‌های فیزیکی، به اقدام­‌هایی قبل از راه‌­اندازی-نظیر نصب کردن Patchها و Firewall نیاز دارند. هایپروایزرها طراحی شده‌­اند تا رقابتی را که بین ماشین‌های مجازی بر سر منابع رایانشی شکل می­‌گیرد، مدیریت کنند. به علاوه، هایپروایزرها برای هر ماشین مجازی، بالاترین عملکرد ممکن را فراهم می­‌کنند.

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

برخی از مزیت‌­هایی که ماشین‌­های مجازی برای ما ایجاد می­‌کنند عبارتند از:

  • ایجاد امکان استفاده از چند سیستم عامل به طور هم‌زمان روی یک کامپیوتر
  • ایزوله بودن ماشین­‌های مجازی باعث می‌­شود مشکل­‌های احتمالی که در سیستم­‌های مهمان پیش می‌­آیند، بر سیستم میزبان تاثیر نداشته ­باشد.
  • ماشین­‌های مجازی به طور کلی شرایطی را فراهم می‌­کنند که بتوانید مواردی را که از نظر امنیتی نگرانی­‌هایی را ایجاد می­‌کنند، در محیطی ایزوله بررسی و آزمایش کنید.
  • استفاده از ماشین­‌های مجازی منجر به کاهش هزینه­­‌ می‌­شود.
  • ماشین‌­های مجازی قابلیت دسترسی را ارتقا می­‌دهند.

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

  • ماشین‌­های مجازی نسبت به ماشین‌­های فیزیکی کارایی کمتری دارند، زیرا به طور غیرمستقیم با سخت‌­افزار در ارتباط هستند. در واقع، یک ماشین مجازی باید درخواست خودش را با واسطه-از طریق هایپروایزر-به سخت‌­افزار بدهد. این موضوع منجر به کند شدن فرآیند می‌­شود.
  • اگر چند ماشین مجازی روی یک کامپیوتر در حال اجرا باشند، و آن کامپیوتر توان کافی نداشته باشد، عملکرد ماشین‌­های مجازی کاهش می­‌یابد. لذا وضعیت کامپیوتر میزبان نیز یک نگرانی خواهد بود.
  • استفاده از ماشین‌­های مجازی لزوماً هزینه­­‌های اعطای لیسانس را کاهش نمی‌­دهد.

نتیجه‌­گیری

ماشین­‌های مجازی مزیت‌های مهمی را برای واحدهای IT، و در نتیجه سازمان­‌ها، ایجاد می­‌کنند. انتظار می‌­رود با پیشرفت تکنولوژی مجازی‌سازی، ماشین­‌های مجازی نیز به شکل متداول­‌تری مورد استفاده قرار بگیرند. البته همانطور که گفته شد، نگرانی­‌هایی نیز  در مورد ماشین­‌های مجازی وجود دارند. بعضی از این نگرانی­‌ها ممکن است در آینده تا حدی رفع شوند؛ اما در نهایت واقعیت این است که ماشین­‌های مجازی محدودیت­‌هایی ذاتی نسبت به ماشین‌­های فیزیکی دارند.

مراجع:

  1. https://en.wikipedia.org/wiki/Virtual_machine
  2. https://azure.microsoft.com/en-us/overview/what-is-a-virtual-machine/
  3. https://pubs.vmware.com/vsphere-50/index.jsp?topic=%2Fcom.vmware.vsphere.vm_admin.doc_50%2FGUID-CEFF6D89-8C19-4143-8C26-4B6D6734D2CB.html
  4. https://www.lifewire.com/virtual-machine-4147598
  5. https://www.makeuseof.com/tag/reasons-start-using-virtual-machine/
  6. https://searchservervirtualization.techtarget.com/tip/Understanding-the-benefits-of-a-virtual-machine
  7. https://www.globalknowledge.com/blog/2013/04/25/introduction-to-virtual-machines-and-hypervisors/
  8. http://www.serial-server.net/virtual-machine/
  9. https://www.cynexlink.com/2017/08/18/virtual-machines-pros-cons/
  10. https://www.macworld.co.uk/feature/mac-software/best-virtual-machine-software-3671133/
  11. https://www.cse.wustl.edu/~jain/cse571-09/ftp/vmsec/
  12. https://www.techopedia.com/definition/4805/virtual-machine-vm

پاسخ دادن:

ایمیل شما نمایش داده نمی‌شود.