Linux Logical Volume Management Operations: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 179: Line 179:
{{External|http://www.azhowto.com/2009/02/06/how-to-resize-lvm-running-xen-explained-part-1-increase-disk-size}}
{{External|http://www.azhowto.com/2009/02/06/how-to-resize-lvm-running-xen-explained-part-1-increase-disk-size}}


!!!Renaming a Logical Volume
=Renaming a Logical Volume=


{{{
<pre>
    lvm  
lvm  
    lvm> lvrename VolGroup00 LogVol05numbercat lv05
lvm> lvrename VolGroup00 LogVol05numbercat lv05
}}}
</pre>


!!!Removing a Logical Volume
=Removing a Logical Volume=


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


{{{
<pre>
vgs
vgs
}}}
</pre>


{{{
<pre>
lvs   
lvs   
}}}
</pre>


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


{{{
<pre>
umount /dev/VolGroup00/MyLV1
umount /dev/VolGroup00/MyLV1
}}}
</pre>


 
Remove the logical volume with <tt>lvremove</tt>.  
Remove the logical volume with {{lvremove}}.  


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


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


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


Example:
Example:


{{{
<pre>
[root@rhel-test lvm]# lvremove -t /dev/rhel_rhel-test/docker-pool  
[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.
   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
Do you really want to remove active logical volume docker-pool? [y/n]: y
   Logical volume "docker-pool" successfully removed
   Logical volume "docker-pool" successfully removed
}}}
</pre>


This command actually removes it:
This command actually removes it:


{{{
<pre>
lvremove [-v] /dev/VolGroup00/MyLV1
lvremove [-v] /dev/VolGroup00/MyLV1
}}}
</pre>
 
 
=Shrinking the Filesystem and the Logical Volume=


<font color=red>
<font color=red>
!!!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'':
This is the simple case, ''it will only work if the logical volume *does not* contain a partition table'':


{{{
<pre>
      fsadm
fsadm
}}}
</pre>


or
or


{{{
<pre>
umount lvm_partition
umount lvm_partition
resize2fs /dev/vg/lv newSize
resize2fs /dev/vg/lv newSize
lvresize -L disksize /dev/vg/lv
lvresize -L disksize /dev/vg/lv
resize2fs /dev/vg/lv
resize2fs /dev/vg/lv
}}}
</pre>
 
</font>
</font>


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


See [Logical Volume Management And Virtualization|LogicalVolumeManagementAndVirtualization]
See [Logical Volume Management And Virtualization|LogicalVolumeManagementAndVirtualization]

Revision as of 02:44, 3 May 2017

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

Example:

[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 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]