|
|
Subscribe / Log in / New account

EVMS changes direction

From:  Kevin Corry <corryk@us.ibm.com>
To:  evms-devel@lists.sourceforge.net, evms-announce@lists.sourceforge.net
Subject:  EVMS announcement
Date:  Tue, 5 Nov 2002 16:19:10 -0600
Cc:  linux-kernel@vger.kernel.org

Greetings EVMS users,

On behalf of the EVMS team, we would like to announce a significant change
in direction for the Enterprise Volume Management System project.

As many of you may know by now, the 2.5 kernel feature freeze has come
and gone, and it seems clear that the EVMS kernel driver is not going
to be included. With this in mind, we have decided to rework the EVMS
user-space administration tools (the Engine) to work with existing
drivers currently in the kernel, including (but not necessarily limited
to) device mapper and MD.

Why make this change? With EVMS being passed over for inclusion in 2.5,
the future of the EVMS kernel driver becomes very uncertain. We could
obviously continue working on it and keep it up-to-date as a patch
against the latest kernels. Numerous helpful comments and changes were
suggested during the review of the code last month on the kernel mailing
list. We could spend the time to make many of the desired fixes,
including some architectural and interface changes. However, the one
issue that has not been addressed at length is EVMS's in-kernel volume
discovery mechanism.  We believe that even if the other changes are
made, this will eventually become an issue at a later time. Moving
discovery to user-space is certainly a possibility. However, at that
point, it would become difficult to differentiate the EVMS driver from
the device mapper driver, since they would be performing very similar
tasks.

In addition, there would be no need to maintain duplicate MD kernel
code in order to provide compatibility with existing software RAID
devices.  Obviously this duplication has been a significant issue, but
it was an unfortunate necessity in order for MD devices to be discovered
within the current EVMS kernel framework. With discovery moving to
user-space, the EVMS tools can simply be rewritten to communicate with
the existing MD driver in the kernel. This approach allows MD to be used
directly, without requiring it to be immediately ported to device mapper.
However, if the decision is made in the future to make that port, then
the EVMS tools should only become simpler.

We will also emphasize that this change has not been made suddenly or
without a great deal of thought. We have been contemplating this
possibility since shortly after the Ottawa Linux Symposium in July.
However, we continued to develop the EVMS kernel driver because of
input from our users. We wanted to go ahead and submit the driver and
get the opinion of the full community before making this decision. In
the last few weeks it has become clear that the current EVMS approach
is not what the kernel community was looking for, so we have spent that
time determining the feasibility and consequences of making this switch.
We have come up with a good initial plan, and everyone involved now
agrees that this is the best course of action.

So how will this switch affect the EVMS users? Ideally, we want the
users' experience with EVMS to remain completely unchanged. Based on
our current plans, the user interfaces will not have to change at all,
since we don't see any major changes to the Engine's external
application interface. The plan is to provide the same, single,
coherent method for performing all volume management tasks. This change
will be almost transparent for most users. The same features, plugins,
and capabilities will be supported.

There will, of course, be some minor changes. Specifically, installing
EVMS will be slightly different. It will involve different kernel
options than you are used to with the current version. In the 2.5 kernel,
all of the major components are already present, so little, if any,
kernel patching should be necessary. Since device mapper has not yet
been included in the main 2.4 kernel, 2.4 users will still require kernel
patches. In addition, some functionality still does not exist in any of
the available drivers. Specifically, we may provide extra device mapper
modules for features like bad block relocation. The installation of the
EVMS engine tools, on the other hand, should not change significantly
from the current method.

The other major difference will be due to the move to user-space discovery.
First of all, why make this switch? The most obvious reason is that the
kernel drivers become much simpler, and the only things they need to
provide is I/O handling and a method for activating the volumes. While
disk partitioning and software RAID still perform discovery in the kernel,
the trend seems to be to move these tasks to user-space. It is likely at
some point in the future that partitioning and MD will also be moved out
of the kernel as well. However, the drawback to making this switch is
losing automatic boot-time volume discovery. Activating EVMS volumes will
now require a call to a user-space utility, which will need to be added to
the system's init scripts in order to activate the volumes on each boot.

In addition, this switch complicates having the root filesystem on an
EVMS volume. Currently there is a lot of work being done on adding
initramfs to the 2.5 kernel, which will provide a pre-root-fs user-space.
This new system should provide a simple method for adding tasks to run
during this early user-space, and those who wish to use root-on-EVMS will
just need to add the EVMS tools to their initramfs. For 2.4 users, this
means using an initial ramdisk (initrd) to provide this same pre-root
user-space. Initrd setup is certainly awkward and often distribution-
specific. But we will do our best to provide adequate instructions and
assistance to those who need help in that situation.

Looking ahead, we *will* continue to *fully* support the 1.2.0 version
of EVMS on 2.4 kernels, and possibly release a 1.2.1 version with some
recent bug fixes. We will also make a reasonable effort to maintain the
current EVMS kernel driver on 2.5. It will not go through any other
major changes, but we will try to keep it up-to-date and working with
the latest 2.5 releases, until the new EVMS tools are complete. At that
point, the 2.5 EVMS driver will be dropped. Also, the new enhancements
we have been working on recently, such as clustering and volume move,
will only be developed under the new Engine model, and will not be
available for the current 1.2.x code base.

So how long will this take? Currently, we are estimating that we can
have the user-space volume activation framework working, along with
initial support for most of the plugins, by early 2003. Certain features,
such as BBR and Snapshotting, may take longer to work out the details of
their operation. We will soon open a new CVS tree to hold the new Engine
code, leaving the old trees as a repository for bug fixes to the 1.2.x
version.

In summary, we feel that this decision is the best way to support our
users for the long term. We want to provide EVMS on current and future
kernels, and we feel this change provides the best method for achieving
that. At the same time, this addresses all of the concerns voiced by
the kernel community.  If anyone has any questions or concerns about
this decision, please email us or the EVMS mailing list at
evms-devel@lists.sf.net. We will be happy to answer any questions or
discuss these changes in more detail.

Thank you,

The EVMS Team
http://evms.sourceforge.net/
evms-devel@lists.sourceforge.net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



to post comments

EVMS changes direction

Posted Nov 6, 2002 15:21 UTC (Wed) by dkite (guest, #4577) [Link] (1 responses)

This should be added to the kernel howto's. "What to do if your project you have been working on for years is not included", or "Reasons not to fork".

Very impressive. Kudos to the development team. Looks like the whole system will improve as a result.

Derek

EVMS changes direction

Posted Nov 6, 2002 22:04 UTC (Wed) by Peter (guest, #1127) [Link]

Very impressive. Kudos to the development team. Looks like the whole system will improve as a result.

Seconded. I've been hoping for the past month or two that they would make this decision - architecturally, DM and MD are good solutions and are flexible enough to support layering other stuff on top of them, including both LVM2 and EVMS.

Classy move, EVMS people.

EVMS changes direction

Posted Nov 6, 2002 18:48 UTC (Wed) by hisdad (subscriber, #5375) [Link] (1 responses)

This means if we use evms on a 2.4 system, we can't experiment with a 2.5 kernel.
Unfortunate.

EVMS changes direction

Posted Nov 6, 2002 22:01 UTC (Wed) by Peter (guest, #1127) [Link]

This means if we use evms on a 2.4 system, we can't experiment with a 2.5 kernel. Unfortunate.

Welcome to my world. (: I use LVM, so until DM was included in the 2.5 kernel I couldn't test it - LVM did not survive the block device changes in 2.5.1 and 2.5.2, so it has been broken for basically the whole series.

Besides, if you read the message carefully, you'll note that Kevin is hoping to complete the changeover in early 2003 and will continue to maintain the current kernel patch until then.

At that point, in order to boot both 2.4 and 2.5 kernels you will have to figure out how to make two versions of the userspace tools coexist and select themselves when the appropriate kernel boots. Again - welcome to my world. LVM was like this for quite awhile in the 2.2 and 2.3 days - I used four different versions of its rapidly evolving ABI, with four sets of userspace tools, during that time. I hacked up the LVM tools to do this detection / selection, and a very similar approach was eventually implemented in the Debian packaging. It's annoying but doable. Quite possibly the EVMS maintainers will actually do that part for you; if not, perhaps someone like Debian will.

Oh, I forgot: they said they'll also be supporting DM on 2.4 kernels, so when the fateful flag day comes, you could just recompile your 2.4 kernel with the device mapper patch.

EVMS changes direction

Posted Nov 7, 2002 19:06 UTC (Thu) by job (guest, #670) [Link] (1 responses)

But .. but ... EVMS offers more functionality than the in-kernel DM och MD do! (And these two overlap, because DM can stripe volumes as well -- so the rest of MD functionality really should be moved to DM as well.) The article mentions bad block reallocation but there's more in there. I don't think it's possible to implement this on DM. What about it?

Also, the in-kernel discovery is *very* nice to have (being a sysadmin) and it really simplifies booting. I guess the initramfs is good enough but then I want the partition discovery and such overly simple tools for logical volumes to be moved to userspace as well! This would require all kernels to be linked with an initramfs image, which doesn't really improve anything. Is the kernel really going this way, and why?

EVMS changes direction

Posted Nov 8, 2002 11:36 UTC (Fri) by Wol (subscriber, #4433) [Link]

This would require all kernels to be linked with an initramfs image, which doesn't really improve anything. Is the kernel really going this way, and why?

AFAICT, yes

It makes for a far smaller kernel, as loading modules requires loads of user-space or call-once code, and this means all this crud can be run in user space, and then dropped. With current kernels, I don't know what the figure is, but it wouldn't surprise me if 50% of the RAM occupied by the kernel is "dead space", and the kernel guys want to get rid of it.

This discovery etc code is a classic example - it only runs on boot, so why should it be in the kernel, cluttering up RAM for evermore?

Cheers,
Wol


Copyright © 2002, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds