تعریف
ماشین مجازی (VM) یک کامپیوتر نرمافزاری با سیستم عامل خاص خود است که روی سرور میزبان با سیستمعامل زیربنایی متفاوت اجرا میشود.
بررسی اجمالی
هاست های مجازی می توانند منابع را بین چندین مهمان یا ماشین های مجازی به اشتراک بگذارند که هر کدام نمونه سیستم عامل خود را دارند. دو نوع اصلی ماشین های مجازی ماشین های مجازی پردازشی و سیستمی هستند.
یک ماشین مجازی پردازشی به شما امکان می دهد یک فرآیند واحد را به عنوان یک برنامه در یک ماشین میزبان اجرا کنید. نمونهای از ماشین مجازی پردازشی، ماشین مجازی جاوا (JVM) است که به هر سیستمی اجازه میدهد برنامههای جاوا را طوری اجرا کند که گویی بومی سیستم هستند.
ماشین مجازی سیستمی یک ماشین مجازی کاملا مجازی است که به عنوان جایگزینی برای ماشین فیزیکی طراحی شده است. با استفاده از هایپروایزر مانند VMware ESXi برای دسترسی به منابع ماشین اصلی، روی یک ماشین میزبان متفاوت اجرا می شود.
مجازی سازی سرور
وقتی صحبت از سرورها می شود، یک هاست به طور بالقوه می تواند صدها ماشین مجازی را اجرا کند که هر کدام دارای سیستم عامل مستقل هستند. جدا نگه داشتن سیستم عامل ها به این معنی است که یک هاست می تواند هر دو سرور لینوکس و ویندوز را به طور همزمان پشتیبانی کند.
یک میزبان مجازی را می توان طوری پیکربندی کرد که از thin provisioning نیز استفاده کند، به این معنی که ماشین های مجازی فقط از منابعی استفاده می کنند که در آن زمان کاملاً به آنها نیاز دارند. این به مدیران اجازه میدهد تا تخصیص منابع را بهینه کنند و میزان سختافزاری را که یک کسبوکار نیاز دارد کاهش دهند.
ماشین مجازی چگونه کار می کند
معماری ماشین مجازی را می توان به چهار جزء مختلف تقسیم کرد که از پایین به بالا فهرست شده اند:
یک سیستم اساسی که شامل ماشین فیزیکی و سیستم عامل آن است. هایپروایزرهای فلزی لخت به سیستم عامل زیرین در این لایه نیاز ندارند.
هایپروایزر که به عنوان یک لایه ارتباطی و ترجمه عمل می کند.
چندین ماشین مجازی که از منابع میزبان با برقراری ارتباط با هایپروایزر استفاده می کنند.
برنامه ها و فرآیندهایی که بر روی سیستم عامل هر مهمان اجرا می شوند.
قبل از استقرار هر ماشین مجازی، هایپروایزر باید به درستی پیکربندی شود. با استفاده از KVM، یک فناوری مجازی سازی منبع باز که در لینوکس تعبیه شده است، مدیران می توانند ماشین های مجازی را از یک رابط خط فرمان ایجاد کنند.
در زیر چند نمونه کد وجود دارد که می تواند از خط فرمان برای ایجاد ماشین های مجازی جدید اجرا شود.
با استفاده از تصویر ISO یک ماشین مجازی ایجاد کنید:
# virt-install –name=linuxconfig-vm \
–vcpus=1 \
–memory=1024 \
–cdrom=/tmp/debian-9.0.0-amd64-netinst.iso \
— اندازه دیسک = 5 \
–os-variant=debian8
با شبیه سازی یک ماشین مجازی یک ماشین مجازی ایجاد کنید:
# virt-clone \
–original=linuxconfig-vm \
–name=linuxconfig-vm-clone \
–file=/var/lib/libvirt/images/linuxconfig-vm.qcow2
ماشین های مجازی در لبه
محاسبات لبه به ماشینهای مجازی اجازه میدهد تا پردازش دادهها را بدون تاخیر در اتصال به ابر عمومی بومیسازی کنند. ارائه دهندگان به طور کلی هرگونه پیکربندی و نگهداری را در سطح سخت افزار و هایپروایزر انجام می دهند و توسعه دهندگان برنامه را آزاد می کنند تا روی توسعه و صرفه جویی کسب و کارها از سرمایه گذاری در سخت افزار پرهزینه تمرکز کنند. ماشین های مجازی که در لبه شبکه اجرا می شوند به درستی ماشین های مجازی لبه نامیده می شوند. نمونه هایی از ماشین های مجازی
مجازی سازی ماشین ها به توسعه دهندگان این امکان را می دهد تا برنامه های کاربردی را روی سیستم های متعددی بدون نیاز به خرید سخت افزاری گران قیمت آزمایش کنند. در حالی که این به ویژه برای توسعه بین پلتفرم مفید است، می تواند به اطمینان از سازگاری برنامه ها با سیستم عامل های قدیمی یا جدید کمک کند. یک ماشین مجازی را می توان برای آزمایش چرخاند و سپس به همان سرعت از کار انداخت.
عکس های فوری و پشتیبان گیری
ماشینهای مجازی سبکتر از ماشینهای فیزیکی هستند. با استفاده از نرم افزار مدیریت مجازی سازی، کاربران می توانند لحظاتی قبل از تغییر، یک عکس فوری از یک ماشین مجازی بگیرند. اگر تغییر انجام نشد، سرور را می توان با یک کلیک به حالت قبلی خود بازگرداند.
نرمافزار پشتیبانگیری مانند Tivoli Storage Manager را میتوان روی ماشینهای مجازی پیکربندی کرد و از آنجایی که آنها بسیار سبک هستند، میتوان نسخه پشتیبانگیری افزایشی را خیلی سریع تهیه کرد. با عکس های فوری ماشین مجازی و یک خط مشی پشتیبان گیری بالغ، سیستم های حیاتی هرگز نباید از بین بروند.
خوراکی های کلیدی
ماشینهای مجازی میزان خرید سختافزار فیزیکی را کاهش میدهند و به آنها اجازه میدهند چندین سیستم عامل را روی یک میزبان اصلی اجرا کنند.
اجرای چندین ماشین مجازی روی یک میزبان فیزیکی می تواند استفاده از منابع سیستم را بهینه کند.
آزمایش برنامه ها در محیط های مختلف با چرخش و از کار انداختن ماشین های مجازی به سرعت و بدون هزینه انجام می شود.