none
Il compact del disco vhd compatta poco RRS feed

  • Domanda

  • Un saluto a tutti,
    quando eseguo il compact di un disco VHD ottengo una riduzione di solo pochi giga, spiego meglio la situazione.
    Ho una VM win2008r2 che gira su un host Hyper-v win2008r2. La VM è composta da 2 dischi VHD (uno corrisponde al disco C e l'altro al disco D della macchina virtuale). Data la mia scarsa esperienza nel virtualizzare quando convertii da fisico a virtuale il sistema attuale, ho lasciato i dischi in accrescimento dinamico. Purtroppo mi sono accorto tardi che quello che rappresenta il disco D è cresciuto da un iniziale mi sembra 40Gb a 85Gb e ora ho problemi di spazio sul sistema host Hyper-v.

    Mi sono documentato un po' per ridurre il VHD del disco D ed ho eseguito i seguenti passaggi.
    Nel sistema virtualizzato ho ridotto il size del disco dal disk management di windows server, portandolo a 40Gb e ripulendo il tutto ho ottenuto una effettiva occupazione di 27Gb.
    Ho poi fatto il defrag e poi un "Sdelete -c -z" del disco D sempre dall'interno del sistema virtualizzato. Ho messo in shutdown la VM e dal manager dell'Hyper-V server ho eseguito il compact del disco VHD che rappresenta il disco D della VM. Il size del VHD passa da 84Giga a 77Gb solamente. Ho rifatto più volte la procedura (defrag + sdelete + compact) ma non si riesce a compattare di più. Il VHD rimane intorno ai 75/77Gb e cresce inspiegabilmente in pochissimo tempo portandosi sui 85Gb, quando nella VM la effettiva occupazione è di appena 27GB con crescita quasi nulla.
    Cosa posso fare? Ho provato di trasformare il VHD da dinamico a fisso ma ho un errore che mi ferma (forse perchè sull'host ho poco spazio per fare la procedura...Mi rimango dai 30 ai 50Gb)

    Vi ringrazio per l'attenzione. Saluti

    domenica 16 ottobre 2016 07:01

Risposte

  • Ti ringrazio per il prezioso commento e per i consigli.
    In effetti proprio questa mattina mi sono deciso ad utilizzare una utility di cui avevo sentito parlare (ma non l'ho riportata nella mia prima domanda per non appesantire troppo il tread). Si tratta del VHDResizer. Con questo strumento ho rifatto il VHD riducendo il size al minimo consentito (42Gb) e intanto l'ho portato a VHD statico. E' andato tutto bene e ora la VM gira con il disco D che fa riferimento ad un VHD ridotto e statico. Ho potuto fare il tutto perchè è domenica e la VM non viene usata. Il VHDResizer va un po' lento però debbo dire che mi ha risolto. D'altra parte con l'hyper-v manager del win2008r2 mi dava errore se facevo la conversione in statico. Mentre il VHDResizer è andato bene....

    Grazie ancora per i consigli che terrò presente per la prossima volta.

    domenica 16 ottobre 2016 13:47

Tutte le risposte

  • Si, la procedura che hai eseguito è corretta. Solitamente va eseguita una deframmentazione dall'interno della VM seguita da una compattazione del file VHD/VHDX. Tuttavia questa procedura è stata ottimizzata a partire da Windows Server 2012, quindi può essere utile utilizzare versioni successive di Windows Server per cercare di compattare ulteriormente il VHD utilizzando il cmdlets Optimize-VHD in modalità "Full" (il file deve essere montato il sola lettura):

    https://technet.microsoft.com/it-it/library/hh848458(v=wps.620).aspx

    In alternativa, un metodo più drastico è quello di eseguire lo shrink del volume NTFS dall'interno della VM seguito da una compattazione, ma a quel punto tanto vale convertirlo direttamente in un VHD a dimensione statica.

    In ogni caso si trattano tutte di operazioni piuttosto rischiose che non possono essere eseguite con la VM online o con tempi di inattività limitati, quindi se ormai è una macchina in produzione forse potrebbe risultare addirittura più veloce eseguire un backup dell'intera macchina dall'interno della VM (ad esempio con Windows Server Backup che tramite il servizio VSS riesce ad eseguire il tutto online) e poi eseguire un ripristino in una nuova VM con VHD statico vuoto. Certo la mancanza di spazio potrebbe essere in ogni caso un'ulteriore ostacolo a queste operazioni.

    PS: Il tuo problema si è presentato perché, quando avevi creato il VHD dinamico, avevi inconsapevolmente configurato un overcommit dello storage. In realtà, se configurato correttamente, un VHD dinamico non porta alla saturazione dello spazio nell'host, al massimo si può parlare di un problema di prestazioni (principalmente per questo motivo non andrebbero utilizzati in ambienti di produzione, inoltre la struttura dei metadati di un VHD dinamico è più complessa e questo rende più facili eventuali corruzioni).

    Quindi il mio consiglio è quello di convertire il VHD in statico in ogni caso:

    https://technet.microsoft.com/it-it/library/ee941151%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396




    domenica 16 ottobre 2016 08:48
    Moderatore
  • Ti ringrazio per il prezioso commento e per i consigli.
    In effetti proprio questa mattina mi sono deciso ad utilizzare una utility di cui avevo sentito parlare (ma non l'ho riportata nella mia prima domanda per non appesantire troppo il tread). Si tratta del VHDResizer. Con questo strumento ho rifatto il VHD riducendo il size al minimo consentito (42Gb) e intanto l'ho portato a VHD statico. E' andato tutto bene e ora la VM gira con il disco D che fa riferimento ad un VHD ridotto e statico. Ho potuto fare il tutto perchè è domenica e la VM non viene usata. Il VHDResizer va un po' lento però debbo dire che mi ha risolto. D'altra parte con l'hyper-v manager del win2008r2 mi dava errore se facevo la conversione in statico. Mentre il VHDResizer è andato bene....

    Grazie ancora per i consigli che terrò presente per la prossima volta.

    domenica 16 ottobre 2016 13:47