Migrasi langsung lagi: cara memigrasi mesin virtual Hyper-V, tetapi lebih cepat

     " Jika Anda menyukai Hyper-V - cinta dan PowerShell"

     Aturan pertama Komunitas Hyper-V di Telegram  



     "Dan jika Anda menyukai VMware ESXi, maka cinta PowerShell bersama dengan ESXi CLI dan REST API"

     Ditambahkan oleh saya



Migrasi langsung adalah fitur populer di Hyper -V. Ini memungkinkan Anda untuk bermigrasi menjalankan mesin virtual tanpa waktu henti yang terlihat. Ada banyak petunjuk tentang cara memigrasi VM secara online, tetapi banyak di antaranya yang sudah usang. Selain itu, tidak semua orang melihat ke pengaturan lanjutan dan memanfaatkan fitur Migrasi Langsung dengan baik. 



Saya telah mengumpulkan nuansa dan parameter yang tidak jelas untuk transfer cepat VM dalam sebuah cluster dan antar cluster. Pada saat yang sama saya akan berbagi rahasia kecil dalam menyiapkan dan mendesain. Semoga artikel ini bermanfaat bagi admin pemula.  



Penafian : Dianjurkan untuk melakukan semua langkah yang dijelaskan SEBELUM memasuki server Hyper-V ke prod. Hyper-V tidak pernah memaafkan kesalahan desain dan akan mengecewakan Anda pada kesempatan pertama. Artinya, keesokan harinya.


Ingat materielnya



Seperti biasa, migrasi VM dari satu node ke node lainnya terjadi dalam cluster Hyper-V:



  1. Konfigurasi VM disalin dari satu node cluster ke yang lain. 
  2. Halaman memori mesin virtual ditandai untuk disalin ke host target, dan proses memindahkannya ke internet dimulai.
  3. , . Hyper-V . , .





    .
  4. , , . . , .


Ini disebut migrasi langsung. Skema ini berlaku untuk hypervisor apa pun .



Semakin banyak RAM yang dimiliki VM dan semakin intensif perubahannya, semakin lama waktu yang dibutuhkan untuk berpindah. Oleh karena itu, lalu lintas migrasi langsung membutuhkan saluran yang baik dan konfigurasi yang cermat.

Beginilah cara kerja migrasi langsung klasik di dalam Failover Cluster. Ini membutuhkan volume CSV bersama yang disajikan ke semua host di cluster.

 

Selain itu ada tipe kedua Migrasi Langsung, migrasi langsung di "nothing» (Migrasi Live Shared-for Nothing). Skenario ini biasanya digunakan untuk memigrasi VM tanpa waktu henti antar cluster. Selain halaman memori dari satu host Hyper-V ke host lain, disk VHD (X) disalin dengan transfer dan sinkronisasi delta data yang ditulis padanya. 


Mari menganalisis nuansa utama konfigurasi antarmuka.



Mengatur pengaturan protokol



  1. Pertama, buka manajer Hyper-V dan klik kanan pengaturan Hyper-V. Dalam pengaturan Migrasi Langsung, kami akan menentukan alamat antarmuka jaringan yang akan diakses oleh hypervisor: 





  2. Mari kita lihat fitur lanjutan. Kami tertarik pada kedua poin: protokol otentikasi dan transportasi yang digunakan VM kami.

    • Protokol otentikasi : CredSSP - Protokol Penyedia Dukungan Keamanan Kredensial diinstal secara default. Ini mudah digunakan, tetapi jika ada beberapa cluster dalam infrastruktur, kami tidak dapat mentransfer VM antar cluster. 



      Kami akan memilih Kerberos karena lebih aman dan cocok untuk memindahkan VM di antara cluster yang berbeda.

    • Performance options: . Switch Embedded Team SMB (Server Message Block). 



      Windows Server 2016. SMB (SMB Multi-channel). RDMA – . . 







  3. Kerberos , (Kerberos Constrained Delegation) Computer Active Directory. 



    Windows Server 2016, NETWORK SERVICE, AD. (Unconstrained Delegation), , :







    System Center Virtual Machine Manager (SC VMM), . SC VMM Shared-Nothing Live Migration.
  4. SMB . , Live Migration SMB:



    Set-SmbServerConfiguration -EncryptData $false -RejectUnencryptedAccess $false


    . . 



    Windows Admin Center:







Optimalisasi jaringan Hyper-V adalah topik yang sangat kontroversial di komunitas dan bidang eksperimen yang tidak terbatas (tidak ada batasan untuk kesempurnaan menurut definisi). Jadi sebelum menyiapkan jaringan selangkah demi selangkah, mari kita cari tahu bagaimana teknologi telah berubah baru-baru ini dan bagaimana Anda dapat menggunakannya.  



Seperti sebelumnya . Panduan migrasi Hyper-V VM lama menjelaskan skenario menggunakan teknologi pengaturan waktu Load Balancing / Fail Over (LBFO). LBFO memungkinkan untuk mengelompokkan adaptor jaringan fisik dan membuat antarmuka di atasnya. Tetapi ada juga kerugian, misalnya: tidak ada dukungan RDMA, tidak mungkin untuk mengetahui melalui port Tim mana lalu lintas akan dilalui. Dan karena lalu lintas migrasi langsung membutuhkan saluran yang agak gemuk, ini berubah menjadi masalah ketika semua beban kerja jaringan masuk ke satu port fisik. 



Seperti sekarang... Di Windows Server 2019, Anda bahkan tidak dapat membuat tombol virtual di atas Tim LBFO. Satu-satunya solusi yang didukung untuk port trunking NIC di Hyper-V adalah Switch Embedded Team (SET) .  



SET menggabungkan adaptor, seperti ESXi vSwitch. Port jaringan fisik menjadi kabel patch untuk berbagai jenis lalu lintas (termasuk untuk VM), dan antarmuka virtual dipotong di atasnya. 



, . , 2 , 3 ( ). - ESX (1+). Red Hat c . VMware vSphere 4.1 1 (bare-metal). 



Microsoft VMware Switch Embedded Team Windows Server 2016. .


Dalam versi yang lebih baru, SET memungkinkan Anda membuat antarmuka virtual yang berbeda untuk beban kerja yang berbeda di atas sekelompok antarmuka fisik. Faktanya, ini adalah adaptor jaringan virtual dari partisi root yang dapat kita kelola seperti adaptor virtual VM. 



Bagaimana hal ini memengaruhi proses penyiapan . Di Hyper-V, selain antarmuka manajemen, kami biasanya membuat antarmuka untuk migrasi langsung dan antarmuka untuk lalu lintas CSV cluster. Untuk melakukan ini, kita perlu mengetahui jumlah port jaringan yang termasuk dalam SET - ini adalah berapa banyak antarmuka virtual yang perlu dibuat. Kami juga mempertimbangkan lokasi port jaringan pada bus PCI, jumlah soket untuk pemetaan antarmuka berikutnya ke node NUMA, dan jumlah inti fisik pada setiap prosesor.



Mari kita lihat prosesnya selangkah demi selangkah



  1. , . , on-board .









    VLAN ID



    Management



    192.168.1.0/24

    192.168.1.1

    0 (Native)

    1

    LiveMigration



    192.168.2.0/24

    2

    2

    CSV

    CSV-

    192.168.3.0/24

    3

    2

  2. SET Virtual Switch VMM (Virtual Machine Manager). VMM ,   PowerShell Hyper-V: 



    New-VMSwitch -Name "SET" –NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $True -AllowManagementOS $true -MinimumBandwidthMode Weight


    -. MinimumBandwidthMode weight, SET . . Network QoS Policies ( ). 



    SET RDMA-, MinimumBandwidthMode . , Network QoS Policies RDMA .

  3. Dynamic Hyper-V Port ( Windows Server 2019). Dynamic Address Hash Hyper-V Port , : 



    Set-VMSwitchTeam "SET" -LoadBalancingAlgorithm Dynamic


    , SET SC VM Host Default. Windows Server 2016 Dynamic. Windows Server 2019 Hyper-V Port, .

  4. , IP- . 



    «» CSV- : 



    #     Live Migration
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "LiveMigration02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "LiveMigration*" -VlanId 2 -Access
    
    # IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration01)" -IPAddress 192.168.2.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (LiveMigration02)" -IPAddress 192.168.2.3 -PrefixLength 24 -Confirm:$false
    
    #     CSV-
    Add-VMNetworkAdapter –ManagementOS –Name "CSV01" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    Add-VMNetworkAdapter –ManagementOS –Name "CSV02" –SwitchName MGMT-Switch -NumaAwarePlacement $true
    
    #  VLAN
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName "CSV*" -VlanId 3 -Access
    
    #  IP-  
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV01)" -IPAddress 192.168.3.2 -PrefixLength 24 -Confirm:$false
    New-NetIPAddress –InterfaceAlias "vEthernet (CSV02)" -IPAddress 192.168.3.3 -PrefixLength 24 -Confirm:$false
  5. . , Jumbo Frames 9K , Management. 



    : .  



    Set-NetAdapterAdvancedProperty -Name "NIC1" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "NIC2" -DisplayName "Jumbo Packet" -DisplayValue 9014
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (CSV02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration01)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"
    Set-NetAdapterAdvancedProperty -Name "vEthernet (LiveMigration02)" -DisplayName "Jumbo Packet" -DisplayValue "9014 Bytes"


    , Windows Server, . , Windows. SET Management’. Get-NetAdapterAdvancedProperties.

  6. , :







    CSV-. :



    Set-NetIPInterface -InterfaceIndex 16 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 3 -InterfaceMetric 10000
    Set-NetIPInterface -InterfaceIndex 9 -InterfaceMetric 10500
    Set-NetIPInterface -InterfaceIndex 6 -InterfaceMetric 10500
    


    , .
  7. RDMA, . RDMA CPU. RDMA Get-NetAdapterRdma.





    : . statemigration.com.



    RDMA (, , ).
  8. PCI-. Virtual Machine Queues (VMQ). 



    , , .  



    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "LiveMigration01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "LiveMigration02"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC1" -VMNetworkAdapterName "CSV01"
    Set-VMNetworkAdapterTeamMapping -ManagementOS -PhysicalNetAdapterName "NIC2" -VMNetworkAdapterName "CSV02"
  9. VMQ PCI-. , . : -, , -, 3 . . (SMB)! , RSS. 



    Windows Server 2019 VMQ , dVMMQ. , 90%. Windows Server 2019 VMQ . 



    :



    Set-NetAdapterRss -Name "NIC1" -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessors 8 -MaxProcessorNumber 16
    Set-NetAdapterRss -Name "NIC2" -BaseProcessorGroup 0 -BaseProcessorNumber 16 -MaxProcessors 8 -MaxProcessorNumber 30


    , . , 2 16 . 32 . Excel 0 31:







    Base Processor Number 2. . 16 – MaxProcessorNumber.



    BaseProcessor 16 ( ). . , Live Migration. 



    Dengan menggunakan cmdlet yang sama, Anda juga dapat mengatur jumlah Antrean RSS. Jumlahnya tergantung pada model spesifik kartu jaringan, jadi sebelum menyiapkan Antrean RSS, Anda perlu mempelajari dokumentasi untuk kartu jaringan tersebut.


Menyiapkan migrasi untuk skenario berkerumun 



Di sisi Failover Cluster, kami juga akan membuka pengaturan batas waktu cluster:



(Get-Cluster).SameSubnetDelay = 2000
(Get-Cluster).SameSubnetThreshold = 30


  • SameSubnetDelay menunjukkan berapa kali kami mengirim heartbits pada jam berapa. Secara default, ini diatur ke 1 detik. 



    Jika node cluster berada di jaringan yang sama, ini sudah cukup. Jika mereka berada di jaringan yang berbeda, maka Anda perlu mengkonfigurasi CrossSubnetDelay dengan nilai yang sama.
  • SameSubnetThreshold menunjukkan berapa banyak heartbits yang dapat kita lewati sebanyak mungkin. Secara default, ini adalah 5 heartbits, maksimum 120. Kami akan menetapkan nilai optimal - 30 heartbits.



Untuk mesin dengan beban tinggi, penting untuk melepaskan kedua parameter tersebut. Jika kita tidak bertemu, maka dengan kemungkinan besar mesin seperti itu tidak akan berjalan. 



Untuk memastikan bahwa lalu lintas migrasi langsung hanya digunakan di jaringan tertentu, kami juga akan meninggalkan jaringan terpisah di pengaturan Klaster Failover:











Sebenarnya, ini adalah set pengaturan pria minimum untuk Migrasi Langsung agar berfungsi dengan benar di Hyper-V. 



All Articles