This article was first written in December 2003 for the BeezNest technical website (http://glasnost.beeznest.org/articles/99)
LVM  is a great system to resize filesystems and partitions online , do online snapshots of the filesystems, span filesystems and partitions on multiple drives. It is the ultimate solution to the disk space allocation nightmare.
Linux’s LVM is closely inspired by HP-UX, which provided the technology to AIX also. They share almost the same schemes, functionalities and names for tools and everything else.
You will need some knowledge of the terminology of an LVM before using it; all Volume Managers use a same basic principles but use sometimes different names.
Volume Group is a “container” that holds physical disks and logical volumes. It’s wise to only have two volume groups, a VGROOT and a VGDATA. AIX calls it a diskgroup, since it holds physical disks as well as logical volumes. Example: /dev/datavg/var
Physical Volume is in fact a slice or partition. These devices are the building blocks for a volume group. Example: /dev/hdb1
Logical Volume is a part of a volume group. The logical volume will be supplied with a file system and then can be mounted. You can also keep logical volumes ‘RAW’ and assign them to an Oracle system for example.
Physical Extend (PE) A logical volume can be extended or shrunk with a certain amount of PE’s. In AIX this is known as PP. Always be careful with shrinking volumes! Do not shrink a volume thoo much that it lands into your filesystem; your filesystem will be immediately an irreversibly useless. Also notice that most filesystems can grow but not all of them can shrink.
The reference document in this respect is the LVM HOWTO.
Here is how to use LVM on a Debian Woody, for non-root filesystems (it is not hard to adapt, though):
Install the needed packages
$ sudo apt-get install lvm10
Prepare the system
Create the LVM partition container
# cfdisk /dev/hda
Use 8E(LVM) as partition type code.
Create the Physical Volume
# pvcreate /dev/hda4
Create and activate the Volume Group(s)
# vgcreate my_volume_group_name /dev/hda4 # vgchange -a y my_volume_group_name
Create the Logical Volumes
to be continued…