Membuat Windows VM dengan jaringan terakselerasi menggunakan Azure PowerShell

Di tutorial ini, Anda akan mempelajari cara membuat komputer virtual (VM) Windows dengan jaringan terakselerasi.

Catatan

Untuk menggunakan jaringan terakselerasi dengan komputer virtual Linux, baca Membuat VM Linux dengan jaringan terakselerasi.

Jaringan terakselerasi memungkinkan virtualisasi I/O root tunggal (SR-IOV) ke VM, sangat meningkatkan performa jaringannya. Jalur berperforma tinggi ini melewati host dari jalur data, yang mengurangi latensi, jitter, dan pemanfaatan CPU untuk beban kerja jaringan yang paling menuntut pada jenis VM yang didukung. Diagram berikut menggambarkan cara dua VM berkomunikasi dengan dan tanpa jaringan terakselerasi:

Komunikasi antara komputer virtual Azure dengan dan tanpa jaringan terakselerasi

Tanpa jaringan terakselerasi, semua lalu lintas masuk dan keluar jaringan VM harus melintasi host dan pengalih virtual. Pengalih virtual menyediakan semua penegakan kebijakan, seperti grup keamanan jaringan, daftar kontrol akses, isolasi, dan layanan virtual jaringan lainnya pada lalu lintas jaringan.

Catatan

Untuk mempelajari selengkapnya tentang pengalih virtual, Baca Hyper-V Virtual Switch.

Dengan jaringan terakselerasi, lalu lintas jaringan masuk ke antarmuka jaringan VM (NIC), kemudian diteruskan ke VM. Semua kebijakan jaringan yang diterapkan pengalih virtual kini dilepas dan diterapkan di perangkat keras. Karena kebijakan diterapkan di perangkat keras, NIC dapat meneruskan lalu lintas jaringan langsung ke VM. NIC melewati host dan pengalih virtual, sembari mempertahankan semua kebijakan yang diterapkannya di host.

Manfaat jaringan terakselerasi hanya berlaku untuk VM tempatnya diaktifkan. Untuk hasil terbaik, aktifkan fitur ini setidaknya pada dua VM yang terhubung ke jaringan virtual Azure yang sama. Saat berkomunikasi pada jaringan virtual atau menyambungkan secara lokal, fitur ini memiliki dampak minimal terhadap latensi keseluruhan.

Keuntungan

  • Latensi Lebih Rendah/Paket lebih tinggi per detik (pps) : Tidak menyertakan pengalih virtual dari jalur data akan meniadakan waktu yang dihabiskan paket di host untuk pemrosesan kebijakan. Tindakan ini juga meningkatkan jumlah paket yang dapat diproses di dalam VM.

  • Berkurangnya jitter: Pemrosesan pengalih virtual bergantung pada jumlah kebijakan yang perlu diterapkan. Hal tersebut juga bergantung pada beban kerja CPU yang melakukan pemrosesan. Melepaskan penegakan kebijakan ke perangkat keras akan meniadakan variabilitas tersebut dengan mengirimkan paket langsung ke VM. Pelepasan juga meniadakan komunikasi host-ke-VM, semua gangguan perangkat lunak, dan semua pengalihan konteks.

  • Penurunan penggunaan CPU: Melewatkan pengalih virtual di host akan menurunkan penggunaan CPU untuk memproses lalu lintas jaringan.

Sistem operasi yang didukung

Versi Windows berikut ini didukung:

  • Windows Server 2019 Standard/Datacenter
  • Windows Server 2016 Standard/Datacenter
  • Windows Server 2012 R2 Standard/Datacenter

Pembatasan dan batasan

Instans VM yang didukung

Jaringan Terakselerasi didukung pada sebagian besar instans tujuan umum dan yang dioptimalkan komputasi dengan 2 atau lebih vCPU. Pada instans yang mendukung hyperthreading, Jaringan Terakselerasi didukung pada intans VM dengan 4 atau lebih vCPU.

Dukungan untuk Jaringan Terakselerasi dapat ditemukan dalam dokumentasi ukuran mesin virtual.

Citra kustom

Jika menggunakan citra kustom dan citra Anda mendukung Jaringan Terakselerasi, pastikan Anda memiliki driver yang diperlukan dan dapat digunakan dengan Mellanox ConnectX-3 dan ConnectX-4 Lx NICs di Azure.

Wilayah

Jaringan terakselerasi tersedia di semua wilayah global Azure dan Azure Government Cloud.

Mengaktifkan jaringan terakselerasi pada VM yang berjalan

Ukuran VM yang didukung tanpa jaringan terakselerasi aktif hanya dapat mengaktifkan fitur saat dihentikan dan dibatalkan alokasinya.

Penyebaran melalui Azure Resource Manager

Komputer virtual (klasik) tidak dapat disebarkan dengan jaringan terakselerasi.

Pembuatan VM menggunakan portal

Meskipun artikel ini menyediakan langkah-langkah untuk membuat VM dengan jaringan terakselerasi menggunakan Azure PowerShell, Anda juga dapat menggunakan portal Azure untuk membuat komputer virtual yang memungkinkan jaringan terakselerasi. Saat Anda membuat VM di portal, di halaman Buat komputer virtual, pilih tab Jaringan. Tab ini memiliki opsi untuk Jaringan terakselerasi. Jika Anda sudah memilih sistem operasi yang didukung dan ukuran VM, opsi ini akan secara otomatis diatur ke Aktif. Jika tidak, opsi akan diatur ke Nonaktif, dan Azure menampilkan alasan mengapa opsi tersebut tidak dapat diaktifkan.

Catatan

Hanya sistem operasi yang didukung yang dapat diaktifkan melalui portal. Jika Anda menggunakan citra kustom, dan citra Anda mendukung jaringan terakselerasi, buat VM menggunakan CLI atau PowerShell.

Setelah membuat VM, Anda dapat memastikan apakah jaringan terakselerasi diaktifkan. Ikuti petunjuk berikut:

  1. Buka portal Azure untuk mengelola VM. Cari dan pilih Komputer virtual.

  2. Di daftar komputer virtual, pilih VM baru Anda.

  3. Di bilah menu VM, pilih Jaringan.

Pada informasi antarmuka jaringan, di samping label Jaringan terakselerasi, portal akan menampilkan Nonaktif atau Aktif untuk status jaringan terakselerasi.

Pembuatan VM menggunakan PowerShell

Sebelum melanjutkan, instal Azure PowerShell versi 1.0.0 atau yang lebih baru. Untuk menemukan versi yang saat ini terinstal, jalankan Get-Module -ListAvailable Az. Jika perlu menginstal atau memutakhirkan, instal versi terbaru modul Az dari PowerShell Gallery. Di sesi PowerShell, masuk ke akun Azure menggunakan Connect-AzAccount.

Dalam contoh berikut ini, ganti nama parameter contoh dengan nilai Anda sendiri. Nama parameter contoh mencakup myResourceGroup, myNic, dan myVM.

Membuat jaringan virtual

  1. Buat grup sumber daya dengan New-AzResourceGroup. Perintah berikut membuat grup sumber daya bernama myResourceGroup di lokasi centralus:

    New-AzResourceGroup -Name "myResourceGroup" -Location "centralus"
    
  2. Buat konfigurasi subnet dengan New-AzVirtualNetworkSubnetConfig. Perintah berikut membuat subnet bernama mySubnet:

    $subnet = New-AzVirtualNetworkSubnetConfig `
        -Name "mySubnet" `
        -AddressPrefix "192.168.1.0/24"
    
  3. Buat jaringan virtual dengan New-AzVirtualNetwork, dengan subnet mySubnet.

    $vnet = New-AzVirtualNetwork -ResourceGroupName "myResourceGroup" `
        -Location "centralus" `
        -Name "myVnet" `
        -AddressPrefix "192.168.0.0/16" `
        -Subnet $Subnet
    

Membuat grup keamanan jaringan

  1. Buat aturan grup keamanan jaringan dengan New-AzNetworkSecurityRuleConfig.

    $rdp = New-AzNetworkSecurityRuleConfig `
        -Name 'Allow-RDP-All' `
        -Description 'Allow RDP' `
        -Access Allow `
        -Protocol Tcp `
        -Direction Inbound `
        -Priority 100 `
        -SourceAddressPrefix * `
        -SourcePortRange * `
        -DestinationAddressPrefix * `
        -DestinationPortRange 3389
    
  2. Buat grup keamanan jaringan dengan New-AzNetworkSecurityGroup dan tetapkan aturan keamanan Allow-RDP-All padanya. Selain aturan Allow-RDP-All, grup keamanan jaringan berisi beberapa aturan default. Satu aturan default menonaktifkan semua akses masuk dari internet. Setelah dibuat, aturan Allow-RDP-All ditetapkan ke grup keamanan jaringan sehingga Anda dapat tersambung ke VM dari jarak jauh.

    $nsg = New-AzNetworkSecurityGroup `
        -ResourceGroupName myResourceGroup `
        -Location centralus `
        -Name "myNsg" `
        -SecurityRules $rdp
    
  3. Kaitkan grup keamanan jaringan ke subnet mySubnet dengan Set-AzVirtualNetworkSubnetConfig. Aturan dalam grup keamanan jaringan berlaku untuk semua sumber daya yang disebarkan dalam subnet.

    Set-AzVirtualNetworkSubnetConfig `
        -VirtualNetwork $vnet `
        -Name 'mySubnet' `
        -AddressPrefix "192.168.1.0/24" `
        -NetworkSecurityGroup $nsg
    

Membuat antarmuka jaringan dengan jaringan terakselerasi

  1. Buat alamat IP publik dengan New-AzPublicIpAddress. Alamat IP publik tidak diperlukan jika Anda tidak berencana mengakses VM dari internet. Namun, alamat IP publik diperlukan untuk menyelesaikan langkah-langkah dalam artikel ini.

    $publicIp = New-AzPublicIpAddress `
        -ResourceGroupName myResourceGroup `
        -Name 'myPublicIp' `
        -location centralus `
        -AllocationMethod Dynamic
    
  2. Buat antarmuka jaringan dengan New-AzNetworkInterface dengan jaringan terakselerasi yang diaktifkan, lalu tetapkan alamat IP publik ke antarmuka jaringan. Contoh berikut membuat antarmuka jaringan bernama myNic di subnet mySubnet dari jaringan virtual myVnet, menetapkan alamat IP publik myPublicIp padanya:

    $nic = New-AzNetworkInterface `
        -ResourceGroupName "myResourceGroup" `
        -Name "myNic" `
        -Location "centralus" `
        -SubnetId $vnet.Subnets[0].Id `
        -PublicIpAddressId $publicIp.Id `
        -EnableAcceleratedNetworking
    

Membuat VM dan mengaitkan antarmuka jaringan

  1. Atur kredensial VM Anda ke variabel $cred menggunakan Get-Credential, yang meminta Anda untuk masuk:

    $cred = Get-Credential
    
  2. Tentukan VM dengan New-AzVMConfig. Perintah berikut menentukan VM bernama myVM dengan ukuran VM yang mendukung jaringan terakselerasi (Standard_DS4_v2):

    $vmConfig = New-AzVMConfig -VMName "myVm" -VMSize "Standard_DS4_v2"
    

    Untuk daftar semua ukuran dan karakteristik VM, lihat Ukuran VM Windows.

  3. Buat konfigurasi VM lainnya dengan Set-AzVMOperatingSystem dan Set-AzVMSourceImage. Perintah berikut membuat VM Windows Server 2016:

    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig `
        -Windows `
        -ComputerName "myVM" `
        -Credential $cred `
        -ProvisionVMAgent `
        -EnableAutoUpdate
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig `
        -PublisherName "MicrosoftWindowsServer" `
        -Offer "WindowsServer" `
        -Skus "2016-Datacenter" `
        -Version "latest"
    
  4. Kaitkan antarmuka jaringan yang tadi sudah Anda buat dengan Add-AzVMNetworkInterface:

    $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
    
  5. Buat VM dengan New-AzVM.

    New-AzVM -VM $vmConfig -ResourceGroupName "myResourceGroup" -Location "centralus"
    

Mengonfirmasi apakah pengontrol Ethernet diinstal di VM Windows

Setelah membuat VM di Azure, sambungkan ke VM tersebut dan pastikan bahwa pengontrol Ethernet diinstal di Windows.

  1. Buka portal Azure untuk mengelola VM. Cari dan pilih Komputer virtual.

  2. Di daftar komputer virtual, pilih VM baru Anda.

  3. Di halaman gambaran umum VM, jika Status VM adalah Membuat, tunggu hingga Azure selesai membuat VM. Status akan berubah menjadi Berjalan setelah pembuatan VM selesai.

  4. Dari toolbar gambaran umum VM, pilih Sambungkan > RDP > Unduh file RDP.

  5. Buka file .rdp, lalu masuk ke VM dengan kredensial yang Anda masukkan di bagian Buat VM dan kaitkan antarmuka jaringan. Jika belum pernah menyambungkan ke VM Windows di Azure, baca Menyambungkan ke komputer virtual.

  6. Setelah sesi desktop jarak jauh untuk VM muncul, klik kanan tombol Mulai Windows dan pilih Manajer Perangkat.

  7. Di jendela Manajer Perangkat, perluas node Adaptor jaringan.

  8. Pastikan bahwa Mellanox ConnectX-3 Virtual Function Ethernet Adapter muncul, seperti pada gambar berikut:

    Mellanox ConnectX-3 Virtual Function Ethernet Adapter, adaptor jaringan baru untuk jaringan terakselerasi, Manajer Perangkat

Jaringan terakselerasi sekarang aktif untuk VM Anda.

Catatan

Jika adaptor Mellanox gagal dimulai, buka prompt administrator dalam sesi desktop jarak jauh lalu masukkan perintah berikut:

netsh int tcp set global rss = enabled

Mengaktifkan jaringan terakselerasi pada VM yang ada

Jika sudah membuat VM tanpa jaringan terakselerasi, Anda dapat mengaktifkannya pada VM yang ada. VM harus mendukung jaringan terakselerasi dengan memenuhi prasyarat berikut, yang juga diuraikan di atas:

  • VM harus dalam ukuran yang didukung untuk jaringan terakselerasi.
  • VM harus merupakan citra Azure Gallery yang didukung (dan versi kernel untuk Linux).
  • Semua VM dalam rangkaian ketersediaan atau rangkaian skala komputer virtual harus dihentikan atau dibatalkan alokasinya sebelum Anda mengaktifkan jaringan terakselerasi pada NIC mana pun.

VM individu dan VM dalam rangkaian ketersediaan

  1. Hentikan atau batalkan alokasi VM, atau jika berada dalam rangkaian ketersediaan, semua VM dalam rangkaian:

    Stop-AzVM -ResourceGroup "myResourceGroup" -Name "myVM"
    

    Catatan

    Saat membuat VM secara individu, tanpa rangkaian ketersediaan, Anda hanya perlu menghentikan atau membatalkan alokasi setiap VM untuk mengaktifkan jaringan terakselerasi. Jika VM dibuat dengan rangkaian ketersediaan, Anda harus menghentikan atau membatalkan alokasi semua VM yang ada di rangkaian ketersediaan sebelum mengaktifkan jaringan terakselerasi pada salah satu NIC sehingga VM berakhir pada kluster yang mendukung jaringan terakselerasi. Persyaratan untuk menghentikan atau membatalkan alokasi tidak diperlukan jika Anda menonaktifkan jaringan terakselerasi, karena kluster yang mendukung jaringan terakselerasi juga berfungsi baik dengan NIC yang tidak menggunakan jaringan terakselerasi.

  2. Aktifkan jaringan terakselerasi pada NIC VM:

    $nic = Get-AzNetworkInterface -ResourceGroupName "myResourceGroup" `
        -Name "myNic"
    
    $nic.EnableAcceleratedNetworking = $true
    
    $nic | Set-AzNetworkInterface
    
  3. Mulai ulang VM, atau jika berada dalam rangkaian ketersediaan, semua VM dalam rangkaian tersebut, lalu pastikan bahwa jaringan terakselerasi diaktifkan:

    Start-AzVM -ResourceGroup "myResourceGroup" `
        -Name "myVM"
    

Rangkaian skala komputer virtual

Rangkaian skala komputer virtual sedikit berbeda, tetapi mengikuti alur kerja yang sama.

  1. Hentikan VM:

    Stop-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
  2. Perbarui properti jaringan terakselerasi di bawah antarmuka jaringan:

    $vmss = Get-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    
    $vmss.VirtualMachineProfile.NetworkProfile.NetworkInterfaceConfigurations[0].EnableAcceleratedNetworking = $true
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    
  3. Atur pembaruan yang diterapkan ke otomatis agar segera diberlakukan:

    $vmss.UpgradePolicy.Mode = "Automatic"
    
    Update-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet" `
        -VirtualMachineScaleSet $vmss
    

    Catatan

    Rangkaian skala memiliki pemutakhiran VM yang menerapkan pembaruan menggunakan tiga pengaturan berbeda: otomatis, bergulir, dan manual. Dalam petunjuk ini, kebijakan diatur ke otomatis agar rangkaian skala segera memberlakukan perubahan setelah memulai ulang.

  4. Mulai ulang rangkaian skala:

    Start-AzVmss -ResourceGroupName "myResourceGroup" `
        -VMScaleSetName "myScaleSet"
    

Setelah memulai ulang, tunggu hingga pemutakhiran selesai. Setelah pemutakhiran selesai, fungsi virtual (VF) muncul dalam VM. Pastikan Anda menggunakan OS dan ukuran VM yang didukung.

Mengubah ukuran VM yang ada dengan jaringan terakselerasi

Jika jaringan terakselerasi diaktifkan pada VM, Anda hanya dapat mengubah ukuran VM ke ukuran yang mendukung jaringan terakselerasi.

VM dengan jaringan terakselerasi yang aktif tidak dapat diubah ukurannya menjadi instans VM yang tidak mendukung jaringan terakselerasi melalui operasi pengubahan ukuran. Namun, untuk mengubah ukuran salah satu VM ini:

  1. Hentikan atau batalkan alokasi VM. Untuk rangkaian ketersediaan atau rangkaian skala, hentikan atau batalkan alokasi semua VM dalam rangkaian tersebut.

  2. Nonaktifkan jaringan terakselerasi pada NIC VM. Untuk rangkaian ketersediaan atau rangkaian skala, nonaktifkan jaringan terakselerasi pada NIC semua VM dalam rangkaian tersebut.

  3. Setelah Anda menonaktifkan jaringan terakselerasi, pindahkan VM, rangkaian ketersediaan, atau rangkaian skala yang diatur ke ukuran baru yang tidak mendukung jaringan terakselerasi, lalu mulai ulang.