Logical Volume Manager (Linux)
Encyclopedia
LVM is a logical volume manager
for the Linux kernel
; it manages disk drives and similar mass-storage devices, in particular large ones. The term "volume" refers to a disk drive or partition thereof. It was originally written in 1998 by Heinz Mauelshagen, who based its design on that of the LVM in HP-UX
.
The abbreviation "LVM" can also refer to the Logical Volume Management
available in HP-UX
, IBM AIX and OS/2
operating systems.
The installers for the Arch Linux, CrunchBang
, Debian
, Fedora
, Gentoo
, Mandriva
, MontaVista Linux, openSUSE
, Pardus
, Slackware
, SLED
, SLES
, and Ubuntu
distributions are LVM-aware and can install a bootable system with a root filesystem on a logical volume.
One can think of LVM as a thin software layer on top of the hard disks and partitions, which creates an illusion of continuity and ease-of-use for managing hard-drive replacement, repartitioning, and backup.
The LVM will also work in a shared-storage cluster (where disks holding the PVs are shared between multiple host computers), but requires an additional daemon to propagate state changes between cluster nodes.
LVM does not:
. Each PV's header is a complete copy of the entire volume group's layout, including the UUIDs of all other PVs, the UUIDs of all logical volumes and an allocation map of PEs to LEs. This simplifies data recovery in the event of PV loss.
In the 2.6-series of the Linux Kernel, the LVM is implemented in terms of the device mapper
, a simple block-level scheme for creating virtual block devices and mapping their contents onto other block devices. This minimizes the amount of relatively hard-to-debug kernel code needed to implement the LVM. It also allows its I/O redirection services to be shared with other volume managers (such as EVMS
). Any LVM-specific code is pushed out into its user-space tools, which merely manipulate these mappings and reconstruct their state from on-disk metadata upon each invocation.
To bring a volume group online, the "vgchange" tool:
To move an online logical volume between PVs on the same Volume Group, use the "pvmove" tool:
These device mapper operations take place transparently, without applications or filesystems being aware that their underlying storage is moving.
and XFS
was negated under some circumstances.
Logical volume management
In computer storage, logical volume management or LVM provides a method of allocating space on mass-storage devices that is more flexible than conventional partitioning schemes...
for the Linux kernel
Linux kernel
The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
; it manages disk drives and similar mass-storage devices, in particular large ones. The term "volume" refers to a disk drive or partition thereof. It was originally written in 1998 by Heinz Mauelshagen, who based its design on that of the LVM in HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...
.
The abbreviation "LVM" can also refer to the Logical Volume Management
Logical volume management
In computer storage, logical volume management or LVM provides a method of allocating space on mass-storage devices that is more flexible than conventional partitioning schemes...
available in HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...
, IBM AIX and OS/2
OS/2
OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. The name stands for "Operating System/2," because it was introduced as part of the same generation change release as IBM's "Personal System/2 " line of second-generation personal...
operating systems.
The installers for the Arch Linux, CrunchBang
CrunchBang Linux
CrunchBang Linux is a lightweight Debian based Linux distribution, created by Philip Newborough, designed to offer a good balance of speed and functionality.- Features :...
, Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
, Fedora
Fedora (operating system)
Fedora is a RPM-based, general purpose collection of software, including an operating system based on the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat...
, Gentoo
Gentoo Linux
Gentoo Linux is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen...
, Mandriva
Mandriva
Mandriva S.A. is a publicly traded Linux and open source software company with its headquarters in Paris, France and development center in Curitiba, Brazil. Mandriva, S.A...
, MontaVista Linux, openSUSE
OpenSUSE
openSUSE is a general purpose operating system built on top of the Linux kernel, developed by the community-supported openSUSE Project and sponsored by SUSE...
, Pardus
Pardus (operating system)
Pardus is a Linux distribution developed with support from the Turkish government. Pardus’ main focus is office-related work, including the use in Turkish government agencies. Despite that, Pardus ships in several languages. Its ease of use and availability free of charge spawned numerous...
, Slackware
Slackware
Slackware is a free and open source Linux-based operating system. It was one of the earliest operating systems to be built on top of the Linux kernel and is the oldest currently being maintained. Slackware was created by Patrick Volkerding of Slackware Linux, Inc. in 1993...
, SLED
SUSE Linux Enterprise Desktop
SUSE Linux Enterprise Desktop , formerly introduced as Novell Linux Desktop, is a Linux distribution supplied by Novell and targeted at the business market. It is targeted for desktops. New major versions are released at an interval of 24–36 months, while minor versions are released every 9–12...
, SLES
SUSE Linux Enterprise Server
SUSE Linux Enterprise Server is a Linux distribution supplied by SUSE and targeted at the business market. It is targeted for servers, mainframes, and workstations but can be installed on desktop computers for testing as well. New major versions are released at an interval of 3-4 years, while...
, and Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
distributions are LVM-aware and can install a bootable system with a root filesystem on a logical volume.
Common uses
LVM is suitable for:- Managing large hard disk farms by letting you add disks, replace disks, copy and share contents from one disk to another without disrupting service (hot swapping).
- On small systems (like a desktop at home), instead of having to estimate at installation time how big a partition might need to be in the future, LVM allows you to resize your disk partitions easily as needed.
- Making backups by taking "snapshots."
- Creating single logical volumes of multiple physical volumes or entire hard disks (somewhat similar to RAID 0, but more similar to JBOD), allowing for dynamic volume resizing.
One can think of LVM as a thin software layer on top of the hard disks and partitions, which creates an illusion of continuity and ease-of-use for managing hard-drive replacement, repartitioning, and backup.
Features
The LVM can:- Resize volume groupVolume groupVolume Group is the highest level abstraction used within the Logical Volume Manager . It gathers together a collection of Logical Volumes and Physical Volumes into one administrative unit....
s online by absorbing new physical volumes (PV) or ejecting existing ones. - Resize logical volumes (LV) online by concatenating extents onto them or truncating extents from them.
- Create read-only snapshotsSnapshot (computer storage)In computer systems, a snapshot is the state of a system at a particular point in time. The term was coined as an analogy to that in photography. It can refer to an actual copy of the state of a system or to a capability provided by certain systems....
of logical volumes (LVM1). - Create read-write snapshotsSnapshot (computer storage)In computer systems, a snapshot is the state of a system at a particular point in time. The term was coined as an analogy to that in photography. It can refer to an actual copy of the state of a system or to a capability provided by certain systems....
of logical volumes (LVM2). - Stripe whole or parts of logical volumes across multiple PVs, in a fashion similar to RAID 0.
- Mirror whole or parts of logical volumes, in a fashion similar to RAID 1.
- Move online logical volumes between PVs.
- Split or merge volume groups in situ (as long as no logical volumes span the split). This can be useful when migrating whole logical volumes to or from offline storage.
The LVM will also work in a shared-storage cluster (where disks holding the PVs are shared between multiple host computers), but requires an additional daemon to propagate state changes between cluster nodes.
LVM does not:
- Provide parityParity bitA parity bit is a bit that is added to ensure that the number of bits with the value one in a set of bits is even or odd. Parity bits are used as the simplest form of error detecting code....
-based redundancy across LVs, as with RAID levelsStandard RAID levelsThe standard RAID levels are a basic set of RAID configurations and employ striping, mirroring, or parity.The standard RAID levels can be modified for other benefits ; there are also non-standard RAID levels, and non-RAID drive architectures, which may be offered as alternatives to RAID architectures...
3 through 6. This functionality is instead provided by the Linux multiple disk subsystemMdadmmdadm is a Linux utility used to manage software RAID devices.The name is derived from the md device nodes it administers or manages, and it replaced a previous utility mdctl...
, which can be used as LVM physical volumes.
Implementation
LVM keeps a metadata header at the start of every physical volume, each of which is uniquely identified by a UUIDUniversally Unique Identifier
A universally unique identifier is an identifier standard used in software construction, standardized by the Open Software Foundation as part of the Distributed Computing Environment ....
. Each PV's header is a complete copy of the entire volume group's layout, including the UUIDs of all other PVs, the UUIDs of all logical volumes and an allocation map of PEs to LEs. This simplifies data recovery in the event of PV loss.
In the 2.6-series of the Linux Kernel, the LVM is implemented in terms of the device mapper
Device mapper
In the Linux kernel, the device-mapper serves as a generic framework to map one block device onto another. It forms the foundation of LVM2 and EVMS, software RAIDs, dm-crypt disk encryption, and offers additional features such as file-system snapshots....
, a simple block-level scheme for creating virtual block devices and mapping their contents onto other block devices. This minimizes the amount of relatively hard-to-debug kernel code needed to implement the LVM. It also allows its I/O redirection services to be shared with other volume managers (such as EVMS
Enterprise Volume Management System
Enterprise Volume Management System is a flexible, integrated volume management software used to manage storage systems under Linux.Its features include:* Handle EVMS, Linux LVM and LVM2 volumes* Handle many kinds of disk partitioning schemes...
). Any LVM-specific code is pushed out into its user-space tools, which merely manipulate these mappings and reconstruct their state from on-disk metadata upon each invocation.
To bring a volume group online, the "vgchange" tool:
- Searches for PVs in all available block devices.
- Parses the metadata header in each PV found.
- Computes the layouts of all visible volume groups.
- Loops over each logical volume in the volume group to be brought online and:
- Checks if the logical volume to be brought online has all its PVs visible.
- Creates a new, empty device mapping.
- Maps it (with the "linear" target) onto the data areas of the PVs the logical volume belongs to.
To move an online logical volume between PVs on the same Volume Group, use the "pvmove" tool:
- Creates a new, empty device mapping for the destination.
- Applies the "mirror" target to the original and destination maps. The kernel will start the mirror in "degraded" mode and begin copying data from the original to the destination to bring it into sync.
- Replaces the original mapping with the destination when the mirror comes into sync, then destroys the original.
These device mapper operations take place transparently, without applications or filesystems being aware that their underlying storage is moving.
Caveats
Until Linux kernel 2.6.31, write barriers were not supported (fully supported in 2.6.33). This means that the guarantee against filesystem corruption offered by journaled file systems like ext3Ext3
The ext3 or third extended filesystem is a journaled file system that is commonly used by the Linux kernel. It is the default file system for many popular Linux distributions, including Debian...
and XFS
XFS
XFS is a high-performance journaling file system created by Silicon Graphics, Inc. It is the default file system in IRIX releases 5.3 and onwards and later ported to the Linux kernel. XFS is particularly proficient at parallel IO due to its allocation group based design...
was negated under some circumstances.
See also
- Logical volume managementLogical volume managementIn computer storage, logical volume management or LVM provides a method of allocating space on mass-storage devices that is more flexible than conventional partitioning schemes...
- Snapshot (computer storage)Snapshot (computer storage)In computer systems, a snapshot is the state of a system at a particular point in time. The term was coined as an analogy to that in photography. It can refer to an actual copy of the state of a system or to a capability provided by certain systems....
- Device mapperDevice mapperIn the Linux kernel, the device-mapper serves as a generic framework to map one block device onto another. It forms the foundation of LVM2 and EVMS, software RAIDs, dm-crypt disk encryption, and offers additional features such as file-system snapshots....
- Hot copyHot copyR1Soft Hot Copy is an online disk snapshot application for Linux computers, produced by R1Soft. Hot Copy creates point-in-time snapshots of a disk while it is running...
External links
- LVM2 Resource Page
- How to install Ubuntu over LVM Filesystem - debuntu.org
- All about LVM on one page - a page covering LVM, starting with theory and ending with many practical examples about its usage.
- Ext2read A windows application to read/copy ext2/ext3/ext4 files residing in LVM partition.