BIOS configuration via OS tools
Intro
It’s possible to configure BIOS options from the OS on SuperMicro and HP platforms. This removes the need for IPMI access, rebooting and going into the BIOS to apply the needed configuration changes.
All options that are needed by StorPool are described in the relevant installation guides. Some examples are given below, but those are not exhaustive.
SuperMicro
The changes are done via the SuperMicro Update Manager (SUM) tool, available at Supermicro Update Manager.
Warning
The BIOS reconfiguration is currently known not to work on SuperMicro EPYC2 nodes.
Note
The tool requires a license from SuperMicro to work. Having the license is highly recommended for all StorPool installations on SuperMicro servers from 2019-01 onward.
Dumping the BIOS is done in the following way:
./sum --file cbios.cfg -c GetCurrentBiosCfg
This will dump the current BIOS settings in a file called cbios.cfg
. After
modifying the file, it can be loaded via the following command:
./sum --file cbios.cfg -c ChangeBiosCfg
The file has full help embedded in it and should be pretty much self-explanatory.
Note
After loading the config a reboot would still be required for the changes to take effect.
SR-IOV
The option is called “SR-IOV Support”
NUMA nodes on AMD EPYC2
The option is called “NUMA Nodes Per Socket” and should be set to NPS4
.
DELL
The changes are done via the racadm
tool, available at Dell’s web site. The
tool uses a hierarchical level of options to access the different options. Here
is one example session:
root@node9 ~ # racadm get
iDRAC
System
LifeCycleController
BIOS
NIC
STORAGE
FC
root@node9 ~ # racadm get NIC
DeviceLevelConfig
FCoEConfiguration
FCoEGenParams
FrmwImgMenu
IscsiFirstTgtParams
IscsiGenParams
IscsiInitiatorParams
IscsiSecondTgtParams
IscsiSecondaryDeviceParams
NICConfig
NICPartitioningConfig
VndrConfigPage
root@node9 ~ # racadm get NIC.DeviceLevelConfig
NIC.DeviceLevelConfig.1 [Key=NIC.Integrated.1-1-1#DeviceLevelConfig]
NIC.DeviceLevelConfig.2 [Key=NIC.Integrated.1-2-1#DeviceLevelConfig]
NIC.DeviceLevelConfig.3 [Key=NIC.Integrated.1-3-1#DeviceLevelConfig]
NIC.DeviceLevelConfig.4 [Key=NIC.Integrated.1-4-1#DeviceLevelConfig]
root@node9 ~ # racadm get NIC.DeviceLevelConfig.1
[Key=NIC.Integrated.1-1-1#DeviceLevelConfig]
#SRIOVSupport=Available
VirtualizationMode=SRIOV
root@node9 ~ # racadm set NIC.DeviceLevelConfig.1.VirtualizationMode SRIOV
[Key=NIC.Integrated.1-1-1#VirtualizationMode]
RAC1017: Successfully modified the object value and the change is in
pending state.
To apply modified value, create a configuration job and reboot
the system. To create the commit and reboot jobs, use "jobqueue"
command. For more information about the "jobqueue" command, see RACADM
help.
To apply the settings set above, a job-queue
needs to be setup to apply them:
racadm jobqueue create NIC.Integrated.1-1-1
The above applies the BIOS settings.
SR-IOV
The following code snippet enables SR-IOV in BIOS and on the first two NICs in the system:
racadm set BIOS.IntegratedDevices.SriovGlobalEnable Enabled
racadm jobqueue create BIOS.Setup.1-1
for i in 1 2 ; do racadm set NIC.DeviceLevelConfig.${i}.VirtualizationMode SRIOV ; sleep 2 ; done
for i in 1 2 ; do racadm get NIC.DeviceLevelConfig.${i}.VirtualizationMode ; sleep 2 ; done
for i in 1 2 ; do racadm jobqueue create NIC.Integrated.1-${i}-1 ; sleep 2 ; done
The example above enables the global option for SR-IOV and creates a job to apply it, then sets the options of the first two NICs, displays them and creates jobs to apply them.
HP
Currently work in progress.