Noch einmal zur Live-Migration: So migrieren Sie virtuelle Hyper-V-Maschinen schneller

     " Wenn Sie Hyper-V lieben - Liebe und PowerShell"

     Die erste Regel der Hyper-V-Community in Telegramm  



     "Und wenn Sie VMware ESXi lieben, dann lieben Sie PowerShell zusammen mit ESXi CLI und REST API"

     HinzugefĂŒgt von mir



Live-Migration ist eine beliebte Funktion in Hyper -V. Sie können laufende virtuelle Maschinen ohne sichtbare Ausfallzeiten migrieren. Es gibt viele Anweisungen zum Online-Migrieren von VMs, aber viele davon sind veraltet. DarĂŒber hinaus prĂŒft nicht jeder die erweiterten Einstellungen und nutzt die Live-Migrationsfunktionen. 



Ich habe Nuancen und nicht offensichtliche Parameter fĂŒr die schnelle Übertragung von VMs innerhalb eines Clusters und zwischen Clustern gesammelt. Gleichzeitig werde ich kleine Geheimnisse beim Einrichten und Entwerfen teilen. Ich hoffe, dieser Artikel ist nĂŒtzlich fĂŒr AnfĂ€nger.  



Haftungsausschluss : Es wird empfohlen, alle beschriebenen Schritte auszufĂŒhren, bevor Sie den Hyper-V-Server in prod eingeben. Hyper-V vergibt niemals Designfehler und wird Sie bei der ersten Gelegenheit im Stich lassen. Das heißt, schon am nĂ€chsten Tag.


Erinnere dich an das Material



Wie ĂŒblich erfolgt die VM-Migration von einem Knoten zu einem anderen innerhalb eines Hyper-V-Clusters:



  1. Die VM-Konfiguration wird von einem Clusterknoten auf einen anderen kopiert. 
  2. Die Speicherseiten der virtuellen Maschine werden zum Kopieren auf den Zielhost markiert, und der Vorgang zum Online-Verschieben beginnt.
  3. , . Hyper-V . , .





    .
  4. , , . . , .


Dies wird als Live-Migration bezeichnet. Das Schema gilt fĂŒr jeden Hypervisor.



Je mehr RAM eine VM hat und je intensiver sie sich Àndert, desto lÀnger dauert das Verschieben. Live-Migrationsverkehr erfordert daher einen guten Kanal und eine sorgfÀltige Konfiguration.

So funktioniert die klassische Live-Migration im Failover-Cluster. Es ist ein freigegebenes CSV-Volume erforderlich, das allen Hosts im Cluster bereitgestellt wird.

 

DarĂŒber hinaus gibt es eine zweite Art der Live-Migration, die Live-Migration im "Nichts" (die fĂŒr nichts freigegebene Live-Migration). Dieses Szenario wird normalerweise verwendet, um VMs ohne Ausfallzeiten zwischen Clustern zu migrieren. ZusĂ€tzlich zu den Speicherseiten von einem Hyper-V-Host auf einen anderen wird die VHD (X) -Diskette mit der Übertragung und Synchronisation des Deltas der darauf geschriebenen Daten kopiert. 


Lassen Sie uns die Hauptnuancen der Konfiguration von Schnittstellen analysieren.



Festlegen der Protokolleinstellungen



  1. Gehen wir zunĂ€chst zum Hyper-V-Manager und klicken Sie mit der rechten Maustaste auf die Hyper-V-Einstellungen. In den Einstellungen fĂŒr die Live-Migration geben wir die Adressen der Netzwerkschnittstellen an, auf die der Hypervisor zugreifen wird: 





  2. Werfen wir einen Blick auf die erweiterten Funktionen. Wir interessieren uns fĂŒr beide Punkte: das Authentifizierungsprotokoll und den Transport, den unsere VMs verwenden.

    • Authentifizierungsprotokoll : CredSSP - Das Credential Security Support Provider-Protokoll ist standardmĂ€ĂŸig installiert. Es ist einfach zu bedienen, aber wenn die Infrastruktur mehrere Cluster enthĂ€lt, können wir keine VMs zwischen Clustern ĂŒbertragen. 



      Wir werden Kerberos als sicherer und geeigneter fĂŒr das Verschieben von VMs zwischen verschiedenen Clustern auswĂ€hlen.

    • 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:







Die Hyper-V-Netzwerkoptimierung ist ein sehr kontroverses Thema in der Community und ein unbegrenztes Experimentierfeld (der Perfektion sind per Definition keine Grenzen gesetzt). Bevor Sie Schritt fĂŒr Schritt ein Netzwerk einrichten, sollten Sie herausfinden, wie sich die Technologie in letzter Zeit geĂ€ndert hat und wie Sie sie verwenden können.  



Wie es vorher war . In den alten Hyper-V VM-MigrationshandbĂŒchern werden Szenarien mit der LBFO-Timing-Technologie (Load Balancing / Fail Over) beschrieben. LBFO ermöglichte es, physische Netzwerkadapter zu gruppieren und darĂŒber Schnittstellen zu erstellen. Es gab aber auch Nachteile, zum Beispiel: Es gab keine RDMA-UnterstĂŒtzung, es war unmöglich herauszufinden, ĂŒber welchen Tim-Port der Verkehr gehen wĂŒrde. Und da der Live-Migrationsverkehr einen ziemlich fetten Kanal erfordert, wurde dies zu einem Problem, wenn alle Netzwerk-Workloads in einen physischen Port geplatzt sind. 



Wie jetzt... In Windows Server 2019 können Sie nicht einmal einen virtuellen Switch ĂŒber dem LBFO-Team erstellen. Die einzige unterstĂŒtzte Lösung fĂŒr NIC-Port-Trunking in Hyper-V ist Switch Embedded Team (SET) .  



SET aggregiert Adapter wie ESXi vSwitch. Physische Netzwerkports werden zu einem Patchkabel fĂŒr verschiedene Arten von Datenverkehr (einschließlich fĂŒr VMs), und virtuelle Schnittstellen werden darĂŒber geschnitten. 



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



Microsoft VMware Switch Embedded Team Windows Server 2016. .


In neueren Versionen können Sie mit SET verschiedene virtuelle Schnittstellen fĂŒr verschiedene Workloads ĂŒber einer Gruppe physischer Schnittstellen erstellen. TatsĂ€chlich handelt es sich hierbei um virtuelle Netzwerkadapter der Root-Partition, die wir wie virtuelle Adapter einer VM verwalten können. 



Wie sich dies auf den Einrichtungsprozess auswirkt . In Hyper-V erstellen wir zusĂ€tzlich zur Verwaltungsschnittstelle normalerweise Schnittstellen fĂŒr die Live-Migration und Schnittstellen fĂŒr den Cluster-CSV-Verkehr. Dazu mĂŒssen wir die Anzahl der in SET enthaltenen Netzwerkports kennen - so viele virtuelle Schnittstellen mĂŒssen erstellt werden. Wir berĂŒcksichtigen auch die Position der Netzwerkports auf dem PCI-Bus, die Anzahl der Sockets fĂŒr die nachfolgende Zuordnung von Schnittstellen zu NUMA-Knoten und die Anzahl der physischen Kerne auf jedem Prozessor.



Schauen wir uns den Prozess Schritt fĂŒr Schritt an



  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. 



    Mit denselben Cmdlets können Sie auch die Anzahl der RSS-Warteschlangen festlegen. Ihre Anzahl hĂ€ngt vom jeweiligen Modell der Netzwerkkarte ab. Bevor Sie RSS-Warteschlangen einrichten, mĂŒssen Sie daher die Dokumentation fĂŒr die Netzwerkkarte lesen.


Einrichten der Migration fĂŒr ein Cluster-Szenario 



Auf der Seite des Failoverclusters werden die Einstellungen fĂŒr das Cluster-Timeout zusĂ€tzlich abgeschraubt:



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


  • SameSubnetDelay gibt an, wie oft zu welchem ​​Zeitpunkt Heartbits gesendet werden. StandardmĂ€ĂŸig ist 1 Sekunde eingestellt. 



    Wenn sich die Clusterknoten im selben Netzwerk befinden, ist dies ausreichend. Wenn sie sich in verschiedenen Netzwerken befinden, mĂŒssen Sie CrossSubnetDelay mit denselben Werten konfigurieren .
  • SameSubnetThreshold zeigt an, wie viele Herzbits wir so weit wie möglich ĂŒberspringen können. StandardmĂ€ĂŸig sind dies 5 Herzbits, das Maximum sind 120. Wir werden den optimalen Wert einstellen - 30 Herzbits.



Bei stark belasteten Maschinen ist es wichtig, beide Parameter abzuschrauben. Wenn wir uns nicht treffen, wird eine solche Maschine mit hoher Wahrscheinlichkeit nicht ĂŒberfahren. 



Damit der Live-Migrationsverkehr nur in einem bestimmten Netzwerk verwendet wird, belassen wir in den Failover-Cluster-Einstellungen auch ein separates Netzwerk:











Dies ist die Mindesteinstellung des Gentlemans, damit die Live-Migration in Hyper-V ordnungsgemĂ€ĂŸ funktioniert. 



All Articles