Linux Logical Volume Management Operations

From NovaOrdis Knowledge Base
Revision as of 02:38, 3 May 2017 by Ovidiu (talk | contribs)
Jump to navigation Jump to search

Internal

Overview

Logical volume management commands can be issued from the lvm console, or as standalone commands. For example:

lvm> lvs

produces identical results to

lvs

Inventory of Devices that May Be Used as Physical Volumes

lvmdiskscan

Example:

[root@rhel-test ~]# lvmdiskscan
  /dev/rhel_rhel-test/swap [     820.00 MiB] 
  /dev/sda1                [     500.00 MiB] 
  /dev/rhel_rhel-test/root [       6.67 GiB] 
  /dev/sda2                [       7.51 GiB] LVM physical volume
  /dev/sdb                 [       2.00 GiB] 
  3 disks
  1 partition
  0 LVM physical volume whole disks
  1 LVM physical volume

The output specifies which device is already a LVM Physical Volume

To see only the existing Physical Volumes (devices that have Volume Groups on them)

lvmdiskscan -l

Inventory of Physical Volumes

pvs
<pre>

Example:

<pre>
[root@rhel-test ~]# pvs
  PV         VG             Fmt  Attr PSize PFree
  /dev/sda2  rhel_rhel-test lvm2 a--  7.51g    0 

Equivalent command with slightly different output:

pvscan

Example:

[root@rhel-test ~]# pvscan
  PV /dev/sda2   VG rhel_rhel-test   lvm2 [7.51 GiB / 0    free]
  Total: 1 [7.51 GiB] / in use: 1 [7.51 GiB] / in no VG: 0 [0   ]

Details about a Specific Physical Volume

pvdisplay [PhysicalVolumePath [PhysicalVolumePath...]]

Example:

[root@rhel-test ~]# pvdisplay /dev/sda2
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rhel_rhel-test
  PV Size               7.51 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              1922
  Free PE               0
  Allocated PE          1922
  PV UUID               xV16At-8wPi-wFp0-42BL-XFX0-5aJE-F471OI

Physical Volume Operations

Initialize physical volume(s) for use by LVM:

pvcreate

Change attributes of physical volume:

pvchange

Resize physical volume:

pvresize

Check the consistency of physical volume:

pvck

Move extents from one physical volume to another:

pvmove

Remove LVM label(s) from physical volume(s)

pvremove

Information about Volume Groups

vgs 
vgdisplay --verbose 

Adding Physical Volumes to a Volume Group

vgextend my_volume /dev/hdc1

Information about Logical Volumes

lvs
lvdisplay --verbose 

What does this do:

lvscan

Creating a Logical Volume

lvm
lvm> lvcreate --size 20G --name santorini VolGroup00

Extending a Logical Volume

http://www.azhowto.com/2009/02/06/how-to-resize-lvm-running-xen-explained-part-1-increase-disk-size

!!!Renaming a Logical Volume

{{{

   lvm 
   lvm> lvrename VolGroup00 LogVol05numbercat lv05

}}}

!!!Removing a Logical Volume

Gather statistics on the free space before removing, and also on the size of the logical volume to be removed:

{{{ vgs }}}

{{{ lvs }}}

Unmount the volume if necessary (or shutdown the service that is using it, as it is the case with Docker):

{{{ umount /dev/VolGroup00/MyLV1 }}}


Remove the logical volume with Template:Lvremove.

The command has a "dry run mode" (-t):

{{{ lvremove /dev/<VG_name>/<LV_name> }}}

{{{ lvremove -t /dev/<VG_name>/<LV_name> }}}

Example:

{{{ [root@rhel-test lvm]# lvremove -t /dev/rhel_rhel-test/docker-pool

 TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.

Do you really want to remove active logical volume docker-pool? [y/n]: y

 Logical volume "docker-pool" successfully removed

}}}

This command actually removes it:

{{{ lvremove [-v] /dev/VolGroup00/MyLV1 }}}

!!!Shrinking the Filesystem and the Logical Volume

This is the simple case, it will only work if the logical volume *does not* contain a partition table:

{{{

     fsadm

}}}

or

{{{ umount lvm_partition resize2fs /dev/vg/lv newSize lvresize -L disksize /dev/vg/lv resize2fs /dev/vg/lv }}}

!!!Shrinking a Logical Volume used by a xen Virtual Machine

See [Logical Volume Management And Virtualization|LogicalVolumeManagementAndVirtualization]