Mailinglist Archive: yast-devel (52 mails)

< Previous Next >
[yast-devel] Storage::Proposal and boot requirements
  • From: Ancor Gonzalez Sosa <ancor@xxxxxxx>
  • Date: Mon, 4 Apr 2016 09:11:23 +0200
  • Message-id: <5702139B.70802@suse.de>
As part of https://trello.com/c/OgN6SVc4/ we need to discuss a couple of
things in the general approach of the new proposal. Just sending this
mail to set the background to the discussion. I think it fits into this
ML better than into the opensuse-storage one.

The old proposal
================
By default it provides a layout based on the settings from control.xml
and "Edit Proposal Settings"

The "Choose Hard Disk" button can also be used in addition to "Edit
Proposal Settings" to manually select the disk (only one) and the areas
of that disk to use.

Our current approach
====================
DiskAnalyzer decides which is the list of candidate disks (just making
sure they are not removable, they are not the installation media and so on).

VolumesGenerator decides all the volumes that are needed (including
boot-related, root, home, etc.)

SpaceMaker tries to make space in all the candidate disks.

PartitionCreator decides where to place every partition based on the
resulting free spaces.

Problems
========
The needed volumes for booting can vary based on where "/" is finally
going to be located. We have examples about it already and we can easily
think about more interdependencies.

The pieces for the "Choose Hard Disk" option are there, but I'm not 100%
sure what's the plan about it.

Questions in my head
====================
Who should have the responsibility of deciding...
- ...what disks/areas can be used? (now it's DiskAnalyzer)
- ...where to place "/"? (now it's PartitionCreator)
- ...where to place "/boot"? (now it's PartitionCreator)

How to make sure that all the components know about those decisions in
time to make their job?

One alternative
===============
To me, knowing the devices that is going to hold "/" looks like a
prerequisite to make a proposal. Thus, adding it as an input parameter
could make sense.

So, in a schematic way we can say that instead of the current
Proposal.new(settings: the_settings)
we would have
Proposal.new(settings: the_settings, root_device: "/dev/sda")
or
Proposal.new(settings: the_settings,
root_device: "/dev/sda",
# Restrict the set returned by DiskAnalyzer
areas: ["/dev/sda", "/dev/sdb2"])

Of course, these two parameter could we merged into Proposal::Settings
if we decide it makes sense, just keeping in mind that root_device would
be mandatory (and with no generic reasonable default).

Another alternative
===================
Discussing this with Steffen, he suggested the possibility of doing a
two steps approach, so instead of expecting the "user" to give us the
root device as parameter, we

1. find a 'system disk' (the one holding "/" and boot volumes)
2. find space for the rest (if anything)

Let's discuss it today in the mailing list or in a call.

Cheers.
--
Ancor González Sosa
YaST Team at SUSE Linux GmbH
--
To unsubscribe, e-mail: yast-devel+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: yast-devel+owner@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages