Logical Volume Manager HOWTO: What is LVM?
LVM stands for Logical Volume Manager is most useful method for deploying logical partition rather than physical partition, LVM is a method of allocating hard drive space into logical volumes that can be easily resized instead of partitions.
A physical disk is divided into one or more physical volumes, The Volume Groups are created by combining physical volumes. These volume groups are in turn subdivided into virtual disks called Logical Volumes. The logical volumes may be used just like regular disks with file system created on them and mounted in the Unix/Linux file system tree. The logical volumes can span multiple disks.
Benefits of Logical Volume Management
1. Logical volumes can be easily resized without any downtime or rebooting server.
2. LVM created in conjunction with RAID can provide fault tolerance coupled with scalability and easy disk management.
Drawback of Logical Volume Management
1. LVM cannot be used for the /boot because the boot loader can not read it. If you want to have the root / partition on a logical volume, you will need to create a separate /boot partition with normal ext3 file system type which is not a part of a volume group.
2. The physical volumes can’t be resized.
LVM Configuration
There are two way to configure LVM.
1) While installing fresh OS -
LVM can be configured during the graphical installation of Red Hat Linux You can use the utilities from the lvm package to create your LVM configuration. An overview of the steps required to configure LVM:
• Create physical volumes from the hard drives.
• Create volume groups from the physical volumes.
• Create logical volumes from the volume groups and assign the logical volumes mount points.
2) After OS reinstallation
One of our client want big size of /home partition with LVM support so I am considering /dev/sda7 on first HDD and /dea/sdb1 partition on secondary HDD, I want to combine both HDD space one partition as /home .
To create a LVM, follow following step process.
A. The first step in setting up LVM need to create these physical partitions properly with ‘Linux LVM’ – 0×8e so that they can be recognized by the LVM system. If we’re adding a physical partition. If it is normal ext3 partition please run fdisk command to change file system type and set it as as ‘Linux LVM’ – 0×8e’, you can follow the following steps
| fdisk /dev/sdb
* Enter p to display the current parttion created on this HDD |
B.The first command pvcreate will “initialize a disk or partition for use by LVM”.
| # pvcreate /dev/sda7 /dev/sdb1 # pvscan |
The above step creates a physical volume from 2 partitions which I want to initialize for inclusion in a volume group.
You can use following command to check various attributes of physical volume(s)
| #pvdisplay |
It will show result like this
| # pvdisplay — Physical volume — PV Name /dev/sda7 VG Name vg PV Size 423.76 GB / not usable 3.54 MB Allocatable yes (but full) PE Size (KByte) 4096 Total PE 108481 Free PE 0 Allocated PE 108481 PV UUID cB2G1L-i8w2-Qynm-6p3H-IrEr-1HEZ-dtAtqb — Physical volume — |
C.The second command vgcreate create the Volume Group vg with a physical extent size (PE size) of 16M , The default extent size (4 MB) limits the volume to about 256 GB; a size of 1 TB would require extents of atleast 16 MB
| # vgcreate -s 16M vg1 /dev/sda7 /dev/sdb1 |
You can use vgdisply command to display volume group information , It will show output like this
| # vgdisplay — Volume group — VG Name vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 889.51 GB PE Size 4.00 MB Total PE 227715 Alloc PE / Size 227715 / 889.51 GB Free PE / Size 0 / 0 VG UUID 6vE0NI-mMP0-mKYr-VB5B-xtjs-gUl0-0YVJ3S |
D.Now next step needs to create of one or more “logical volumes” using the volume group which you have created previous step. The following commands create a 50GB logical volume (LV) called lvol0 on volume group vg:
| # lvcreate -L 50GB -n lvol0 vg Where –L = LogicalVolumeSize -n = LogicalVolumeName |
The above will create a softlink /dev/vg/lvol0 point to a correspondence block device file called /dev/mapper/vg-lvol0.
You can use lvdisplay command to check the information about a logical volume , It will show output look this
| # lvdisplay — Logical volume — LV Name /dev/vg/lvol0 VG Name vg LV UUID 63Oepd-akBS-2ISP-6trP-GYpx-f8HS-rfK4iR LV Write Access read/write LV Status available # open 1 LV Size 889.51 GB Current LE 227715 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 |
E.The Linux LVM configuration almost done , Now next step to format this logical volume lvol0 with a Linux supported file system, i.e. EXT2 , EXT3 file system etc.., You can use following command to format logical volumes with ext3 journalized ( -j =journaling support) file system .
| # mke2fs –j /dev/vg/lvol0 ( name of logical volume ) |
F.Once it formatted use following command to mount the created file system
| #mount /dev/vg/lvol0 /home |
To confirm the LVM setup has been completed successfully, the df -h command should display the output same as below
| # df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 4.9G 350M 4.3G 8% / /dev/sda6 2.0G 41M 1.8G 3% /tmp /dev/sda3 15G 678M 14G 5% /var /dev/sda2 15G 2.2G 12G 16% /usr tmpfs 1013M 0 1013M 0% /dev/shm /dev/mapper/vg-lvol0 876G 199G 669G 23% /home |
Also do not forget to add the corresponding line in the /etc/fstab file:
#File: /etc/fstab
| /dev/mapper/vg-lvol0 /home ext3 defaults 0 0 |

















LVM has been used for years on enterprise UNIX’s. Linux LVM has the flavor of HPUX in its management tools. It’s great when used with a filesystem, like ReiserFS, because you can increase it’s size without un-mounting it!
LVM also works well with the RAID tools. Get two disks, and mirror them with raid. Then carve up some linux filesystems in LVM and you’re doing it right.
I have a cookbook to share, but don’t see how I can create new posts