Firmware upgrade on T4-1 Sparc server

disclaimer: Please refer vendor provided instructions and follow carefully.

SUMMARY:

  1. cd /tmp/patch/
  2. unzip 148822-05.zip
  3. cd 148822-05
  4. ./sysfwdownload Sun_System_Firmware-8_2_2_c-SPARC_T4-1.pkg
  5. /usr/sbin/shutdown -i0 -g0 -yOK> type #. to go to ILOM mode in console
  6. show /HOST/boodmode (note config parameter value for LDOM servers to set after upgrade)
  7. show /HOST/ (will display the current versions of Hypervisor, OpenBoot, Post and  sysfw_version)
  8. stop /SYS
  9. set /SYS keyswitch_state=Normal
  10. show /SP/firmware/localimage (This will display upload date and version, if by mistake wrong image uploaded, it will display invalid image)
  11. load -source /SP/firmware/localimage (show progress in … and will reboot ILOM on completion)
  12. set /HOST/bootmode=”config-name”” (This is important for the LDOM servers)
  13. start the system “start /SYS”
  14. console /HOST/console….

Detailed explanation, have patience and read below steps

Step: 1

Go to this Oracle site and find the suitable firmware level for your server or refer your internal engineering documents to know upgrade level.

http://www.oracle.com/technetwork/systems/patches/firmware/release-history-jsp-138416.html

I need upgrade to SysFW 8.2.2.c, this comes with Oracle Patch “148822-05

Step2: Login to oracle site with valid support id and download the patch. (Most of the enterprise organizations have engineering team, who test these patches and upload to internal repositories)

Step3: copy the “148822-05.zip” to the servers, where you need upgrade the firmware and unzip it.

Step4: Pre tasks

  • This firmware upgrade require down time. If you are planning on Production/Live servers, take proper down time from application teams.
  • Firmware upgrade require console, hence check your console access.
  • Take all LDOM guest configuration backup. Refer my previous article on saving and restoring Ldom guest configuration.
  • Check current configuration stored in Service Processor(SP). When you upgrade the firmware, it will reset SP bootmode configuration to default-factory. If you save the config name, it will be easy for you to reset. You can also check this from ILOM using “show /HOST/bootmode” save the config property value.
Step5: Load the firmware to System Processor (SP). ILOM has the mechanism to copy the image from OS using sysfwdownload tool. This tool always comes with your firmware patch and it’s recommended to use the same tool.

cd /tmp/patch/148822-05

./sysfwdownload [image].pkg (in my case the image name “Sun_System_Firmware-8_2_2_c-SPARC_T4-1.pkg

(if you observer image file name has all information like this firmware is for Sun Sparc hardware,it’s version is 8.2.2.c and it’s for Sparc T4-1 model. This is first level of defense to avoid loading wrong firmware image)

When downloading it will show progress in format “….(10%)….” it ends with download completed successfully

shutdown -i0 -g0 -y

OK> type #. to go to ILOM mode in console

show /HOST/boodmode (note config parameter value for LDOM servers)

show /HOST/ will display the current versions of Hypervisor, OpenBoot, Post and  sysfw_version

(sysfw_version is the one we mentioned above)

Verify downloaded image is correct or not with “show /SP/firmware/localimage” and verify upload date and Version. (Here second level of defense comes, if valid image is not uploaded instead of version it will show invalid image).

stop the system to poweroff competely “stop /SYS”

Verify the key_switch state “show /SYS keyswitch_state” it should be in normal state. If it’s in locked state change to normal

“set /SYS keyswitch_state=Normal” Check if value set properly.

After completing all pre checks now we are ready to upgrade the firmware

  load -source /SP/firmware/localimage

This will show progress in … and once it complete, it will reboot the ILOM.

Once it’s completed, change the bootmode “set /HOST/bootmode=”config-name”” (This is important for the LDOM servers)

start the system “start /SYS”

go to console to see the server boot progress

console /HOST/console

Advertisements

Rename a guest domain (Solaris LDOM)

Disclaimer: I test following procedure to rename the guest domain. It worked for me, but it’s may not be the right procedure. Do not try on your prod environment

Rename the Guest domain:
==========================
Bring down the guest domain OS to OK prompt

bash-3.2# ldm list old-ldg1
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
old-ldg1 active     -t—-  5000    16    8G       6.2%  23h 17m

#ldm stop-domain old-ldg1
LDom old-ldg1 stopped

bash-3.2# ldm list old-ldg1
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
old-ldg1 bound      ——  5000    16    8G

Then run unbind command, it will change to inactive state

bash-3.2# ldm unbind old-ldg1
bash-3.2# ldm list old-ldg1
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
old-ldg1 inactive   ——          16    8G

Save the guest domain configuration to a xml

bash-3.2# ldm list-constraints -x old-ldg1 > /var/tmp/old-ldg1.xml

Create copy of the xmls

cp -p /var/tmp/old-ldg1.xml /var/tmp/new-ldg1.xml

bash-3.2# grep -i old-ldg1 /var/tmp/old-ldg1.xml
<Content xsi:type=”ovf:VirtualSystem_Type” ovf:id=”old-ldg1″>
<gprop:GenericProperty key=”vol_name”>old-ldg1_sys</gprop:GenericProperty>
<gprop:GenericProperty key=”vol_name”>old-ldg1_sys</gprop:GenericProperty>
<gprop:GenericProperty key=”block_dev”>/dev/zvol/dsk/root/vdsk_old-ldg1_sys</gprop:GenericProperty>
bash-3.2# cp /var/tmp/old-ldg1.xml /var/tmp/new-ldg1.xml
bash-3.2#perl -pi -e ‘s/old-ldg1/new-ldg1/g’ /var/tmp/new-ldg1.xml
bash-3.2# grep -i new-ldg1 /var/tmp/new-ldg1.xml
<Content xsi:type=”ovf:VirtualSystem_Type” ovf:id=”new-ldg1″>
<gprop:GenericProperty key=”vol_name”>new-ldg1_sys</gprop:GenericProperty>
<gprop:GenericProperty key=”vol_name”>new-ldg1_sys</gprop:GenericProperty>
<gprop:GenericProperty key=”block_dev”>/dev/zvol/dsk/root/vdsk_new-ldg1_sys</gprop:GenericProperty>

For ldm 3.x version please remove existing domain configuration to clear uuid. Thanks to Neeraj and Raphael for their comments

bash-3.2# ldm remove-domain old-ldg1

bash-3.2# ldm add-domain -i /var/tmp/new-ldg1.xml
bash-3.2# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  UART    8     1G       1.1%  1d 3h 24m
new-ldg1 inactive   ——          16    8G
bash-3.2# ldm bind new-ldg1
bash-3.2# ldm start new-ldg1
LDom new-ldg1 started
bash-3.2# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  UART    8     1G       4.8%  1d 3h 25m
new-ldg1 active     -t—-  5000    16    8G       3.5%  2s

Verify connecting to new guest domain console:

bash-3.2# telnet localhost 5000
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.

Connecting to console “new-ldg1” in group “new-ldg1” ….
Press ~? for control options ..

{0} ok
telnet> quit
Connection to localhost closed.
bash-3.2#