I had very interesting and productive week, and learned a few things in the process (I always do). On Monday I went to a customer location to upgrade two V7000 controllers from a 6.4 level up to a 18.104.22.168 level. It's an amazingly simple process, with a few minor quirks. It would have been very easy if I hadn't made a little mistake along the way.
The first step in the process is to download two packages - one to check that the upgrade is able to proceed, and then the actual upgrade itself. In this case, the upgrade test was "IBM2076_INSTALL_upgradetest_11.1" (2076 being the machine type for IBM Storwize V7000) at a size of 52k, and then the big one, "IBM2076_INSTALL_22.214.171.124" at a size of 326.5MB.
I hooked into the customer network, brought up a browser (Firefox is the preferred choice here) and initiated sessions with the two V7000s. All went well with the first upgrade - about 20 minutes for the first canister, a pause, and then the second canister upgrades as well. I kicked off the second upgrade, then made a little mistake as to which screen I was on (the two IP addresses of the V7000s ended in .20 and .120, so you can see where it could get a little confusing). It appeared to me that the machine was hung, when in fact it was proceeding OK. I rebooted it, which stopped the upgrade process. When it came back online it said "The upgrade has stalled, click to revert to the previous version of the software CMMVC6054E", I tried to take it back to the prior level, but as it was in the middle of restarting the upgrade process it refused to do so. I'm happy to report that despite my efforts to confuse it, the V7000 did revert back after a short time. I then very carefully started the upgrade process again and it ran to completion. Near the end it was a little unsettling to see the main screen display the old level of microcode while the upgrade screen said the system was at the new level. However, less than a minute later the two synchronized to the same level (126.96.36.199)
I learned two things - when working with the Storwize code, be patient! Sometimes it takes a while to process. Second, this is a very resilient system. It had some great checks built into the system to understand where it was in the upgrade process and to not let a knucklehead user (me) derail it.
We (the customer and I) did find a few usability items that I thought could be improved. First, when displaying the status of long-running tasks there are two columns. The first contains a number, and the second the name of the task. That first unlabeled number was the minutes left to completion - I'd recommend a column heading to that effect. Second, when trying to use all the storage in a managed disk, we had to interpolate to find the number of megabytes that would completely use it. A "use all available space" button is needed here. Last, we'd recommend that the upgrade process itself be put into the tasklist so that we could see the status from that view.
In summary: the system is bullet-proof. My hat is off to the developers for creating such a resilient storage controller. I'd recommend a few minor usability changes, but the system runs well and is easy to manage.