ماشین مجازی (Virtual Machine) چیست؟ هر آنچه باید درباره VM ها بدانید
در دهههای اخیر، با توسعه روز افزون فناوریهای اطلاعات و ارتباطات، مفهوم ماشین مجازی (Virtual Machine) به عنوان یکی از ابزارهای مهم و قدرتمند در حوزه فناوری اطلاعات به توجه بسیاری دست یافته است. از این رو در این مقاله، قصد داریم به بررسی مفهوم ماشین مجازی با تمرکز بر مزایا، کاربردها و عملکرد آن بپردازیم.
فهرست مطالب
- ماشین مجازی چیست؟
- ماشین مجازی VMware چیست؟
- ماشین مجازی چطور کار میکند؟
- کاربرد ماشین مجازی
- مزایا و معایب ماشین مجازی
- انواع ماشین مجازی
- منابع سختافزاری مورد نیاز برای راهاندازیVM
- نحوه ایجاد ماشین مجازی
- هایپروایزر چیست و چه انواعی دارد؟
- بهترین نرمافزارهای ماشین مجازی
- مقایسه ماشین مجازی و سرور
- 5 شیوه مجازی سازی
- کلام آخر
ماشین مجازی چیست؟
ماشین مجازی (Virtual Machine)، یک محیط مجازی است که توسط نرمافزارهای مجازی سازی بر روی سخت افزار فیزیکی ایجاد میشود و قادر است سیستم عامل و برنامههای کاربردی را درون خود اجرا کند. با استفاده از آن، میتوان چندین سیستمعامل مجازی را روی یک سخت افزار فیزیکی به صورت همزمان و مستقل از هم اجرا کرد.
Virtual Machine در واقع به کاربر این امکان را میدهد تا بتواند یک سیستم کامل را درون یک محیط مجازی ایجاد کند که شامل سیستمعامل، درایورها، برنامهها و تنظیمات مورد نیاز است. این محیط مجازی به صورتی عمل میکند که هر VM به تمام منابع سختافزاری مورد نیاز خود، از جمله پردازنده، حافظه، فضای ذخیره سازی و دستگاههای ورودی-خروجی دسترسی دارد و به عنوان یک واحد یا سیستم مستقل به نظر میرسد.
ماشین مجازی VMware چیست؟
مجازی ساز VMware، یکی از پیشرو ها در زمینه فناوری ماشین مجازی است. VMware یک شرکت نرم افزاری است که ابزارها و فناوریهای مختلفی را برای ایجاد و مدیریت ماشین های مجازی ارائه میدهد. محصولات VMware به شرکتها و سازمانها امکان میدهند تا از مزایای Virtual Machine برای مدیریت و پیادهسازی سیستمهای اطلاعاتی خود بهرهبرداری کنند.
یکی از محصولات معروف این شرکت، VMware vSphere است که به عنوان یک پلتفرم مجازیسازی برای مدیریت و اجرای ماشین های مجازی استفاده میشود. VMware vSphere قابلیتهایی مانند توزیع منابع سختافزاری، انتقال ماشین های مجازی بین سرورها، مدیریت دیتا سنتر و مانیتورینگ را فراهم میکند.
ماشین مجازی چطور کار میکند؟
ماشین مجازی، با استفاده از نرم افزارهای مجازی سازی، یک محیط مجازی را بر روی سخت افزار فیزیکی ایجاد میکند. در این محیط مجازی، یک سیستم عامل و برنامههای کاربردی میزبان (Host) تعبیه شدهاند که قادرند به صورت مستقل از سیستم عامل اصلی، درون Virtual Machine اجرا شوند.
زمانی که یک VM راهاندازی میشود، نرمافزار مجازیسازی، منابع سختافزاری مورد نیاز را از سخت افزار فیزیکی به آن تخصیص میدهد. این منابع شامل پردازنده، حافظه، فضای ذخیرهسازی و غیره میشوند. سپس، یک لایه نرم افزاری به نام هایپروایزر (Hypervisor) یا مانیتور ماشین مجازی یا مدیر ماشین مجازی (Virtual Machine Monitor) بر روی سخت افزار فیزیکی نصب شده و عملکرد VM را مدیریت و کنترل میکند.
هنگامی که Virtual Machine در حال اجرا است و کاربر یا برنامه، دستور العملی را صادر می کند که به منابع اضافی مانند حافظه یا CPU بیشتر از محیط فیزیکی نیاز دارد، هایپروایزر درخواست را در سیستم فیزیکی ثبت می کند تا سیستم عامل و برنامه های VM به این منابع دسترسی پیدا کنند. در ادامه بیشتر به این مباحث خواهیم پرداخت.
کاربرد ماشین مجازی
کاربرد ماشین مجازی در حوزههای مختلف فناوری اطلاعات و مدیریت سیستمها بسیار گسترده است. در اینجا به برخی از کاربردهای مهم ماشین مجازی اشاره میکنیم:
- دیتا سنتر مجازی (Virtual Data Center): با استفاده از VMها، میتوان یک دیتا سنتر فیزیکی را به چندین دیتا سنتر مجازی تقسیم کرد.
- تست و توسعه نرم افزار: ماشین های مجازی به توسعهدهندگان اجازه میدهند تا برنامهها و نرم افزارهای خود را در یک محیط مجازی تست و اجرا کنند.
- سازماندهی سرور (Server Consolidation): با استفاده از ماشین های مجازی، میتوان چندین سرور فیزیکی را در یک سرور فیزیکی مجازی سازماندهی کرد.
- آزمون و آموزش: VMها به شرکتها و سازمانها این امکان را میدهند تا برنامهها، سیستمها و فرآیندهای مختلف را در محیط مجازی تست کنند و به کارکنان خود موارد مختلف را آموزش دهند.
- حفاظت از محیط های اجرایی: با استفاده از VMها، میتوان محیطهای اجرایی را از یکدیگر جدا نمود تا در صورت بروز خطا یا نقص در یک ماشین مجازی، سایر آنها تحت تأثیر قرار نگیرند.
- پشتیبان از برنامههای کاربردی: ماشین های مجازی به سازمانها و شرکتها این امکان را میدهند تا برنامههای کاربردی خود را در یک محیط مجازی اجرا کنند.
- انجام وظایف در محیط های خطرناک: ماشین های مجازی می توانند وظایف خاصی را انجام دهند که انجام آن ها در محیط میزبان (سرور اصلی) بسیار خطرناک است، مانند دسترسی به داده های آلوده به ویروس یا تست سیستم عامل های مختلف. از آنجایی که Virtual Machine جدا از بقیه سیستم است، نرم افزار داخل ماشین مجازی نمی تواند به سرور اصلی آسیب بزند.
مزایا و معایب ماشین مجازی
مزایا ماشین مجازی
- بهینهسازی منابع: استفاده از VMها امکان بهرهبرداری بهینه از منابع سختافزاری را فراهم میکند.
- انعطافپذیری: فرآیند نصب و ایجاد ماشین مجازی جدید توسط شرکتها و سازمانها سریع و راحت است و با استفاده از آنها میتوان منابع سخت افزاری را بدون دردسر بهروزرسانی کرد.
- انتقال و پشتیبانی آسان: با استفاده از VM ها، انتقال سرورها و پشتیبانگیری از آن ها آسانتر میشود.
- صرفه جویی در هزینهها: استفاده از ماشین های مجازی میتواند باعث کاهش هزینههای سختافزاری، نگهداری و مصرف انرژی شود.
- امنیت: از آنجایی که می توان ماشین مجازی را با سیستم عامل های جدا از هم و جدا از سیستم عامل سرور اصلی ایجاد کرد، این امکان وجود دارد تا بدون آسیب رساندن به سیستم عامل سرور اصلی، برنامه هایی که از نظر امنیتی مشکوک هستند را اجرا کرد. از این قابلیت می توان برای شناسایی ویروس های مختلف و جداسازی آن ها از یکدیگر بدون به خطر انداختن سرور اصلی استفاده کرد.
معایب ماشین مجازی
- کاهش قابلیت اطمینان: با استفاده از VMها، وابستگی به سخت افزار و نرم افزار افزایش مییابد.
- محدودیت منابع سخت افزاری: استفاده از VMها ممکن است باعث ایجاد محدودیتهایی در منابع سختافزاری شود.
- عملکرد ناپایدار: با استفاده از VMها، ممکن است عملکرد برخی برنامهها و سرویسها کاهش یابد. چرا که اجرای چندین ماشین مجازی روی یک سرور فیزیکی می تواند منجر به عملکرد ناپایدار برنامه ها در صورت برآورده نشدن نیازهای زیرساختی (منابعی مانند حافظه، دیسک، CPU و …) شود.
- پیچیدگی مدیریت: مدیریت و پیکربندی دقیق ماشین های مجازی نیازمند مهارتهای تخصصی و دانش فنی است.
- وابستگی به شبکه: استفاده از VMها نیازمند اتصال پایدار به شبکه است.
- کند بودن: ماشین های مجازی، کمی کندتر از کامپیوترها و سرورهای فیزیکی کار می کنند، برای همین اکثر شرکت ها از ترکیبی از سرورهای فیزیکی و مجازی استفاده می کنند.
انواع ماشین مجازی
کاربران میتوانند از دو نوع VM متفاوت استفاده کنند. ماشین های مجازی پردازشی یا فرآیندی و سیستمی.
- ماشین مجازی پردازشی یا فرآیندی، به یک فرآیند اجازه میدهد به عنوان یک برنامه بر روی یک سرور اجرا شود و با مخفی کردن اطلاعات سخت افزار یا سیستم عامل اصلی خود، محیطی برنامهنویسی مستقل از پلتفرم اولیه فراهم میکند. به عنوان برنامه های اندرویدی که مختص گوشی های اندرویدی هستند، اما می توانید با ماشین مجازی پردازشی، برنامه های اندرویدی را بر روی دسکتاپ کامپیوتر خود اجرا کنید.
- ماشین مجازی سیستمی به صورت کامل مجازی شده است تا جایگزین یک محیط فیزیکی شود. یک VM سیستمی، امکان اشتراک گذاری منابع فیزیکی یک هاست بین چند VM را به شما می دهد. این فرآیند مجازی سازی به یک هایپروایزر متکی است که میتواند بر روی سختافزار خام اجرا شود، مانند VMware ESXi.
منابع سختافزاری مورد نیاز برای راهاندازیVM
برای راهاندازی یک VM، نیاز به منابع سختافزاری مناسب دارید. این منابع شامل موارد زیر میشوند:
- سخت افزار فیزیکی (Host Hardware): برای اجرای VM، شما نیاز به یک سرور یا سیستم کامپیوتری با سختافزار قدرتمند دارید. این سختافزار باید دارای پردازندههای قوی با پشتیبانی از تکنولوژی مجازیسازی مانند Intel VT-x یا AMD-V باشد. همچنین، حافظه رم کافی برای اجرای همزمان چندین VM و فضای ذخیره سازی مناسب برای نصب و ذخیره سیستم عاملها و دادههای ماشین مجازی نیز لازم است.
- نرم افزار مجازی سازی (Virtualization Software): برای ایجاد و مدیریت VM، شما نیاز به نرم افزار مجازی سازی مناسب دارید. محصولات معروف این حوزه شامل VMware vSphere، Microsoft Hyper-V، KVM، Xen و Docker هستند. این نرمافزارها امکانات مدیریت VMها، تخصیص منابع سخت افزاری، شبکه بندی و مانیتورینگ را فراهم میکنند. در ادامه بیشتر در این رابطه توضیح خواهیم داد.
- فضای ذخیرهسازی (Storage): برای ذخیره سازی سیستمعاملها، برنامهها و دادههای VM، نیاز به فضای ذخیرهسازی دارید. میتوانید از درایوهای داخلی سرور یا از ذخیره سازی شبکه (مانند SAN یا NAS) استفاده کنید. همچنین، میتوانید از فناوریهای ذخیره سازی شبه فیزیکی (مانند RAID) برای افزایش امنیت و عملکرد فضای ذخیره سازی استفاده کنید.
- شبکه (Network): برای دسترسی به VM و ارتباط آن با شبکه، نیاز به تنظیمات شبکه مناسب دارید. شما باید شبکههای مجازی را برای ماشین های مجازی تعریف کنید و آنها را به شبکههای فیزیکی متصل کنید. همچنین، باید تنظیمات IP، DNS و پورتها را نیز مدیریت کنید.
نحوه ایجاد ماشین مجازی
برای ایجاد یک ماشین مجازی، مراحل زیر را میتوانید دنبال کنید:
انتخاب نرمافزار مجازیسازی
ابتدا نیاز دارید یک نرمافزار مجازی سازی را انتخاب کنید. محصولات معروف مانند VMware vSphere، Microsoft Hyper-V، KVM، Xen و Docker را میتوانید بررسی کنید. هر یک از این نرم افزارها قابلیتها و ویژگیهای خاص خود را دارند، لذا باید به نیازها و محدودیتهای خودتان توجه کنید.
تهیه سیستم مورد نیاز
پس از انتخاب نرم افزار مجازی سازی، باید یک host تهیه کنید. این سیستم باید دارای سخت افزار قدرتمند و سازگار با نرم افزار مجازی سازی باشد. همچنین بررسی نیازهای سخت افزاری مربوط به نرم افزار مجازی نیز از اقدامات مهم دیگر است.
نصب نرم افزار مجازیسازی
پس از تهیه سیستم مورد نیاز، نرمافزار مجازی سازی را روی سیستم نصب کنید. این مرحله شامل دانلود و نصب نرم افزار مجازی سازی بر روی سیستم است.
تعریف ماشین مجازی
بعد از نصب نرم افزار مجازی سازی، باید ماشین مجازی را تعریف کنید. این کار شامل تعیین نام VM، سیستمعاملی که قصد نصب آن را دارید، تنظیمات مربوط به سختافزار مانند پردازنده، حافظه رم و فضای ذخیرهسازی است. همچنین، میتوانید تنظیمات شبکه، اتصال به دستگاههای USB و سایر تنظیمات مربوطه را نیز انجام دهید.
نصب سیستم عامل
بعد از تعریف VM، باید سیستم عامل مورد نظر را درون VM نصب کنید. به عنوان مثال، اگر قصد دارید ویندوز را بر روی ماشین مجازی نصب کنید، باید image ISO یا فایل نصب ویندوز را به ماشین مجازی متصل کنید و فرآیند نصب را آغاز کنید.
پیکربندی و تنظیمات
پس از نصب سیستمعامل، باید تنظیمات مورد نیاز را بر روی ماشین مجازی پیکربندی کنید. این کار شامل تنظیم شبکه، امنیت، پیکربندی سخت افزاری، مدیریت منابع و سایر تنظیمات است. با توجه به نرم افزار مجازی سازی خود، راهنماهای مربوطه را مطالعه کنید و تنظیمات را به دقت انجام دهید.
مدیریت ماشین مجازی
پس از انجام تنظیمات اولیه، شما میتوانید VM خود را مدیریت کنید. می توانید VM خود را روشن و خاموش کنید، منابع را مدیریت کنید، ماشین هایمجازی را از یک سرور به سرور دیگر منتقل کنید، از VM خودبکاپ بگیرید و فایل بکاپ را بازیابی کنید و در پایان به مانیتورینگ آن بپردازید.
استفاده از ماشین مجازی
حالا که ماشین مجازی شما آماده است، میتوانید به آن وارد شوید و مانند یک سیستم عادی از آن استفاده کنید. همچنین میتوانید نرم افزارها و برنامههای مورد نیاز خود را درون VM نصب کنید و به آن ها دسترسی داشته باشید.
برای فهم بهتر ما در پستی دیگر ساخت ماشین مجازی در VMware Workstation را به طور کامل آموزش داده ایم که می توانید به این پست مراجعه کنید.
هایپروایزر چیست و چه انواعی دارد؟
هایپروایزر (Hypervisor)، نرمافزاری است که اجرای همزمان چندین سیستم عامل مستقل را بر روی یک سخت افزار فیزیکی یا سرور مجازی ممکن میسازد. هاست هایپروایزر به صورت مستقیم با سخت افزار تعامل دارد و منابع سخت افزاری را به صورت مجازی تقسیم میکند تا به چندین VM اجازه دهد روی یک سیستم فیزیکی به طور همزمان اجرا شوند. نرم افزارهای هاست هایپروایزر به دو دسته اصلی تقسیم میشوند.
هاست هایپروایزر نوع 1 (Type 1 Hypervisor)
این نوع از هاست هایپروایزر مستقیماً روی سخت افزار نصب میشود و بدون نیاز به سیستم عامل هاست (Host OS) عمل میکند. هاست پروایزر نوع 1 مستقیماً با سختافزار تعامل میکند و ماشین های مجازی را مستقیماً روی آن اجرا میکند. معروفترین نمونههای هاست هایپروایزر نوع 1 عبارتند از:
- VMware ESXi
- Xen
هاست هایپروایزر نوع 2 (Type 2 Hypervisor)
هاست هایپروایزر نوع 2 بر روی سیستم عامل میزبان (Host OS) نصب میشود و به عنوان یک برنامه درون سیستم عامل اجرا میشود. این نوع از هاست هایپروایزر به عنوان یک نرم افزار اضافی بر روی سیستم عامل میزبان نصب میشود و ماشین های مجازی را بر روی آن ها اجرا میکند. معروفترین نمونههای هاست هایپروایزر نوع 2 عبارتند از:
- VMware Workstation
- Oracle VM VirtualBox
- QEMU
همچنین، شرکتهای دیگری مانند Citrix XenServer و Red Hat Virtualization نیز هاست هایپروایزر معروفی هستند که در برخی موارد استفاده میشوند.
بهترین نرمافزارهای ماشین مجازی
نرم افزارهای زیادی برای ایجاد و مدیریت ماشین های مجازی در محیطهای مختلف و با ویژگیها متنوع وجود دارند. در اینجا، به برخی از بهترین نرمافزارهای Virtual Machine اشاره خواهیم کرد.
- VMware vSphere
- مجازی ساز Hyper-V
- Oracle VM VirtualBox
- KVM (Kernel-based Virtual Machine)
- Xen
مقایسه ماشین مجازی و سرور
ماشین های مجازی بیشتر در دیتا سنتر ها استفاده میشوند. آنها به شما این امکان را میدهند که تعداد بیشتری سیستم عامل و برنامه را به صورت همزمان در یک سرور فیزیکی نصب و اجرا کنید. این امر به شما اجازه میدهد منابع سخت افزاری را به صورت بهینه استفاده کنید و هزینههای سرور را کاهش دهید.
سرورها در محیطهای شبکه محلی (مانند سازمانها) استفاده میشوند. آنها برای ارائه خدمات و منابع شبکه به کاربران و دستگاهها مورد استفاده قرار میگیرند. سرورها عموماً در حال اجرای یک سیستمعامل خاص هستند و به صورت مداوم و بدون توقف در دسترس کاربران قرار دارند.
سرورهای فیزیکی کارایی، امنیت و کنترل بالایی را ارائه می دهند، اما نگهداری آنها گران بوده و مقیاس بندی آنها دشوار است. از سوی دیگر، VMها انعطافپذیر هستند، مقیاسپذیری آسانی دارند و در مقایسه با سرورهای فیزیکی هزینه کمتری بر دوشتان می گذارند..
علاوه بر این، عواملی مانند حجم کاری مورد نیاز، بودجه، اندازه دادههایی که باید ذخیره شوند، رشد کسبوکار، نوع دادهها به فرد اجازه میدهد بهترین انتخاب را برای کسبوکار خود داشته باشد.
5 شیوه مجازی سازی
تمام داده های سرورها و سیستم های قدیمی را به 5 روش می توان مجازی سازی کرد:
- مجازی سازی سخت افزاری: مجازی سازی سخت افزار، که به عنوان مجازی سازی سرور نیز شناخته می شود، اجازه می دهد تا از منابع سخت افزاری به طور کارآمدتر استفاده کرد و یک سرور به طور همزمان می تواند سیستم عامل های مختلف را اجرا کند. یعنی سرور به سرورهای مجازی کوچک تر تقسیم می شود.
- مجازی سازی نرم افزاری: در این حالت به عنوان مثال می توان یک برنامه اندرویدی را بر روی یک سیستم ویندوزی اجرا کرد. یعنی با استفاده از مجازی سازی می توان از یک سخت افزار مشابه برای اجرای برنامه های مختلف استفاده کرد.
- مجازی سازی فضای ذخیره سازی: در این حالت می توان چندین دستگاه یا سرور فیزیکی را با استفاده از مجازی سازی به یک دستگاه تبدیل کرد. این کار به افزایش عملکرد و سرعت، تعادل بار و کاهش هزینه ها کمک می کند. همچنین در صورت بروز هر مشکلی می توان به سرعت داده ها را کپی کرد و به مکان دیگری انتقال داد.
- مجازی سازی شبکه: به زبان ساده در این نوع مجازی سازی به جای افزایش قطعات سخت افزاری به ازای هر کاربر، تعداد ماشین های مجازی را در آن سرور افزایش می دهیم. در این حالت می توان سرورها را به منظور استفاده از منابع شان به هم متصل کرد اما هر کاربر پردازنده، حافظه، گرافیک و به طور کلی منابع مستقلی از دیگر کاربران خواهد داشت.
- مجازی سازی دسکتاپ: این رایج ترین نوع مجازی سازی است که محیط دسکتاپ را از کامپیوتر جدا می کند و آن را روی یک سرور از راه دور ذخیره می کند و به کاربران این امکان را می دهد از هر کجا و در هر دستگاهی به دسکتاپ خود دسترسی داشته باشند. علاوه بر دسترسی آسان، مزایای دسکتاپ مجازی شامل امنیت بهتر داده ها، صرفه جویی در هزینه خرید لایسنس ها و به روزرسانی های نرم افزار و مدیریت آسان آن است.
کلام آخر
بعد از همه این توضیحات فقط به طور خلاصه بیان می کنیم که وظیفه ماشین مجازی به طور کلی تبدیل یک سرور فیزیکی به چند سرور در محیط مجازی است تا کاربران بیشتری بتوانند از منابع یک سرور به صورت مشترک استفاده کنند. هر چند که این منابع مشترک هست اما میان کاربران بسته به نیازشان تقسیم شده و کاربر دیگری از منابع شما نمی تواند استفاده کنند.
همچنین سیستم عامل هر ماشین مجازی جدا از ماشین مجازی دیگری است. در واقع ماشین مجازی را می توان به اتاق هایی در یک ساختمان تشبیه کرد که هر کدام امکانات مختص به خود را دارند که تنها برای یک نفر قابل استفاده هستند.