Differences between revisions 24 and 25
Revision 24 as of 2017-01-11 19:41:18
Size: 8283
Comment:
Revision 25 as of 2017-01-12 02:16:38
Size: 8279
Editor: PaulWise
Comment: use the service script instead of init.d
Deletions are marked like this. Additions are marked like this.
Line 51: Line 51:
sudo /etc/init.d/lvm2 start sudo service lvm2 start

Translation(s): English - Français

(!) Discussion


LVM is a Logical Volume Manager for the Linux operating system.

Presentation

Logical volume management provides a higher-level view of the disk storage on a computer system than the traditional view of disks and partitions. This gives the system administrator much more flexibility in allocating storage to applications and users.

Storage volumes created under the control of the logical volume manager can be resized and moved around almost at will.

Definitions

  • PV : Physical Volumes. This means the hard disk, hard disk partitions, RAID or LUNs from a SAN which form "Physical Volumes" (or PVs).

  • VG : Volume Groups. This is a collection of one or more Physical Volumes.

  • LV : Logical Volumes. LVs sit inside a Volume Group and form, in effect, a virtual partition.

  • PE : Physical Extents. In order to manipulate the actual data, it is divided into blocks of data called Physical Extents.

  • LE : Logical Extents. Similar to Physical Extents, but at the Logical Volume level. Physical Extents are to Physical Volumes as Logical Extents are to Logical Volumes. The size of blocks are the same for each logical volume (LV) in the same volume group (VG).

An example:

||-------------------------------OS---------------------------------||
||-Non-LVM-||-------------------------LVM---------------------------||
||  /boot  ||   LV-1 (/)  | LV-2 (swap)|  LV 3 (/home) | LV-4 (/tmp)|| Logical Volumes(LV)
||         ||------------------------------------------|------------||
||         ||                  VG 1                    |    VG 2    || Volume Groups(VG)
||         ||------------------------------------------|------------||
||/dev/sda1|| /dev/sda2 |     /dev/sda3    | /dev/sdb2 | /dev/sdd4  || Physical Volumes(PV)
||---------||-------------------------------------------------------||

Good to know

Labels

You should use labels for Logical Volume (LV) identification in /etc/fstab, instead of UUIDs or the kernel naming rules (/dev/sda) in order to avoid conflicts with the restoration of volume snapshots.

/boot

Grub and ?LiLo are not compatible with LVM, so /boot should be outside the storage disk managed by LVM.

LVM2 snapshots and udev on Debian

There are some caveats when creating LVM snapshots on Debian with udev, see 343671

Installation

All tools to manage an LVM volume are available in lvm2 package

sudo apt-get install lvm2

Then start the lvm service:

sudo service lvm2 start

If needed, you can install system-config-lvm, it's a utility for graphically configuring Logical Volumes.

sudo apt-get install system-config-lvm

List of LVM commands

  • lvmchange — Change attributes of the Logical Volume Manager.

  • lvmdiskscan — Scan for all devices visible to LVM2.

  • lvmdump — Create lvm2 information dumps for diagnostic purposes.

Physical Volumes (PV)

Create a PV

To declare the /dev/sda2 as a physical volume available for the LVM:

sudo pvcreate /dev/sda2

Remove a PV

In order to remove the Physical Volume (PV) on /dev/sda2 all data must be moved off it. To do this, make sure other physical volumes containing the same volume group have enough free space and then issue this command:

pvmove /dev/sda2

After the data is moved off the disk, remove it from the volume group (in this case, the one named myVirtualGroup1:

sudo vgreduce myVirtualGroup1 /dev/sda2

And after these preparations finally:

sudo pvremove /dev/sda2

PV commands list

  • pvchange — Change attributes of a Physical Volume.

  • pvck — Check Physical Volume metadata.

  • pvcreate — Initialize a disk or partition for use by LVM.

  • pvdisplay — Display attributes of a Physical Volume.

  • pvmove — Move Physical Extents.

  • pvremove — Remove a Physical Volume.

  • pvresize — Resize a disk or partition in use by LVM2.

  • pvs — Report information about Physical Volumes.

  • pvscan — Scan all disks for Physical Volumes.

Volume Groups (VG)

Create a volume group of physical volume

sudo vgcreate myVirtualGroup1 /dev/sda2

Extend a volume group

Declare another physical volume:

sudo pvcreate /dev/sda3

Then add the new PV to the VG that already exists:

sudo vgextend myVirtualGroup1 /dev/sda3

Verify VG configuration

Simply run this command:

sudo vgdisplay 

VG commands list

  • vgcfgbackup — Backup Volume Group descriptor area.

  • vgcfgrestore — Restore Volume Group descriptor area.

  • vgchange — Change attributes of a Volume Group.

  • vgck — Check Volume Group metadata.

  • vgconvert — Convert Volume Group metadata format.

  • vgcreate — Create a Volume Group.

  • vgdisplay — Display attributes of Volume Groups.

  • vgexport — Make volume Groups unknown to the system.

  • vgextend — Add Physical Volumes to a Volume Group.

  • vgimport — Make exported Volume Groups known to the system.

  • vgimportclone — Import and rename duplicated Volume Group (e.g. a hardware snapshot).

  • vgmerge — Merge two Volume Groups.

  • vgmknodes — Recreate Volume Group directory and Logical Volume special files

  • vgreduce — Reduce a Volume Group by removing one or more Physical Volumes.

  • vgremove — Remove a Volume Group.

  • vgrename — Rename a Volume Group.

  • vgs — Report information about Volume Groups.

  • vgscan — Scan all disks for Volume Groups and rebuild caches.

  • vgsplit — Split a Volume Group into two, moving any logical volumes from one Volume Group to another by moving entire Physical Volumes.

Logical Volumes (LV)

Create an LV

<!> Don't forget to check that you have enough space: naturally, an LV of 100 GB (Giga Bytes) doesn't fit in a 10 GB Virtual Group.

Create a logical volume in a volume group:

sudo lvcreate -n myLogicalVolume1 -L 10g myVirtualGroup1

Format the logical volume to the filesystem you want (ext4,xfs...)

sudo mkfs -t ext4 /dev/myVirtualGroup1/myLogicalVolume1

You can test to see if it's working:

mkdir /test
sudo mount /dev/myVirtualGroup1/myLogicalVolume1 /test
df -h

You also can check your logical volumes with:

sudo lvdisplay

Remove a LV

To remove a logical volume, make sure it is not in use anymore. Then simply issue this command to remove the logical volume myLogicalVolume1 in volume group myVirtualGroup1:

sudo lvremove myVirtualGroup1/myLogicalVolume1

You might get asked if you really want to remove an active logical volume. If so, confirm it.

LV commands

  • lvchange — Change attributes of a Logical Volume.

  • lvconvert — Convert a Logical Volume from linear to mirror or snapshot.

  • lvcreate — Create a Logical Volume in an existing Volume Group.

  • lvdisplay — Display the attributes of a Logical Volume.

  • lvextend — Extend the size of a Logical Volume.

  • lvreduce — Reduce the size of a Logical Volume.

  • lvremove — Remove a Logical Volume.

  • lvrename — Rename a Logical Volume.

  • lvresize — Resize a Logical Volume.

  • lvs — Report information about Logical Volumes.

  • lvscan — Scan (all disks) for Logical Volumes.

See also: