Virtualization چیست؟ قابلیتی است که شما را قادر میسازد تا Hyper-V را در یک ماشین مجازیِ Hyper-V (VM) اجرا کنید. در طی سالیان سختافزارها بهبود یافته و موارد استفاده برای مجازیسازی تودرتو گسترش یافته است. به عنوان مثال، مجازیسازی تودرتو میتواند برای موارد زیر مفید باشد:
- اجرای برنامهها یا emulators در یک ماشین Nested Virtualization
- تست نرمافزارهای منتشر شده روی ماشینهای مجازی
- کاهش زمانِ استقرار برای محیطهای آموزشی
Nested Virtualization چیست؟ نحوه استفاده از جداسازیِ Hyper-V برای کانتینرها
پردازندههای مدرن دارای ویژگیهای سختافزاریای هستند که مجازیسازی را سریعتر و ایمنتر میکند. Hyper-V برای اجرای ماشینهای مجازی، مانند Intel VT-x و AMD-V، به این افزونههای پردازنده متکی است. مجازیسازی تودرتو این پشتیبانی سختافزاری را در اختیار ماشینهای مجازی مهمان قرار میدهد.
بیشتر بخوانید: مجازی سازی (Virtualization) چیست؟ – قسمت اول
نمودار زیر Hyper-V را بدون Nesting نشان میدهدHyper-V کنترل کامل قابلیتهای مجازیسازی سخت افزاری (فلش نارنجی) را به عهده میگیرد و آنها را به سیستم عامل مهمان نشان نمیدهد.
نمودار سطوح Hyper V با غیرفعال سازی مجازیسازی Nesting
در مقابل، نمودار زیر Hyper-V را با فعال بودن Nested Virtualization نشان میدهد. در این مورد، Hyper-V پسوندهای مجازیسازی سختافزار را در معرض ماشین های مجازی خود قرار میدهد. با فعال بودن Nesting، یک ماشین مجازی مهمان میتواند مانیتور ماشین مجازی خود را نصب کرده و VM های مهمان خود را اجرا کند.
تغییر اندازهی حافظهی پویا و زمان اجرا
هنگامی که Hyper-V در داخل یک ماشینِ مجازی در حال اجرا است، ماشین مجازی باید خاموش شود تا حافظهی آن تنظیم شود. این، بدان معنی است که حتی اگر حافظهی پویا فعال باشد، مقدار حافظه نوسان نمیکند. صرفاً فعال کردن مجازیسازی Nesting هیچ تأثیری بر حافظهی پویا یا تغییر اندازه حافظه زمان اجرا ندارد.
در ماشینهای مجازیای حافظهی پویای فعال ندارند، تلاش برای تنظیم مقدار حافظه در حین اجرا با شکست مواجه میشود. این ناسازگاری تنها زمانی رخ میدهد که Hyper-V در VM در حال اجرا است.
نمودار سطوح Hyper V با غیرفعال سازی مجازیسازی Nesting
برنامههای مجازیسازی شخص ثالث در Nested Virtualization چیست؟
برنامههای مجازیسازیای به غیر از Hyper-V در ماشینهای مجازی Hyper-V پشتیبانی نمیشوند و احتمالاً با شکست مواجه خواهند شد. برنامهی مجازیسازی شامل هر نرمافزاری است که به افزونههای مجازیسازی سختافزاری نیاز دارد.
سناریوهای پشتیبانیشده
استفاده از یک Nested Hyper-V VMدر تولید، هم برای Azure و هم به صورت در محل یا on-premise در سناریوهای زیر پشتیبانی میشود.
بیشتر بخوانید: بررسی مزایای نرمافزار VMware و نحوه نصب ابزارهای آن
Nested Virtualization برای Clustering خطای سرور ویندوز و برنامههای حساس به عملکرد مناسب نیست. توصیه میکنیم خدمات و برنامههای کاربردی را به طور کامل ارزیابی کنید.
اجرای ماشینهای مجازیNested Virtualization روی ماشینهای مجازی Hyper-V برای آزمایشگاههای تست و محیطهای ارزیابی عالی است؛ به خصوص در جایی که میتوان پیکربندیها را به راحتی تغییر داد و از حالتهای ذخیرهشده برای بازگشت به تنظیمات خاص استفاده کرد. آزمایشگاههای تست معمولاً به مواقفتنامهی سطح خدمات SLA مانند محیطهای تولید نیاز ندارند.
محیطهای تولیدی، که ماشینهای مجازی Hyper-V در حالِ اجرا روی ماشینهای مجازی Hyper-V هستند، پشتیبانی میشوند. با این حال، توصیه میشود که اطمینان حاصل کنید که خدمات و برنامههای شما نیز پشتیبانی میشوند. Nested Virtualization چیست؟ اگر شما از Nested Virtualizationدر تولید استفاده میکنید، توصیه میشود به طور کامل ارزیابی کنید که آیا سرویسها یا برنامهها رفتار مورد انتظار را ارائه میدهند یا خیر.
مجازیسازی شخص ثالث در مجازیسازی Hyper-V
در حالی که ممکن است مجازیسازی شخص ثالث در Hyper-V اجرا شود، مایکروسافت این سناریو را آزمایش نمیکند. مجازیسازی شخص ثالث در مجازیسازی Hyper-V پشتیبانی نمیشود؛ اطمینان حاصل کنید که وندور مانیتور ماشین مجازی شما از این سناریو پشتیبانی میکند.
مجازیسازی Hyper-V در مجازیسازی شخص ثالث
در حالی که ممکن است مجازیسازی Hyper-V روی مجازیسازی شخص ثالث اجرا شود، مایکروسافت این سناریو را آزمایش نمیکند. مجازیسازی Hyper-V در مجازیسازی شخص ثالث پشتیبانی نمیشود، اطمینان حاصل کنید که وندور مانیتور ماشین مجازی شما از این سناریو پشتیبانی میکند.
Azure Stack HCI به صورت تو در تو در ماشینهای مجازی Hyper-V
Azure Stack HCI برای اجرا بر روی سختافزار فیزیکی معتبر طراحی و آزمایش شده است. Azure Stack HCI میتواند به صورت Nesting در یک ماشین مجازی برای ارزیابی اجرا شود، اما محیطهای تولید در پیکربندی تودرتو پشتیبانی نمیشوند.
کانتینرهای ایزوله Hyper-V که روی Nested Virtualization قرار دارند
مایکروسافت، ایزوله Hyper-V را برای کانتینرها ارائه میدهد. این حالت ایزوله امنیت افزایشِ یافته و سازگاری گستردهتری را بین نسخه میزبان و کانتینر ارائه میدهد. با جداسازی Hyper-V، چندین نمونه کانتینر به طور همزمان روی یک میزبان اجرا میشوند. هر کانتینر در داخل یک ماشینِ مجازی بهینهشده اجرا میشود و به طور موثر هستهی خود را دریافت میکند. از آنجایی که یک کانتینر ایزوله Hyper-V ایزولهسازی را از طریق یک لایه Hypervisor بین خود و میزبان کانتینر ارائه میدهد، وقتی میزبان کانتینر یک ماشینِ مجازی مبتنی بر Hyper-V باشد، هزینهی اضافی عملکرد وجود دارد. هزینههای مربوط به عملکرد، از نظر زمانِ راهاندازی کانتینر، ذخیرهسازی، شبکه و عملیات CPU رخ میدهد.
هنگامی که یک کانتینرِ ایزوله Hyper-V در یک ماشین مجازی Hyper-V اجرا میشود، در واقع به صورت Nested Virtualization در حال اجرا است. استفاده از ماشین مجازیHyper-V بسیاری از سناریوهای مفید را باز میکند، اما همچنین، تأخیر را نیز افزایش میدهد، چراکه دو سطحِ مانیتور ماشین مجازی hypervisor در بالای میزبان فیزیکی وجود دارد.
اجرای کانتینرهای ایزولهی Hyper-V تو در تو در Hyper-V پشتیبانی میشود.
اجرای WSL2 در یک ماشینِ مجازی Hyper-V که در حال اجرا روی Hyper-V است.
Windows Subsystem for Linuxیا WSLیکی از ویژگیهای سیستم عامل ویندوز است که شما را قادر میسازد تا یک سیستم فایل لینوکس را به همراه ابزارهای خط فرمان لینوکس و برنامههای رابط کاربری گرافیکی مستقیماً روی ویندوز اجرا کنید.