CentOS LVM Resize

Since the release of CentOS 5.5 we noticed that the default CentOS install assigns a considerable amount of its available storage space to Swap. If you don’t catch this during the installation don’t worry, Logical Volume Manager or LVM will rectify this post install.

LVM is a logical volume manager for the Linux kernel; it manages disk drives and similar mass-storage devices, in particular large ones. The term “volume” refers to a disk drive or partition thereof.

Before we start just some general housekeeping. The XEN virtual CentOS 5.5 server (base install) in this tutorial was assigned 10GB of storage with the default partitioning layout.

Let check the amount of disk space available on the file system.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      4.9G  2.4G  2.3G  51% /
/dev/xvda1             99M   23M   72M  25% /boot
tmpfs                 4.0G     0  4.0G   0% /dev/shm

Let see the attributes of the logical volumes like size, read/write status, snapshot information

# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                oFXKGg-nBPo-Fk27-3ino-zaHZ-cEcv-fk0dS0
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                5.00 GB
  Current LE             160
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                Ntffw7-dqPh-Rjhy-rWLv-BGA0-iGik-LoyHET
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                4.88 GB
  Current LE             156
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

Let’s begin but first turning off swap on the Swap Logical Volume

# swapoff /dev/VolGroup00/LogVol01

Once swap is off let’s take the disk space we require.

# lvresize -L -4GB /dev/VolGroup00/LogVol01
  WARNING: Reducing active logical volume to 896.00 MB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce LogVol01? [y/n]: y
  Reducing logical volume LogVol01 to 896.00 MB
  Logical volume LogVol01 successfully resized

Now let’s add what we removed to the main Logical Volume.

# lvresize -L +4GB /dev/VolGroup00/LogVol00
  Extending logical volume LogVol00 to 9.00 GB
  Logical volume LogVol00 successfully resized

Resize the File System

# resize2fs -p /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 2359296 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 2359296 blocks long.

Rebuild the swap partition.

# mkswap /dev/VolGroup00/LogVol01
Setting up swapspace version 1, size = 939520 kB

Turn swap on.

# swapon /dev/VolGroup00/LogVol01

Let’s check the amount of disk space available and LVM attributes to see if our changes took effect.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      8.8G  2.4G  6.0G  28% /
/dev/xvda1             99M   23M   72M  25% /boot
tmpfs                 4.0G     0  4.0G   0% /dev/shm
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                oFXKGg-nBPo-Fk27-3ino-zaHZ-cEcv-fk0dS0
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                9.00 GB
  Current LE             288
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                Ntffw7-dqPh-Rjhy-rWLv-BGA0-iGik-LoyHET
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                896.00 MB
  Current LE             28
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1