برای امتحانکردن لینوکس، آزمایش یک برنامه یا ساخت محیط آموزشی شبکه، همیشه به کامپیوتر دیگری نیاز ندارید. ماشین مجازی امکان ایجاد یک کامپیوتر نرمافزاری روی دستگاه موجود را فراهم میکند. در این راهنما میبینید VM چگونه کار میکند، کجا به کار میآید و پیش از استفاده از آن باید به چه محدودیتهایی توجه کنید.
ماشین مجازی چیست؟ یک کامپیوتر نرمافزاری با سیستمعامل مستقل
ماشین مجازی یا Virtual Machine که بهاختصار VM نامیده میشود، محیطی نرمافزاری با پردازنده، حافظه، دیسک و کارت شبکه مجازی است که میتواند سیستمعامل و برنامههای خودش را اجرا کند. منابع واقعی آن از یک کامپیوتر یا سرور فیزیکی تأمین میشوند؛ بنابراین، «مجازی» به معنی بینیازی از سختافزار نیست.
برای مثال، میتوانید روی لپتاپ ویندوزی خود یک ماشین مجازی بسازید و لینوکس را داخل آن نصب کنید. در این حالت، ویندوز همچنان در حال اجراست و لینوکس نیز در محیطی جداگانه کار میکند. برخلاف نصب دوگانه یا Dual Boot، برای جابهجایی بین این دو محیط معمولاً نیازی به راهاندازی مجدد دستگاه ندارید.
در این مقاله، منظور از VM همین ماشین مجازی سیستمی است. اصطلاح ماشین مجازی کاربرد دیگری هم دارد: ماشین مجازی فرایندی مانند ماشین مجازی جاوا یا JVM، محیط اجرای برنامه است و یک کامپیوتر کامل با سیستمعامل مهمان ایجاد نمیکند.
ماشین مجازی چگونه کار میکند؟

برای درک سازوکار VM، کافی است سه مفهوم را بشناسید:
- میزبان یا Host: دستگاه فیزیکی که منابع پردازشی و ذخیرهسازی را فراهم میکند.
- مهمان یا Guest: محیط مجازی و سیستمعاملی که داخل آن اجرا میشود.
- هایپروایزر یا Hypervisor: لایه نرمافزاری مسئول ایجاد ماشینهای مجازی، جداسازی محیطهای آنها و مدیریت دسترسی به منابع میزبان.
هایپروایزر مشخص میکند هر ماشین چه مقدار حافظه داشته باشد، چند پردازنده مجازی ببیند و چگونه به دیسک و شبکه دسترسی پیدا کند. مطابق توضیح Red Hat درباره سازوکار ماشین مجازی، اجرای واقعی پردازشها همچنان بر عهده سختافزار فیزیکی است و هایپروایزر دسترسی ماشینها به این منابع را مدیریت میکند.
برای نمونه، اختصاص دو پردازنده مجازی یا vCPU به یک VM لزوماً به معنی رزرو دو هسته فیزیکی اختصاصی نیست؛ نحوه استفاده از پردازنده به پیکربندی و زمانبندی هایپروایزر بستگی دارد.
تفاوت هایپروایزر نوع ۱ و نوع ۲
| نوع | محل اجرا | کاربرد متداول | نمونه |
|---|---|---|---|
| نوع ۱ یا Bare-metal | مستقیماً روی سختافزار، بدون اتکا به یک سیستمعامل میزبان معمولی | مجازیسازی سرورها و زیرساخت دیتاسنتر | VMware ESXi |
| نوع ۲ یا Hosted | روی سیستمعامل میزبان | یادگیری، توسعه و آزمایش روی کامپیوتر شخصی | Oracle VirtualBox |
این تقسیمبندی درباره معماری اجراست، نه یک رتبهبندی مطلق از نظر کیفیت. برای شروع روی کامپیوتر شخصی، ابزارهایی مانند VirtualBox مسیر سادهتری دارند؛ در زیرساخت سرور، نیازهای مدیریتی و عملیاتی متفاوت است.
کاربرد ماشین مجازی چیست؟
یادگیری سیستمعامل و شبکه
اگر میخواهید لینوکس یاد بگیرید، لازم نیست از همان ابتدا سیستمعامل اصلی دستگاه را عوض کنید. یک VM میتواند محیط تمرین نصب نرمافزار، مدیریت کاربران و کار با سرویسهای شبکه باشد.
با ساخت چند ماشین نیز میتوان یک آزمایشگاه کوچک ایجاد کرد؛ مثلاً یک ماشین نقش وبسرور و ماشین دیگر نقش کاربر شبکه را داشته باشد. تعداد ماشینهای قابل اجرا به ظرفیت میزبان بستگی دارد.
توسعه و آزمایش نرمافزار
توسعهدهنده میتواند وابستگیهای یک پروژه را داخل VM نصب کند تا محیط کاری اصلی کمتر درگیر تغییرات شود. همچنین میتوان عملکرد برنامه را روی سیستمعاملهای مهمانِ پشتیبانیشده بررسی کرد.
البته صرف استفاده از VM، اجرای هر سیستمعاملی روی هر سختافزاری را ممکن نمیکند. معماری پردازنده، پشتیبانی نرمافزار مجازیسازی و شرایط مجوز سیستمعامل باید با یکدیگر سازگار باشند.
اجرای بعضی نرمافزارهای قدیمی
گاهی یک برنامه قدیمی فقط روی نسخه مشخصی از سیستمعامل کار میکند. نصب آن سیستمعامل در VM میتواند راهکاری برای حفظ دسترسی به برنامه باشد؛ اما سازگاری تجهیزات جانبی، درایورها و مجوز نرمافزار همچنان باید بررسی شود.
سیستمعامل قدیمی داخل ماشین مجازی امن نمیشود. اگر دیگر بهروزرسانی امنیتی دریافت نمیکند، دسترسی آن به اینترنت و اطلاعات حساس را تا حد امکان محدود کنید.
میزبانی سرویسها و استفاده بهتر از سختافزار
روی یک سرور فیزیکی میتوان چند ماشین مجازی ساخت و سرویسهای مختلف را در محیطهای جدا اجرا کرد. این کار میتواند نیاز به خرید دستگاه مستقل برای هر سرویس را کاهش دهد و مدیریت محیطها را انعطافپذیرتر کند.
بااینحال، چند VM روی یک میزبان همچنان به همان سختافزار وابستهاند. خرابی میزبان ممکن است همه آنها را متوقف کند، مگر اینکه برای تداوم سرویس زیرساخت جداگانهای طراحی شده باشد.
مزایا و محدودیتهای ماشین مجازی
مزیت اصلی VM، ایجاد محیطهای مستقل بدون نیاز به سختافزار جداگانه برای هر محیط است. اما این انعطافپذیری، محدودیت منابع و نیاز به مدیریت را حذف نمیکند.
| مزیت | نکتهای که باید در نظر بگیرید |
|---|---|
| اجرای چند سیستمعامل روی یک دستگاه | مجموع مصرف منابع نباید از ظرفیت عملی میزبان فراتر برود. |
| جداسازی برنامهها و تنظیمات | جداسازی، تضمین امنیت مطلق یا نبود اثر متقابل نیست. |
| ساخت محیطهای قابل تکرار | انتقال و تکثیر ماشین به سازگاری، مجوزها و تنظیمات وابسته است. |
| بازگشت آسانتر از بعضی تغییرات آزمایشی | Snapshot جای نسخه پشتیبان مستقل را نمیگیرد. |
| استفاده بهتر از سختافزار | مدیریت، نگهداری و مجوزها همچنان هزینه دارند. |
از نظر عملکرد نیز نمیتوان گفت هر VM الزاماً کند است یا همیشه مانند اجرای مستقیم عمل میکند. نتیجه به نوع پردازش، سرعت دیسک، حافظه در دسترس، پیکربندی و میزان رقابت ماشینها بر سر منابع بستگی دارد.
برنامههای گرافیکی سنگین یا نرمافزارهایی که به تجهیزات خاص نیاز دارند، ممکن است به تنظیمات پیشرفته نیاز داشته باشند یا برای محیط مجازی مناسب نباشند.
آیا ماشین مجازی کاملاً امن است؟
خیر. VM یک مرز جداسازی ایجاد میکند، اما نباید آن را محیطی غیرقابل نفوذ دانست. آسیبپذیری نرمافزار مجازیسازی، تنظیمات شبکه و قابلیتهایی مانند پوشه مشترک میتوانند بر امنیت اثر بگذارند.
برای استفاده روزمره:
- هایپروایزر و سیستمعامل مهمان را بهروز نگه دارید.
- پوشه مشترک و کلیپبورد مشترک را فقط در صورت نیاز فعال کنید.
- اطلاعات حساس میزبان را بیدلیل در اختیار مهمان نگذارید.
- VM را بدون بررسی تنظیمات شبکه مستقیماً در معرض اینترنت قرار ندهید.
اجرای بدافزار واقعی در یک VM معمولی، تمرین مناسبی برای کاربر مبتدی نیست. تحلیل بدافزار به محیط آزمایشگاهی و کنترلهای امنیتی تخصصی نیاز دارد.
تفاوت ماشین مجازی با VPS و کانتینر
ماشین مجازی و سرور مجازی VPS
VM یک فناوری و محیط محاسباتی است؛ سرور مجازی خصوصی یا VPS نوعی سرویس میزبانی است که اغلب با استفاده از مجازیسازی ارائه میشود. ماشین مجازی شما میتواند روی لپتاپ برای تمرین اجرا شود، اما VPS معمولاً روی زیرساخت ارائهدهنده میزبانی قرار دارد و از راه دور به آن متصل میشوید.
پس هر VM، لزوماً یک سرویس VPS نیست. همچنین عنوان VPS بهتنهایی نوع فناوری، اختصاصیبودن پردازنده یا سطح مدیریت سرویس را مشخص نمیکند؛ این موارد را باید در مشخصات ارائهدهنده بررسی کرد.
«سرور» نیز نام یک نقش است: سیستمی که به دیگر سیستمها خدمات میدهد. این نقش میتواند روی سختافزار فیزیکی یا داخل ماشین مجازی اجرا شود.
ماشین مجازی و کانتینر
کانتینر نیز برای جداسازی محیط اجرای برنامهها استفاده میشود، اما برخلاف VM معمول، برای هر محیط یک سیستمعامل کامل با هسته مستقل اجرا نمیکند. در کانتینرهای رایج، هسته سیستمعامل بین محیطها مشترک است.
| معیار | ماشین مجازی | کانتینر |
|---|---|---|
| محیط اجرا | سیستمعامل مهمان با هسته مستقل | برنامه و وابستگیها با استفاده از هسته مشترک |
| مصرف منابع پایه | معمولاً بیشتر | معمولاً کمتر |
| راهاندازی | معمولاً زمانبرتر | معمولاً سریعتر |
| کاربرد شاخص | آزمایش سیستمعامل و اجرای محیط کامل سرور | بستهبندی و استقرار برنامهها |
این دو الزاماً جایگزین هم نیستند؛ میتوان کانتینرها را داخل یک ماشین مجازی اجرا کرد. اگر هدف شما یادگیری یک سیستمعامل کامل است، VM معمولاً انتخاب مستقیمتری خواهد بود.
برای ساخت اولین ماشین مجازی چه چیزهایی لازم است؟
یک حداقل سختافزاری ثابت برای همه VMها وجود ندارد. نیاز یک لینوکس سبک بدون محیط گرافیکی با یک سیستمعامل دسکتاپ و نرمافزارهای سنگین یکسان نیست.
پیش از شروع، این موارد را بررسی کنید:
- پردازنده و سازگاری: پشتیبانی سختافزار و نرمافزار مجازیسازی از معماری مهمان؛ در رایانههای x86، قابلیتهایی مانند Intel VT-x یا AMD-V ممکن است نیاز به فعالسازی در UEFI/BIOS داشته باشند.
- حافظه آزاد: علاوه بر نیاز مهمان، برای سیستمعامل میزبان و برنامههای باز نیز حافظه کافی باقی بگذارید.
- فضای ذخیرهسازی: حجم سیستمعامل، برنامهها، دادهها و رشد احتمالی فایلهای ماشین را حساب کنید.
- فایل نصب معتبر: فایل ISO، یعنی تصویر رسانه نصب سیستمعامل، را از منبع رسمی دریافت کنید.
- مجوز استفاده: ساخت VM نیاز به رعایت مجوز سیستمعامل و نرمافزارهای داخل آن را از بین نمیبرد.
مسیر کلی ساخت VM با VirtualBox
سناریوی زیر برای نصب یک توزیع لینوکس سازگار روی کامپیوتر شخصی است. نام گزینهها ممکن است میان نسخههای VirtualBox تفاوت داشته باشد؛ این مراحل، مسیر کلی کار هستند، نه راهنمای یک نسخه مشخص.
۱. نسخه سازگار VirtualBox را از وبسایت رسمی دریافت و نصب کنید. پیش از نصب و تغییر تنظیمات سیستم، از دادههای مهم پشتیبان داشته باشید.
۲. یک ماشین جدید بسازید و نوع سیستمعامل مهمان را مشخص کنید.
۳. حافظه و پردازنده را بر اساس نیاز مهمان و منابع آزاد میزبان تخصیص دهید؛ همه منابع دستگاه را به VM ندهید.
۴. یک دیسک مجازی جدید ایجاد و فایل ISO را به ماشین متصل کنید. برای این سناریوی مقدماتی، دیسک فیزیکی میزبان را مستقیماً در اختیار مهمان قرار ندهید.
۵. ماشین را روشن کنید و سیستمعامل را روی همان دیسک مجازی نصب کنید.
۶. پس از نصب، سیستمعامل مهمان را بهروز و اتصال شبکه و دسترسیهای اشتراکی را بررسی کنید.
اگر هدف فقط دسترسی مهمان به اینترنت است، حالت NAT معمولاً نقطه شروع مناسبی است: مهمان از اتصال میزبان استفاده میکند و اتصال ورودی مستقیم به آن معمولاً به تنظیمات اضافه نیاز دارد. البته NAT جای فایروال یا جداسازی امنیتی کامل را نمیگیرد.
قبل از تغییرات آزمایشی میتوانید از Snapshot، یعنی ثبت وضعیت ماشین برای بازگشت بعدی، استفاده کنید. بازگردانی Snapshot میتواند تغییرات بعدی را از بین ببرد؛ ضمن اینکه اگر فایلهای آن روی همان دیسک میزبان باشند، از خرابی آن دیسک محافظت نمیکند.
پرسشهای متداول
آیا ماشین مجازی بدون اینترنت کار میکند؟
بله. اجرای سیستمعامل و برنامههای محلی به اینترنت وابسته نیست. دریافت بهروزرسانی، استفاده از سرویسهای آنلاین یا بعضی فرایندهای فعالسازی ممکن است اتصال اینترنت بخواهد.
با بستن پنجره ماشین مجازی، فایلهای آن پاک میشوند؟
خیر، اما نتیجه بستن پنجره به گزینه انتخابی بستگی دارد؛ ممکن است ماشین خاموش، متوقف یا وضعیت آن ذخیره شود. برای جلوگیری از آسیب به دادهها، خاموشکردن معمول سیستمعامل مهمان را به قطع ناگهانی ترجیح دهید. حذف فایل دیسک مجازی موضوعی جداگانه است و میتواند دادههای داخل ماشین را از بین ببرد.
آیا نصب برنامه داخل VM روی سیستمعامل اصلی اثر میگذارد؟
نصب معمول برنامه، فایلها و تنظیمات همان مهمان را تغییر میدهد؛ اما مصرف پردازنده، حافظه و دیسک میتواند روی سرعت میزبان اثر بگذارد. پوشههای مشترک نیز راهی برای دسترسی مهمان به بعضی فایلهای میزبان هستند.
جمعبندی: VM محلی کافی است یا به VPS نیاز دارید؟
ماشین مجازی برای یادگیری، آزمایش و اجرای یک سیستمعامل مستقل روی سختافزار موجود کاربرد دارد. اگر هدفتان تمرین است، از یک VM کوچک و سازگار با منابع دستگاه شروع کنید و دسترسیهای غیرضروری را محدود نگه دارید.
اگر به محیطی مستقل از روشنبودن کامپیوتر شخصی خود برای میزبانی سرویس نیاز دارید، بررسی VPS منطقیتر است. برای مقایسه گزینههای Logicserver، مشخصات سرور مجازی ایران را ببینید. اگر مدیریت سرور هم بخشی از نیاز شماست، صفحه سرور مجازی مدیریتشده NVMe را بررسی کنید و پیش از انتخاب، دامنه خدمات مدیریت را با نیاز پروژه تطبیق دهید.
دیدگاهها (۰)
هنوز دیدگاهی ثبت نشده است. اولین نفر باشید!