8 04 2013
Hyper-V 2012: Activez le Jumbo-Frame
Comment configurer le Jumbo-Frame (MTU, Packet Size) sous Hyper-V 2012 pour tirer profit des performances de votre réseau unifié ?
Dans un environnement de réseau convergeant, si les technologies associées peuvent varier (DCB, DCE, CEE…), le but principal est de pouvoir faire passer sur les liens Ethernet, les flux réseau classiques et les flux de stockage évitant de faire un investissement coûteux dans un réseau FiberChannel pour le stockage. Dans le cas ici présent, nous faisons passer plusieurs flux réseaux classiques et un réseau iSCSI pour nos machines virtuelles.
MTU, Jumbo-Frame, Packet Size…Kézako ?
Qui dit flux iSCSI, dit Jumbo-Frame de 9000 bytes. Le jumbo-frame (ou MTU, ou packet size), c’est la taille maximale que peut avoir un paquet Ethernet avant d’être envoyé sur le réseau. Par défaut, il est configuré à 1500 bytes sur tous les éléments réseau. Attention, il est important de configurer cette taille de manière identique sur toute la chaîne réseau de bout en bout sous peine de souffrir de problèmes de performance importants. En effet, dès le premier switch non configuré, le packet ethernet sera scindé de façon à retrouver une taille de 1500 bytes…
Configuration dans VMM 2012 SP1: pas encore !
Intéressons-nous ici à la partie réseau d’Hyper-V, plus précisément à partir de la carte réseau physique de l’hôte, jusqu’à la carte réseau virtuelle de notre VM.
Afin d’avoir un MTU uniforme de bout-en-bout, il faut configurer:
- La carte réseau d’Hyper-V;
- La carte réseau de la machine virtuelle.
1 |
Get-NetAdapter | where {$_.ifDesc -like "HP*"} |
Le résultat ressemble à ça:
1 2 3 4 5 6 7 8 |
PS C:> Get-NetAdapter | where {$_.ifDesc -like "HP*"} Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Ethernet 4 HP NC551i Dual Port FlexFabric 10G...#4 18 Up E8-39-35-ZZ-YY-84 10 Gbps Ethernet 3 HP NC551i Dual Port FlexFabric 10G...#3 16 Up E8-39-35-ZZ-YY-80 10 Gbps Ethernet 2 HP NC551i Dual Port FlexFabric 10G...#2 14 Up E8-39-35-ZZ-YY-7C 10 Gbps Ethernet HP NC551i Dual Port FlexFabric 10Gb ... 12 Up E8-39-35-ZZ-YY-78 10 Gbps |
Modifions la taille du MTU
Pour cela, nous allons utiliser la commande Set-NetAdapterAdvancedProperty. Chez mon client actuel, nous devons réaliser l’opération sur toutes les cartes physique du serveur (car derrière nous faisons du teaming des cartes afin de disposer de 20 + 20GB de bande passante pour chaque noeud):
1 |
Get-NetAdapter | where {$_.ifDesc -like "HP*"} | set-NetAdapterAdvancedProperty -RegistryKeyword "*JumboPacket" -RegistryValue "9014" |
Pourquoi « 9014 » et pas « 9000 » ?
Lorsque vous essayez d’indiquer une valeur autre que 9014, vous obtenez le message suivant:
1 |
set-NetAdapterAdvancedProperty : No matching keyword value found. The following are valid keyword values: 1514, 4088, 9014 |
En effet, seules les valeurs 1514, 4088 et 9014 sont configurable dans Windows Server 2012 et Hyper-V 2012:
- 1514 correspond à la valeur de MTU par défaut (et standard);
- 4088 correspond à la valeur de MTU utilisée par le protocole FCoE (entre autre);
- 9014 corresond à la valeur de MTU maximale utilisable en Ethernet.
Et sur les autres nœuds d’un cluster Hyper-V ?
Pour standardiser la configuration sur tous vos hôtes Hyper-V, vous pouvez utiliser le script suivant:
1 2 3 4 5 6 7 8 |
$credentials = Get-Credential $hosts = (Get-ClusterNode -Cluster "NOM DU CLUSTER").Name $command = { $filer = "HP*" Get-NetAdapter | where {$_.InterfaceDescription -like $filer} | set-NetAdapterAdvancedProperty -RegistryKeyword "*JumboPacket" -RegistryValue "9014" } Invoke-Command -ComputerName $hosts -Credential $credentials -ScriptBlock $command |
Update (24.04.2013): Si vous avez déjà créé des logical switchs avec VMM, redémarrez le host pour que le MTU soit pris en charge sur l’interface du teaming.
Enfin, la machine virtuelle !
Sur chaque machine virtuelle sous Windows Server 2012 où vous devez avoir un MTU de 9000 bytes (pour le iSCSI par exemple), utilisez la même commande:
1 |
Get-NetAdapter | where {$_.Name -like "iSCSI"} | set-NetAdapterAdvancedProperty -RegistryKeyword "*JumboPacket" -RegistryValue "9014" |
Encore une évolution dans le bon sens
Contrairement aux versions antérieures de Windows Server, notez qu’ici la configuration du MTU sur une carte réseau est enfin devenu une configuration standard, ne nécessitant plus d’installer les outils spécifiques aux cartes réseau pour configurer cette valeur aujourd’hui couramment utilisée dans les Datacenters. Un petit détail, mais qui vient s’ajouter à tous les autres sur cette version 2012.
Article initialement publié sur blog.sogeti.ch
SQL Server: Ouvrir les ports du firewall sous Windows Server 2012 avec Powershell SCVMM 2012: Utiliser la fonction « Availability Set » (Groupes de Disponibilité)