applydrivesoftware

Use the applydrivesoftware command to update drives.

Syntax

applydrivesoftware -filename [ -type { fpga | firmware } ] { -drivedrive_id | [ -all ] } [ -force ] [ -allowreinstall ] [ -allowdowngrade ]
applydrivesoftware -cancel

Parameters

-filename
(Required) Specifies the firmware update file name that must be copied to the /home/admin/update/ directory on the configuration node.
-typefpga | firmware
(Optional) Specifies the type of drive firmware to update. Drive firmware updates can be performed online, concurrently with I/O. However, fpga updates require the drive to be taken offline, which means target drives must be made candidate before issuing the applydrivesoftware command. The default value is firmware. See the chdrive command for more details.
-all
(Optional) Specifies that the drive firmware should be applied to every drive in the system, as long as that drive is online and has use member, use spare, or use candidate.
This does not apply to:
  • Drives that have dependent volumes
  • Drives that are members of non-redundant arrays
Drives hosting quorum qualify, but there is risk. To avoid this risk use -drive and make sure the quorum is moved in between applydrivesoftware invocations. Use the chquorum command to avoid updating a drive that is hosting quorum.
If you specify -all you must specify the -type as firmware.
Remember: The -all parameter differs from the -drive parameter because unsuitable drives are not added to the list of drives scheduled for update when you use -all.
-drivedrive_id
(Optional) Specifies one drive ID or a list of drive IDs (separated by a colon, [:]) to be updated. The maximum number of IDs is 128. If you have more than 128, use -all or multiple applydrivesoftware invocations to complete the update.
Remember: The -drive parameter differs from the -all parameter because if you specify an unsuitable drive using the -drive parameter, the applydrivesoftware command fails. Additionally, if you specify all three drives as hosting quorum, the command fails. If you use the -drive option to specify a single drive, and that drive has use=unused, it is updated.
-force
(Optional) Bypasses the dependent volume check. By default applydrivesoftware cannot run if any volumes dependent on the drive. Specifying -force bypasses this check, allowing the drive software update to proceed. Drive-dependent volumes generally result from non-redundant or degraded RAID arrays.
Note: Restore redundancy to the system (where possible) instead of using the -force parameter.
Important: Using the -force parameter might result in a data loss. Use it only under the direction of your product support information, or if you are willing to accept the risk of data loss in the array or pool to which the drive belongs.
-allowreinstall
(Optional) Specifies to make the system install the current level (again) onto drives that contain a file in the package.
Remember: Using this parameter is not recommended.
-allowdowngrade
(Optional) Specifies to allow the system to downgrade the firmware on a drive (that contains a file in the package).
Remember: Use this parameter only under the direction of your product support information.
-cancel
(Optional) Specifies that the command be stopped.

Description

Use this command to update the firmware of drives that are managed by the system.

There are two types of drive software that can be updated using this command:
  • firmware
  • fpga
Drive firmware updates can be performed online while the drive is in use. When used on an array member drive applydrivesoftware checks for volumes that are dependent on the drive and refuses to run if any are found. Drive dependent volumes are usually caused by non-redundant or degraded RAID arrays. Where possible you should restore redundancy to the system by replacing any failed drives before using the applydrivesoftware command. When this is not possible, for example on drives that are members of a RAID-0 array, you can either add redundancy to the volume by adding a second copy in another pool, or use the -force parameter to bypass the dependant volume check.
Remember: Only use -force if you are willing to accept the risk of data loss on dependent volumes (if the drive fails during the firmware update).

Drive firmware updates occur asynchronously, and conclude after the applydrivesoftware command completes. To see the status of the updates, use the lsdriveupgradeprogress command.

Drive fpga updates might require the drive to be taken offline for several minutes. Drives must be changed to the candidate state before applydrivesoftware can be used to update fpga software. The fpga updates occur asynchronously, continuing in the background after the applydrivesoftware command has returned. You must check the FPGA_level field in lsdriveN, where N is the drive_id, to see whether or not the update completed successfully.
Remember: Interrupting an fpga update by removing power from the drive or enclosure might make the drive unusable. Only one drive's fpga can be updated per applydrivesoftware invocation. Make sure that the update is complete before unseating the drive or removing power from the enclosure.

An invocation example

applydrivesoftware -file DRIVE_XXXXXXXX -type firmware -drive 4

The resulting output:

No feedback

An invocation example

An example that fails because of drive-dependent volumes:

applydrivesoftware -file DRIVE_XXXXXXXX -type firmware -drive 6

The resulting output:

CMMVC6953E The action cannot be completed because vdisks are dependent on the specified mdisk. Force is required.

An invocation example

applydrivesoftware -file drivemicrocodepackagev5 -type firmware -all

The resulting output:

No feedback

An invocation example

applydrivesoftware -file drivemicrocodepackagev1 -type firmware -all -allowreinstall

The resulting output:

No feedback

An invocation example

applydrivesoftware -file drivemicrocodepackagev1 -type firmware -all -allowdowngrade

The resulting output:

No feedback

An invocation example

applydrivesoftware -file drivemicrocodepackagev1 -type firmware -all -allowdowngrade -allowreinstall

The resulting output:

No feedback

An invocation example

applydrivesoftware -cancel

The resulting output:

No feedback