The following article has been contributed by Ancor González Sosa and the YaST team at SUSE.
In case you are following the YaST Team blog regularly, you might have already read about the implementation changes expected for libstorage-ng. Yes, these changes have been discussed for nearly two years now. Libstorage is the component used by YaST – mainly in the installer, the partitioner and AutoYaST – to access disks, partitions, LVM volumes and more.
This relatively low-level component has been a constant source of headaches for YaST developers for years. But all that effort is about to bear fruit now. The original design has fundamental flaws that limited YaST in many ways. Thus the YaST Team has been working to write a replacement for it: the libstorage-ng era has begun.
This article offers a partial but very illustrative view of the new things that libstorage-ng will allow for in the future, and the libstorage limitations that will be left behind. For example, you can already install a fully encrypted system with no LVM using the automatic proposal. And thanks to libstorage-ng, you can much better handle file systems placed directly on a disk without any partitioning. In the near future, it will allow you to fully manage Btrfs multi-device file systems, bcache and many other technologies that were impossible to accommodate into the old system.
What’s New, Right Here Right Now
Rewriting libstorage with a new approach means that all the other components that sit on top must also be adapted or rewritten to take advantage of the new capabilities. Alongside the replacement of libstorage with libstorage-ng, the yast2-storage module is replaced by yast2-storage-ng. This offers a re-implementation of almost everything related to storage in YaST.
New Partitioning Proposal During Installation
The times in which one root partition, one swap of a predefined size and one optional separate home partition were enough to satisfy all the Linux use cases are gone. Nowadays SUSE and the openSUSE community produce many products for scenarios that go beyond the classic server and desktop paradigms. Products like SUSE Linux Enterprise Server for SAP Applications, SUSE CaaS Platform or openSUSE Kubic.
The new proposal allows more control to everyone who creates products and flavors based on SUSE Linux Enterprise or openSUSE. It also offers many more possibilities to the users, like for example encrypting partitions with no need to use LVM, something largely requested by the community. But with great power comes great responsibility! Very likely it will take some snapshots to fully tweak the new configurable aspects of the proposal to match the Tumbleweed requirements precisely.
As a Tumbleweed user, you will be first to experience this implementation and tweaks, so be please be aware of these gradual adjustments taking place with YaST over the next couple months.
Rewritten Expert Partitioner
The YaST partitioner is known for being very powerful. But it has always come with several bugs – most of them very hard to track and fix – and inconsistencies here and there. In the mid-term, libstorage-ng will make the partitioner much more powerful and way more reliable.
For the first released version of yast2-storage-ng, it was decided to deliver a rewritten clone of the old partitioner. This means: same look and functionality on the surface, but a completely new engine under the hood. It also means: old bugs should have vanished – there will be completely new bugs instead.
Regarding the new partitioner, there is still some work to do. So please, before reporting a bug about missing functionality, just take a look at this article here. It reflects what is already being implemented, and it contains several things marked as “pending” for stuff that is still under development.
Rewritten AutoYaST Management of the <Partitioning> Section
A big part of AutoYaST, which is the powerful system for unattended installation, massive update and automated configuration that is used by many SUSE customers and openSUSE users, has also been rewritten to use and rely on the new yast2-storage-ng mechanisms. The new version of AutoYaST is designed to closely follow the documentation of the partitioning section of the AutoYaST profile. Being a re-implementation, it introduces some differences compared to the previous version, especially in areas where the version didn’t honor the documentation in a 100 percent accurate way.
As it also happens with the re-implemented partitioner, most of the old bugs should be gone now but – again – there is a big chance of new ones being introduced. Since AutoYaST is used in a huge variety of situations and scenarios, we expect users to report the problems found with the new partitioning system, including the used AutoYaST profile and the corresponding YaST logs, so all the details can be ironed up as soon as possible.
Now – let us know about your experiences with the enhancements in YaST – and have a lot of fun!