本文涉及的UCS版本是从2.1(2a)升级到2.1(3a)。

本文写的是手工升级firmware的步骤,由于当前版本2.1(3a)存在一个bug CSCui99339,会导致从2.1(2a)升级到3a版本的自动升级会失败。而且这个bug目前还没解决方法和绕开的办法,因此建议采用手动升级的方法。(目前指2013年10月12日)

思科UCS设备、服务器的固件在设备内存在3种不同的形态:Backup Version、Startup Version 和Running Version。Backup Version就是备用的固件版本,它保证了固件升级即使失败也不会彻底弄坏设备,而可以回滚到原来的版本。Startup Version是系统启动的时候读取的固件,而Running Version就是当前内存中正在运行的那个版本。

在将固件整合包(那3个从思科官网下载的bin文件)download到设备以后,就可以开始升级了。升级的过程分3步,第一步叫Update Firmware(更新固件),将固件包里面的相关firmware释放出来并替换掉原来的Backup Version;第二步叫作Activate Firmware (激活固件),就是将Backup Version和Startup Version对换;第三步就是重启。重启之后新的固件就被load到内存中成为当前的Running Version了。

理解了以上升级过程之后,后面的具体操作中为啥每次都需要先Update,然后再Activate,最后总要重启就一目了然了。

升级本身没太多技巧,按照文档一步一步来即可,只是升级的顺序非常重要,必须按照以下顺序进行:
UCSM Adapter IOM Fabric Interconnect CIMC BIOS
这其中服务器CIMC和BIOS的升级可以放在升级完UCSM之后的任何阶段,但是其他必须按照顺序进行。

还有一个非常关键的地方需要特别说明一下。IOM必须先升级,再升级Fabric Interconnects,升级完IOM一定不要重启(不管是自动立刻重启还是手工重启),而是等待Fabric Interconnect升级完毕重启的时候,会自动带起IOM的重启。这一条,官方文档中没有强调,只是写了不要去掉Set Startup Version Only前面的勾。但是,如果升级完IOM立刻重启的话,IOM会因为和Fabric Interconnect的固件版本不一致,不兼容而引起无法正常连通,系统会报告各种错误,直到最后回滚到原来的版本。整个报错及回滚过程也很漫长,大概会耗费20分钟左右。

在正式的生产环境中,升级应该额外小心,一台一台升级。VMware的虚拟化环境可以vMotion来避免宕机时间。升级2台Fabric Interconnect的正确的顺序是先升级从属的(Subordinate)那台,一般来说是Fabric B。然后将Primary切换到Fabric B,再升级Fabric A。最后把Primary切换回去到Fabric A的FI。


参考文档
http://www.cisco.com/en/US/docs/unified_computing/ucs/sw/upgrading/from2.0/to2.1/b_UpgradingCiscoUCSFrom2.0To2.1.pdf
http://www.cisco.com/en/US/docs/unified_computing/ucs/sw/firmware-mgmt/gui/2.1/b_GUI_Firmware_Management_21_chapter_0110.html


包括一步一步具体操作和截图的完整的文档可点这里阅读或下载。