Logical Volume Management (LVM)
https://www.howtoforge.com/linux_lvm
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
- Create the filesystems
mkfs.ext4 /dev/pilaf/pilaf_raw mkfs.ext4 /dev/pilaf/pilaf_converter
- Add /etc/fstab entries
/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
- Extend the filesystem
e2fsck -f /dev/pilaf/pilaf_converter resize2fs /dev/pilaf/pilaf_converter
- Mount again
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 again
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)
- Prepare
pvcreate /dev/sdX1
- Extend Volume Group
vgextend fileserver /dev/sdX1
- Check
vgdisplay
Remove
- Move data to some other disk
pvmove /dev/sdb1 /dev/sdf1
- Remove disk from Volume Group
vgreduce fileserver /dev/sdb1 vgdisplay
- Remove Phisical Volume
pvremove /dev/sdb1 pvdisplay
LVM Backup
https://www.howtoforge.com/linux_lvm_snapshots
Activate inactive Logical Group
vgchange -a y
Rename Logigal Volume
lvrename /dev/vg02/lvold /dev/vg02/lvnew lvrename vg02 lvold lvnew