
I was running OEL 5.6 as the guest OS on VMWare hosted in a Fedora machine.
The machine had a 20Gb virtual disk and I had initially allocated about 11Gb to the root system.
I know it is not within best practice, but I was doing some quick configuration tests with Oracle so I had decided to install software and database files in the root file system.
Well, a couple of oracle releases later I had run out of space in the file system.
So the scenario was:
- The VM had a 20Gb disk allocated, but
 - The disks partitions were only about 12Gb big, divided in two logical volumes: lv00 mapped to the root file system and lv01 used by the swap file system.
 - Its usually pretty easy to extend a file system. Just unmount it and run a couple of commands. But you can't unmount the root file system and keep the system going.
 
(?) So how to extend the logical volume and the file system?
- Well, it turns out that this can be done without having to unmount the root file system for systems with a 2.6 kernel. You just need to use 
lvextendandresize2fs. 
Here is some output of the initial scenario:
jdoe@quark # fdisk -l Disk /dev/sda: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 19 152586 83 Linux /dev/sda2 20 2610 20812207+ 8e Linux LVM Disk /dev/dm-0 doesn't contain a valid partition table Disk /dev/dm-1: 2147 MB, 2147483648 bytes 255 heads, 63 sectors/track, 261 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/dm-1 doesn't contain a valid partition table
jdoe@quark # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VG00-LV00
                       12G   11G     0 100% /
/dev/sda1             145M   20M  118M  15% /boot
tmpfs                 944M     0  944M   0% /dev/shm
The output of
vgdisplay: jdoe@quark # vgdisplay --- Volume group --- VG Name VG00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.84 GB PE Size 32.00 MB Total PE 635 Alloc PE / Size 439 / 13.72 GB Free PE / Size 196 / 6.12 GB VG UUID y8WrXG-06ej-erEH-k3QV-fqvy-VJ8O-1hV4uT
The output of pvscan:
jdoe@quark # pvscan PV /dev/sda2 VG VG00 lvm2 [19.84 GB / 6.12 GB free] Total: 1 [19.84 GB] / in use: 1 [19.84 GB] / in no VG: 0 [0 ]
Solution:
- Since the total disk space on /dev/sda was already allocated to the Volume group, 
what I needed to do was just to extend the logical volume to use the free space in the volume group. 
jdoe@quark # lvextend -l+196 /dev/VG00/LV00 Extending logical volume LV00 to 17.84 GB Logical volume LV00 successfully resized jdoe@quark # jdoe@quark # resize2fs /dev/VG00/LV00 resize2fs 1.39 (29-May-2006) Filesystem at /dev/VG00/LV00 is mounted on /; on-line resizing required Performing an on-line resize of /dev/VG00/LV00 to 4677632 (4k) blocks. The filesystem on /dev/VG00/LV00 is now 4677632 blocks long.
And that did it.
Here are some printouts of the final scenario:
jdoe@quark # fdisk -l
Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        2610    20812207+  8e  Linux LVM
jdoe@quark # df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VG00-LV00
                       18G   11G  5.7G  66% /
/dev/sda1             145M   20M  118M  15% /boot
tmpfs                 944M     0  944M   0% /dev/shm
jdoe@quark # vgdisplay
--- Volume group ---
VG Name               VG00
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  4
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               19.84 GB
PE Size               32.00 MB
Total PE              635
Alloc PE / Size       635 / 19.84 GB
Free  PE / Size       0 / 0   
VG UUID               y8WrXG-06ej-erEH-k3QV-fqvy-VJ8O-1hV4uT
