2015. november 6., péntek

ESXi coredump file törlése

Ha egy datastore-t meg szeretnénk szüntetni, és már minden virtuális gépet elmozgattunk róla, akkor is előfordulhat, hogy a törlés sikertelen lesz. A hibaüzenet szerint azért, mert a datastore még mindig használatban van. Ennek több oka is lehet, amiből az egyik az ESXi coredump file-k jelenléte.

Ilyen file-ok akkor jönnek létre egy datastore-on, ha az ESXi boot particióján nincs elég hely az ilyen file-ok tárolására. Az 5.5 előtti időkben ez a file csupán 100MB volt, így egy 2GB-os USB diszkeken is elfért, ezért nem is találkoztunk gyakran ilyen file-okkal a datastore-okon

Viszont az 5.5-től ez a méret lényegesen megnőtt, így már a 2GB-os USB diszkre nem fér (régebbi hostjainkban még ilyenek vannak). Ilyen esetben az ESXi választ egy datastore-t, és azon hozza létre egy vmkdump mappában.
 
 
Ez a file nem azért jött létre, mert az ESXi "eldumpolt", hanem csak a helyet biztosítja egy esetleges összeomlás esetére.
Ha tiltani szeretnénk az ilyen file-ok létrejöttét, akkor a esxcli system coredump file set --enable false paranccsal megtehetjük, viszont ilyenkor nem lesz mit a support felé adni, ha nagyobb gond lenne.
Ha engedélyezve van, és pl. a fenti képen látható módon már létrejött a file, akkor azt törölni kell, hogy a datastore megszüntethető legyen.
Ehhez tudni kell, hogy a filet-t melyik host hozta létre. A file neve a szülő host UUID-je. Így előbb azt kell megtudni, hogy ez melyik host. Ezt pl. a PowerCLI segítségével is megtudhatjuk.
 
Get-View -ViewType HostSystem -Propert Name, hardware.systeminfo | select { $_.name, $_.hardware.systeminfo.uuid }
 
Így már csak meg kell keresnünk a kapott listában, hogy a file neve melyik UUID-vel egyezik meg. Ha ez megvan, akkor SSH-val be kell jelentkezni az adott hostra, és törölni kell a dump file-t: esxcli system coredump file remove --force
 
Ha a fenti mappában több file van, akkor ezt az összes érintett hoston meg kell csinálni.
 
Ha minden hostról egyszerre szeretnénk törölni, akkor a PowerCLI gyorsabb:
 
Get-VMHost -location DataPlex | % {
 $esxcli = get-esxcli -vmhost $_
 $esxcli.system.coredump.file.remove($null, $true)
}

Nincsenek megjegyzések:

Megjegyzés küldése