Intro #
This post will be a simple guide on how to upgrade your Cisco Nexus 9000 switch.
Step 1: Connect To Your Device & Version Checking #
You need to connect to your Nexus device, obviously. The best way to do this is via a direct console connection, however, if you’re like me and doing this remotely then you can do this via SSH.
Whilst you should be fine doing this remotely, it is recommended to do this in person if possible in case something doesn’t go to plan. I am doing this on a pair of switches with HSRP and EIGRP, so it isn’t the end of the world if one of them goes down; just a waste of my time to have to visit the datacenter.
Once you are connected running a sh ver
in the terminal will show you the current firmware on the device.
Software
BIOS: version 05.28
NXOS: version 7.0(3)I7(3)
BIOS compile time: 01/18/2018
NXOS image file is: bootflash:///nxos.7.0.3.I7.3.bin
NXOS compile time: 2/12/2018 13:00:00 [02/12/2018 19:13:48]
Hardware
cisco Nexus9000 C93180YC-FX Chassis
Intel(R) Xeon(R) CPU D-1528 @ 1.90GHz with 24571020 kB of memory.
Processor Board ID <REDACTED>
Device name: <REDACTED>
bootflash: 115805708 kB
Kernel uptime is 722 day(s), 3 hour(s), 15 minute(s), 40 second(s)
As you can see, here I am running nxos.7.0.3.I7.3
. My plan is to upgrade to the latest version on the 7.x
train as this is fully supported and I do not require any of the features in 9.x
or 10.x
. It is much safer to upgrade on your current train, especially if you’re doing this remotely.
With that taken into account, find the firmware you want and download it. I will be upgrading to 7.0(3)I7(10)
which at the time of writing is the latest on the 7.x
train.
Step 2: Pushing Software #
Pushing the software is an easy affair and can be done in many ways, these include: via USB, SCP, SFTP, TFTP.
First we need to check how much space we have on our flash. To do this we can run the following:
dir bootflash: | b Usage
For which I get the following, which after a quick Google conversion is about 110GB free, plenty for my 1GB software upgrade.
Usage for bootflash://sup-local
5268381696 bytes used
111455047680 bytes free
116723429376 bytes total
I am used to using TFTP, however, I have noticed on these Nexus devices TFTP is extremely slow, so I have started using SCP/SFTP and advise you do to.
SFTP/SCP/TFTP #
For SCP/SFTP, you can utilise a free tool from Solarwinds called Solarwinds SFTP/SCP Server. For TFTP I have historically used TFTPD.
Point the server at the directory with the software, add a user account or disable authentication and then head over to your Nexus and run:
copy scp: bootflash:
You can replace SCP here with SFTP or TFTP, once you press enter you will be asked a few questions like the following, and your software should pull into bootflash:
like so:
copy scp: bootflash:
Enter source filename: nxos.7.0.3.I7.10.bin
Enter vrf (If no input, current vrf 'default' is considered):
Enter hostname for the scp server: <REDACTED>
Enter username:
<REDACTED>@<REDACTED>'s password:
nxos.7.0.3.I7.10.bin 100% 940MB 1.6MB/s 09:57
Copy complete, now saving to disk (please wait)...
Copy complete.
USB #
USB is simple and pretty much the same as above. Ensure you have a FAT/FAT32 formatted USB and put the software on the root. You should see a console message showing which USB it is connected to, you can then simply run:
copy usb: bootflash:
Then just follow the prompts and the copy will start, this is by far the quickest way if you can.
Checks #
After doing one of the above options, check if the software is on the device by running the following:
dir bootflash:
You should see how new image on the bootflash. We can now proceed.
Step 3: Run Pre-checks #
Now the software has been pushed to the device, we need to run an impact check that will run through a few things to check the software before upgrading.
Run the following command replacing
show install all impact nxos bootflash:<NXOS VERSION>
Running that will hopefully look something like the following:
show install all impact nxos bootflash:nxos.7.0.3.I7.10.bin
Installer will perform impact only check. Please wait.
Verifying image bootflash:/nxos.7.0.3.I7.10.bin for boot variable "nxos".
[####################] 100% -- SUCCESS
Verifying image type.
[####################] 100% -- SUCCESS
Preparing "nxos" version info using image bootflash:/nxos.7.0.3.I7.10.bin.
[####################] 100% -- SUCCESS
Preparing "bios" version info using image bootflash:/nxos.7.0.3.I7.10.bin.
[####################] 100% -- SUCCESS
Performing module support checks.
[####################] 100% -- SUCCESS
Notifying services about system upgrade.
[####################] 100% -- SUCCESS
Compatibility check is done:
Module bootable Impact Install-type Reason
------ -------- -------------- ------------ ------
1 yes disruptive reset default upgrade is not hitless
Images will be upgraded according to following table:
Module Image Running-Version(pri:alt) New-Version Upg-Required
------ ---------- ---------------------------------------- -------------------- ------------
1 nxos 7.0(3)I7(3) 7.0(3)I7(10) yes
1 bios v05.28(01/18/2018):v05.28(01/18/2018) v05.38(06/12/2019) yes
As you can see from the above, the checks succeeded so we can continue. If this check does not succeed for you, troubleshoot.
Notice that the impact of this upgrade is shown as being disruptive. This will require a switch reboot so be aware of this.
Step 4: Running The Software Upgrade #
Before continuing, ensure that you have committed your config! So run copy running-config startup-config
and then continue.
To run the upgrade, we run the previous command changing it ever so slightly. This will rerun through what we just did but actually start the upgrade itself afterwards instead of just doing the compatibility check. To start the upgrade, run the following:
install all nxos bootflash:<NXOS VERSION>
You will see the same output as before, but with the upgrade taking place after a prompt. After pressing Y
the Nexus will upgrade and automatically reboot afterwards.
install all nxos bootflash::nxos.7.0.3.I7.10.bin
Compatibility check is done:
Module bootable Impact Install-type Reason
------ -------- -------------- ------------ ------
1 yes disruptive reset default upgrade is not hitless
Images will be upgraded according to following table:
Module Image Running-Version(pri:alt) New-Version Upg-Required
------ ---------- ---------------------------------------- -------------------- ------------
1 nxos 7.0(3)I7(3) 7.0(3)I7(10) yes
1 bios v05.28(01/18/2018):v05.28(01/18/2018) v05.38(06/12/2019) yes
Switch will be reloaded for disruptive upgrade.
Do you want to continue with the installation (y/n)? [n] y
Install is in progress, please wait.
Performing runtime checks.
[####################] 100% -- SUCCESS
Setting boot variables.
[####################] 100% -- SUCCESS
Performing configuration copy.
[####################] 100% -- SUCCESS
Module 1: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS
Finishing the upgrade, switch will reboot in 10 seconds.
If you are connected via console, you will see at bootup which image the Nexus is booting from, if not like me, just sit, wait, and pray.
Step 5: Checking The Software #
Once your Nexus has (hopefully) come back online, we can go ahead and check the software version like we did in step one with sh ver
.
Software
BIOS: version 05.38
NXOS: version 7.0(3)I7(10)
BIOS compile time: 06/12/2019
NXOS image file is: bootflash:///nxos.7.0.3.I7.10.bin
NXOS compile time: 8/20/2021 6:00:00 [08/20/2021 08:16:06]
Hardware
cisco Nexus9000 C93180YC-FX Chassis
Intel(R) Xeon(R) CPU D-1528 @ 1.90GHz with 24571108 kB of memory.
Processor Board ID <REDACTED>
Device name: <REDACTED>
bootflash: 115805708 kB
Kernel uptime is 0 day(s), 0 hour(s), 2 minute(s), 42 second(s)
Last reset at 752718 usecs after <REDACTED>
Reason: Reset due to upgrade
System version: 7.0(3)I7(3)
Service:
And that’s it! We can see here that the NXOS image is running the target version we wanted.
You can now celebrate with a beer. Hope this helped you, Muffin~~