Choosing a volume manager for 2.5
[Posted October 15, 2002 by corbet]
As the feature freeze date gets closer, people are starting to get worried
about some of the unresolved issues in the 2.5 series. At the top of the
list, currently, is volume managers. The LVM code in the 2.4 kernel is not
much loved by kernel developers; it has gone unmaintained in 2.5 and simply
does not work. One thing that everybody seems to agree on is that
LVM has reached the end of its life and needs to be removed.
But that, of course, begs the question of what will replace LVM. There are
two contenders out there:
- LVM2 is a new version of LVM, reimplemented from the ground up by
Sistina Software, which also wrote the original LVM. LVM2 is actually
the name given to the user-level interface; the kernel code for LVM2
is called the "device mapper" or "DM".
- The Enterprise Volume
Management System (or EVMS) is a new, independent development from
IBM.
Both volume managers have been proposed for inclusion into 2.5 as
replacements for LVM. There is currently very little consensus on which,
if either, should go in, and Linus has stated that he is undecided on the
issue.
LVM2/DM is the smaller and simpler of the two volume managers. Its goals
are to be a cleaner, better implementation of LVM, so it does not add a
great many features. It can combine volumes in a linear (appending one
partition to another) or striped (interleaving data across partitions)
manner, but does not support higher-level RAID features. The lack of RAID
4/5 support is not necessarily a problem, since the kernel "md" driver
provides those capabilities. LVM2 also does not try to understand the
filesystems on the volumes it manages, so changing the sizes of volumes can
be a multi-step process. LVM2 is backward compatible with LVM, and
provides a very similar interface to administrators.
EVMS is a much larger, more complex development. It supports RAID 4
and 5, and other features such as bad block remapping. EVMS comes
with a comprehensive graphical interface. It also can work with several
filesystem types to make filesystem resizing easy. From the user level,
EVMS comes across as a far more complete tool.
There is substantial resistance in the kernel hacker community to merging
EVMS, however. A number of coding style issues have been raised; for
example, the declaration of static variables within header files is
considered
to be in poor taste. There are objections to the duplication of the RAID
functionality already provided by the md driver. EVMS also hides the
internal structure of its volumes. Imagine creating two large volumes by
combining two drives (for each) in a linear mapping, then making one big
volume by striping across the two linear volumes. The internal, linear
volumes would not be visible as separate devices. Critics of this
implementation dislike the duplication of code (against the block layer)
implied by creating a new type of hidden block device; it also complicates
operations that need to be performed directly on the internal devices.
So there has been pressure to expose the internal devices, or, even, to
work many of these volume management functions directly into the block
layer API.
LVM2 has not been subjected to the same level of criticism; the consensus
seems to be that the code is relatively clean and correct. The level of
capability offered by LVM2 is lower, however.
The development teams for both EVMS and LVM2 have stated their willingness
to address complaints in order to get their projects merged. The problem,
of course, is that the feature freeze date is getting closer, and neither
project will be "complete" by then. Some developers are talking seriously
about merging neither volume manager, and simply doing without until the
next development series opens.
Releasing a stable kernel without a logical volume manager is probably not
a realistic option, however. Something will probably go in.
Linus stated
in the 2.5.42 announcement that he was leaning toward EVMS; EVMS also
appears to be the choice of people who use volume management, as
opposed to those who have to deal with the code. So the odds probably
favor an EVMS merge, but it is far from a sure bet at this point.
(
Log in to post comments)