[linux-lvm] How To Question
kfuchs at winternet.com
Wed Jan 28 13:23:02 UTC 2004
>Right now, I have a single /var/foo implemented as an
>LVM vol using reiserfs. It turns out - I allocated too
>much space to it.
>I now need a /var/bar.
>I'd like to re-allocate or shrink /var/foo by say 20G,
>and give it to /var/bar.
>The "How To" do this two step process is not very
>clear in the docs.
For reiserfs the (safe = unmounted logical volume) steps are:
1) umount the logical volume that contains the reiserfs to shrink.
2) Shrink the reiserfs by a specific amount using resize_reiserfs.
3) Reduce the logical volume containing the reiserfs using lvreduce by
exactly the same amount as in step 2 above.
4) mount the just shrunk/reduced reiserfs/logical volume.
It may help to relate the mount point /var/foo to the actual LVM lv
device for example, /dev/vg/foo. The four steps above would become:
# umount /var/foo
# resize_reiserfs -s -20G /dev/vg/foo
# lvreduce --size -20G /dev/vg/foo
# mount -t reiserfs /dev/vg/foo /var/foo
>I'm quite able to shrink and expand /var/foo - at
>will. My confusion is - now that I have shrunk it -
>reallocate the space I just got back?
The following command will report the size of the logical volume:
# lvdisplay /dev/vg/foo
The reported size after the shrink/reduce should 20GB less than before.
To use the freed space, do one or more the following two things:
1) Create a new logical volume in the vg volume group using lvcreate.
(For example, a new /dev/vg/bar to be mounted on /var/bar.)
2) Extend another volume with lvextend and enlarge its filesystem by the
exact same size using the appropriate filesystem resizing tool.
Ken Fuchs <kfuchs at winternet.com>
More information about the linux-lvm