Ultimate LVM Cheat Sheet for Linux Sysadmins
Ultimate LVM Cheat Sheet for Linux Sysadmins
Ultimate LVM Cheat Sheet for Linux Sysadmins
A complete reference for managing LVM on Linux systems. Covers creation, management, snapshots, thin provisioning, monitoring, troubleshooting, and best practices.
🔹 LVM Concepts
- PV (Physical Volume) – Physical disk or partition used by LVM.
- VG (Volume Group) – Pool of storage made from PVs.
- LV (Logical Volume) – Virtual disk created from VG.
- PE / LE (Physical / Logical Extents) – Storage allocation unit.
- Snapshot – Point-in-time copy of an LV.
- Thin LV – Logical volume with on-demand storage allocation.
- Mirror / Stripe – LV layouts for redundancy and performance.
🔹 Physical Volumes (PV)
- Create PV:
1
sudo pvcreate /dev/sdb - Display PV info:
1 2
pvdisplay pvs
- Remove PV:
1
sudo pvremove /dev/sdb - Move PV data:
1
pvmove /dev/sdb
- Backup PV metadata:
1
pvcreate --restorefile /root/pvmetadata.bak /dev/sdb - Recover PV metadata:
1
vgcfgrestore vg_name
🔹 Volume Groups (VG)
- Create VG:
1
sudo vgcreate vg_data /dev/sdb /dev/sdc - List VGs:
1 2
vgdisplay vgs
- Extend VG (add PV):
1
sudo vgextend vg_data /dev/sdd - Reduce VG (remove PV):
1
sudo vgreduce vg_data /dev/sdd - Rename VG:
1
sudo vgrename old_name new_name - Remove VG:
1
sudo vgremove vg_data - Check VG free space:
1 2
vgdisplay vg_data vgs
🔹 Logical Volumes (LV)
- Create LV:
1
sudo lvcreate -n lv_data -L 10G vg_data
- Create LV using 100% free space:
1
sudo lvcreate -l 100%FREE -n lv_data vg_data
- Display LVs:
1 2
lvdisplay lvs
- Remove LV:
1
sudo lvremove /dev/vg_data/lv_data - Resize LV (grow):
1 2 3
sudo lvextend -L +5G /dev/vg_data/lv_data resize2fs /dev/vg_data/lv_data # ext4 xfs_growfs /mount/point # XFS
- Resize LV (shrink – risky!):
1 2
sudo lvreduce -L 5G /dev/vg_data/lv_data resize2fs /dev/vg_data/lv_data
- Rename LV:
1
sudo lvrename vg_data lv_data lv_backup
🔹 LV Snapshots
- Create snapshot:
1
sudo lvcreate -s -n lv_data_snap -L 1G /dev/vg_data/lv_data
- List snapshots:
1
lvs -a - Remove snapshot:
1
sudo lvremove /dev/vg_data/lv_data_snap - Restore from snapshot:
1
lvconvert --merge /dev/vg_data/lv_data_snap
🔹 Thin Provisioning
- Create thin pool:
1
lvcreate -L 50G -T vg_data/thinpool
- Create thin LV:
1
lvcreate -V 10G -T vg_data/thinpool -n lv_thin
- List thin LVs:
1
lvs -a -o+seg_monitor
- Resize thin LV:
1
lvextend -L +5G /dev/vg_data/lv_thin
🔹 Advanced Layouts
- Striped LV (performance):
1
lvcreate -i2 -I64 -L 20G -n lv_striped vg_data /dev/sdb /dev/sdc
- Mirrored LV (redundancy):
1
lvcreate -m1 -L 10G -n lv_mirror vg_data
- Convert to mirrored LV:
1
lvconvert -m1 /dev/vg_data/lv_data
🔹 Mounting & Filesystems
- Format LV:
1 2
mkfs.ext4 /dev/vg_data/lv_data mkfs.xfs /dev/vg_data/lv_data
- Mount LV:
1
sudo mount /dev/vg_data/lv_data /mnt/data - Add to /etc/fstab:
1
/dev/vg_data/lv_data /mnt/data ext4 defaults 0 2
- Check LV usage:
1
df -h /mnt/data
🔹 Monitoring & Troubleshooting
- Check free space in VG:
1 2
vgdisplay vg_data vgs
- Check LV sizes:
1 2
lvs lvdisplay
- Check PVs and extents:
1 2
pvdisplay pvs
- Check filesystem on LV:
1
fsck /dev/vg_data/lv_data
- Recover VG/LV metadata:
1 2
vgcfgrestore vg_data lvconvert --repair /dev/vg_data/lv_data - Activate / Deactivate LV:
1 2
lvchange -ay /dev/vg_data/lv_data lvchange -an /dev/vg_data/lv_data
🔹 Backup & Restore
- Backup LVM metadata:
1
vgcfgbackup vg_data
- Restore LVM metadata:
1
vgcfgrestore vg_data
- Use snapshots for backups:
1 2 3
lvcreate -s -n lv_data_snap -L 1G /dev/vg_data/lv_data tar -czvf /backup/lv_data.tar.gz /mnt/data lvremove /dev/vg_data/lv_data_snap
🔹 LVM Legend
- PV – Physical Volume
- VG – Volume Group
- LV – Logical Volume
- PE / LE – Physical / Logical extents
- Snapshot – Point-in-time copy of an LV
- Thin LV – On-demand allocated LV
- Mirror / Stripe – LV layout for redundancy/performance
- Thin Pool – Storage pool for thin LVs
- lvextend / lvreduce – Resize LVs
- vgextend / vgreduce – Resize VGs
- pvmove – Move data between PVs
🔹 Best Practices
- Always backup data before resizing or removing LVs.
- Use snapshots before risky operations.
- Monitor VG free space regularly:
vgs/vgdisplay. - Keep LVs logically organized by purpose (
/var,/home,/data). - Avoid shrinking LVs unless filesystem contents are fully verified.
- Use RAID underneath LVM for redundancy and performance.
- Document LVM layout for disaster recovery.
- Use thin provisioning carefully, monitor usage to avoid overcommit.
- Periodically check filesystem integrity on LVs:
fsckorxfs_repair. - Use activation/deactivation of LVs to manage maintenance safely.
This post is licensed under CC BY 4.0 by the author.