Introduzione
Inizio dicendo che è un articolo di tipologia “BASIC” e vi lascerò anche con una domanda.
Poniamoci nel caso in cui praticamente abbiamo una VM per la quale originariamente è stato allocato uno spazio per il disco di una dimensone fissa di ad esempio 100GB, capita molto spesso che effettivamente quello spazio allocato di grandezza fissa non sia realmente occupato e che tutta la VM copra uno spazio complessivo di 40GB per fare un esempio, quello che viene subito da pensare allora perchè non snelllire l’effetiva grandezza della VM in modo da far si che l’ vmdk sia effettivamente grande quanto lo spazio occupato e lasciando lo spazio totale precedente (ovvero 100GB) come “Thin Provisionig”che fornisce l’allocazione dinamica della capacità di storage.
Vi rimando intanto ad alla lettura di un documento secondo me interessante “Performance Study of VMware vStorage Thin Provisioning”
Metodologie
Prenderemo in considerazione due metodi per poter effettuare questa operazione e li applicheremo in due contesti differenti
- Utilizzo dei vmfktools direttamente sull’ host ESXi
- Utilizzo del VMware vCenter Standalone Converter (eseguiremo qualche esempio e paragone)
Vmfktools
Comando che fa parte dell’insieme dei vSphere CLI Command-line interface il quale ci permette di gestire i volumi VMFS, lo useremo direttamente sul nostro host ma per chi già lo conosce sa che offre l’opportunità (molto utile) di gestire la connessione/autenticazione a linea di comando verso un host ESXi) e gestire quindi determinati compiti di management senza l’ausilio della BusyBox.
Per prima cosa effettuiamo lo shutdown della VM nella modalità che più preferite.
Colleghiamoci tramite SSH al nostro host ESXi e andiamo ad eseguire il comando:
vmkfstools -i /vmfs/volumes/testingstore/Debian/Debian-vmdk /vmfs/volumes/testingstore/DebianConv/DebianConvThin.vmdk -d 'thin' -a lslogic
andiamo adesso ad esplicare il funzionamento e le opzioni di ciò che abbiamo utilizzato precedentemente:
-i crea la copia di un disco virtuale o disco grezzo. La copia che ne verrà avrà il formato specificato (in queto caso .vmdk) come opzioni di base richiede il disco sorgente e quello di destinazione
-d da utilizzare in combinazione con le opzioni -c, -i, -X definisce il formato del disco da creare nel caso della combinazione con la nostra opzione -i accetta i formati: zeroedthick, eagerzeroedthick, thin, rdm:dev, rdmp:dev, or 2gbsparse
-a si utilizza per specificare il tipo di adapter per il nuovo disco creato. I valori accettati sono: buslogic, lsilogic or ide
Durante l’esecuzione della conversione verrà visualizzato un avanzamento, po verrà conclusa l’operazione.
Per utilizzare il nuovo disco creiamo una nuova VM e quando arriveremo alla creazione del disco virtuale invece di crearne uno ex-novo andremo a selezione la voce “use an existing visrtual disk. Reuse a previously configured virtual disk” che ci darà la possibilità di efefttuare il browsing del file all’interno dei nostri datastore.
A questo punto non vi resta che effettuare il “Power ON” della VM appena creata.
VMware vCenter Standalone Converter
Effettuiamo la stessa operazione percedentemente illustrata sempre su una VM Linux based di tipologia VMware Workstation:
Apriamo il nostro converter:
Selezioniamo la voce “Convert Machine
nel campo “Select source type” selezioniamo la voce “VMware Workstation or other Vmware virtual machine” nel secondo campo invece andiamo a inserire il nostro file .vmx, e procediamo:
selezioniamo come destinatio una “VMware Infrastructure virtual machine” e compiliamo i campi che le nostre informazioni. Nella prossima schermata decidiamo il nome per la nostra VM:
lo step successivo è quello di decidere in quale resource pool e datastore inserirla e la versione della VM:
nel prossimo step andiamo a cliccare sulla voce “Edit” del parametro “Data to copy” (ignorate i warning o se volete configurateli):
all’interno della voce “type” selezioniamo thin e procediamo:
clicchiamo su finish ed avremo:
Se adesso andate a controllare i due file -flat.vmdk* ed confrontate la loro grandezza vedrete che la il nuovo file creato ah praticamente la dimensione dell’effettivo spazio occupato dalla VM di origine e come “Provisioned Size” ha la quanittà di spazio che è stata decisa quando la VM originale è stata creata ad esmepio utilizzando l’opzione “pre-allocated”.
(*) Vi ricordo che sono i file *-flat.vmdk che rappresentano la parte raw del disco con i dati, logicamente tutti i gile del tipo*.vmdk contengono dati e informazioni come la geometria del disco, la descrizioen della grandezza…etc
Cosa accade questo procedimento viene eseguito tramite il converter su una VM windows…
Arrivati alla schermata in cui possiamo editare le informazioni relative al disco, possiamo selezionare come valore del parametro “Data copy type” una voce che si chiama “Select volumes to copy“:
Settando questo tiplogia di parametro accadrà che per la macchina convertita risutante il Disk provisioning sarà di tipologia thick e la Provisioned Size uguale alo spazio effettivo occupato sul disco dalla VM di partenza, in pratica una grandezza preallocata e non dinamica. A questo punto nasce la domanda che vi avevo anticipato all’inizio, ovvero come mai questo è possibile solo per macchine windows anche se la destinazione è sempre un server ESXi se la documenatione ufficiale dice queanto di seguito ?
ragazzi ci vediamo alla prossima….
Giovanni Uccio