Feature changed by: Ancor Gonzalez Sosa (ancorgs) Feature #318196, revision 14 Title: Redesign YaST Storage Code
Requested by: Arvin Schnell (aschnell) Requested by: Jiri Srain (jsrain) Partner organization: openSUSE.org
Description: The structure of the target-map (holding almost all storage data in YaST) is outdated and not documented. Adding new features, e.g. use whole disk for filesystem, bcache, dm-cache or switching to and from partitions on MD RAID, is difficult and error-prone. Thus a redesign is required to be prepared for new features and make the software more robust. During hackweek I evaluated using the boost graph library for libstorage. The result was announced and is explained, see references. I consider the redesign to be mandatory but not for a specific version (although as soon as possible). Note: This feature is about a redesign, new functionality must by requested as individual feature requests.
Relations: - Evaluation Project on GitHub (url: https://github.com/aschnell/libstorage-bgl-eval/wiki) - Announcment on yast-devel (url: http://lists.opensuse.org/yast-devel/2014-10/msg00045.html)
Documentation Impact: No impact
Test Case: Internal test cases & integration test in openQA
Business case (Partner benefit): openSUSE.org: A must have before new features are requested by customers. Each new feature is harder and harder to implement with the current Yast Storage.
Discussion: #1: Jiri Srain (jsrain) (2018-02-20 07:45:46Z) Added this Fate for SLES15 for release notes entry.
#2: Stefan Knorr (stfnknorr) (2018-02-26 09:50:48Z) Hi Arvin, Jiri, Ancor, thanks for the release notes entry. Note that I moved it from category Installation -> Systems Management because it did not seem like this entry was crucial to installing SLES correctly (correct me if that assumption is wrong please!). Additionally, Arvin, could you give some reasoning why these features were removed or what they were replaced with?
#3: Ancor Gonzalez Sosa (ancorgs) (2018-02-27 01:16:32) (reply to #2) Well, to be honest, the content of the Release Notes entries on this fate only scratchs the surface of everything that has changed as part of its implementation. In reality, the impact of the changes is massive... specially during installation. Take a look to this article published some time ago in news.opensuse. org. It gives a general overview on how this affect installation, AutoYaST and other areas https://news.opensuse.org/2018/01/09/future-tumbleweed-snapshot-to-bring-yas... (https://news.opensuse.org/2018/01/09/future-tumbleweed-snapshot-to-bring-yas...) Many things has changed, in behavior and in UI. So we definitely need to do A LOT of work in the documentation area here. :-(
#4: Arvin Schnell (aschnell) (2018-03-01 11:37:50Z) (reply to #2) I can only give my view on the dropped features (I also added tmpfs), that is not an official explanation. Crypt Files: Old way to get encryption. LUKS should be used always. Device Mapper: Unclear use-case. I can only remember bug reports where storage detection did not work properly and the users tried to use the bare device mapper devices and failed. Unused Devices: I cannot say anything about this. Mount Graph:Unclear use-case. Tmpfs:Barely used since systemd creates the required tmpfses on its own.
#5: Stefan Knorr (stfnknorr) (2018-03-05 16:45:44Z) (reply to #4) Ancor, Arvin, thanks! I have added some information about the backend changes from the referenced post -- please check that I got this right and feel free to expand.
#6: Ancor Gonzalez Sosa (ancorgs) (2018-03-07 14:21:39) (reply to #5) I will try to expand it a little bit during this week (reminder for self: UI changes in the Guided Setup, alignment in the partitioner).
Release Notes: YaST Partitioner: Redesigned Back-end and UI Changes
Solution: Back-end Changes The partitioning back-end previously used by YaST, libstorage , has been replaced by libstorage-ng that is architected to allow new capabilities that were not possible before. For example, it is now possible to install a fully encrypted system without LVM using the automatic proposal and to correctly handle file systems placed directly on a disk without any partitioning. UI Changes Along with the library replacement, the yast2-storage module will be replaced by yast2-storage-ng which reimplements the storage code of YaST. Several outdated and less useful system views were removed from the partitioner in that rewrite: * Crypt Files - Use LUKS-based encryption instead * Device Mapper * Unused Devices * Mount Graph * Tmpfs - Largely managed by systemd now In addition, the Hard Disks system view does not display devices that cannot be manipulated using the partitioner. That includes: * Unformatted DASDs * Individual devices (that is, wires) of a multipath device * Disks that are part of a BIOS RAID + Moreover, the "Configure" menu button in the initial partitioner screen + does not longer include the "Provide Crypt Password" and "Configure + Multipath" options. During installation, any operation implying a + system rescan (like using the "Rescan Devices" button in the very same + screen) will always ask the user about what to do with inactive + Multipath systems and closed encrypted devices. AutoYaST Changes While the back-end that handles the AutoYaST section <partitioning> has changed, we kept compatibility in mind and there should be no changes in the XML layout.