This Blog Search
My Blogs Public Blogs My Updates
Log in
to participate
Trending topics
Updating Storwize V7000 drive code
v7000
anthonyv | Nov 8 2011 | Comments (16) | Visits (32775) 2
svc
**************************************************************************
Update 17/12/2011: A flash reporting a possible issue that could occur if a drive fails storwize
during drive firmware update can be found here.
ds8000
Until the flash is updated showing how to avoid this issue, only update drive linux
firmware when installing a new machine or if all hosts are offline.
About this blog
************************************************************************** Anthony Vandewerdt is an Australian IT
IBM recently released new drive firmware for the Storwize V7000, so I thought I Professional who blogs about Storage
related topics
would share the process of how I update that firmware. You can download it
from here. The details for this new package can be found here. I recommend you
perform the drive update before you next update your Storwize V7000 microcode.
Related posts
I want to be clear that one of the central goals of the Storwize V7000 is to ensure that
performing drive firmware updates can be done online without host disruption. New SVC / Storwize /...
UpdatedJan 22 0 0
This is possible because each drive can be updated in less than around 4 seconds.
The scripts I share below leave a 10 second delay between drives just to be safe. I Success Story: Upper...
UpdatedJan 21 0 0
would still prefer that you did the update during a quiet period.
BVQ V3.3.2 with SVC/...
UpdatedJan 15 0 0
We need to perform this procedure using the command line as there is no way to do
The BVQ story ... st...
this procedure from the GUI (yet).
UpdatedDec 22 2014 0 0
How to run the offli...
There are four steps: UpdatedDec 11 2014 0 0
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 1/6
30/1/2015 Updating Storwize V7000 drive code (Anthony's Blog: Using System Storage An Aussie Storage Blog)
most of you should already have it). Cloud List
You will need to have created a public/private key pair and assigned it to a
user. In all the examples the user name I use is anthonyv. You need to use Recent tweets
your own userid, although you could also use admin. The process to
create and associate the key pair is described here. Place the PPK file into >> Follow @aussiestorblog on Twitter
the putty folder along with the upgrade test utility.
From the Putty folder we need to upload the test utility. You will need to change the
key file name, userid and IP address (all highlighted in red) to suit your installation.
NOTE: The following command is being run in a Windows command prompt. You
need to be in the C:\Program Files\Putty or C:\Program Files (x86)\Putty folder.
pscp ‐i anthonyv.ppk IBM2076_INSTALL_upgradetest_6.15 anthonyv@9.1
91.0.78:/home/admin/upgrade
Having uploaded the file, now start PuTTY and SSH to your Storwize V7000. Logon
and issue the following two commands. You are using SSH commands now, not the
Windows Command Prompt:
svcservicetask applysoftware ‐file IBM2076_INSTALL_upgradetest_6.15
svcupgradetest ‐f ‐d
If you get a warning window like the one shown below, indicating we have downlevel
drives, we need to proceed to the next step (note that the enclosure and slot numbers
are not the same as drive IDs). If you have a lot of drives, you can drop the d from
the svcupgradetest command to get a summary list.
******************* Warning found *******************
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
| Model | Latest FW | Current FW | Drive Info
|
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
| HK230041S | 2920 | 291E | Drive in slot 24
in enclosure 1 |
| | | | Drive in slot 23
in enclosure 1 |
| ST9450404SS | B548 | B546 | Drive in slot 22
in enclosure 1 |
| | | | Drive in slot 21
in enclosure 1 |
| | | | Drive in slot 20
in enclosure 1 |
| | | | Drive in slot 19
in enclosure 1 |
| | | | Drive in slot 18
in enclosure 1 |
| | | | Drive in slot 17
in enclosure 1 |
| | | | Drive in slot 16
in enclosure 1 |
| | | | Drive in slot 15
in enclosure 1 |
| | | | Drive in slot 14
in enclosure 1 |
| | | | Drive in slot 13
in enclosure 1 |
| | | | Drive in slot 12
in enclosure 1 |
| | | | Drive in slot 11
in enclosure 1 |
| | | | Drive in slot 10
in enclosure 1 |
| | | | Drive in slot 9
in enclosure 1 |
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 2/6
30/1/2015 Updating Storwize V7000 drive code (Anthony's Blog: Using System Storage An Aussie Storage Blog)
| | | | Drive in slot 8
in enclosure 1 |
| | | | Drive in slot 5
in enclosure 1 |
| | | | Drive in slot 6
in enclosure 1 |
+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐+
Step 2: Upload the drive microcode package
Download the drive update package from here. Put it into the PuTTY folder.
From a Windows command prompt we need to upload the package using the
following command. You will need to change the key file name, userid and IP
address (all highlighted in red) to suit your installation. Note yet again that you are
running this in a Windows command prompt from the PuTTY folder (not from inside
an SSH session):
pscp ‐i anthonyv.ppk IBM2076_DRIVE_20110928 anthonyv@9.191.0.78:/home/
admin/upgrade
Step 3: Apply the drive software
I have written some scripts to help you list the drive IDs that need to be updated and
perform the updates. You can upgrade the drives one at a time, or in bulk,
depending on how you want to do this. All the remaining commands are all run in a
PuTTY session.
Firstly run this script to list all the drive IDs and current firmware levels. We need
the drive IDs if we want to update individual drives.
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
The output will look something like this, showing the drive ID and that drive's
current firmware level. From step 1 we know what the latest firmware level is, so we
can compare to the current firmware level:
0 291E
1 291E
2 B546
3 B546
4 B546
5 B546
6 B546
7 B546
8 B546
9 B546
10 B546
11 B546
12 B546
13 B546
14 B546
15 B546
16 B546
17 B546
18 B546
19 B546
20 B546
21 B546
22 B546
23 B546
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 3/6
30/1/2015 Updating Storwize V7000 drive code (Anthony's Blog: Using System Storage An Aussie Storage Blog)
Now we can update individual drives with this command, which will update drive ID
23. Just keep changing the drive IDs, using the list of downlevel drives, until every
drive has been updated:
svctask applydrivesoftware ‐file IBM2076_DRIVE_20110928 ‐type
firmware ‐drive 23
However you may have a lot of drives and want to upgrade them in bulk. So you
could use this command, which updates drive ID 19 and 20 (highlighted in red). You
could change and also add extra drives to the list as required:
for did in 19 20;do echo "Updating drive "$did;svctask
applydrivesoftware ‐file IBM2076_DRIVE_20110928 ‐type firmware ‐
drive $did;sleep 10s;done
If we just wanted to upgrade every single drive in the machine (regardless of their
level), we could run this command:
svcinfo lsdrive ‐nohdr |while read did name IO_group_id;do echo
"Updating drive "$did;svctask applydrivesoftware ‐file IBM2076_DRIV
E_20110928 ‐type firmware ‐drive $did;sleep 10s;done
When updating multiple drives, I have inserted a 10 second sleep between updates,
just to ensure the process runs smoothly. This means each drive takes about 1315
seconds.
Once we have upgraded every drive, it is time for a final check.
Step 4: Confirm all drives are updated
0
Tweet You have two ways to confirm this. Firstly run the following command to list the
firmware level of each drive. Is each drive reflecting the levels reported in Step 1?
2
Me gusta 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
2
Now run the software upgrade test utility again:
svcupgradetest ‐f ‐d
Provided you receive no warnings about drives not being at the recommended levels,
you are now finished with the drive updates. Of course you could now proceed to
install 6.2.0.4 firmware, but you can do that from the GUI.
Tags: drive storwize v7000 microcode firmware
Me gusta A 2 personas les gusta esto.
Regístrate para ver qué les gusta
a tus amigos.
DISCOVER RELATED RESOURCES TAGGED [drive storwize v7000 microcode firmware]
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 4/6
30/1/2015 Updating Storwize V7000 drive code (Anthony's Blog: Using System Storage An Aussie Storage Blog)
firmware firmware firmware firmware firmware
Add a Comment More Actions
I actually upgraded the v7000 before doing the drive firmware update. I am actually trying to do the
drive update now and I am getting an error message. http://i.imgur.com/R9aHd.png May just want
to add a quick note to do the drives prior to doing the upgrade to 6.2.0.4 or simply just place your
note at the end of the blog, to the beginning. =)
Duh! Thanks for pointing this out. <br /> I have updated the blog entry to reflect this. <br />
I got some results from just running the following: svcupgradetest f d. It didn't return any info, and I
am assuming that means all of my hard drives are up to date. According to your script all 23 of my
ST9300603SS are at firmware level B35C. Here is a quick screen print:
http://i.imgur.com/Qwkpa.png. Appears like all my hard drives are running the most recent code
correct? <br />
you are correct. In fact the f flag is the way to go and avoids the issue you saw with being on
6.2.0.4 <br /> Thanks for the comments,
Can anyone explain me why it is NOT possible to put explanations like this in the official
documentation. When I read the things about drive firmware upgrade in the Information Center its
just a poor part of information you need. And it is not helpfull to recommend a "force" option as a
solution if the upgrade is not successful. <div> ;</div> But at least one question: Is this kind of
upgrade really concurrent? I compare the V7000 with the a DS3000 or DS5000. OK, V7000 is
better from every kind of view. But the LSI Systems do not support a cuncurrent update for the
drives. And it's a official statement. What is the official statement for the V7000? <div> ;</div>
Thanks!
So the good news is that an official tool is going to be released soon that will make my blog post
redundant. Until then, I agree that the documentation is not the best.... but it gives me something to
blog about. <div> ;</div> As to why or how it is concurrent... the SAS drives can update
firmware much much quicker than the old FC disks due to newer tech. There are some FC drives
that can a thing called QnR (quick and releable) update, but not all of them.
In the section to upgrade every single drive in the machine (regardless of their level), you need to
add svctask command before applydrivesoftware: <div> ;</div> 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
Thanks Woody. You are absolutely right. <br /> The command will work fine if your on 6.2 code, but
not on 6.1 code. <br /> I strangely added the svcinfo headers but not svctask. <br /> I have
corrected every instance to add svctask. <div> ;</div> Really appreciate you letting me know.
Any sign of the drive firmware upgrade tool? <br /> Not being an linux guru this command line
upgrade process is painfull!
Hi Anthony. <div> ;</div> Thanks for very interesting and useful article. <div> ;</div>
Please, tell me where to download the guide to scripts's writing, I have a manual command line
only, <div> ;</div> And how i can to remove the Upgrade Test Utility and microcode package
from Storwize? <div> ;</div> Thanks.
Hi Guys, the update tool is sadly not yet available. Best direct this question to your local IBM Sales
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 5/6
30/1/2015 Updating Storwize V7000 drive code (Anthony's Blog: Using System Storage An Aussie Storage Blog)
Rep. <div> ;</div> As for a guide on script writing, there is no such thing, but I did write a post
here that might help, also check the comments for some good links: <div> ;</div>
https://aussiestorageblog.wordpress.com/2011/05/12/guivsclisharingthelove/ <br />
https://aussiestorageblog.wordpress.com/2011/11/02/sometipsforusingthesvcandstorwize
v7000commandlineinterface/ <div> ;</div> As for removing the files, there is no real need
to do so. They are in the /dumps folder but there is no root access to files on SVC (by design).
Hi, Anthony! <br /> Thank you for this article. I need to upgrade our customers V7000's drives
firmwares but the IBM Information Center says that the drive upgrade may make offline the
volumes if it has dependent extents. <br /> "Run the following command for the drive that you are
upgrading. <div> ;</div> lsdependentvdisks drive drive_id <div> ;</div> 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." <div> ;</div> Is this means that the the customer must take offline all applications
that may use the relevant disks or just use the force option and the procedure will so quick that it
will not cause any problem? Thanks
Its a great question, my understanding is that the only time you will get dependant vdisks is if you
use RAID0 or have a RAID5/6/10 array with failed drives. The update process should run very fast,
but if you did have dependant VDisks, then the cache code may not have enough time to do a
predictive rebuild to calculate the data on a a drive being updated. <div> ;</div> Does
lsdependentvdisks return anything?
Its a great question, my understanding is that the only time you will get dependant vdisks is if you
use RAID0 or have a RAID5/6/10 array with failed drives. The update process should run very fast,
but if you did have dependant VDisks, then the cache code may not have enough time to do a
predictive rebuild to calculate the data on a a drive being updated. <div> ;</div> Does
lsdependentvdisks return anything?
I checked the dependent vdisks and it does not list any vdisk. In my understanding it means it is
safe to upgrade online the drive firmware. I will check it tonight. <br /> The documentation not
exactly says wheter it is concurrent or not. <div> ;</div> For the sake of no having failure I
added an extra line to your script that lists the dependant disks. <br /> svcinfo lsdrive nohdr | while
read driveid rest <br /> do <br /> lsdrive $driveid | while read id value <br /> do <br /> if [ "$id" ==
"firmware_level" ]; then <br /> echo "$driveid ==>; Firmware leve: $value " <br /> printf "Listing
dependant disks: ";svcinfo lsdependentvdisks drive $driveid; echo " ...Done" <br /> fi <br /> done
<br /> done <br /> Thanks for your help.
https://www.ibm.com/developerworks/community/blogs/anthonyv/entry/updating_storwize_v7000_drive_code1?lang=en 6/6