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:
- La configuration de la machine virtuelle est copiĂ©e d'un nĆud de cluster Ă un autre.
- 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.
- , . Hyper-V . , .
. - , , . . , .
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
- 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:
- 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 â . .
- 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.
- 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. - 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
- , . , 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
- 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 .
- 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, .
- , 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
- . , 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.
- , :
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
, . - RDMA, . RDMA CPU. RDMA Get-NetAdapterRdma.
: . statemigration.com.
RDMA (, , ). - 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"
- 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.