On 05/26/2015 05:43 PM, Dmitry Tantsur wrote:
On 05/26/2015 04:42 PM, Imre Farkas wrote:
> Hi all,
>
> I would like to gather some feedback on the current worfklow regarding
> the subject. RAID configuration on DRAC machines works as follows (it
> assumes there's no RAID volume on the machine):
> 1. user defines the deployment profile and the target raid configuration
> for each profile
> 2. ironic-discoverd introspects the node to gather facts
> 3. ach-match picks a deployment profile based on the gathered facts
> 4. instack triggers the raid configuration based on the selected profile
>
> A bug[1] has been discovered regarding step 2: ironic-discoverd fails
> because it tries to figure out the size of the local disk but it can't
> find any as no volume exists on the RAID controller yet. This is a
> chicken-and-egg problem because ironic-discoverd doesn't work if the
> RAID volume(s) has not been configured but the RAID configuration can't
> be triggered if ironic-discoverd hasn't gathered the facts about the
> node.
>
> Few possible workarounds:
> #1: make saving the local disk size optional in the standard plugin in
> ironic-discoverd. The downside is that the standard plugin is supposed
> to enroll nodes in ironic with all attributes necessary for scheduling.
> This assumption might fail with this solution.
-1 will never get upstream for the reasons you stated
>
> #2: run discovery multiple times with different set of plugins. The run
> before RAID configuration would exclude the standard plugin while the
> run afterwards could potentially exclude others. The parameters passed
> by the user to ironic-discoverd for each run need to be properly
> documented. It would slow down the installation because each run
> requires a reboot which takes a lot of time on bare metal.
Possible, but better (IMO) idea below.
>
> #3: name your suggestion!
#3. modify your existing root_device_hint plugin to insert a fake
local_gb value (with issuing a warning), and then put it to the
beginning of the plugin pipeline. WDYT?
I would avoid that for the very same reason as we rejected option #1: it
would do things quite differently than it is expected. However, building
on top of this idea, we could introduce a fake_local_gb plugin and
enable it as default in instack. Thoughts?
Imre
>
> Any thoughts/preference on the above described workarounds?
>
> Thanks,
> Imre
>
>
> [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1222124