The drive upgrade procedure is currently available only by using the CLI.
Download the firmware from the IBM Fix Central site: www-933.ibm.com/support/fixcentral/ Copy the file to the V3700, or V7000
Using scp, copy the firmware upgrade file and the Software Upgrade Test Utility package to the /home/admin/upgrade directory by using the management IP address.
root@nim:~/v3700/firmware# scp IBM2072_DRIVE_20121210.bin superuser@v3700-cl-bcp:/home/admin/upgrade superuser@v3700-prod's password: IBM2072_DRIVE_20121210.bin
Or pscp
C:\Users\Administrator\Downloads>pscp v7000\IBM2076_DRIVE_20170509 superuser@v3700-cl-bcp:/home/admin/upgrade superuser@v3700-cl-bcp's password: IBM2076_DRIVE_20170509 | 90335 kB | 22583.9 kB/s | ETA: 00:00:00 | 100%
IBM_FlashSystem:f7krcs1:superuser>svcupgradetest -w IBM_FlashSystem7x00_and_StorwizeV7000_8.5.0.0_AND_LATER_ALL_DRIVES_230925 rbash: svcupgradetest: command not found IBM_FlashSystem:f7krcs1:superuser>svctask applysoftware -file IBM_INSTALL_FROM_8.5_AND_LATER_upgradetest_41.1 CMMVC9001I The package installed successfully. IBM_FlashSystem:f7krcs1:superuser>svcupgradetest -w IBM_FlashSystem7x00_and_StorwizeV7000_8.5.0.0_AND_LATER_ALL_DRIVES_230925 svcupgradetest version 41.1 Please wait, the test may take several minutes to complete. Build version 231005_1440 Results of running svcupgradetest: ================================== All drives have passed all the required pre-firmware upgrade checks. Proceed with drive firmware upgrade shortly. IBM_FlashSystem:f7krcs1:superuser>applydrivesoftware -file IBM_FlashSystem7x00_and_StorwizeV7000_8.5.0.0_AND_LATER_ALL_DRIVES_230925 -all IBM_FlashSystem:f7krcs1:superuser>lsdriveupgradeprogress id status estimated_completion_time 0 upgrading 231011142128 1 scheduled 2 scheduled 3 scheduled 4 scheduled 5 scheduled 6 scheduled 7 scheduled 8 scheduled 9 scheduled 10 scheduled 11 scheduled 12 scheduled 13 scheduled 14 scheduled 15 scheduled
Run the following command for the drive that you are upgrading.
lsdependentvdisks -drive drive_id
IBM_2072:v3700-prod:superuser>for i in {0..23} do lsdependentvdisks -drive $i done
If any volumes are returned, continuing with this procedure takes the volumes offline. To avoid losing access to data, resolve any redundancy errors to remove this problem before you continue with the upgrade procedure. Download the firmware
v7.4 and later allows to upgrade drives using the GUI:
Pools -> Internal Storage panel in the GUI and select Actions -> Upgrade All
Using command line:
Run the applydrivesoftware command. You must specify the firmware upgrade file, the firmware type, and the drive ID:
applydrivesoftware -file name -type firmware -drive drive_id (or -all)
To apply the upgrade even if it causes one or more volumes to go offline, specify the -force option.
Attention: Do not use the -type fpga option, which upgrades Field Programmable Gate Array (FPGA) firmware, unless directed to do so by an IBM service representative.
IBM_2072:v3700-bcp:superuser>applydrivesoftware -file /home/admin/upgrade/IBM2072_DRIVE_20121210 -type firmware -all
Check the upgrade progress
IBM_Storwize:v3700-cl-bcp1:admin>lsdriveupgradeprogress id status estimated_completion_time 3 completed 170619100341 7 scheduled 170619100847
You can also specify drives ID (maximum 120 drives per command)
Ex: svctask applydrivesoftware -drive 0:1:2:3:4:5:6:7:8:9:10:11:12 -file /home/admin/upgrade/IBM2076_DRIVE_20170321-4849214870136115798 -type firmware
And can be done with a loop:
IBM_2072:v3700:superuser>for i in {1..23} do applydrivesoftware -file IBM2072_DRIVE_20121210.bin -type firmware -drive $i done
Or
IBM_2072:v3700:superuser> svcinfo lsdrive -nohdr |while read did name IO_group_id;do echo "Updating drive "$did;svctask applydrivesoftware -file IBM2076_DRIVE_20110928 -type firmware -drive $did;sleep 10s;done
For some kind of NVMe disks, you have to upgrade them sequentialy one by one ! Using graphical interface, or command line (easier !)
So a new tool appears to achieve this task utilitydriveupgrade , you can choose ALL
IBM_Storwize:V7K-gen3:superuser> utilitydriveupgrade -drivemodel ALL -file IBM2076_DRIVE_20110928
IBM_Storwize:V7K-gen3:superuser> utilitydriveupgrade -drive 8,9,10,11 -filename IBM_StorwizeV7000_NVME_DRIVE_200116 Upgrading drive id 11, ( 1 / 4 ) Waiting for array to synchronize. Upgrading drive id 10, ( 2 / 4 ) ...
Check the status of all disks
IBM_2072:v3700:superuser> svcinfo lsdrive -nohdr |while read did error use;do svcinfo lsdrive $did |while read id value;do if [[ $id == "firmware_level" ]];then echo $did" "$value;fi;done;done 0 291E 1 291E 2 B546
This should be done for all the drives.
Jobs are still pending during days when using command lsdriveupgradeprogress
Try to apply the firmware on a not existing disk
IBM_Storwize:V7K:superuser >applydrivesoftware -drive 999 -file /home/admin/upgrade/IBM_FlashSystem7x00_and_StorwizeV7000_SAS_DRIVE_201027 -type firmware CMMVC5804E The action failed because an object that was specified in the command does not exist. IBM_Storwize:V7K:superuser>lsdriveupgradeprogress IBM_Storwize:V7K:superuser>
All pending jobs have deseappear !