On 05/27/2015 11:23 AM, Imre Farkas wrote:
> On 05/27/2015 09:50 AM, Dmitry Tantsur wrote:
>> On 05/27/2015 09:38 AM, Imre Farkas wrote:
>>> 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?
>>
>> ETOOMANYPLUGINS :D
>>
>> I would say it's fine for root_device_hint plugin. It's not enabled by
>> default upstream, and it's a normal flow involving it.
>>
>
> Patch proposed:
https://review.openstack.org/#/c/185896/
Is it fine if we carry it downstream for some time? During rename I
don't want to land anything upstream. I hope to be finished in a couple
of days.
>
>>>
>>> Imre
>>>
>>>
>>>>>
>>>>> Any thoughts/preference on the above described workarounds?
>>>>>
>>>>> Thanks,
>>>>> Imre
>>>>>
>>>>>
>>>>> [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1222124
>>>>
>>>
>>
>