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)
}
$esxcli = get-esxcli -vmhost $_
$esxcli.system.coredump.file.remove($null, $true)
}
Nincsenek megjegyzések:
Megjegyzés küldése