zeldor.biz

Linux, programming and more

Copyright © 2025
Log in

Introduction to LVM

November 21, 2010 by Igor Drobot Leave a Comment

hdd

physical volumes:
These are your physical disks, or disk partitions, such as /dev/hda or /dev/hdb1. These are what you’d be used to using when mounting/unmounting things. Using LVM we can combine multiple physical volumes into volume groups.

volume groups:
A volume group is comprised of real physical volumes, and is the storage used to create logical volumes which you can create/resize/remove and use. You can consider a volume group as a “virtual partition” which is comprised of an arbitary number of physical volumes.

logical volumes:
These are the volumes that you’ll ultimately end up mounting upon your system. They can be added, removed, and resized on the fly. Since these are contained in the volume groups they can be bigger than any single physical volume you might have. (ie. 4x5Gb drives can be combined into one 20Gb volume group, and you can then create two 10Gb logical volumes.)

apt-get update && apt-get install lvm2

apt-get update && apt-get install lvm2

pvcreate /dev/md0

pvcreate /dev/md0

Once we’ve initialised the partitions, or drives, we will create a volume group which is built up of them:

vgcreate storm /dev/md0

vgcreate storm /dev/md0

If you’ve done this correctly you’ll be able to see it included in the output of:

vgscan

vgscan

Create your first logical volume:

lvcreate -n data --size 300g storm

lvcreate -n data --size 300g storm

Your new logical volume will be accessible via:

/dev/storm/data
# or
/dev/mapper/storm-data

/dev/storm/data # or /dev/mapper/storm-data

Create file system:

mkfs.ext4 /dev/storm/data

mkfs.ext4 /dev/storm/data

Show created volumes and their sizes:

lvdisplay

lvdisplay

Extend volume:

lvextend -L+10g /dev/storm/data

lvextend -L+10g /dev/storm/data

After resizing you should resize the filesystem:

e2fsck -f /dev/storm/data 
resize2fs /dev/storm/data

e2fsck -f /dev/storm/data resize2fs /dev/storm/data

Remove volume:

lvremove /dev/storm/data

lvremove /dev/storm/data

If you need some visual help you can use: “system-config-lvm” utility co configure LVM.

LVM Stripe

First thing to say it’s a kind of RAID0; if you have the need of a single big partition but you have only multiple smaller disks, you have the possibility to crate a LVM-stripe over all your smaller disks.
In this example I have 4x 4TiB devices which will be used to create a single one with 16TiB

pvcreate /dev/sdb /dev/sdc /dev/sde /dev/sdd
# verify with:
vgdisplay to verify

pvcreate /dev/sdb /dev/sdc /dev/sde /dev/sdd # verify with: vgdisplay to verify

lvcreate -l 100%FREE -n storage backups
# to verify:
lvdisplay

lvcreate -l 100%FREE -n storage backups # to verify: lvdisplay

Create a filesystem on your 16TiB device:

mkfs.xfs -L storage /dev/mapper/storage-bacula

mkfs.xfs -L storage /dev/mapper/storage-bacula

Filed Under: Debian, Ubuntu Tagged With: disk, LVM, LVM Stripe, partition, volume

Yeaaah Cookie! We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok