====== Upgrade drive firmware on V3700, V5000, V7000, Flash9000 ======
The drive upgrade procedure is currently available only by using the CLI.
=== Copy the firmware on V3700 on local ===
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%
==== For new versions ====
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
=== Check for firmware on V3700 ===
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
=== Apply 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 NVMe drives and FCM ===
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 firmware level on all disks ===
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.
===== ERRORS =====
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 !