Migrer un vmdk en Thick EagerZeroed

Pour activer Fault Tolerance sur une VM ou pour garantir les meilleurs performances -pour le stockage-, le (ou les) vmdk doit être au format Thick EagerZeroed (cf la liste des différents formats). Depuis vSphere 4.0 il possible de choisir ce format lors de la création de la VM (grâce à l’option “support clustering features”) mais, par la suite, seul le format Thick est disponible lors d’un storage vmotion.

Jusqu’alors, la seule solution était de cloner le vmdk (en GUI ou avec vmkfstools) au bon format et de la substituer à l’ancien. Mais en fouillant dans le SDK et grâce à l’outil Project Onyx, nous avons identifié les propriétés correspondant au format d’un vmdk et Luc Dekens nous a aider à les integrer dans un script de “re-configuration”

Avec ce script, vous pourrez changer le format du (ou des) vmdk d’une VM en Thick EagerZeroed sans création de vmdk supplémentaire.

param([string] $vmName)
$vm = Get-VM -Name $vmName |Get-View
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$vm.Config.Hardware.Device | where {$_.GetType().Name -eq "VirtualDisk"} | % {
 
	$deviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec
	$deviceChange.operation = "edit"
	$deviceChange.device = $_
	$deviceChange.device.backing.thinProvisioned = $false
	$deviceChange.device.backing.eagerlyScrub = $true
	$spec.DeviceChange += $deviceChange
}
$vm.ReconfigVM_Task($spec)

Malheuresuement, cette manipulation ne peut PAS être effectuée à chaud…

Tags: , ,

Leave a Reply