Encore une fois sur la migration en direct: comment migrer des machines virtuelles Hyper-V, et plus rapidement

     " Si vous aimez Hyper-V - amour et PowerShell"

     La premiĂšre rĂšgle de la communautĂ© Hyper-V dans Telegram  



     "Et si vous aimez VMware ESXi, alors aimez PowerShell avec ESXi CLI et l'API REST"

     AjoutĂ© par moi



La migration en direct est une fonctionnalitĂ© populaire dans Hyper -V. Il vous permet de migrer des machines virtuelles en cours d'exĂ©cution sans temps d'arrĂȘt visible. Il existe de nombreuses instructions pour transfĂ©rer des VM sur le net, mais beaucoup d'entre elles sont obsolĂštes. De plus, tout le monde ne regarde pas les paramĂštres avancĂ©s et ne fait pas bon usage des fonctionnalitĂ©s de Live Migration. 



J'ai rassemblĂ© les nuances et les paramĂštres non Ă©vidents pour le transfert rapide des VM au sein d'un cluster et entre les clusters. En mĂȘme temps, je partagerai de petits secrets dans la mise en place et la conception. J'espĂšre que cet article sera utile pour les administrateurs novices.  



Clause de non - responsabilité : Il est conseillé de suivre toutes les étapes décrites AVANT d'entrer le serveur Hyper-V dans prod. Hyper-V ne pardonne jamais les erreurs de conception et vous laissera tomber à la premiÚre occasion. Autrement dit, le jour suivant.


Souvenez-vous du matériel



Comme d'habitude, la migration de VM d'un nƓud à un autre a lieu au sein d'un cluster Hyper-V:



  1. La configuration de la machine virtuelle est copiĂ©e d'un nƓud de cluster Ă  un autre. 
  2. Les pages de mĂ©moire de la machine virtuelle sont marquĂ©es pour ĂȘtre copiĂ©es sur l'hĂŽte cible et le processus de mise en ligne commence.
  3. , . Hyper-V . , .





    .
  4. , , . . , .


C'est ce qu'on appelle la migration en direct. Le schéma est valable pour n'importe quel hyperviseur.



Plus une VM possÚde de RAM et plus elle change de maniÚre intensive, plus il faudra de temps pour se déplacer. Par conséquent, le trafic de migration en direct nécessite un bon canal et une configuration minutieuse.

C'est ainsi que fonctionne la migration dynamique classique dans le cluster de basculement. Il nécessite un volume CSV partagé servi à tous les hÎtes du cluster.

 

En outre, il existe un deuxiĂšme type de migration en direct , la migration en direct dans le «rien» (la migration en direct Shared-for Nothing). Ce scĂ©nario est gĂ©nĂ©ralement utilisĂ© pour migrer des machines virtuelles sans temps d'arrĂȘt entre les clusters. En plus des pages de mĂ©moire d'un hĂŽte Hyper-V Ă  un autre, le disque VHD (X) est copiĂ© avec le transfert et la synchronisation du delta de donnĂ©es qui y est Ă©crit. 


Analysons les principales nuances de la configuration des interfaces.



DĂ©finition des paramĂštres de protocole



  1. Tout d'abord, allons dans le gestionnaire Hyper-V et cliquez avec le bouton droit sur les paramĂštres Hyper-V. Dans les paramĂštres de Live Migration, nous spĂ©cifierons les adresses des interfaces rĂ©seau auxquelles l'hyperviseur accĂ©dera: 





  2. Jetons un coup d'Ɠil aux fonctionnalitĂ©s avancĂ©es. Nous nous intĂ©ressons aux deux points: le protocole d'authentification et le transport que nos VM utilisent.

    • Protocole d'authentification : CredSSP - Le protocole Credential Security Support Provider est installĂ© par dĂ©faut. C'est facile Ă  utiliser, mais s'il existe plusieurs clusters dans l'infrastructure, nous ne serons pas en mesure de transfĂ©rer des machines virtuelles entre les clusters. 



      Nous choisirons Kerberos comme étant plus sécurisé et adapté au déplacement de VM entre différents clusters.

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







L'optimisation du rĂ©seau Hyper-V est un sujet trĂšs controversĂ© dans la communautĂ© et un champ d'expĂ©rimentation illimitĂ© (il n'y a pas de limite Ă  la perfection par dĂ©finition). Donc, avant de mettre en place un rĂ©seau Ă©tape par Ă©tape, voyons comment la technologie a changĂ© rĂ©cemment et comment vous pouvez l'utiliser.  



Comme c'Ă©tait avant . Les anciens manuels de migration de VM Hyper-V dĂ©crivent des scĂ©narios utilisant la technologie de synchronisation Load Balancing / Fail Over (LBFO). LBFO a permis de regrouper des adaptateurs rĂ©seau physiques et de crĂ©er des interfaces par dessus. Mais il y avait aussi des inconvĂ©nients, par exemple: il n'y avait pas de support RDMA, il Ă©tait impossible de savoir par quel port Tim le trafic passerait. Et comme le trafic de migration en direct nĂ©cessite un canal plutĂŽt lourd, cela s'est transformĂ© en un problĂšme lorsque toutes les charges de travail du rĂ©seau Ă©clatent dans un seul port physique. 



Comme maintenant... Dans Windows Server 2019, vous ne pouvez mĂȘme pas crĂ©er un commutateur virtuel au-dessus de l'Ă©quipe LBFO. La seule solution prise en charge pour l'agrĂ©gation de ports NIC dans Hyper-V est Switch Embedded Team (SET) .  



SET regroupe des adaptateurs, tout comme ESXi vSwitch. Les ports rĂ©seau physiques deviennent un cordon de raccordement pour diffĂ©rents types de trafic (y compris pour les machines virtuelles) et les interfaces virtuelles sont coupĂ©es au-dessus d'eux. 



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



Microsoft VMware Switch Embedded Team Windows Server 2016. .


Dans les versions plus rĂ©centes, SET vous permet de crĂ©er diffĂ©rentes interfaces virtuelles pour diffĂ©rentes charges de travail au-dessus d'un groupe d'interfaces physiques. En fait, ce sont des adaptateurs rĂ©seau virtuels de la partition racine que nous pouvons gĂ©rer comme des adaptateurs virtuels d'une VM. 



Comment cela affecte le processus de configuration . Dans Hyper-V, en plus de l'interface de gestion, nous crĂ©ons gĂ©nĂ©ralement des interfaces pour la migration en direct et des interfaces pour le trafic CSV de cluster. Pour ce faire, nous devons connaĂźtre le nombre de ports rĂ©seau inclus dans SET - c'est combien d'interfaces virtuelles devront ĂȘtre crĂ©Ă©es. Nous prenons Ă©galement en compte l'emplacement des ports rĂ©seau sur le bus PCI, le nombre de sockets pour le mappage ultĂ©rieur des interfaces vers les nƓuds NUMA et le nombre de cƓurs physiques sur chaque processeur.



Regardons le processus Ă©tape par Ă©tape



  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. 



    En utilisant les mĂȘmes applets de commande, vous pouvez Ă©galement dĂ©finir le nombre de files d'attente RSS. Leur nombre dĂ©pend du modĂšle spĂ©cifique de la carte rĂ©seau, par consĂ©quent, avant de configurer les files d'attente RSS, vous devez Ă©tudier la documentation de la carte rĂ©seau.


Configuration de la migration pour un scĂ©nario en cluster 



Du cÎté du cluster de basculement, nous dévisagerons également les paramÚtres de délai d'expiration du cluster:



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


  • SameSubnetDelay indique combien de fois Ă  quelle heure nous envoyons des pulsations. Par dĂ©faut, il est dĂ©fini sur 1 seconde. 



    Si les nƓuds du cluster sont sur le mĂȘme rĂ©seau, cela suffit. S'ils se trouvent sur des rĂ©seaux diffĂ©rents, vous devez configurer CrossSubnetDelay avec les mĂȘmes valeurs.
  • SameSubnetThreshold indique le nombre de pulsations que nous pouvons ignorer autant que possible. Par dĂ©faut, il s'agit de 5 heartbits, le maximum est de 120. Nous dĂ©finirons la valeur optimale - 30 heartbits.



Pour les machines trĂšs chargĂ©es, il est important de dĂ©visser les deux paramĂštres. Si nous ne nous rencontrons pas, alors avec une forte probabilitĂ©, une telle machine ne fonctionnera pas. 



Pour que le trafic de migration en direct ne soit utilisé que sur un réseau spécifique, nous laisserons également un réseau distinct dans les paramÚtres du cluster de basculement: en











fait, il s'agit de l'ensemble de paramĂštres minimal de gentleman pour que Live Migration fonctionne correctement dans Hyper-V. 



All Articles