mkfs
lvcreate
vgcreate
pvcreate
fdisk
The physical media / partitions a hard disk, or a partition, e.g. /dev/hda, /dev/hda6 or /dev/sda. You should set the partition types of the disk or partition to 0x8e, which is “Linux LVM”. Partitioning is done using fdisk. Please note that your version of fdisk may not yet know this type, so it will be listed as “Unknown”. You can turn any consecutive number of blocks on a block device into a Physical Volume:
Physical Volume (PV) a physical medium with some administrative data added to it. The command pvcreate can be used to add the administration onto the physical medium. The command vgcreate is used to create a volume group, which consists of one or more PV’s. A PV that has been grouped in a volume group contains Physical Extents:
Physical Extents (PE) Physical Extents are blocks of diskspace, often several megabytes in size. Using the command lvcreate you can assign PEs to a Logical Volume:
Logical Volume (LV) A Logical Volume. On a logical volume we can use the command mkfs to get a Filesystem:
Filesystem ext2, ReiserFS, NWFS, XFS, JFX, NTFS etc. To the linux kernel, there is no difference between a regular partition and a Logical Volume. A simple mount suffices to be able to use your logical volume.
Some examples of typical usage of the LVM commandset follow. Initially, you need to set the partition type for the partitions to use to create logical volumes to 0x8e. Let’s assume we have partitions /dev/hda4 and /dev/hda5, and they are set to the correct partitioning type. To create a physical volume on both partitions (i.e. to set up the volume group descriptor) you type (being the superuser):
# pvcreate /dev/hda4 /dev/hda5
Now we have created two physical volumes. Next, we will create a volume group. A volume group needs to have a name (we choose volume01). To create our volume group, using our previously defined physical volumes, type:
# vgcreate volume01 /dev/hda5 /dev/hda4
The previous command line is the most basic form (refer to the manual pages for a list of configurable parameters). This will create an array of physical extents, by default they are 4 Mb in size. Using these extents we can create one or more logical volumes, e.g:
# lvcreate -L 100M volume01
.. this creates a logical volume with a default name choosen by lvcreate and starts with the string lvol followed by a digit --let’s assume lvol0. The logical volume will be created using the volumegroup volume01. The name of the devicefile for this volume will be /dev/volume01/lvol0. Next, we can make a filesystem on the volumegroup, as usual, using mkfs, e.g. an xfsfilesystem:
# mkfs -t xfs /dev/volume01/lvol0 The resulting filesystem can be mounted as usual:
# mount /dev/volume01/lvol0 /mnt
4.3.4 Modifying logical volumes, volume groups and physical volumes
A logical volume can be modified in order to create more space for the filesystem that is on top of this logical volume. Assuming that there is enough space in the volume group a logical volume can be increased in size with the command:
# lvextend -L +50M /dev/volume01/lvol0
After the logical volume has been increased the filesystem on top of the logical volume still has the same size. To use the extra space of the logical volume the filesystem needs to be resized. This can be done by the command:
# xfs_growfs /dev/volume01/lvol0
For an ext2/ext3/ext4 file system use the command resize2fs. Note that for resizing the filesystem it must not be mounted.
In the previous example it was assumed that there was enough free space in the volume group. If this is not the case, extra disk space can be added to the volume group in a similar way. To do so use the command:
# vgextend volume01 /dev/hda6
First device hda6 has to be converted into a physical volume with the command:
# pvcreate /dev/hda6
4.3.5 LVM Snapshots
One of the nicest features of LVM is the possibility of taking snapshots of volumes. A snapshot is a virtual copy of the volume to enable easy backups. LVM snapshots use a strategy called "copy on write". This means that the snapshot logical volume only saves data blocks from the original logical volume that are changed in the original logical volume. To do so the logical volume manager first reads the (unchanged) data block on the original and than writes the data block to the snapshot. On filesystems with many changes (e.g. databases) this can lead to performance issues.
The -s option in the lvcreate command specifies that the newly created logical volume is a snapshot.
# lvcreate -L 50M -s -n snapshot0 /dev/volume01/lvol0
This will create a logical volume /dev/volume01/snapshot0, which then can be used f.i. (, for instance, ?) for backup purposes. The advantage of the snapshot is that the data is consistent, i.e. the data doesn’t change during backup.
After the backup is finished, the snapshot has to be removed otherwise the performance issues mentioned earlier will start to come into play. To remove the snapshot use:
# lvremove /dev/volume01/snapshot0
4.3.6 LVM commands
This section gives an overview of most lvm related commands. The manual pages describe the commands more in detail.
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
pvs Report information about physical volumes pvscan Scan all disk for physical volumes lvchange Change attributes for a logical volume
lvcreate Create a logical volume in an existing volume group lvdisplay Display attributes of a logical volumes
lvextend Extend the size of a logical volume lvmdiskscan Scan for all devices visible to LVM2 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
vgcfgbackup Backup volume group descriptor area vgchange Change attributes of a volume group vgck Check volume group metadata
vgconvert Convert volume group metadata vgcreate Create a volume group
vgdisplay Display attributes of volume groups vgextend Add physical volumes to a volume group vgexport Make volume groups unknown to the system vgimport Make exported volume groups known to the system vgmerge Merge two volume groups
vgmknodes Recreate volume group directory and logical volume special files vgreduce Reduce a volume group
vgremove Remove a volume group
vgrename Rename a volume group
vgs Report information about volume groups
vgscan Scan all disk for volume groups and rebuild caches vgsplit Split a volume group into two
4.3.7 Device mapper
The device mapper is a kernel driver that provides a framework for volume management. It provides a generic way of creating mapped devices, which may be used as logical volumes. It does not specifically know about volume groups or metadata formats.
LVM logical volumes are activated using the device mapper. Each logical volume is translated into a mapped device. Each segment translates into a line in the mapping table that describes the device. The device mapper supports a variety of mapping targets, including linear mapping, striped mapping, and error mapping.
4.4 Questions and answers
Advanced Storage Device Administration 1. What is RAID?
RAID is a method by which information is spread across several disks, using techniques to achieve redundancy, lower latency and/or higher bandwidth for reading and/or writing to disk, and maximize recoverability from hard-disk crashes.
What is RAID?[86]
2. Is it true that using linear RAID increases the level of redundancy?
No, in fact it decreases reliability -- if any one member drive fails, the entire array cannot be used.Linear RAID 3. How would you automate RAID activation after reboot using mdadm.conf, if it exists?
Run mdadm --assemble -s in one of the startup files.Automate RAID activation after reboot 4. What is the objective of using Logical Volume Management (LVM)?
It enables you to concatenate several physical volumes (hard disk, etc) to a so-called volume group, forming a storage pool.
Configuring Logical Volume Management[100]
5. What is a Logical Volume (LV)?
A Logical Volume is created based on a number of Physical Extents (PE) taken from a Volume Group (VG) on top of which a filesystem can be built.Logical Volume (LV)[100]