Configure RAID Interface for iRMC driver #319
Conversation
|
Hi @dhellmann , @dtantsur |
|
/cc dtantsur |
| } | ||
|
|
||
| func (a *iDracAccessDetails) RAIDInterface() string { | ||
| return "no-raid" |
There was a problem hiding this comment.
Is there a reason not to set it to "agent"?
RAID configuration is going to be added in a driver-independent way, so I'd have thought we'd want to ensure that all drivers can use it somehow.
There was a problem hiding this comment.
Is there a reason not to set it to "agent"?
I would like to set it as no-raid as default interface
RAID configuration is going to be added in a driver-independent way, so I'd have thought we'd want to ensure that all drivers can use it somehow.
If vendor driver want to support RAID configuration, they can change no-raid to their driver
There was a problem hiding this comment.
Note that software RAID is vendor-independent.
There was a problem hiding this comment.
Note that software RAID is vendor-independent.
Yep. But sofware RAID is out of scope in this version of RAID configuration
There was a problem hiding this comment.
The default RAID interface for the iDrac driver in Ironic is idrac-wsman (unlike the iRMC driver, where the default is no-raid). So this change actually disables RAID support in iDrac where before it worked fine, while enabling it in iRMC where before it was disabled.
I think that for all of the non-iRMC drivers you should return an empty string so that it continues to use the driver default instead of overriding it to no-raid in every case.
There was a problem hiding this comment.
Thanks @zaneb
You're right. I have just update my PR to set RAID interface of non-iRMC drivers to empty string as you said
Please keep going on :)
|
|
||
| // Boot interface to set | ||
| BootInterface() string | ||
|
|
There was a problem hiding this comment.
This is fine for a single RAID. But in many cases you have 2 RAIDs.
One for 2 or small # of disks for Boot/Operating system.
Another one, including NORAID for remaining disks.
There was a problem hiding this comment.
This applies to the whole patch.
It will be too hard to retrofit later.
There was a problem hiding this comment.
Do you have a specific proposal for a different API? As far as I can tell, the gopher cloud client for Ironic only accepts a single string. Are you proposing that it should take multiple values? Or are you proposing that the user needs to somehow specify the value?
There was a problem hiding this comment.
Doug,
I am thinking that a variable length array will be sufficient.
First, parameter the size of array. Default 1.
The second is array of RAIDinterfaces. Each raid interface will be a tuple. First, part of tuple will be RAID type, second is list (or array) of disks in that RAID.
I recall that Ironic has a way to specify more than one RAID per node. Would be good to check how they specify it. Maybe Digmabar can comment on it.
There was a problem hiding this comment.
This is an internal API, for statically defined types that let us pass different values to ironic based on the BMC type the user gives us. I think the value being returned here is telling ironic which RAID driver to use within itself (note the values returned by the methods below), rather than specifying individual controllers on a host. Are you saying we may need to tell ironic multiple values in that case?
There was a problem hiding this comment.
Yes, this is just telling the Ironic driver which RAIDInterface to use to configure RAID on this particular machine. So e.g. for the iDRAC driver the options are idrac-wsman/idrac, or no-raid to disable RAID support altogether (or agent, to configure it in software). Perhaps one day there'll be an idrac-redfish too. But this has nothing to do with what RAID arrays are to be created, that's in #292. All arrays are configured, or not configured, through the same interface.
There was a problem hiding this comment.
Yes, I agree with Arkady. IRonic support multiple Raid configuration for RAID. We should allow use to create multiple RAID which would be helpful for configuring root disk (say RAID1) and remaining disks (RAID 0 or non-raid) depending on the RAID controller. This will certainly good feature for us as Ironic is already supporting it.
@zaneb Yes. You understanding is correct. Above implementation is irrespective of which driver you are using whether it's idrac-wsman/idrac/idrac-redfish.
There was a problem hiding this comment.
That's exactly what's proposed in the current PR: https://github.com/metal3-io/baremetal-operator/pull/292/files#diff-2336c3885f739a6a5c66bc71e72497b3R133-R140
4f62bfe to
df1488e
Compare
| p.publisher("Registered", "Registered new host") | ||
|
|
||
| raidInterface := p.bmcAccess.RAIDInterface() | ||
| if raidInterface != "" { |
There was a problem hiding this comment.
The type of the RAIDInterface member in nodes.CreateOpts is string, so it will be initialised to an empty string on lines 239-244 anyway. There's no harm in just passing
RAIDInterface: p.bmcAccess.RAIDInterface(),
after line 241. You don't need to do anything special to check if the BMC plugin is returning an empty string.
There was a problem hiding this comment.
Thanks @zaneb . You're right.
But it seems that these Interfaces already added by [1]
So I would like to configure the RAID interface to irmc in this PR :)
df1488e to
bbf975b
Compare
bbf975b to
53381c8
Compare
|
/lgtm |
|
/approve |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: longkb, zaneb The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Currently, RAID interface of iRMC is set as empty when we create Ironic node. This PR aims to configure this interface to "irmc" to support RAID configuration in iRMC driver. Signed-off-by: Kim Bao Long <longkb@vn.fujitsu.com> Co-Authored-By: Dao Cong Tien <tiendc@vn.fujitsu.com>
METAL-376: Re-enable RAID interfaces
Currently, RAID interface is not set when we create Ironic node(#320). This PR aims to make RAID interface to be set by vendor driver.
Signed-off-by: Kim Bao Long longkb@vn.fujitsu.com
Co-Authored-By: Dao Cong Tien tiendc@vn.fujitsu.com