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'

rb/linux-resize-lvm.txt · Last modified: 20/08/2019 13:01 by andrew