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/
Posted Nov 6, 2002 15:21 UTC (Wed)
by dkite (guest, #4577)
[Link] (1 responses)
Very impressive. Kudos to the development team. Looks like the whole system will improve as a result. Derek
Posted Nov 6, 2002 22:04 UTC (Wed)
by Peter (guest, #1127)
[Link]
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.
Posted Nov 6, 2002 18:48 UTC (Wed)
by hisdad (subscriber, #5375)
[Link] (1 responses)
Posted Nov 6, 2002 22:01 UTC (Wed)
by Peter (guest, #1127)
[Link]
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.
Posted Nov 7, 2002 19:06 UTC (Thu)
by job (guest, #670)
[Link] (1 responses)
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?
Posted Nov 8, 2002 11:36 UTC (Fri)
by Wol (subscriber, #4433)
[Link]
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".EVMS changes direction
EVMS changes direction
Very impressive. Kudos to the development team. Looks like
the whole system will improve as a result.
This means if we use evms on a 2.4 system, we can't experiment with a 2.5 kernel.EVMS changes direction
Unfortunate.
EVMS changes direction
This means if we use evms on a 2.4 system, we can't experiment
with a 2.5 kernel. Unfortunate.
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?EVMS changes direction
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
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
