Logical Volume Manager

From Christoph's Personal Wiki
Revision as of 04:06, 9 March 2014 by Christoph (Talk | contribs)

Jump to: navigation, search

This article will explain how to use the Logical Volume Manager (LVM) in Linux.

Note: This article will cover how to use LVM under RedHat-style distros. Everything was tested using CentOS 6.5.

Logical volume stack

I like to think of logical volumes as a stack, with the physical part on the bottom and you are stacking each element on top:

filesystem (FS)
Logical volume (LV)
Volume group (VG)
Physical volume (PV)

Another way to visualize this is like so (adapted {and inverted} from Erik Bågfors' diagram):

 ext4    ext4  (filesystems)
  |        |
rootlv  homelv (LVs)
   \      /
    \    /
    diskvg     (VG)
    /   \
   /     \
 xvdb1  xvdb2  (PVs; on partitions or whole disks)

Examples

Creating a logical volume

  • Prepare a physical volume:
fdisk -cu /dev/xvde
pvcreate /dev/xvde1
pvdisplay /dev/xvde1
pvs
  • Create a volume group:
vgcreate vgname /dev/xvde1
vgdisplay vgname
vgs
  • Create and use a new logical volume:
lvcreate -n lvname -L 1G vgname
lvdisplay /dev/vgname/lvname
lvs
ls -l /dev/vgname/lvname
#~OR~
ls -l /dev/mapper/vgname-lvname
  • Make a filesystem inside the above logical volume (ext4 in this example):
mkfs.ext4 /dev/vgname/lvname
  • Test mount it:
mkdir /data
mount /dev/vgname/lvname /data
umount /data  # un-mount it before proceeding
  • Make it persistent by adding the following line to your /etc/fstab file and test mount it (again):
/dev/mapper/vgname-lvname  /data  ext4  defaults  1 2
mount -a

External links

  • LVM HOWTO — by The Linux Documentation Project (TLDP)