Aracılığıyla paylaş


"İç İçe Sanallaştırma ile Sanal Makinada Hyper-V'ı Çalıştır"

İç içe sanallaştırma, Hyper-V'ı bir sanal makine içinde çalıştırmanıza olanak tanıyarak, birden fazla fiziksel konak gerektirmeden karmaşık ortamları simüle etmenizi sağlar. Bu makalede, önkoşullar, kurulum adımları ve ağ seçenekleri dahil olmak üzere desteklenen Windows platformlarında iç içe sanallaştırmanın nasıl yapılandırılıp kullanılacağı açıklanmaktadır. Senaryoları test etmek, öykünücü çalıştırmak veya birden çok sanallaştırma katmanı gerektiren çözümler geliştirmek için bu makaleyi kullanın.

İç İçe Sanallaştırma ve desteklenen senaryolar hakkında daha fazla bilgi edinmek için bkz. Hyper-V için İç İçe Sanallaştırma nedir?.

Önkoşullar

VT-x ve EPT teknolojisine sahip Intel işlemci

  • Hyper-V konağı Windows Server 2016 veya üzeri ya da Windows 10 veya üzeri olmalıdır.
  • VM yapılandırma sürümü 8.0 veya üzeri.

AMD EPYC / Ryzen işlemci veya üzeri

  • Hyper-V konağı Windows Server 2022 veya üzeri ya da Windows 11 veya üzeri olmalıdır.
  • VM yapılandırma sürümü 9.3 veya üzeri.

Not

Konuk, Windows tarafından desteklenen herhangi bir konuk işletim sistemi olabilir. Windows'un bazı yeni sürümleri, performansı geliştiren ek CPU özellikleri kullanabilir. Azure VM'de İç İçe Sanallaştırma'yı etkinleştirmek için Güvenlik Türü'nü "Standart"olarak ayarladığınızdan emin olun.

İç İçe Sanallaştırmayı Etkinleştirme

İç içe sanallaştırmayı etkinleştirmek için şu adımları izleyin:

  1. Sanal makine oluşturma. Gerekli işletim sistemi ve VM sürümleri için önkoşullara bakın.

  2. Sanal makine KAPALI durumdayken, fiziksel Hyper-V ana bilgisayarında aşağıdaki komutu çalıştırarak sanal makine için iç içe sanallaştırmayı etkinleştirin.

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true
    
  3. Sanal makineyi başlatın.

  4. Hyper-V fiziksel bir sunucuda olduğu gibi sanal makineye yükleyin. Hyper-V'yi yükleme hakkında daha fazla bilgi için bkz. Hyper-Vyükleme .

Not

Windows Server 2019 ve öncesi ilk düzey VM olarak, vCPU sayısı 225 veya daha az olmalıdır. Sanal makine sınırları hakkında daha fazla bilgi edinmek için bkz. Sanal makineler için maksimum değerler.

İç İçe Sanallaştırmayı Devre Dışı Bırak

Aşağıdaki PowerShell komutunu kullanarak durdurulmuş bir sanal makine için iç içe sanallaştırmayı devre dışı bırakabilirsiniz:

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $false

Ağ seçenekleri

İç içe sanal makinelerle ağ iletişimi için iki seçenek vardır:

  1. MAC adresi sahteciliği
  2. NAT ağı

MAC adresi sahteciliği

Ağ paketlerinin iki sanal anahtar üzerinden yönlendirilebilmesi için, sanal anahtarın ilk (L1) düzeyinde MAC adresi kimlik sahtekarlık özelliğinin etkinleştirilmesi gerekir. MAC adresi kimlik sahtekarlığını etkinleştirmek için aşağıdaki PowerShell komutunu çalıştırın.

Get-VMNetworkAdapter -VMName <VMName> | Set-VMNetworkAdapter -MacAddressSpoofing On

Ağ Adresi Çevirisi (NAT)

İkinci seçenek, ağ adresi çevirisine (NAT) dayanır. Bu yaklaşım, genel bulut ortamında olduğu gibi MAC adresi kimlik sahtekarlığına izin vermenin mümkün olmadığı durumlar için uygundur.

İlk olarak, konak sanal makinesinde ("ortadaki" VM) bir sanal NAT anahtarı oluşturulmalıdır. Aşağıdaki örnek, VmNAT adlı yeni bir iç anahtar oluşturur ve 192.168.100.0/24 alt ağındaki tüm IP adresleri için bir NAT nesnesi oluşturur.

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

Ardından, ağ bağdaştırıcısına bir IP adresi atayın:

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

İç içe yerleştirilmiş her sanal makinenin kendisine atanmış bir IP adresi ve ağ geçidi olmalıdır. Ağ geçidi IP'sinin önceki adımdaki NAT bağdaştırıcısını işaret etmesi gerekir. Bir DNS sunucusu da atamak isteyebilirsiniz:

Get-NetAdapter "vEthernet (VmNat)" | New-NetIPAddress -IPAddress 192.168.100.2 -DefaultGateway 192.168.100.1 -AddressFamily IPv4 -PrefixLength 24
Netsh interface ip add dnsserver “vEthernet (VmNat)” address=<my DNS server>

Sonraki adımlar