The problem:

Linux guest (OpenSuse 12.1), with multiple virtual disks attached.

3 disks are in a logical volume, two of which are exactly 2TB.

None of the disks are independent, and due to the backup software we use, cannot be independent.

When the two 2TB virtual disks are "dependent", the snapshot fails stating that the file is too large for the datastore. When I put those two disks in independent mode, snapshots work fine (the other disk is 1.8TB).

I have therefore concluded that even shrinking the two physical disks by 100GB should solve the problem, however I am having trouble conceptualizing how to go about getting those disks smaller without breaking the LVM entirely.

The actual LV has 1.3TB free, so there is plenty of space to shrink with.

What I need to accomplish:

Deallocate 100GB from the two, 2TB virtual disks within the linux guest.

Shrink the two virtual disks by 100GB within vsphere (not as complicated).

Are there any vsphere/LVM gurus that can give me a clue?


Fixing formatting:

Something like this? e2fsk -f /dev/VGroup1

resize2fs /dev/VGroup1 5922108040K (that is a 200GB shrink in KB)

lvreduce -L 209715200K /dev/Vgroup1 pvresize /dev/sdb1(and sdc1) --

setphysicalvolumesize 2042625023K Correct?

Another thought occurred to me: Maybe to play on the safe side I should reduce 25G more than I plan on reducing the disks, to ensure that the physical volumes aren't smaller than the filesystem.

  • A thought: Perhaps the simplest way to achieve this would be: Add an additional 1.8TB disk, run pvmove on one of the 2TB disks, when all the data is moved off that disk to the new one, remove it from the vg and what virtual machine. Rinse repeat for the second disk. As a matter of fact I am going to try that today. – Stew Apr 15 '12 at 11:52

This isn't a VMWare issue really, the issue with the 2TB vmdk's is that there's no space left on the datastore to commit to a snapshot, as you say dropping the size of the vmdk will allow that to work.

Now obviously you can use the usual chain of umount, e2fsck, resize2fs, lvreduce and pvresize then reduce the vmdk size within the vsclient, but there's another thought, if you have enough temporary space you could just convert them to thin disks. Obviously there can be a write penalty for this but it'd mean you'd not have to touch your guest filesystem.

  • There is 4TB free on the datastore, so I don't think that is the issue. – Stew Apr 15 '12 at 12:38
  • Oh it's multi-extent? hmmm, not a big fan of doing that but yeah, I can see how that changes things, still at least you'll be able to follow that tool chain I mentioned. – Chopper3 Apr 15 '12 at 12:40
  • I removed the comment and added it to an edit on the original question, better formatting. – Stew Apr 15 '12 at 13:03
  • This did not go well, however I am going to attempt it again when I can plan for a bit of downtime of that volume. Thanks for the answer, this is the route I am going to try and worse case scenario I can delete everything and recreate it from backup. Thanks! – Stew Apr 17 '12 at 7:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.