در جواب این سوال که اصطلاح هایپروایزر hypervisor چیست؟ باید گفت هایپروایزر نرم افزاری است که می توانید از آن برای اجرای چندین ماشین مجازی بر روی یک ماشین فیزیکی استفاده کنید. هر ماشین مجازی سیستم عامل و برنامه های کاربردی خاص خود را دارد. Hypervisor منابع محاسباتی فیزیکی زیربنایی مانند CPU و حافظه را در صورت نیاز به ماشین های مجازی اختصاص می دهد. بنابراین، استفاده بهینه از زیرساخت فیزیکی IT را پشتیبانی می کند.
سختافزارهای فیزیکی، هنگامی که به عنوان هایپروایزر (Hypervisor) استفاده میشوند، به عنوان میزبان شناخته میشوند. به همین دلیل، بسیاری از سرورهای مجازی که از منابع این میزبان استفاده میکنند، به عنوان مهمان شناخته میشوند.
هایپروایزر (Hypervisor) منابعی همچون پردازنده (CPU)، حافظه RAM، و فضای ذخیرهسازی (storage) را به عنوان یک استخر مشترک مدیریت میکند که به راحتی میتواند به ماشینهای مجازی فعلی یا حتی ماشینهای مجازی جدید اختصاص یابد. اطلاعات بیشتر درباره ذخیرهسازی ابری را میتوانید از این مقاله(لینک) مطالعه کنید.
هایپروایزر چگونه کار میکند؟
تمامی هایپروایزرها برای اجرای ماشینهای مجازی به برخی از اجزا در سطح سیستم عامل نیاز دارند، از جمله مدیر حافظه، برنامهریز پروسه و فرایند، استک ورودی/خروجی (I/O stack)، درایورهای دستگاه، مدیر امنیت، استک شبکه و سایر موارد مشابه. هایپروایزر (Hypervisor) منابع مختص به هر ماشین مجازی را اختصاص میدهد و برنامهریزی منابع ماشین مجازی را در برابر منابع فیزیکی مدیریت میکند.

در حالی که هایپروایزر (Hypervisor) برنامهها را مدیریت میکند، سختافزار فیزیکی فرآیند اجرا را انجام میدهد. بنابراین، CPU دستورالعملهای CPU را طبق درخواست ماشین مجازی (VM) اجرا میکند. این به این معناست که چندین سیستم عامل مختلف میتوانند همزمان در کنار یکدیگر اجرا شده و منابع سختافزاری مجازیشده را با یک هایپروایزر به اشتراک بگذارند. این مزیت اصلی مجازیسازی است. بدون مجازیسازی، شما تنها میتوانید یک سیستم عامل را همزمان روی سختافزار اجرا کنید.
چرا از هایپروایزر استفاده کنیم؟
یکی از دلایل اصلی استفاده از هایپروایزرها این است که این ابزارها امکان استفاده بهینه از منابع موجود سیستم را فراهم میکنند و تحرک فناوری اطلاعات را افزایش میدهند، زیرا ماشینهای مجازی مهمان مستقل از سختافزار میزبان هستند. این به این معناست که آنها میتوانند به راحتی بین سرورهای مختلف جابجا شوند.
وظیفه هایپروایزر چیست؟
در واقع، همانطور که تاکنون مطالعه کردید، هایپروایزر یک واسطه است که در میان دو لایه (سختافزار و سیستم عامل) قرار میگیرد. این واسطه میتواند به صورت نرمافزاری، Firmware یا سختافزاری عمل کند. یک نکته مهم این است که هایپروایزر وظیفهٔ قرار دادن وظایف و قابلیتهای لایههای پایینتر در اختیار لایههای بالاتر را دارد. این فرآیند باید به نحوی انجام شود که لایههای بالاتر از تغییرات و مکانیزمهای لایههای زیرین بیاطلاع باشند. به عبارت دیگر، هایپروایزر وظیفهٔ انتزاع و استقلال را به عهده دارد.
انواع هایپروایزر
فناوری Hypervisor که توسط IBM در دهه 1960 برای امکان پارتیشن بندی و استفاده کارآمدتر از منابع در رایانه های اصلی خود توسعه یافت و به عنصری کلیدی از مجازی سازی سخت افزار تبدیل شد که به رایانه های شخصی و سرورها اضافه شد. هایپروایزرها سیستم های لینوکس و یونیکس را قادر می سازند تا قابلیت های سخت افزاری را گسترش دهند، قابلیت اطمینان را بهبود بخشند و هزینه ها را مدیریت کنند. هایپروایزرهای امروزی در دو نوع اصلی موجود هستند.
هایپروایزر نوع 1

هایپروایزر نوع 1 که به آن هایپروایزر فلزی بومی یا لخت نیز گفته می شود، مستقیماً روی سخت افزار میزبان برای مدیریت سیستم عامل های مهمان اجرا می شود. جای یک سیستم عامل میزبان را می گیرد و منابع VM مستقیماً توسط Hypervisor به سخت افزار برنامه ریزی می شوند.
این نوع هایپروایزر بیشتر در یک مرکز داده سازمانی یا سایر محیط های مبتنی بر سرور رایج است.
KVM، Microsoft Hyper-V و VMware vSphere نمونه هایی از هایپروایزر نوع 1 هستند. KVM در سال 2007 در هسته لینوکس ادغام شد، بنابراین اگر از نسخه مدرن لینوکس استفاده می کنید، از قبل به KVM دسترسی دارید.
هایپروایزر نوع 2

هایپروایزر نوع 2 به عنوان هایپروایزر میزبان نیز شناخته می شود و بر روی یک سیستم عامل معمولی به عنوان یک لایه نرم افزاری یا برنامه اجرا می شود.
با انتزاع سیستم عامل مهمان از سیستم عامل میزبان کار می کند. منابع VM در برابر یک سیستم عامل میزبان برنامه ریزی شده است، که سپس در برابر سخت افزار اجرا می شود.
هایپروایزر نوع 2 برای کاربران فردی که می خواهند چندین سیستم عامل را روی یک رایانه شخصی اجرا کنند بهتر است.
VMware Workstation و Oracle VirtualBox نمونه هایی از Hypervisor نوع 2 هستند.
ملاحظات امنیتی هایپروایزر
فرآیند امنیت هایپروایزر شامل اطمینان از ایمن بودن هایپروایزر در طول چرخه عمر خود، از جمله در طول توسعه و پیاده سازی است. اگر مهاجم به هایپروایزر، نرم افزار مدیریت یا نرم افزاری که محیط مجازی را هماهنگ میکند، دسترسی غیرمجاز به دست آورد، آن مهاجم می تواند به طور بالقوه به تمام داده های ذخیره شده در هر VM دسترسی پیدا کند. سایر آسیب پذیری های احتمالی شامل حافظه پنهان سخت افزار مشترک، شبکه و دسترسی بالقوه به سرور فیزیکی است.
ملاحظات امنیتی رایج برای هایپروایزرها عبارتند از:
یک ماشین مجازی (VM) یک محیط ایزوله از بقیه سیستم فراهم میکند، بنابراین هر چیزی که درون یک ماشین مجازی اجرا میشود، با سایر بخشهای سختافزار میزبان تداخل نخواهد داشت.
به دلیل ایزوله بودن VMها، حتی اگر یک VM تخریب شود، احتمالاً کل سیستم تحت تأثیر قرار نخواهد گرفت.
با این حال، اگر خود هایپروایزر هک شود، این موضوع میتواند مشکلاتی برای تمام VMهایی که هایپروایزر مدیریت میکند، ایجاد کند و اطلاعات در هر VM آسیبپذیر خواهد شد.
پروتکلها و نیازهای امنیتی ممکن است بسته به نوع هایپروایزر متغیر باشند.
کانتینرها در مقابل ماشین های مجازی
در سطح بالا، کانتینرها و ماشین های مجازی شبیه به هم به نظر می رسند. آنها هر دو محیط های محاسباتی بسته بندی شده ای هستند که اجزای مختلف فناوری اطلاعات را ترکیب کرده و آنها را از بقیه یک سیستم جدا می کند. تمایز مهم در نحوه مقیاس و قابلیت حمل آنها است.
کانتینر مجموعه ای از 1 یا چند فرایند است که از بقیه سیستم جدا شده اند. ظرف به فرآیند اجازه می دهد تا فقط به درخواست های منبعی که مشخص شده اند دسترسی داشته باشد. این محدودیتهای منابع تضمین میکنند که کانتینر میتواند روی گرهای اجرا شود که ظرفیت کافی دارد.
ماشینهای مجازی دارای سیستم عامل (OS) خود هستند که به آنها اجازه میدهد چندین عملکرد با منابع فشرده را به طور همزمان انجام دهند. افزایش منابع موجود برای ماشین های مجازی به آنها اجازه می دهد کل سرورها، سیستم عامل ها، دسکتاپ ها، پایگاه های داده و شبکه ها را انتزاع، تقسیم، تکرار و شبیه سازی کنند.
هایپروایزرها همچنین به شما امکان می دهد چندین سیستم عامل را در VM ها اجرا کنید، اما کانتینرها فقط قادر به اجرای یک نوع سیستم عامل هستند. به عنوان مثال، کانتینری که روی سرور لینوکس اجرا می شود، فقط می تواند یک سیستم عامل لینوکس را اجرا کند.
کانتینرها گاهی اوقات به عنوان جایگزینی برای هایپروایزر در نظر گرفته می شوند، اگرچه این از دقت کافی برخوردار نیست زیرا کانتینرها و مجازی سازی نیازهای مختلفی را برآورده می کنند.