How to Increase Volume Group Size on Enterprise Linux
According to the information below, we are sure about that there do have free space in VG, so we can proceed to increase the size for LVs.
[root@test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 2 2 0 wz--n- 239.50g 200.00g
[root@test ~]# lvdisplay
--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID Bnn3r1-tOxw-DrI7-gMnj-bEU7-ML32-JQFIGw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-07-17 19:10:08 +0800
LV Status available
# open 1
LV Size 35.63 GiB
Current LE 9122
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID ieeYp9-JQXA-FMHq-bfTG-cbCj-Y2EN-JbCEng
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-07-17 19:10:12 +0800
LV Status available
# open 1
LV Size 3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
There're two kinds of option that you can add space to LV.
- Add exact number of GB to the LV. The -L is used for size.
- Add all free extents to the LV. The -l is used for extents.
[root@test ~]# lvextend -L +100GB /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 135.63 GiB
Logical volume lv_root successfully resized
[root@test ~]# lvextend -l +100%FREE /dev/mapper/VolGroup-lv_root
Extending logical volume lv_root to 235.63 GiB
Logical volume lv_root successfully resized
[root@test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
VolGroup 2 2 0 wz--n- 239.50g 0
[root@test ~]# lvdisplay
--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID Bnn3r1-tOxw-DrI7-gMnj-bEU7-ML32-JQFIGw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-07-17 19:10:08 +0800
LV Status available
# open 1
LV Size 235.63 GiB
Current LE 60321
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
--- Logical volume ---
LV Path /dev/VolGroup/lv_swap
LV Name lv_swap
VG Name VolGroup
LV UUID ieeYp9-JQXA-FMHq-bfTG-cbCj-Y2EN-JbCEng
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2014-07-17 19:10:12 +0800
LV Status available
# open 1
LV Size 3.88 GiB
Current LE 992
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
Have we done yet? No, above actions were all on Volume-level, we still have some works on OS-level.
First, check the space usage in the system.
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 36G 26G 7.5G 78% /
...
Apparently, the added 200GB does not get into it. We can use resize2fs to solve this.
[root@test ~]# resize2fs -p /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 3, new_desc_blocks = 15
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 61768704 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 61768704 blocks long.
If you're working on xfs file system, you should use xfs_growfs:
[root@test ~]# xfs_growfs /dev/mapper/VolGroup-lv_root
It will grow to the maximum size supported by the device.
Please note that, you don't have to umount the LV before doing resize2fs because this kind of resizing can be done online.
Let's see the final result.
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 232G 26G 195G 12% /
...
The added space can be serviceable now.