Logical Volume Manager: How can I extend a Volume Group?
It is a good choice to use LVM on Linux. It provides flexible storage management than any other traditional physical partitoning. With LVM, you can easily create, delete, resize storage volumes. First of all, if you want to know what LVM is, there are many documents on the Internet (e.g. http://tldp.org/HOWTO/LVM-HOWTO/). In this example we will learn how to extend a Volume Group size.
Assume that, we have 30GB hard disk and partitioned as follows:
# fdisk /dev/sda
The number of cylinders for this disk is set to 3916. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2563 20482875 8e Linux LVM
We have two partitions;
/dev/sda1 is a non-LVM partition (Type: 0x83)
/dev/sda2 is an LVM partition (Type: 0x8e)
And we have some unpartitioned free space (3916 - 2563 = 1353 cylinders) And this is our Volume Group Info:
# vgdisplay
--- Volume group --- VG Name VolGroup00 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.53 GB PE Size 32.00 MB Total PE 625 Alloc PE / Size 625 / 19.53 GB Free PE / Size 0 / 0 VG UUID hx8M0U-TMkp-M0cB-eQpb-Avge-UddS-M0ZCc0
We allocated every PE.So, we don't have any free PE. Our goal is to extend VolGroup00 with this unpartitioned free space.
1. Use fdisk and create a new partition and change the type of it to 8e.
# fdisk /dev/sda
The number of cylinders for this disk is set to 3916. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2563 20482875 8e Linux LVM /dev/sda3 2564 3916 10867972+ 8e Linux Command (m for help): t Partition number (1-3): 3 Hex code (type L to list codes): 8e Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes 255 heads, 63 sectors/track, 3916 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 13 104391 83 Linux /dev/sda2 14 2563 20482875 8e Linux LVM /dev/sda3 2564 3916 10867972+ 8e Linux LVM Command (m for help): w #
Your new partition table should looks like above. 2. Now, we should create a new PV to use this new partition. To do this use pvcreate command. (i.e. pvcreate /dev/sda3):
# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
Okay, we have a new PV. Let's look at it.
# pvdisplay
--- Physical volume --- PV Name /dev/sda2 VG Name VolGroup00 PV Size 19.53 GB / not usable 2.81 MB Allocatable yes (but full) PE Size (KByte) 32768 Total PE 625 Free PE 0 Allocated PE 625 PV UUID vRmmoI-0cM9-AFRS-1ruI-1b7S-IKCn-gO35nl "/dev/sda3" is a new physical volume of "10.36 GB" --- NEW Physical volume --- PV Name /dev/sda3 VG Name PV Size 10.36 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID EQ2sdZ-b2a3-OThW-8TE5-LyQS-SYg4-DOmykI
3. The final step we have to extend VolGroup00 with this new PV. To do this use pvextend command. (i.e. pvextend /dev/VolGroup00 /dev/sda3). You will see something like this;
# vgextend /dev/VolGroup00 /dev/sda3
Volume group "VolGroup00" successfully extended
Let's look at what we have.
# vgdisplay
--- Volume group --- VG Name VolGroup00 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 8 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 29.88 GB PE Size 32.00 MB Total PE 956 Alloc PE / Size 625 / 19.53 GB Free PE / Size 331 / 10.34 GB VG UUID hx8M0U-TMkp-M0cB-eQpb-Avge-UddS-M0ZCc0
We did it. We have 331 Free PE in VolGroup00.
That's all. You see that using LVM is most comfortable way of volume management. But, be careful using lvm commands. Using incorrect parameter can make your files inaccessible.