First LVM commands to get overview on server:
pvs # report information about physical volumes
vgs # report information about volume groups
lvs # report information about logical volumes
Add disk to LVM
# Remove disk partition table
dd if=/dev/zero of=/dev/hda bs=512 count=1
# Create physical volume
/usr/sbin/pvcreate /dev/hda
# check
/usr/sbin/pvscan
# list volume groups in details
/usr/sbin/vgdisplay
# add physical volume to existent Volume Group
/usr/sbin/vgextend VolGroup00 /dev/hda
# check changes
/usr/sbin/vgdisplay
# Create logical volume
/usr/sbin/lvcreate -L 1G -n phn1 VolGroup00
# check
/usr/sbin/lvscan
# create filesystem
/sbin/mkfs.ext3 /dev/VolGroup00/phn1
# mount
mount /dev/VolGroup00/phn1 /mnt
# reduce filesystem syze
umount /mnt
/sbin/resize2fs -p /dev/VolGroup00/phn1 400M
# check
/sbin/e2fsck /dev/VolGroup00/phn1
# reduce logical volume
/usr/sbin/lvresize -L 900M /dev/VolGroup00/phn1
# create one more logical volume
/usr/sbin/lvcreate -L 1G -n phn2 VolGroup00
# check
/usr/sbin/lvscan
# remove logical volumes
/usr/sbin/lvremove /dev/VolGroup00/phn1
/usr/sbin/lvremove /dev/VolGroup00/phn2
# remove disk from volme group
/usr/sbin/vgreduce VolGroup00 /dev/hda
/usr/sbin/pvremove /dev/hda
# check
/usr/sbin/pvscan
Extend root partition without reboot
/dev/rootvg/rootlv = 4 GB
/dev/rootvg = 10 GB
add 4 GB to /dev/rootvg/rootlv
lvresize /dev/rootvg/rootlv -L+4G
resize2fs -p /dev/mapper/rootvg-rootlv 8G
lvresize /dev/VolGroup00/LogVol00 -L+10G
# For RedHat 4:
ext2online /zxc
/zxc mount point
LVM access from another system.
Boot Install DVD
boot: linux rescue
# Activate logical volumes
lvm vgscan
lvm vgchange -ay
lvm lvs
Rename logical volumes
lvrename vg_name old_lv new_lv
Create logical volume, use all available space
lvcreate -l 100%FREE -n phn_lv phn_vg
Extend logical volume, use all available space
lvextend -l +100%FREE /dev/phn_vg/phn_lv
Extend filesystem on RedHat 4
ext2online /dev/mapper/phn_vg-phn_lv
Another example
fdisk /dev/sdb
partprobe
pvcreate /dev/sdb1
vgextend rootvg /dev/sdb1
lvextend -L+15G /dev/mapper/rootvg-opt_lv
lvextend -L+5G /dev/mapper/rootvg-rafw_lv
lvextend -l +100%FREE /dev/mapper/rootvg-media_lv
resize2fs -p /dev/mapper/rootvg-opt_lv
resize2fs -p /dev/mapper/rootvg-rafw_lv
resize2fs -p /dev/mapper/rootvg-media_lv
Extend root using another partition disk space:
umount /work
e2fsck -f /dev/mapper/vg0-work
resize2fs -p /dev/mapper/vg0-work 20G
lvreduce -L 26G /dev/mapper/vg0-work
resize2fs -p /dev/mapper/vg0-work
e2fsck -f /dev/mapper/vg0-work
mount /work
lvextend -l +100%FREE /dev/mapper/vg0-root
resize2fs -p /dev/mapper/vg0-root
Reduce volume group
ext4 does not support online size reduce.
Check that files are not in use:
lsof | grep /tmp
Check what minimal size is possible
df -h /tmp
Shrink to minimal size
umount /tmp
e2fsck -f /dev/mapper/vg0-tmp
resize2fs -M /dev/mapper/vg0-tmp
Set new size
lvreduce --size 10G /dev/mapper/vg0-tmp
resize2fs -p /dev/mapper/vg0-tmp
mount -a
Add available size to another volume
lvextend -l +100%FREE /dev/mapper/vg0-var
resize2fs -p /dev/mapper/vg0-var
XFS
xfs_growfs /dev/mapper/centos-root