mmchfirmware command
Changes the firmware levels on one or more storage components.
Synopsis
mmchfirmware --type {storage-enclosure | drive | host-adapter}
[ --update-id PREVIOUS]
[ --serial-number SerialNumber ]
[ -N { Node[,Node...] | NodeFile | NodeClass } ]
[--stop-on-error { yes | no } ]
[ --fast-offline ]
[ --dry-run ]
[ -v {yes | no}
Availability
Available with the Elastic Storage Server.
Description
Use the mmchfirmware command to update the firmware level on one or more storage components.
A particular component is updated only if it satisfies the --update-id, --type, --serial-number, and -N options when they are specified.
Consequently, when you update drives on a cluster that has the IBM Storage Scale daemons active, you need to use the -N option to include both servers of the ESS building blocks that might be affected.
Parameters
- --type {storage-enclosure | drive | host-adapter}
- Specifies the type of component for which firmware is to be updated.
- --update-id PREVIOUS
- Only the keyword PREVIOUS is supported. The default is to install
the newest available firmware.
The keyword PREVIOUS assumes that you already loaded the latest firmware available and now want to back off to the previous level.
- --serial-number SerialNumber
- Specifies the serial number of a particular component to be updated.
- -N {Node[,Node...] | NodeFile | NodeClass}
- Specifies the nodes to be included in the update. This command supports all defined node
classes. Only components directly accessible from one of the specified nodes are included in the
component selection list. The default is to run on the invoking node.
For general information about how to specify node names, see the following IBM Storage Scale RAID: Administration topic: Specifying nodes as input to IBM Storage Scale RAID commands.
- --stop-on-error {yes | no}
- Specifies whether the command is to stop when a firmware update fails. The default value is yes.
- --fast-offline
- This option is deprecated. It was intended to increase parallelism when updating drive firmware
if IBM
Storage Scale was shut down on all the nodes in
the cluster. Parallelism automatically happens for the following cases:
- host-adapter: Runs in parallel on all of the nodes that are specified
unless debugging is enabled.Note: IBM Storage Scale must be shut down on all of the specified nodes.
- drive: Parallelism automatically happens if IBM
Storage Scale is shut down on all of the potentially affected
nodes.Note: Potentially affected nodes include the input nodes and any other nodes that have access to the same storage enclosures and drives.
- storage-enclosure: Parallelism automatically happens if IBM
Storage Scale is shut down on all of the potentially affected
nodes.Note: Potentially affected nodes include the input nodes and any other nodes that have access to the same storage enclosures and drives.
- host-adapter: Runs in parallel on all of the nodes that are specified
unless debugging is enabled.
- --dry-run
- Specifies that the command is to be run without updating any firmware.
- -v {yes | no}
- Specifies whether the command is to verify that the firmware version is newer than the current version. A value of yes specifies that the firmware is to be updated only if it is a newer version than the firmware already installed on the device. A value of no specifies that the firmware is to be updated in all cases, even if its version number indicates that it is an earlier level or the same level as the firmware already installed on the device. The default value is yes.
Exit status
- 0
- Successful completion.
- nonzero
- A failure occurred.
Security
You must have root authority to run the mmchfirmware command.
The node on which the command is issued must be able to execute remote shell commands on any other node in the cluster without the use of a password and without producing any extraneous messages. For more information, see the following IBM Storage Scale RAID: Administration topic: Requirements for administering IBM Storage Scale RAID.
Examples
- To update an enclosure (in this case, enclosure SV13306129) to the latest
firmware that was supplied, issue the following
command:
mmchfirmware --type storage-enclosure --serial-number SV13306129
The system displays output similar to this:Mon Dec 3 08:19:12 EST 2012: mmchfirmware: Processing node c45f01n01-ib0.gpfs.net c45f01n01-ib0: update-directory /usr/lpp/mmfs/updates/latest/firmware/enclosure/ProductId c45f01n01-ib0: Found storage-enclosure DCS3700 SV13306129, update-id esm0375.esm. c45f01n01-ib0: Updating enclosure firmware ESM_A. c45f01n01-ib0: Updating enclosure firmware ESM_B.
- To update the drive firmware, issue the following command:
mmchfirmware --type drive
The system displays output similar to this:Mon Dec 3 09:10:47 EST 2012: mmchfirmware: Processing node c45f02n01-ib0.gpfs.net c45f02n01-ib0: update-directory /usr/lpp/mmfs/updates/latest/firmware/drive. c45f02n01-ib0: Found drive firmware update-id ibm_fw_hdd_sas-9.99_linux_32-64_gn r.zip. c45f02n01-ib0: Updating firmware for drives in recovery group rg. c45f02n01-ib0: Updating firmware for drives sg46,sg179,sg183. c45f02n01-ib0: Updating firmware for drives sg48,sg158,sg171. c45f02n01-ib0: Updating firmware for drives sg45,sg131,sg352. c45f02n01-ib0: Updating firmware for drives sg304,sg123. c45f02n01-ib0: Updating firmware for drives sg193,sg180. ... c45f02n01-ib0: Updating firmware for drives not contained in a recovery group. c45f02n01-ib0: Updating firmware for drives sg201,sg29,sg250,sg297,sg36. c45f02n01-ib0: Updating firmware for drives sg345,sg97,sg200,sg249,sg199. c45f02n01-ib0: Updating firmware for drives sg69,sg28,sg298,sg346.
- To update the drive firmware for a specific drive, you first must determine the
serial number of the drive. You can discover the drive serial number by using one of two options, as
follows:
- Issue the following command:
The system displays output similar to this:mmlspdisk RecoveryGroupName --pdisk
The drive serial number is the last part of the>mmlspdisk BB1RGL --pdisk e4d5s04 pdisk: replacementPriority = 1000 name = "e4d5s04" device = "/dev/sdbf,/dev/sdhy" recoveryGroup = "BB1RGL" declusteredArray = "DA2" . . . hardware = "IBM-ESXS ST2000NM0001 BC4A Z1P4K3VF00009320N6RS"
hardware
value:Z1P4K3VF00009320N6RS
in this example. - Issue the following command:
Edit your output file (out1, for example) and search for the pdisk name or device path that you want to update:mmgetpdisktopology > OutputFile
The system displays output similar to this:cat out1 | grep e4d5s04
The drive serial number is field 12 of the colon-delimited fields. Again, you see that the drive serial number is>cat out1 | grep e4d5s04 sdbf,sdhy:0:/dev/sdbf,/dev/sdhy:C0A82D0B5384A13C|e4d5s04|BB1RGL|C0A82D0B53849EE7|DA2||1: naa.5000C50055D5F0E7:0000%3a11%3a00.0/7.0.51.0,0000%3a8b%3a00.0/8.0.51.0:[7.0.51.0], [8.0.51.0]:/dev/sg59,/dev/sg237:IBM-ESXS:ST2000NM0001:BC4A:Z1P4K3VF00009320N6RS:46W6911: 2000398934016:naa.500062B200422340,naa.500062B200422280:50080e5245ded03f.50080e5245dec03f: SV13306129:0/1:5-4:5000c50055d5f0e5.5000c50055d5f0e6:sg8,sg186:
Z1P4K3VF00009320N6RS
in this example.
mmchfirmware --type drive --serial-number Z1P4K3VF00009320N6RS
- Issue the following command:
- This example shows you how to update the drive firmware when the IBM Storage
Scale RAID cluster is shut down. Updating the firmware during a
maintenance shutdown is much faster than updating the firmware while IBM Storage
Scale is active. With IBM Storage
Scale active, the parallelism is reduced, pdisks must be
suspended and resumed, and declustered arrays must be rebalanced between each update iteration. With IBM Storage Scale shut down in the cluster, run this command:
Progress messages are suppressed during this concurrent update because they are interspersed from different nodes. To display progress messages, run this command:mmchfirmware --type drive --fast-offline
DEBUGmmchfirmware=1 mmchfirmware --type drive --fast-offline
- To update the host adapter firmware, run this command:
mmchfirmware --type host-adapter
Note: The node must be down where the host adapter firmware is being updated.
See also
Location
/usr/lpp/mmfs/bin