yast / yast-storage-ng

Rewrite of https://github.com/yast/yast-storage
http://yast.github.io/
GNU General Public License v2.0
14 stars 20 forks source link

Identify the best disk for installation like a BOSS #1238

Closed ancorgs closed 2 years ago

ancorgs commented 2 years ago

Problem

Dell Server hardware ships with so-called Boot Optimized Storage Solution (BOSS) that is an AHCI controller with either a RAID1 or RAID0 of one or two M.2 SSD devices. This device is offered for the user to install the operating system there, thus freeing up more expensive disks (like NVMe, SAS SSD, Hardware RAID, etc.) for actual workload purposes.

Right now, BOSS devices are only identified because they use "DELLBOSS" as part of their model name. In the future, it is expected that a more stable and reliable mechanism will be offered.

But YaST treated that disk just like any other. It does not automatically suggest to install the operating system there, unless the device name (eg. /dev/sda) of that disk is the first one in alphabetical order. And it doesn't show any visual indication for the user to distinguish BOSS devices during the partitioning Guided Setup.

On related news, YaST is also known for not giving any special treatment in that regard to SD Cards. As reported at bsc#1187438, SD Cards are also treated just like any other disk, meaning the installer can suggest to install in such a card as first option, even if there are other non-removable disks in the system (note /dev/mmcblk0 comes first alphabetically than, for example, /dev/nvme0n1).

Solution

This adapts the partitioning in two ways:

Testing

Added unit tests for the initial proposal and for the information displayed in the UI.

Additionally, tested manually with QEMU + libvirt defining a couple of disks like this:

<disk type="file" device="disk">
  <driver name="qemu" type="qcow2"/>
  <!-- ... -->
  <vendor>DELL</vendor>
  <product>Algo0</product>
</disk>

<disk type="file" device="disk">
  <driver name="qemu" type="qcow2"/>
  <!-- ... -->
  <vendor>DELL</vendor>
  <product>Prod-DELLboss-10</product>
</disk>

This is how the Partitioner looks for such a system. Note no changes were made here. The current status of displaying the vendor and model in the tables is good enough for the current mechanism to indicate the BOSS device.

boss-partitioner

This is the initial proposal performed by the installer before any execution of the Guided Setup or the Partitioner. Note the BOSS device was selected for installation even if it was not the first alphabetically (although the swap existing in another device was reused, which is an intentional feature).

boss-initial2

Last but not least, this is how it looks when "Guided Setup" is selected. The BOSS device is at the top and clearly identified.

boss-guided

kobliha commented 2 years ago

All from the problem description, solution ... to testing looks cool. Thumbs up! :)

Idea for improvement: Suggested partitioning dialog does not indicate that the automatically chosen disk is DELL BOSS. This was actually not within requirements, but IMO it could help the customer to clearly see what is proposed to be used for the system. The customer would not need to go to the Partitioner to check that the Installer has done the right thing.

joseivanlopez commented 2 years ago

All from the problem description, solution ... to testing looks cool. Thumbs up! :)

Idea for improvement: Suggested partitioning dialog does not indicate that the automatically chosen disk is DELL BOSS. This was actually not within requirements, but IMO it could help the customer to clearly see what is proposed to be used for the system. The customer would not need to go to the Partitioner to check that the Installer has done the right thing.

This is exactly what I wanted to point.

ancorgs commented 2 years ago

Suggested partitioning dialog does not indicate that the automatically chosen disk is DELL BOSS.

I added another commit implementing that in a non-intrusive way. I mean, not changing any of the already existing (and already translated) strings. Specially since some of them come from libstorage-ng. If there is no BOSS involved, absolutely nothing changes.

I updated the corresponding screenshot in the description to show the detail.

kobliha commented 2 years ago

Looks cool, thanks! :)

Waiting for someone to file a generic request for writing The chosen device /xx is WD Blue SN550 NVMe SSD 1TB

coveralls commented 2 years ago

Coverage Status

Coverage increased (+0.003%) to 97.724% when pulling ee4eb346bb0dac6b5fa59eb8626b3552b77c0e63 on ancorgs:boss into 9858322e0a68108b9a3e5ed0a4f8d327162ee28a on yast:master.

yast-bot commented 2 years ago

:x: Internal Jenkins job #184 failed

yast-bot commented 2 years ago

:x: Public Jenkins job #383 failed

yast-bot commented 2 years ago

:x: Public Jenkins job #384 failed

yast-bot commented 2 years ago

:heavy_check_mark: Internal Jenkins job #185 successfully finished :heavy_check_mark: Created IBS submit request #256789