====== Resize LVM ====== === Creating a new Logical Volume === In this example we will create a new logical volume called **wworks**, mounted at **/wworks** which will be part of the **vg00** Volume Group at **/dev/mapper/vg00-lv_wworks** 1. Check to see how much free space you have to allocate the new logical volume: [root@gi-rgs-rng01 /]# vgdisplay | egrep 'Name|Free' VG Name vg00 Free PE / Size 2515 / 78.59 GB 2. Create the new logical volume and assign it to the vg00 volume group: [root@gi-rgs-rng01 /]# lvcreate -L 30G -n lv_wworks vg00 Logical volume "lv_wworks" created 3. Format it with a journalled filesystem: mkfs.ext3 -j /dev/mapper/vg00-lv_wworks 4. Add the new entry to fstab (use the others as a template): [root@gi-rgs-rng01 /]# cat /etc/fstab | grep wworks /dev/vg00/lv_wworks /wwworks ext3 defaults 1 2 5. Mount the new logical volume and test it: [root@gi-rgs-rng01 /]# mount -a && df -h | egrep 'File|wworks' && echo "test">/wworks/neil.test && cat /wworks/neil.test Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg00-lv_wworks 30G 76M 28G 1% /wworks test 6. You can also see it as a member of the vg00 Volume Group: [root@gi-rgs-rng01 /]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert lv_home vg00 -wi-ao 10.00G lv_log vg00 -wi-ao 10.00G lv_root vg00 -wi-ao 15.00G lv_swap vg00 -wi-ao 5.88G lv_tmp vg00 -wi-ao 2.00G lv_var vg00 -wi-ao 15.00G lv_wworks vg00 -wi-ao 30.00G === Reducing the size of an LVM === In this example we will reduce the size of **/var/log** which is an LV at **/dev/mapper/vg00-lv_log** [root@gi-rgs-rng01 /]# df -h | egrep 'Filesystem|log' Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg00-lv_log 50G 85M 47G 1% /var/log 1. Ensure the filesystem is unmounted $ umount /var/log 2. If the mount point is in use try identifying what's using it with lsof: $ lsof | grep "/var/log" 3. Ensure /var/log is no longer mounted. $ df -h | grep "/var/log" // // **Ensure the amount of data contained within the LV does not exceed the size you will be reducing it to or this will result in data loss.** // // 4. First the filesystem needs to be checked. [root@gi-rgs-rng01 /]# e2fsck -f /dev/mapper/vg00-lv_log e2fsck 1.35 (28-Feb-2004) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/mapper/vg00-lv_log: 56/6553600 files (19.6% non-contiguous), 227290/13107200 blocks 5. Now reduce the filesystem to 10GB. [root@gi-rgs-rng01 /]# resize2fs /dev/mapper/vg00-lv_log 10G resize2fs 1.35 (28-Feb-2004) Resizing the filesystem on /dev/mapper/vg00-lv_log to 2621440 (4k) blocks. The filesystem on /dev/mapper/vg00-lv_log is now 2621440 blocks long. 6. Now reduce the size of the LV: [root@gi-rgs-rng01 /]# lvreduce -L 10G /dev/mapper/vg00-lv_log WARNING: Reducing active logical volume to 10.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lv_log? [y/n]: y Reducing logical volume lv_log to 10.00 GB Logical volume lv_log successfully resized 7. Remount the partition and check the new size is correct: [root@gi-rgs-rng01 /]# mount -a ; df -h | egrep 'Filesystem|log' Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg00-lv_log 9.9G 69M 9.3G 1% /var/log === Extending the size of a Logical Volume === In this example we will extend the size of **/wworks** which is an LV at **/dev/mapper/vg00-lv_wworks**, to 50GB. 1. Ensure the filesystem is unmounted $ umount /wworks 2. If the mount point is in use try identifying what's using it with lsof: $ lsof | grep "/wworks" 3. Ensure /var/log is no longer mounted. $ df -h | grep "/wworks" 4. Extend the size of the logical volume: $ lvextend -L 50GB /dev/mapper/vg00-lv_wworks 5. Now extend the filesystem to that new size $ resizefs /dev/mapper/vg00-lv_wworks 50G 6. Remount the partition and check the new size is correct: $ mount -a ; df -h | egrep 'Filesystem|wworks'