====== Logical Volume Manager ====== * [[http://www.cyberciti.biz/tips/consistent-backup-linux-logical-volume-manager-snapshots.html|Consistent backup with Linux Logical Volume Manager (LVM) snapshots]] * [[http://www.howtoforge.com/encrypted-root-lvm|Encrypted root LVM]] ===== 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 * **p** to Print the existing table (should be blank) * **n** to create a new partition * **t** to change partition system ID to 8e (Linux LVM) * **w** to write new table to disk 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