Monday, August 4, 2014

Live Resize of Logical Volume in RHEL/CentOS

The default installation of RHEL 6 and CentOS 6 will create separate LVM volumes for /home. This means much of your disk is allocated to /home when it could be used for something else. Keeping /home on a separate partition is a good idea for multi-user systems, but for machines that act as a service box, it may be wasted disk space. For example, here’s a system that has 50G partitioned for /home when it’s really not needed.
1df -h
2Filesystem                  Size  Used Avail Use% Mounted on
3/dev/mapper/vg_repo-lv_root 148G  113G   29G  80% /
4tmpfs                       499M     0  499M   0% /dev/shm
5/dev/sda1                   485M  156M  304M  34% /boot
6/dev/mapper/vg_repo-lv_home 47G  181M   45G   1%  /home
To remove the logical volume that stores /home and add the free space to the root partition, follow these steps:
Note: Make sure you’re logged into the system at the console as a user whose homedir isn’t in /home. Logging in as root usually works.
1
cd /
2cp -Ra /home /home.bak  # Make a backup of home
3umount /home
4lvm lvremove /dev/vg_<hostname>/lv_home  # Remove the logical volume for home
5lvm lvresize -l+100%FREE /dev/vg_<hostname>/lv_root  # Resize the root logical volume so it uses 100% of the now free space
6resize2fs /dev/vg_<hostname>/lv_root  # Resize the filesystem to use the whole logical volume
7mv /home.bak /home  # Restore the backup.
More Notes:
  • This can be done on a live system as long as /home is not in use when you try to unmount it.
  • You can also follow these steps to resize another logical volume if it has another name and isn’t in use.
  • This may work with some adjustments on a RHEL/CentOS 5 system, I haven’t tried it though.
  • you should definitly remove auto-mount information from /etc/fstab before rebooting the server.
  • You’ll have to remove /home from /etc/fstab afterwards.

No comments:

Post a Comment