Table of Contents

Logical Volume Manager

Example usage

Start by looking at our existing disks

cat /proc/scsi/
dmesg |grep sd

Next, partition the new disks using fdisk

fdisk /dev/sdb

Repeat for /dev/sdc Create the physical volumes

pvcreate /dev/sdb1
pvcreate /dev/sdc1

NOTE: You can create multiple PVs on a single disk, but it is not recommended. Show existing Physical Volumes

pvscan

Show Volume Groups

vgscan (should return nothing)

Create a Volume Group from the Physical Volumes

vgcreate opt_vg /dev/sdb1 /dev/sdc1

NOTE: You can specify PE size in vgcreate. Default is 4M. You'd use larger PE sizes for LVs greater than 256G. 65K PEs per LV.

Show Volume Groups

vgscan (now shows the VG we created)

Display information about the VG

vgdisplay 

Create a Logical Volume within the VG

lvcreate -l num_of_extents -n opt_lv opt_vg
lvcreate -L 100M -n opt_lv opt_vg
lvcreate -L 100M -n opt_lv -i num_stripes opt_vg
lvcreate -L 100M -n opt_lv opt_vg [PhysicalVolumePath]

Display information about the LV

lvdisplay
lvdisplay -m (Show maps. Compare striped vs un-striped)

Create a mount point

mkdir /opt/foo1
mkdir /opt/striped

Create a filesystem

mkfs.ext3 /dev/opt_vg/opt_lv
mkfs.ext3 /dev/opt_vg/striped_lv

Mount the filesystems

mount /dev/opt_vg/opt_lv
df -h 

Growing a Filesystem

Grow an EXT2/3 filesystem (with unmount)

Unmount the FS

umount /mnt/lvm_filesystem

Extend the LV

lvresize -l +50 /dev/opt_vg/opt_lv
lvresize -L +200M /dev/opt_vg/opt_lv

fsck the filesystem

e2fsck -f /dev/opt_vg/opt_lv

Resize the filesystem

resize2fs /dev/opt_vg/opt_lv

Remount the filesystem

mount -t ext3 /dev/opt_vg/opt_lv /mnt/lvm_filesystem

Grow an EXT2/3 filesystem (without unmount)

Extend the LV

lvresize -l +50 /dev/opt_vg/opt_lv
lvresize -L +200M /dev/opt_vg/opt_lv

Grow the filesystem

ext2online /mnt/lvm_filesystem (using mount path)
ext2online /dev/opt_vg/opt_lv (using device)

Grow a ReiserFS filesystem Create a ReiserFS on /dev/opt_vg/striped_lv

mkreiserfs /dev/opt_vg/striped_lv

Mount the FS

df -h
lvresize -L +50M /dev/opt_vg/striped_lv
resize_reiserfs -f /dev/opt_vg/striped_lv
df -h

Add a Physical Volume to a VG

vgextend vgname /path/to/PV

Resizing crypted LVM

 cryptsetup -c aes -h ripemd160 -s 256 create home /dev/disk_array/data
 pvcreate /dev/hde1
 vgextend disk_array /dev/hde1
 lvresize -L +114G /dev/disk_array/data
 cryptsetup resize home
 resize_reiserfs -s +114G /dev/mapper/home