====== LVM ======
LVM you can increase / decrease size without any issue.\\
But it is important you do it in proper steps.
==== Steps to create LVM from drive ====
pvcreate /dev/xvdf1
pvdisplay /dev/xvdf1
vgcreate -s 16M vg0 /dev/xvdf1
vgdisplay /dev/xvdf
vgdisplay vg0
lvcreate -n lv-vol001 vg0
lvcreate --help
lvcreate -A n -L 24.5G -n lv-vol001 vg0
mkfs.ext3 /dev/vg0/lv-vol001
==== Add drive to LVM ====
# Rescan the machine if not found.
echo "- - -" > /sys/class/scsi_host/host0/scan
# Cont.
fdisk /dev/xvdk ## Comment "Specify Type 8e by option t"
mkfs.ext3 /dev/xvdk1
pvcreate /dev/xvdk1
vgextend vg0 /dev/xvdk1
lvextend -L 300G /dev/vg0/lv-vol001
OR
lvextend -L+99.91G /dev/vg0/lv-vol001
OR
lvextend -l +100%FREE /dev/vg0/lv-vol001
resize2fs /dev/vg0/lv-vol001
==== Reducing Size ====
umount /home
e2fsck -y /dev/mapper/VolGroup00-LogVol00
resize2fs -f /dev/mapper/VolGroup00-LogVol00 1536M
lvreduce -L-512M /dev/mapper/VolGroup00-LogVol00
mount /home
==== Increasing Size ====
umount /opt/
e2fsck -y /dev/mapper/VolGroup00-LogVol02
lvextend -L+512M /dev/mapper/VolGroup00-LogVol02
OR
lvextend -l +100%FREE /dev/mapper/VolGroup00-LogVol02
resize2fs /dev/mapper/VolGroup00-LogVol02
mount /opt
==== Worked Example on Live System ====
#rescan the device
echo "- - -" > /sys/class/scsi_device/1\:0\:0\:0/device/rescan
#list devices and confirm you are going to update which drive.
fdisk -l
### Delete and recreate the partition 'make sure start block is the same'
fdisk /dev/sda ## Comment "Specify Type 8e by option t"
### Reprobe partition table.
partprobe -s
mkfs.ext3 /dev/sda1
vgextend VolGroup00 /dev/sda1
lvdisplay
vgdisplay
lvextend -l+1599 /dev/VolGroup00/LogVol00
df -kh
vgdisplay
lvdisplay
resize2fs /dev/VolGroup00/LogVol00
df -kh