svmotion switchover time

MAJ 02/02/2012 : remplacement du script par un one-liner :)

Lors d’une tentative de svmotion nous avons été confronté à un timeout sans plus de détails :

C’est dans le vmware.log de la vm qu’on trouve la cause de l’échec (c’est souvent le cas d’ailleurs…) :

Migrate_SetFailure: The migration has exceeded the maximum switchover time of 100 second(s).  ESX has preemptively failed the migration to allow the virtual machine to continue running on the source. To avoid this failure, either increase the maximum allowable switchover time or wait until the virtual machine is performing a less intensive workload.

Pourtant, depuis vSphere 4.0, un svmotion ne nécessite plus une phase de recopie de la ram grâce au “Fast Suspend/Resume” comme détaillé dans une session du vmworld 2009. Il ne nous restait donc plus que la piste de l’activité des vmdk mais la kb dédié à ce problème (Using Storage vMotion to migrate a virtual machine with many disks may timeout) fait référence à des messages d’erreurs aux quels nous n’avons pas été confrontés.

Dans le doute et n’ayant pas le temps d’investiguer d’avantage, nous avons augmenté les valeurs de “switchover time” pour vmotion et svmotion à l’aide de ce script PowerCLI, ce qui nous a permis de régler le problème :

Get-View -ViewType VirtualMachine|?{-not $_.Config.Template}|%{$_.ReconfigVM((New-Object VMware.Vim.VirtualMachineConfigSpec -Property @{extraconfig=@((New-Object VMware.Vim.optionvalue -Property @{Key="vmotion.maxSwitchoverSeconds";Value="200"});(New-Object VMware.Vim.optionvalue -Property @{Key="fsr.maxSwitchoverSeconds";Value="200"}))}))}

Le paramètre ”vmotion.maxSwitchoverSeconds”, nous l’avons trouvé dans les commentaires d’un post très intéressant du blog VMware Uptime au sujet d’une fonctionnalité peut connu de vmotion (vSphere 4.1+) : “quick resume

In the event the VM passes the 100 second check, VMotion will stun the source and start running on the destination. While the destination runs, the source will transmit the remaining pages to the destination using the “quick resume” capability introduced with vSphere 4.1.

Vous avez bien lu, la vm de destination est démarrée alors le vmotion n’est techniquement pas terminé et les pages restantes sont migrées en tache de fond. Surpuissant.

Comme le précise Duncan dans son post concernant ce sujet, l’impact sur les performances en cas d’accès à une page restée sur la vm source (accès via le réseau donc) compense largement l’agilité de la solution dans la majorité des cas.

Tags: , , , ,

9 Responses to “svmotion switchover time”

  1. “Surpuissant”
    +1

  2. Trop fort VMware!

    Vas-y Microsoft essaye d’en faire autant :) )

    Just pulling your leg M$ :)

  3. on peut toujours rêver :)

  4. Bonjour,

    Cela est il toujours d’actualité pour vSphere 5.0 U1 ?

    Qu’elle parametre a jouter afin de cibler l’aplication à une VM definie.

    Merci,

  5. Salut Fouad, oui c’est toujours d’actualité et pour cibler à une VM tu peux remplacer “Get-View -ViewType VirtualMachine” par “Get-VM ta_vm | Get-View” au début du oneliner

  6. Thanks Nitro !!!!!

  7. Thanks gain,
    Une vielle Red-Hat 2.1 avec vieux Kernel, hardware 4, Unrunning Tools : Bref la galere car le Storage vMotion erreur sur erreur.
    Grace à ce one liner c’est passé tous seul.

  8. @Fouad : avec plaisir :)

  9. [...] Vous l’aurez compris, si l’ESX source n’arrive pas à “dépiler” la vram suffisamment vite lors d’un vMotion, l’execution de la VM en question est ralentie jusqu’à ce qu’une convergence soit possible, dans la limite des timeout par défaut. [...]

Leave a Reply