|
|
|
|
|
|
|
|
|
|
xen-users
Re: [Xen-users] what's correct way of shrinking LVM based domU?
Rudi Ahlers wrote:
ok, I don't know LVM at all. This is all a trail and error thing,
since my previous installations have been image based and is difficult
to resize.
LVM isn't your problem :-) Imagine you're shrinking the physical disk
in a real machine. You need to make the file system and whatnot in the
real machine fit the new disk.
So, what you're saying is that I should do this from the domU itself?
But that then means it need to be running?
No, I'd be inclined to do all this from dom0 because you can handle all
the resizing stuff off-line.
If you do "fdisk /dev/data/cpanel1" you'll see the disk layout that your
guest OS sees. You can also see them with "kpartx /dev/data/cpanel1"
and kpartx's "-a" switch will create entries in /dev/mapper. The man
page gives all the gory details.
Typically, kpartx will report two partitions -- the first, smaller one
will be the guest's /boot, the larger one will be the guests logical volume.
So, and I haven't actually tried all of this together, but I think it
works. So, make sure the domU is not running. "kpartx -va
/dev/data/cpanel1" (or whatever) will create new entries in /dev/mapper
for the disk image contained in that logical volume. Now run "vgscan"
and that will look for any volume groups and, with any luck will find
and activate VolGroup00 which contains the file system and swap
partitions that the guest sees.
[root@HF-LINSRV01 ~]# xm console cPanel002
lvscan
ACTIVE '/dev/VolGroup00/LogVol00' [95.59 GB] inherit
ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GB] inherit
So this is what you'll see in domU now.
At this stage, I'd be inclined to delete LogVol01 (which is almost
certainly swap, but you should check) and then shrink the file system in
LogVol00 with resize2fs. Then shrink LogVol00 to snugly fit around the
file system, then pvresize to shrink the physical volume and the
lvcreate to re-create the swap partition. So, broadly speaking, you
want to resize the file system to, say, 8GB, shrink the physical volume
to 10GB and then create a new 2GB logical volume for swap. "vgdisplay
-v /dev/VolGroup00" will tell you the name of the physical volume you
want to shrink. Now you can de-activate VolGroup00, run kpartx -vd to
delete the entries in /dev/mapper and run fdisk on /dev/data/cpanel1 and
shrink the partition that holds the physical volume.
Finally, and this is the last step, you can run lvresize
/dev/data/cpanel1 to reduce the size of the logical volume in dom0.
What you were doing was hoping that shrinking /dev/data/cpanel1 would
somehow shrink all of the data structures contained in that logical
volume. LVM, of course, neither knows nor cares what you actually store
in a logical volume which is why it gives that warning message.
I generally over-shrink file systems and whatnot and then grow them to
fill the available space once their container has been resized because
that means I don't need to worry about off-by-a-bit errors corrupting
vital file systems.
Oh yes, back up anything important before you start :-)
Hope this helps.
jch
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|
|
|
|
|