The Future of Linux File Systems and Volume Managers
This is a topic I can be extremely passionate about. I enjoy working with data storage technologies and especially enjoy topics on file systems/volume managers. It is true when they say, “Once you get into data storage it is difficult getting out.” That is because the industry is fascinating. Working with enterprise class equipment is an experience that cannot be forgotten. We are talking about rack mountable blade servers, RAID and JBOD storage arrays working with SCSI-based technologies such as Fibre Channel, SAS (SATA under the SAS), protocol analyzers and more. And that is only the hardware. Step into the software aspect of it such as High Availability, i.e. Clustering, Dynamic Multipathing, Load Balancing, things tend to get a bit more exciting.
Over the course of time, I have had significant exposure to this industry in both permanent and part-time consulting roles. With that, I have also had a significant amount of exposure with UNIX, GNU/Linux and Microsoft Windows running in these environments. With this exposure I have seen what has been efficient and what has not. It is my personal opinion that both UNIX and GNU/Linux are more well equipped to cater to enterprise market although I am still concerned for the future of GNU/Linux with regards to one specific area and that is storage management.
The Dilemma
To date, I don’t think I have ever seen any other operating environment support so many file systems and volume managers. You name it and I can assure you that one way or another, it runs on Linux. The problem with having multiple choices of methods or applications in configuring and managing your storage is that there may come a time where you will have to toggle between multiple interfaces in order to accomplish one set of tasks. A good example is that you integrate an older setup running md-raid on an environment which is also running dmraid/lvm2 with multiple managed volumes each with their own respective file systems. Some of those volumes have snapshot enabled while others are in a cluster. On top of that, you are multipathing/load balancing through device-mapper. How do you manage this? There is no single complete solution that aids in connecting these types of technologies. Between the command line and whatever limited graphical wrappers that exist for these technologies, you must toggle between all of them in order to accomplish some of the simplest tasks.
Years ago in the 2.5.x kernel development days, there was a struggle between two types of technologies, LVM and the Enterprise Volume Management System (evms). In the end LVM won the epic battle but the evms team did not give up. They decided to take a different approach of creating user land based utilities that do just what I am describing. It wasn’t too long later that the evms development group ceased further development on the project.
A Possible Solution
We have seen the success of GNU/Linux in the enterprise market but I believe it can be more successful if we introduced more user friendly methods of management? One approach could be the revival of evms. Another approach is to redesign a similar and updated concept for the user land and like evms design both CLI and GUI based management environment. Add additional support for automation such as a scriptable interface from interpretors like the UNIX shell or even Python.
I know if I had the time and possibly invested finances, this would be one of the first open source projects I would tackle. Having too many tools, volume managers and file systems is never an issue. The issue is bringing them together under one hood and making an administrators life much easier.
Do you, the reader feel that things are fine the way they are or that maybe we need to invest some focus for a more universal storage manager?
