Creating LVMs
- Partition disks as Linux LVM with fdisk
- Prepare new partitions for LVM Example:
pvcreate /dev/sdb1 /dev/sdc1 /dev/sde1 # pvremove /dev/sdb1 /dev/sdc1 /dev/sde1 to revert
pvdisplay # to show Physycal volumenes
- Create a volume group example 'pilaf':
vgcreate pilaf /dev/sdg1 /dev/sdf1 # vgremove pilaf to delete
- Check existing Volume Groups
vgdisplay
vgscan
- Create logical volumes in volume group
lvcreate --name pilaf_copy --size 4T pilaf
lvcreate --name pilaf_converter --size 4T pilaf
- Check existing logical volumes with:
lvdisplay / lvscan
- Rename logical volumes with
lvrename {volume_group} {old_name} {new_name} | example: lvrename pilaf pilaf_copy pilaf_raw
- Enlarge/reduce Logical volume with:
lvextend -L4.5T /dev/pilaf/pilaf_raw
lvreduce -L4T /dev/pilaf/pilaf_raw
mkfs.ext4 /dev/pilaf/pilaf_raw
mkfs.ext4 /dev/pilaf/pilaf_converter
/dev/pilaf/pilaf_raw /Pilaf ext4 rw,noatime 0 0
/dev/pilaf/pilaf_converter /PilafConverter ext4 rw,noatime 0 0
Resize LVM Logical Volumes & Filesystems
Enlarge
- Unmount the Logical Volume
/umount /PilafConverter
- Extend the Logical Volume
lvextend -L 4.5T /dev/pilaf/pilaf_converter
e2fsck -f /dev/pilaf/pilaf_converter
resize2fs /dev/pilaf/pilaf_converter
mount /dev/pilaf/pilaf_converter /PilafConverter
Shrink
- Unmount the Logical Volume
/umount /PilafConverter
- Shrink (Requires a number of blocks)
e2fsck -f /dev/pilaf/pilaf_converter # to figure out the blocks we want to keep
resize2fs /dev/pilaf/pilaf_converter 104857600
lvreduce -L40G /dev/pilaf/pilaf_converter
mount /dev/pilaf/pilaf_converter /PilafConverter
Add/Remove Hard Drives
Add
- Format the new HD with fdisk (Linux LVM)
fdisk /dev/sdX (n (new)--> p (primary)--> 1 (default sdX1)--> t --> Linux LVM (8e|30) --> w)
pvcreate /dev/sdX1
vgextend fileserver /dev/sdX1
vgdisplay
Remove
- Move data to some other disk
pvmove /dev/sdb1 /dev/sdf1
- Remove disk from Volume Group
vgreduce fileserver /dev/sdb1
vgdisplay
pvremove /dev/sdb1
pvdisplay
LVM Backup
https://www.howtoforge.com/linux_lvm_snapshots
Rename Logigal Volume
lvrename /dev/vg02/lvold /dev/vg02/lvnew
lvrename vg02 lvold lvnew