LVM on Linux




Physical volume (e.g. a partition, RAID array, etc)


Volume Group - a collection of PV’s that we can use the space from


Logical volume - a partition created from space in a VG

Physical volumes

  • List physical volumes : pvdisplay , or pvs for briefer output

  • Info about one PV : pvdisplay <PV name>

  • Partition type for LVM: 8e

  • Make a PV from a partition : pvcreate <partition>

Volume groups

  • Create a volume group : vgcreate <NewVGName> <PVname> [<PVname>...]

  • Add PV to VG : vgextend <VGname> <PVname>

  • Remove PV from VG : vgreduce <VG name> <PV name>

  • List volume groups : vgdisplay, or vgs for briefer output

  • Removing a VG:

    Make sure that no logical volumes are present in the volume group,
    see later section for how to do this.
    Deactivate the volume group:
    # vgchange -a n my_volume_group
    Now you actually remove the volume group:
    # vgremove my_volume_group

Logical volumes

  • List logical volumes : lvdisplay, or lvs for briefer output

  • Create LV : lvcreate -L<SIZE> -n<NewLVName> <VGname> (SIZE=<num><units>, e.g. 1.47TiB) or -l<EXTENTS>

  • Device name of the logical volume = /dev/<VGname>/<LVname>

  • Enlarge LV : lvextend -l+<extents> /dev/<VGname>/<LVname>

  • Reduce LV: lvreduce -L<newSIZE> /dev/<VGNAME>/<LVname>

    Add -r to resize the filesystem at the same time. Otherwise, be sure to shrink the filesystem first.

  • Remove LV:

A logical volume must be closed before it can be removed:

# umount /dev/myvg/homevol
# lvremove /dev/myvg/homevol
lvremove -- do you really want to remove "/dev/myvg/homevol"? [y/n]: y
lvremove -- doing automatic backup of volume group "myvg"
lvremove -- logical volume "/dev/myvg/homevol" successfully removed

Resize file system after enlarging LV

Either of these will use all the available space.

sudo ext2fs -f /dev/<VGname>/<LVname> sudo resize2fs /dev/<VGname>/<LVname>