In ufficio abbiamo dei server vSphere con oltre un centinaio di macchine virtuali. Durante il loro uso queste macchine hanno gestito dei dati che successivamente sono stati eliminati.
vSphere, tramite vmkfstools può fare il reclaim dello spazio destinato ad un disco vmdk solo se vede delle zone contigue di zeri. Il problema è che le macchine (Windows nel nostro caso, ma è un problema comune a tutti), quando cancellano dei dati in realtà non portano a zero le aree di memoria del disco ma semplicemente eliminano i riferimenti ai file nei loro indici. Per questo vSphere considera lo spazio di quei file ugualmente utilizzato.
Per poter richiedere lo spazio sarà necessario far scrivere a zero tutto lo spazio vuoto all’interno dei dischi di ogni macchina. Un metodo abbastanza veloce (circa 5 minuti ogni 100GB da liberare) è quello di far girare questo script PowerShell in ogni virtual machine Windows.
Lo script (che dovrete salvare con estensione .ps1) crea un file ThinSAN.tmp sul volume specificato fino a lasciare libera solo la percentuale impostata (il valore di default è 5%). Questo permette a un disco thin provisioned di contrassegnare quello spazio come inutilizzato rendendo possibile il suo reclaim sul disco fisico.
Il comando per far scrivere a zero lo spazio vuoto su C:\ è ad esempio:
PS> Write-ZeroesToFreeSpace -Root "c:\"
Aprendo col notepad il file Write-ZeroesToFreeSpace.ps1 potrete trovare ulteriori indicazioni ed esempi.
Emanuele