Una manutenzione dei dischi delle macchine virtuali fa risparmiare spazio (e soldi se state per andare in the cloud).
Macchine virtuali che occupano sempre più spazio?
Dentro al sistema operativo c'è in realtà molto spazio libero?
Anche io ho avuto questo problema su macchine virtuali in ambiente VMware e l’ho risolto, ora vi spiego come.
Partiamo dall’analisi: la macchina virtuale è stata creata assegnando un certo spazio disco, installando il sistema operativo, le applicazioni. Bene.
Ci accorgiamo che, a regime, lo spazio disco effettivamente utilizzato è minore di quello allocato.
In ambiente VMware avevo una situazione come quella riportata in figura:
Si poneva il problema di come rendere liberabile lo spazio inutilizzato… Russinovich!
Come ho fatto a non pensarci prima?
Se non sapete chi è Russinovich, be', vi manca un pezzo di storia informatica che potete facilmente colmare cercando su Google o Wikipedia.
Fra le tante utility del genio spicca Sdelete.
Si tratta di un'utility a riga di comando per cancellare per bene.
Al promtp dei comandi basta digitare sdelete /? per ottenere l’elenco dei parametri:
usage: sdelete [-p passes] [-s] [-q]
sdelete [-p passes] [-z|-c] [drive letter] …
-a Remove Read-Only attribute
-c Clean free space
-p passes Specifies number of overwrite passes (default is 1)
-q Don't print errors (Quiet)
-s or -r Recurse subdirectories
-z Zero free space (good for virtual disk optimization)
Bene, proprio l’ultimo parametro è quello che ci interessa. Infatti quell’opzione permette di settare a zero il bit dello spazio libero.
Tradotto in italiano significa che quello spazio può essere buttato via perché non serve.
Allora nel mio caso ho lanciato il comando sul disco d:, come illustrato qui sotto:
A seconda delle dimensioni del disco il tempo di esecuzione del comando può variare naturalmente, ma si misura sempre in minuti e non in ore.
Al termine del processo abbiamo una macchina virtuale il cui disco d: occupa lo spazio che serve e quello che non serve è segnato come cancellabile.
Manca quindi l’ultimo passo per togliere fisicamente lo spazio inutilizzato
Per questa operazione basta lanciare una migrazione della macchina virtuale impostando che la migrazione deve andare su un altro datastore e che i dischi della macchina di destinazione devono essere thin.
E al termine della migrazione, la magia.
Osservate l’immagine qui sotto per vedere quanto spazio è stato risparmiato.
Riportiamo la macchina virtuale sul datastore originario e il gioco è fatto.
Nota: affinché il processo funzioni il block size del datastore di origine e di destinazione devono essere diversi.
Vuoi provarlo sulle tue macchine virtuali?
Ad un passato VMUG si è parlato del tema in questione e sono nate una serie di considerazioni. Lo shrinking dei dischi Thin è eseguibile anche tramite l’apposita funzione dei VMware Tools, a regime può essere utile schedulare l’operazione di "pulizia" con sdelete periodicamente per ottimizzare i tempi di shrinking.
Grazie della dritta, Rocco.
L’ottimizzazione di spazio si può ottenere anche utilizzando i tools di default di Windows, fermo restando il resto del processo in carico a VMware. Attenzione che questa pulizia potrebbe impattare se utilizziamo per qualche funzione nel file system lo shadow copy e per i clients i punti di ripristino. Le distribuzioni Linux in genere lavorano con logiche abbastanza diverse a livello di file system, ma anche loro hanno qualche necessità di pulizia. Per i sistemi Windows nelle proprietà del disco, effettuando la pulizia basta selezionare eliminazione files compressi inutilizzati (Windows 2003 Server e XP), mentre per Vista, 7, Server 2008 il pulsante è pulizia files di sistema. Una nota relativa alle performance sull’utilizzo dei dischi in modalità "thin". Conviene, se stiamo utilizzando uno storage, lasciare allo storage nativamente la gestione del "thin & thick", su VMware per ottimizzare le performance utilizzeremo "Thick". Gestendo l’over-commisioning dallo storage avremo una visione più centralizzata di quanto effettivamente stiamo usando rispetto allo spazio realmente disponibile. In questo scenario, è abbastanza facile avere lun da 1tb e utilizzare 1,3-1,5 Tb. Attenzione che se non gestiamo correttamente le soglie di utilizzo spazio rischiamo il collasso…
Ciao Stefano,
sicuramente le cose che ha iscritto sono altri modi di recuperare spazio.
Diciamo che le utility di cancellazione di Windows lavoran opero’ a un altro livello rispetto a "sdelete".
Cioe’ la pulizia del disco windows in ambiente virtuale non significa automaticamente ottenere minore spazio occupato fisicamente dalla macchina virtuale.
Diciamo che le utility di pulizia di Windows sono più accostabili, a livello tecnologico, a un trucco di recupero spazio disco che analizzeremo in un articolo che va in pubblicazione il 18 dicembre.
Ciao!
@Cesare: come scritto nell’articolo, PRIMA devi aprire il prompt dei comandi e DOPO eseguire i comandi segnalati.
Scusatemi per la mia manifesta ignoranza o incompetenza, ma mi trovo davanti ad un problema forse banale, ma che non riesco a risolvere: ho scaricato SDelete, l’ho scompattato con winrar e si sono formati due files, uno per 32 bit e uno per 64 bit. Avendo io il sistema windows 7 a 64 bit ho cliccato su quest’ultimo file, aspettandomi che si aprisse il prompt dei comandi, ma…non appare assolutamente nulla! Ovvero, sembra che per una frazione di secondo appaia la classica finestrella nera del prompt C:, ma scompare immediatamente. Sbaglio senz’altro qualcosa, ma vorrei sapere cosa, quindi sono a chiedervi aiuto. Grazie anticipatamente.