Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Compact Linux guest virtual hard disk

Posted on 2013-12-14
9
Medium Priority
?
4,088 Views
Last Modified: 2013-12-22
Hi,

The situation: Windows Server 2012 Hyper-V host, with mixed CentOS 6.4 and Server 2012 guests.

What I'm trying to do: compact the virtual image of a CentOS VM, named XXX, with a vhdx of 43GB.

What I did:
Shut down the VM, booted SystemRescueCD 3.8.1.
Used pvscan to get logical volume information.
Changed /dev/mapper/vg_XXX-lv-root to active:
vgchange /dev/mapper/vg_XXX-lv-root -a y

Ran zerofill -v /dev/mapper/vg_XXX-lv-root
Ran zerofill -v /dev/mapper/vg_XXX-lv-home

Both successful.

Shut down the VM, then tried to compact it using Hyper-V Manager. No effect whatsoever. The vhdx is still at 43GB.

Any ideas what I did wrong and/or how I can successfully compact that VM?

Thanks.

Below you have the disk space usage, as reported by df -h. As you can see, the real space usage is at around 11GB.
Actual disk usage
0
Comment
Question by:Dan Craciun
  • 4
  • 3
7 Comments
 
LVL 21

Expert Comment

by:Mazdajai
ID: 39720655
Can you try the following method for zeroing out inside the guest?

cat /dev/zero > /tmp/zero.out
sync && rm /tmp/zero.out

Open in new window

0
 
LVL 35

Author Comment

by:Dan Craciun
ID: 39720788
Thank you for your reply.

Tried your commands. Still no effect after compact.

Which is strange. Creating the zero.out file should have increased the vhdx size, but that did not happen...
0
 
LVL 35

Accepted Solution

by:
Dan Craciun earned 0 total points
ID: 39724941
OK, after about 8 hours of searching and testing, I found a solution.

Looks like the compact function in Hyper-V manager has problems with Linux guests.

I managed to compact the vhdx from Powershell, using:

Mount-VHD -Path X:\path\to\file.vhdx -ReadOnly
Optimize-VHD -Path X:\path\to\file.vhdx -Mode Full
Dismount-VHD -Path X:\path\to\file.vhdx

Open in new window

Took about 3 minutes and reduced the size from 43 GB to 18GB.

Tried -Mode Quick too, but with no results.

I posted this so the next person that has the same problem can save him/her self some time.
0
Cyber Threats to Small Businesses (Part 1)

This past May, Webroot surveyed more than 600 IT decision-makers at medium-sized companies to see how these small businesses perceived new threats facing their organizations.  Read what Webroot CISO, Gary Hayslip, has to say about the survey in part 1 of this 2-part blog series.

 
LVL 21

Expert Comment

by:Mazdajai
ID: 39725090
Good to know! Are you running 2012 R2? May be this is the reason I couldn't reproduce this in my lab.
0
 
LVL 35

Author Comment

by:Dan Craciun
ID: 39725126
Nope. Plain 2012. Will upgrade probably in March-June. Don't like being an early adopter\beta tester on production servers.

A tricky one to be sure. Still don't know why -Mode Quick did not work.

I even spent about 2 hours in a hex viewer, mapping the vhdx. I could see where the partitions ended, huge 0 filled blocks and some 11 GB of pure 0's at the end of the file, and still compact did not work.

Weird, but at least I found a solution.
0
 
LVL 21

Assisted Solution

by:Mazdajai
Mazdajai earned 400 total points
ID: 39725495
You have done a great job on narrowing this down.

R2 is typically a stable release. The current build number is 9600 and they will continue to be updated. There are updates made in VHDX resizing in Windows 2012 R2, I would suggest testing in R2 and see if this issue has been resolved.
0
 
LVL 35

Author Closing Comment

by:Dan Craciun
ID: 39734480
Had to do a lot of research to get around what I can only call "a bug" in Hyper-V compacting routines.

Thanks Mazdajai. Will try in R2 to see if the problem is solved.
0

Featured Post

NEW Veeam Backup for Microsoft Office 365 1.5

With Office 365, it’s your data and your responsibility to protect it. NEW Veeam Backup for Microsoft Office 365 eliminates the risk of losing access to your Office 365 data.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this article, I will show you HOW TO: Perform a Physical to Virtual (P2V) Conversion the easy way from a computer backup (image).
This article will explain How to fix Broken backup chain in Veeam Backup & Replication.
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
In this video tutorial I show you the main steps to install and configure  a VMware ESXi6.0 server. The video has my comments as text on the screen and you can pause anytime when needed. Hope this will be helpful. Verify that your hardware and BIO…
Suggested Courses

824 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question