ماشین مجازی چیست و چه کاربردی دارد؟
یک ماشین مجازی، در ابتدا توسط Popek and Goldberg به صورت «یک نسخه کپی شده از روی یک ماشین واقعی، به صورت کارا و ایزوله شده» تعریف شد.
استفادههای کنونی، ماشینهای مجازیای را شامل میشود که هیچ ارتباط با سختافزار واقعی ندارند.
ماشینهای مجازی، بر اساس استفاده و درجه ارتباط به ماشین واقعی، به دو دسته اصلی تقسیم میشوند.
یک ماشین مجازی سیستمی یک زیرساخت محاسباتی کامل را فراهم میکند که از اجرای یک سیستمعامل کامل پشتیبانی میکند.
در مقابل، یک ماشین مجازی فرایند، برای اجرای یک برنامه واحد طراحی شده، که این به این معناست که صرفاً از یک فرایند خاص پشتیبانی میکند.
یک ویژگی مهم یک ماشین مجازی، این است که نرمافزاری که درون آن در حال اجراست، با منابع و سطوح انتزاعی که توسط ماشین مجازی اعمال میشود.
محدود شدهاست – یعنی نمیتواند از دنیای مجازی خود خارج شود. ماشینهای مجازی میتوانند فعالیتهای خاصی را انجام دهند که انجام دادن آنها در محیط میزبان بسیار خطرناک است.
مانند دسترسی به دادههای آلوده به ویروس یا آزمایش سیستم عاملها. از آنجا که ماشین مجازی از بقیه سیستم جدا شدهاست، نرمافزار داخل ماشین مجازی نمیتواند کامپیوتر میزبان را دستکاری کند.
از مزایای اصلی ماشین مجازی یا (سرور مجازی) این است که شما میتوانید هر سیستم عاملی را که نیاز دارید بر روی یک کامپیوتر بصورت همزمان نصب کنید.
مثلاً شما میتوانید در یک کامپیوتر همزمان انواع سیستم عاملهای لینوکسی، ویندوزی ویا حتی اندروید و مکینتاش هم نصب کن.
ماشین مجازی چطور کار میکند؟
ماشین مجازی با استفاده از تکنولوژی مجازیسازی کار میکند. درواقع، برای مجازیسازی از نرمافزارهایی استفاده میشود که باعث میشوند چندین ماشین مجازی روی یک دستگاه فیزیکی واحد اجرا شوند.
به این دستگاه فیزیکی میزبان (Host) و به ماشینهای مجازی نیز مهمان (Guest) گفته میشود.
تمامی فرایند مجازیسازی با نرمافزاری موسوم به Hypervisor مدیریت میشود. بهبیان ساده، هایپروایزر وظیفه تأمین و مدیریت منابع از Host تا Guest را برعهده دارد.
همچنین، این نرمافزار عملیات مختلف را در ماشینهای مجازی زمانبندی میکند تا از حفظ تقدم و تأخیر زمانی اجرای تمامی آنها مطمئن شود.
نکته دیگر اینکه ماشینهای مجازی فقط در صورتی کار میکنند که هایپروایزری برای مجازیسازی و توزیع منابع میزبان وجود داشته و برای این منظور پیکربندی شده باشد.
چرا از ماشین مجازی استفاده میکنیم؟
در اینجا به چند روش استفاده از ماشین مجازی میپردازیم:
- ساخت و استقرار برنامهها در فضای ابری
- برای آزمایش سیستمعاملی جدید، از جمله نسخههای بتا
- ایجاد محیطی جدید برای سادهسازی و سرعت بخشیدن به آزمون و خطاهای توسعهدهندگان
- پشتیبانگیری (بکاپ) از سیستمعامل موجود
- دسترسی به دادههای آلوده به ویروس و یا اجرای برنامهای قدیمی که نیاز به نصب سیستمعاملی قدیمی دارد
- اجرای نرمافزار یا برنامهها روی سیستمعاملهایی که در اصل برای آنها نوشته نشدهاند
دستهبندی ماشینهای مجازی
ماشینهای مجازی بر اساس هایپروایزر مورداستفاده برای مدیریت آنها یا میزان بار کاری که پشتیبانی میکنند به دو دسته تقسیم میشوند که به شرح زیر است:
- ماشین مجازی پردازشی (Process VM): ماشین مجازی پردازشی یک محیط برنامهنویسی موقت است که به هیچ پلتفرمی وابسته نیست و برای اجرای یک عملیات پردازشی بهعنوان یک اپلیکیشن استفاده میشود. ماشین مجازی پردازشی در هنگام آغاز فعالیت پردازشی ایجاد و در هنگام پایان آن، نابود میشود.
ماشین مجازی جاوا (Java Virtual Machine) که بخشی از پلتفرم جاوا است و ماشین مجازی زمان اجرای زبان مشترک (Common Language Runtime) که برای چهارچوب دات نت (.NET Framework) استفاده میشود، نمونههایی از ماشینهای مجازی پردازشی هستند
- ماشین مجازی سیستمی (System VM): این نوع ماشین مجازی یک محیط کاملاً مجازیسازیشده است که روی یک دستگاه فیزیکی پشتیبانی میشود و سیستمعامل خودش را اجرا میکند. این دسته از ماشینهای مجازی درست مانند دستگاههای فیزیکی یک محیط کامل برای اجرای اپلیکیشنها و سرویسها ایجاد میکنند. آنها برای مجازیسازی منابع سختافزاری و قرار دادن آنها در اختیار ماشینهای مجازی، وابسته به یک هایپروایزر هستند. ماشینهای مجازی VMware vSphere و Microsoft Hyper-V نمونههایی از ماشینهای مجازی سیستمی هستند.
مزایای ماشین مجازی
مدیریت و نگهداری ماشینهای مجازی آسان است و مزایای زیادی نسبت به ماشینهای فیزیکی دارند:
- ماشین های مجازی میتوانند چندین محیط سیستم عامل را بر روی یک کامپیوتر فیزیکی اجرا کنند که باعث صرفه جویی در فضای فیزیکی، زمان و هزینههای مدیریت میشود.
- ماشینهای مجازی از برنامههای Legacy پشتیبانی میکنند و هزینه مهاجرت به یک سیستم عامل جدید را کاهش میدهند. به عنوان مثال، ماشین مجازی aLinux که توزیعی از لینوکسها را به عنوان سیستم عامل مهمان اجرا میکند، میتواند روی ahostserver که یک سیستم غیر عامل لینوکس مانند ویندوز را اجرا میکند وجود داشته باشد.
- ماشینهای مجازی همچنین میتوانند integrated disaster recovery و application provisioning را ارائه دهند.
معایب ماشینهای مجازی
در حالی که ماشینهای مجازی مزایای متعددی نسبت به ماشینهای فیزیکی دارند، معایب بالقوهای نیز وجود دارد:
- اجرای چندین ماشین مجازی روی یک ماشین فیزیکی میتواند منجر به عملکرد ناپایدار در صورت کمبود نیازهای زیرساختی شود.
- ماشینهای مجازی کارایی کمتری دارند و کندتر از یک کامپیوتر فیزیکی کامل کار میکنند. اکثر شرکتها از ترکیبی از زیرساختهای فیزیکی و مجازی برای ایجاد تعادل بین مزایا و معایب مربوطه استفاده میکنند.
بارگذاری یک سیستمعامل در ماشین مجازی
برای نصب سیستمعامل در یک ماشین مجازی باید دیسک نصب سیستمعامل را داشته باشید. ایجاد رسانه نصب برای ویندوز 10 کار سرراستی است.
همچنین میتوانید از فایلهای ایمیج ISO که اکثر توزیعهای لینوکسی غالباً ارائه میدهند، بدین منظور استفاده کنید.
برنامههای ماشین مجازی ویزاردهای سادهای دارند که شما را در طی فرایند ایجاد ماشین مجازی و نصب سیستمعامل میزبان یاری میکنند.
ماشینهای مجازی تنها به سیستمهای عامل دسکتاپ محدود نیستند و با استفاده از آنها میتوانید حتی اندروید را بر روی ویندوز 10 شبیهسازی کنید.
تکنیکهای مدیریت ماشین مجازی
ماشینهای مجازی میتوانند در ذخیره کردن زمان و پول به ما کمک کنند اما چالشهای خاص خود را نیز به همراه خواهند داشت.
در مقایسه با تنظیمات قدیمی یک سیستمعامل در هر هارد درایو، درایو شما بار بیشتری را به هنگام میزبانی چندین ماشین مجازی و Hypervisor متحمل خواهد شد.
بدون داشتن برنامهی مناسبی برای مدیریت، ماشین مجازی شما به سرعت منابعتان را مصرف خواهد کرد، سرعت عملکرد سرور را کاهش خواهد داد و فضای زیادی از VM را از بین خواهد برد.
خوشبختانه، روشهای قابل اعتمادی برای مدیریت ماشینهای مجازی وجود دارند که این اطمینان را به شما خواهد داد تا فضای مجازی قرار گرفته در اختیار شما، به خوبی و مؤثر عمل خواهد کرد.
در ادامه به بررسی دلایلی میپردازیم که ممکن است ماشین مجازی موجب کاهش عملکرد و سرعت سرور شما شود و راهحل آن را نیز مطرح خواهیم کرد:
- تغییرات تنظیمات: ماشین مجازی شما به صورت مداوم در حال انتقال برای ایجاد ماشینهای مجازی جدید و تکمیل اپلیکیشنها است. اگر موارد به درستی انجام نگیرند، این تغییرات در تنظیمات میتوانند موجب داون شدن سرور و اتلاف زمان شود. اعمال تغییرات در تنظیمات میتوانند مشکلاتی را برای ما ایجاد کنند و این امر زمانی بسیار مشکلساز است که از تاریخچه تغییرات خود در سرور آگاه نباشیم. بدون آگاهی از جزئیات تغییرات، به سرعت با کاهش عملکرد ماشین مجازی خود رو به رو خواهید شد.
راهحل این موضوع، نرمافزار مدیریت ماشین مجازی است که به شما امکان بررسی تغییرات در تنظیمات گذشته و اعمال تغییرات مورد نظر خود را در اختیارتان قرار خواهد داد.
نرمافزار مدیریت ماشین مجازی به شما کمک میکند تا تغییرات اعمال شده در تنظیمات را بررسی کنید، تغییراتی را که موجب بروز اختلال و داون شدن سرور میشود، حل کنید و تاریخچه تغییرات در تمام طول زمان را مشاهده کنید.
- به دلیل اینکه ماشینهای مجازی به صورت مداوم در حال گسترش و تنظیم هستند، سرویسهای جدید به سایر ماشینهای مجازی واقع در یک گروه مشترک از امنیت، وابسته خواهند بود. یک اپلیکیشن اشتباه میتواند منجر به عملکرد اشتباه در این وابستگیهای آنها شود. این وابستگیهای پیچیده موجب بروز مشکل در بر طرف کردن مشکلات خواهد شد.
هر چند نرمافزار مدیریت ماشین مجازی این امکان را به شما میدهد تا این وابستگیهای ماشین مجازی خود را به کمک نقشهها و گرافیکها به وضوح مشاهده کنید.
نرمافزار مدیریت وابستگی، دید واضحی از ارتباط سرویسهای گوناگون در یک فضای مجازی را در اختیار شما قرار میدهد.
از طریق رابط کاربری قابل درک، میتوانید ارتباط بهتری با ماشین مجازی خود، دسته اپلیکیشنها، متریکهای ظرفیت و سایر موارد برقرار کنید.
بدون دیدگاه