Ảo hóa lồng nhau là một tính năng cho phép bạn chạy Hyper-V bên trong máy ảo Hyper-V (VM). Điều này rất hữu ích để chạy trình giả lập điện thoại Visual Studio trong máy ảo hoặc thử nghiệm các cấu hình thường yêu cầu một số máy chủ.

Điều kiện tiên quyết

Bộ xử lý Intel với công nghệ VT-x và EPT

  • Máy chủ Hyper-V phải là Windows Server 2016 / Windows 10 trở lên
  • Phiên bản cấu hình VM 8.0 trở lên

Bộ xử lý AMD EPYC / Ryzen trở lên

  • Máy chủ Hyper-V phải là Windows Server 2022 / Windows 11 trở lên
  • Phiên bản cấu hình VM 10.0 trở lên

 Ghi chú

Khách có thể là bất kỳ hệ điều hành khách nào được Windows hỗ trợ. Hệ điều hành Windows mới hơn có thể hỗ trợ các tính năng khai sáng giúp cải thiện hiệu suất.

Định cấu hình ảo hóa lồng nhau

  1. Tạo một máy ảo. Xem các điều kiện tiên quyết ở trên để biết các phiên bản hệ điều hành và máy ảo bắt buộc.
  2. Khi máy ảo ở trạng thái TẮT, hãy chạy lệnh sau trên máy chủ Hyper-V vật lý. Điều này cho phép ảo hóa lồng nhau cho máy ảo.
Set-VMProcessor -VMName  -ExposeVirtualizationExtensions $true
  1. Khởi động máy ảo.
  2. Cài đặt Hyper-V trong máy ảo, giống như cách bạn làm đối với máy chủ vật lý. Để biết thêm thông tin về cách cài đặt Hyper-V, hãy xem Cài đặt Hyper-V .

Tắt ảo hóa lồng nhau

Bạn có thể tắt ảo hóa lồng nhau cho một máy ảo đã dừng bằng lệnh PowerShell sau:

Set-VMProcessor -VMName  -ExposeVirtualizationExtensions $false

Bộ nhớ động và bộ nhớ thời gian chạy thay đổi kích thước

Khi Hyper-V đang chạy bên trong máy ảo, máy ảo phải được tắt để điều chỉnh bộ nhớ của nó. Điều này có nghĩa là ngay cả khi bộ nhớ động được bật, dung lượng bộ nhớ sẽ không dao động. Đối với các máy ảo không được kích hoạt bộ nhớ động, mọi nỗ lực điều chỉnh dung lượng bộ nhớ khi đang bật sẽ không thành công.

Lưu ý rằng chỉ cần bật ảo hóa lồng nhau sẽ không ảnh hưởng đến việc thay đổi kích thước bộ nhớ động hoặc bộ nhớ thời gian chạy. Sự không tương thích chỉ xảy ra khi Hyper-V đang chạy trong máy ảo.

Tùy chọn mạng

Có hai tùy chọn để kết nối mạng với các máy ảo lồng nhau:

  1. Giả mạo địa chỉ MAC
  2. Mạng NAT

Giả mạo địa chỉ MAC

Để các gói mạng được định tuyến qua hai bộ chuyển mạch ảo, giả mạo địa chỉ MAC phải được kích hoạt ở mức (L1) đầu tiên của bộ chuyển mạch ảo. Điều này được hoàn thành bằng lệnh PowerShell sau.

PowerShell
Get-VMNetworkAdapter -VMName  | Set-VMNetworkAdapter -MacAddressSpoofing On

Dịch địa chỉ mạng (NAT)

Tùy chọn thứ hai dựa vào dịch địa chỉ mạng (NAT). Cách tiếp cận này phù hợp nhất cho các trường hợp không thể giả mạo địa chỉ MAC, như trong môi trường đám mây công cộng.

Đầu tiên, một công tắc NAT ảo phải được tạo trong máy ảo chủ (VM "giữa"). Lưu ý rằng địa chỉ IP chỉ là một ví dụ và sẽ khác nhau giữa các môi trường:

PowerShell
New-VMSwitch -Name VmNAT -SwitchType Internal
New-NetNat –Name LocalNAT –InternalIPInterfaceAddressPrefix “192.168.100.0/24

Tiếp theo, chỉ định địa chỉ IP cho bộ điều hợp mạng:

PowerShell
Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24

Mỗi máy ảo lồng nhau phải có địa chỉ IP và cổng được gán cho nó. Lưu ý rằng IP cổng phải trỏ đến bộ điều hợp NAT từ bước trước. Bạn cũng có thể muốn chỉ định một máy chủ DNS:

PowerShell

">Get-NetAdapter "Ethernet" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “Ethernet” address=

Cách hoạt động của ảo hóa lồng nhau

Bộ vi xử lý hiện đại bao gồm các tính năng phần cứng giúp ảo hóa nhanh hơn và an toàn hơn. Hyper-V dựa vào các phần mở rộng của bộ xử lý này để chạy các máy ảo (ví dụ: Intel VT-x và AMD-V). Thông thường, một khi Hyper-V khởi động, nó sẽ ngăn phần mềm khác sử dụng các khả năng của bộ xử lý này. Điều này ngăn các máy ảo khách chạy Hyper-V.

Ảo hóa lồng nhau giúp hỗ trợ phần cứng này khả dụng cho các máy ảo khách.

Sơ đồ dưới đây cho thấy Hyper-V không có lồng. Trình siêu giám sát Hyper-V có toàn quyền kiểm soát các khả năng ảo hóa phần cứng (mũi tên màu cam) và không hiển thị chúng với hệ điều hành khách.

Ngược lại, sơ đồ dưới đây cho thấy Hyper-V đã bật ảo hóa lồng nhau. Trong trường hợp này, Hyper-V để lộ các phần mở rộng ảo hóa phần cứng cho các máy ảo của nó. Với việc kích hoạt tính năng lồng nhau, một máy ảo khách có thể cài đặt hypervisor của riêng nó và chạy các máy ảo khách của riêng nó.

Ứng dụng ảo hóa của bên thứ 3

Các ứng dụng ảo hóa khác ngoài Hyper-V không được hỗ trợ trong máy ảo Hyper-V và có khả năng bị lỗi. Điều này bao gồm bất kỳ phần mềm nào yêu cầu phần mở rộng ảo hóa phần cứng.