Being able to resize an LVM volume without reboot is quite handy. I had described one way here. This is a slightly different take on the same topic, this time on RHEL 6.
I had resized /dev/sdb from 48GB to 140GB in vCenter. However, the operating system is still seeing the old size:
[root@build ~]# fdisk -l /dev/sdb Disk /dev/sdb: 48.3 GB, 48318382080 bytes 64 heads, 32 sectors/track, 46080 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000a
To get RHEL to see the new size, device rescan is needed:
[root@build ~]# cd /sys/class/block/sdb/device [root@build ~]# echo "- - -" > rescan
The difference this time is that you do not need to look for the correct HBA and LUN number. You can just go by the device name. Now the operating system should see the correct disk size:
[root@build device]# fdisk -l /dev/sdb Disk /dev/sdb: 198.6 GB, 198642237440 bytes 255 heads, 63 sectors/track, 24150 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000
Now you can proceed with resizing the physical volume and the logical volume. You can throw in -t switch to do a dry run:
[root@build device]# pvresize /dev/sdb Physical volume "/dev/sdb" changed 1 physical volume(s) resized / 0 physical volume(s) not resized [root@build device]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 system lvm2 a-- 19.47g 3.00g /dev/sdb vg_app lvm2 a-- 185.00g 140.00g
The size is correct now. Finally, resize the logical volume. Again, you can throw in -t switch to do a dry run:
[root@build device]# lvresize -r -l+100%FREE /dev/mapper/vg_app-lv_app Size of logical volume vg_app/lv_app changed from 45.00 GiB (11519 extents) to 140.00 GiB (35840 extents). Logical volume lv_app successfully resized resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/vg_app-lv_app is mounted on /var/www/html/repo; on-line resizing required old desc_blocks = 3, new_desc_blocks = 9 Performing an on-line resize of /dev/mapper/vg_app-lv_app to 36700160 (4k) blocks. The filesystem on /dev/mapper/vg_app-lv_app is now 36700160 blocks long.