====== 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 !