Windows Server 2016’da Hyper-V Nested Virtualization nasıl kurulur?


Sistem gereksinimleri, network, storage ve memory hususları dahil olmak üzere Hyper-V ortamlarında nested virtualization kullanılması için birkaç önemli husustan bahsedeceğiz.

Windows Server 2016 ile birlikte artık Hyper-V ortamında çalışan sanal makinelerimizde Hyper-V özelliğini aktif hale getirip içlerine sanal makine kurabiliyoruz. İç içe bir sanallaştırma ortamı kurabildiğimiz bu sistem Nested Virtualization olarak adlandırılıyor. Windows Server 2016’da Hyper-V nested virtualization etkinleştirmek oldukça kolaydır. Ancak BT yöneticileri bir üretim ortamında nested virtualization gereklerini ve sınırlamalarını anlamalıdır.

Bir departmanın self servis sağlama yetenekleri gerektirdiğini, ancak organizasyonun gerekli altyapıya sahip olmadığını varsayalım. Sadece bir bölümü barındırmak için özel bir bulut oluşturmak yerine , BT departmanı büyük boyutlu bir VM oluşturabilir. Sanal Makinede nested virtualization’u etkinleştirebilir ve daha sonra departmanın VM’ye erişimini sağlayabilir. Bu, kullanıcıların sanal makinenin sınırları içinde kendi Hyper-V VM’lerini oluşturmalarını sağlar.

Sistem gereksinimleri

Hyper-V nested virtualization’un kullanılabilmesi için iki gereksinim vardır.

İlk olarak, Hyper-V host sunucusu VT-x ve Extended Page Tables destekleyen bir Intel işlemci kullanmalıdır. AMD işlemciler henüz desteklenmiyor. İnternette, AMD işlemcisi üzerinde nested virtualization’un çalıştığını gösteren bazı raporlar var ama Microsoft bunu resmi olarak desteklemiyor.

Diğer gereksinim, root-level Hyper-V hostunun hem de guests’lerin, Windows Server 2016 ya da Windows 10 Anniversary Update veya daha üstü güncellemelerinin yüklenmiş olması gerekir. Ayrıca, VM’nin VM konfigürasyon versiyonu 8.0 veya üstü olmalıdır.

Network

Normalde, bir Hyper-V VM harici bir Hyper-V sanal anahtarıyla fiziksel ağa bağlanır. Ancak bu yaklaşım nested VM’de çalışmaz. Nested bir VM, ağa yalnızca iki yoldan biriyle erişebilir.

Tercih edilen seçenek MAC adres spoofing kullanmaktır. Yöneticiler, fiziksel ağ bağdaştırıcısına bağlanan sanal anahtarda MAC adres spoofing etkinleştirmek için Set-VMNetworkAdapter öğesini kullanmalıdır. Prod ortamında, yöneticiler bu amaç için özel bir ağ bağdaştırıcısı kullanmak isteyebilir.

MAC adres sahteciliğini etkinleştirmek için kullanılan komut şöyledir.

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

Diğer seçenek ağ adresi çevirisi (NAT) kullanmaktır . Ancak, NAT’ı kurmak biraz daha fazla zaman alır ve MAC spoofing kadar iyi performans göstermez. Öyle olsa bile, yöneticinin Hyper-V virtual switch’i değiştirmesine izin verilmediği durumlarda NAT yöntemi gereklidir. Örneğin, yöneticiler Azure’da nested virtualization’u etkinleştirebilir. Ancak bunu yapmak için Microsoft, Hyper-V Hyper-V virtual switch ayarlarını yeniden yapılandırma iznine sahip subscribers sağlamadığı için NAT yöntemini kullanmalıdır.

Storage

Yöneticiler VM nesting’i prod ortamında kullanmayı planlıyorlarsa, depolama performansını da dikkate almalıdırlar.

Nesting araçlarının Hyper-V ve bir dizi VM’yi başka bir VM’nin içine kurduğunu unutmayın. Bu, tüm nested VM’lerin bir virtual sabit disk üzerinde oluşturulacağı anlamına gelir. Bu şekilde depolama paylaşımı performansı önemli ölçüde etkileyebilir.

Depolama performansı sorunlarından kaçınmanın bir yolu, ana sanal makinenin birkaç farklı storage array erişimini sağlamaktır. Böylece nested VM’ler depolamayı paylaşmaz. Sanal Makinelerin tek bir virtual sabit disk içinde bir arada bulunması gerekiyorsa, virtual sabit diskin yüksek performanslı donanıma sahip olduğundan emin olmalısınız.

Memory

Hyper-V nested virtualization ile ilgili olarak memory hakkında bilmesi gereken iki ana şey vardır. İlk olarak, nested VM’ler yalnızca parent VM’ye ayrılan belleği kullanabilir. İkincisi, nested VM’ler dinamik bellek kullanacak şekilde yapılandırılamaz .

Hyper-V nested virtualization’u etkinelştirmek için, Hyper-V nested virtualization’un etkinleştirileceği VM’yi kapatıyoruz. Ardından, Hyper-V host sunucusunda aşağıdaki komutu çalıştırıyoruz.

Set-VMProcessor -VMName <virtual machine name> -ExposeVirtualizationExtensions $True

Şimdi, VM’yi açıp ve Hyper-V’yi kurabilirsiniz.

KAYNAKVİRTUALİZATİON