8283
Comment:
|
8279
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 |
LVM is a Logical Volume Manager for the Linux operating system.
Contents
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:
Comparison of Linux volume management solutions for Debian users
- Upstream:
http://sourceware.org/lvm2/ - Homepage, mailing list, IRC...