SGI Techpubs Library

Linux  »  Man Pages
find in page



       lvm  is a logical volume manager for Linux.  It enables you to concate-
       nate several physical volumes (hard disks etc.)  into a so called  vol-
       ume  group  (VG,  see  pvcreate(8)  and vgcreate(8) ) forming a storage
       pool, like a virtual disk.  IDE, SCSI disks as well as multiple devices
       (MD)  are  supported.   The  storage  capacity of a volume group can be
       divided into logical volumes (LVs), like virtual disk  partitions.  The
       size  of a logical volume is in multiples of physical extents (PEs, see
       lvcreate(8) ).
       The size of the physical extents can be configured at volume group cre-
       ation  time.  If  a  logical  volume  is too small or too large you can
       change its size at runtime ( see lvextend(8) and lvreduce(8) ).  lvcre-
       ate(8)  can be used to create snapshots of existing logical volumes (so
       called original logical volumes in this context) as well.
       Creating a snapshot logical volumes grants access to  the  contents  of
       the  original logical volume it is associated with and exposes the read
       only contents at the creation time of the snapshot. This is useful  for
       backups or for keeping several versions of filesystems online.
       If  you run out of space in a volume group it is possible to add one or
       more pvcreate’d disks to the system and put them into an existing  vol-
       ume  group ( see vgextend(8) ). The space on these new physical volumes
       can be dynamically added to logical volumes in that volume group (  see
       lvextend(8) ).
       To remove a physical volume from the system you can move allocated log-
       ical extents to different physical volumes ( see pvmove(8) ). After the
       pvmove the volume group can be reduced with the vgreduce(8) command.
       Inactive  volume  groups must be activated with vgchange(8) before use.
       vgcreate(8) automatically activates a newly created volume group.


       PV for physical volume, PE for physical extent, VG for volume group, LV
       for logical volume, and LE for logical extent.

Command naming convention

       All  command names corresponding to physical volumes start with pv, all
       the ones concerned with volume groups start with vg and all for logical
       volumes with lv.  General purpose commands for the lvm as a whole start
       with lvm.


       The volume group descriptor area (or VGDA for short) holds  the  neces-
       sary  metadata  to  handle  the  LVM functionality. It is stored at the
       beginning of each pvcreate’d disk.  It  contains  four  parts:  one  PV
       descriptor,  one  VG  descriptor,  the  LV  descriptors  and several PE
       descriptors. LE descriptors are derived from the PE ones at vgchange(8)
       time.  Automatic  backups  of the VGDA are stored in files in /etc/lvm-
       conf/ (please see vgcfgbackup(8)/vgcfgrestore(8)  too).  Take  care  to
       include these files in your regular (tape) backups as well.


       Currently up to 99 volume groups with a grand total of 256 logical vol-
       umes can be created. The limit for the logical volumes is not caused by
       the LVM but by Linux 8 bit device minor numbers.

       This  means that you can have 99 volume groups with 1-3 logical volumes
       each or on the other hand 1 volume group with up to 256 logical volumes
       volumes can have up to 65534 physical extents.

/proc filesystem support

       The  operational  state of active volume groups with their physical and
       logical  volumes  can   be   found   in   the   /proc/lvm/   directory.
       /proc/lvm/global  contains  a  summary  of  all  available  information
       regarding all VGs, LVs and PVs.  The two flags for PV status in  brack-
       ets  mean  A/I for active/inactive and A/N for allocatable or non-allo-
       catable.  The four flags  for  LV  status  in  brackets  mean  A/I  for
       active/inactive, R/W for read-only or read/write, D/C for discontiguous
       or contiguous and L/S for linear or striped.  S can optionally be  fol-
       lowed  by the number of stripes in the set.  At /proc/lvm/VGs/ starts a
       subdirectory hierarchy containing information about every VG in a  dif-
       ferent  subdirectory  named  /proc/lvm/VGs/VolumeGroupName  where  Vol-
       umeGroupName stands  for  an  arbitrary  VG  name.   /proc/lvm/VGs/Vol-
       umeGroupName/ in turn holds a file group containing summary information
       for the VG as a total.   /proc/lvm/VGs/VolumeGroupName/LVs/LogicalVolu-
       meName  holds  information  for an arbitrary LV named LogicalVolumeName
       /proc/lvm/VGs/VolumeGroupName/PVs/PhysicalVolumeName contains  informa-
       tion for an arbitrary PV named PhysicalVolumeName.  All of the informa-
       tion in the files below /proc/lvm/VGs/ is presented in  attribute/value
       pairs to be easyly parsable.


       We have disk partitions /dev/sda3, /dev/sdb1 and /dev/hda2 free for use
       and want to create a volume group named "test_vg".  Steps required:

       1. Change partition type for these 3 partitions  to  0x8e  with  fdisk.
       (see pvcreate(8): 0x8e identifies LVM partitions)

       2. pvcreate /dev/sda3 /dev/sdb1 /dev/hda2

       3. vgcreate test_vg /dev/sda3 /dev/sdb1 /dev/hda2

       With  our volume group "test_vg" now online, we can create logical vol-
       umes. For example a logical volume with a size of  100MB  and  standard
       name  (/dev/test_vg/lvol1) and another one named "my_test_lv" with size
       200MB striped (RAID0) across all the three physical volumes.

       Steps required:

       1. lvcreate -L 100 test_vg

       2. lvcreate -L 200 -n my_test_lv -i 3 test_vg

       Now let’s rock and roll.  For example create a file system  with  "mkfs
       -t   ext2   /dev/test_vg/my_test_lv"   and   mount   it   with   "mount
       /dev/test_vg/my_test_lv /usr1"

See also

       e2fsadm(8), lvchange(8), lvcreate(8), lvdisplay(8),
       lvextend(8), lvmchange(8), lvmdiskscan(8),
       lvmsadc(8), lvmsar(8), lvreduce(8), lvremove(8),
       lvrename(8), lvscan(8), mkinitrd(8),
       pvchange(8), pvcreate(8), pvdata(8),

Heinz Mauelshagen                  LVM TOOLS                            LVM(8)

Output converted with man2html

home/search | what's new | help