Compacting dynamic VHD

Hey guys

Ok, this one has me stumped. Host is Hyper-V 2012 R2 server.  Guest server is Server 2008 R2 with Dynamic VHD.  I was able to install software that would defragment the drive and optimize it by moving all the files that were near the end of the drive to be closer to the beginning.  Looked great.  Then I thought I should go ahead and try and shrink the drive (within the guest OS).  It shrunk down to about 200 gigs (which is where I wanted it to be.. vs. 300 gigs).  So I am sitting here all happy and decided to try and compact the drive.  The actual contents of the drive were only taking up about 90 gigs so I estimated that the compact should knock it down to about 100 or so gigs.  The VHD file was sitting at 234 gigs.  I started the compacting (with the guest shut down of course) and after about an hour it finished with no errors... but also no shrinkage at ALL.  The vhd was still sitting at 234 gigs.  I went thru the error logs and could not find ANY errors.

Any ideas?
jonmenefeeAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
jonmenefeeConnect With a Mentor Author Commented:
Well, I tried both but neither was what I was looking for unfortunately.  Mahesh's works for VHDX files, mine are VHD so I had to get a third party software that's not even published in English anymore called VHD-Resizer.  I had to find the link here in Experts-Exchange.

Phillips suggestion was good and would probably work on Dynamic VHDs but since there were no Switches to make a minimum size (I didn't want to compact it down to where the drive has zero bytes of free space) I didn't want to take a chance.  

Anyways
I went with the third party software and it worked great
0
 
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
0
 
MaheshArchitectCommented:
You can try below.
Start elevated PowerShell prompt on Hyper-V server and run below commands
Mount-VHD -Path D:\VM\OS.vhdx -ReadOnly
Optimize-VHD -Path D:\VM\OS.vhdx -Mode Quick
Dismount-VHD D:\VM\OS.vhdx

Open in new window

0
Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

 
jonmenefeeAuthor Commented:
Thanks guys,  For some reason I did not get notified until today about these answers.  I will try them tonight and let you guys know which one worked for me :-)
0
 
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
What product did you use?
0
 
MaheshArchitectCommented:
I don't see any issue with VHD file with same cmdlet

Have you tried the cmdlet with VHD file?

http://technet.microsoft.com/en-us/library/hh848458.aspx
0
 
jonmenefeeAuthor Commented:
I just went to that website and it refers Only to dynamically expanding hard drives. I have a Fixed VHD that I need to shrink
0
 
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
But the original question says "DYNAMIC"?
0
 
MaheshArchitectCommented:
If the disks are not dynamic then above cmdlet won't work
In case of fixed disk, then what you got is right (VHD-Resizer)
0
 
jonmenefeeAuthor Commented:
Yeah. Sorry about that. I should have specified that a little more clearly
0
 
jonmenefeeAuthor Commented:
Hello Phillip
you are correct. When I first started tackling this I had a dynamic vhd with the Hyper-V settings of 300 gigs as being the largest it would grow.  Unfortunately I moved it to a 256 gig mirrored VHD and as long as it didn't grow I was fine but then it grew to 250 gigs with lots of blank space.  So I tried compacting it and I could never get it compacted. Turns out I should have gotten a better disk defragmenter. Anyways. I changed it to a fixed disk in the hopes of then compacting it. I will now use the vhd resizer to do that
0
 
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Make sure your backups are good.
0
 
jonmenefeeAuthor Commented:
I will shutdown the machine. Copy the VHD to another area and then run the vhd - resizer on the original file

:-)
0
 
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Okay. I've not used the tool in all my years working with Hyper-V. If the backups are _not_ tested then approach this process with caution.
0
 
jonmenefeeAuthor Commented:
I will. Thanks. :-)
0
 
jonmenefeeAuthor Commented:
Here is the link to the right software solution, it is posted here in Experts-Exchange

http://www.experts-exchange.com/Software/Virtualization/Q_28139514.html
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.