logo-jonsch

NX-OS Upgradeprozess eines Cisco Nexus 9508



Beitragsbaum




Vorwort

Die Fluktuation in den Firmen zwischen den Jahren nutze ich gerne für Changes, welche entweder aufwendiger sind oder vorhersehbare Probleme verursachen könnten. Daher hatte ich mir das Ziel gesetzt in dieser Übergangszeit unsere Core-Switche mal auf den neusten Firmware Stand zu bringen. Man versucht doch regelmäßig Updates einzuspielen, allerdings klappt dies immer mal mehr oder weniger gut... Ich glaube das sollte ein jeder von uns kennen.


Cisco schafft hier Abhilfe, welche sich ISSU schimpft, ausgeschrieben steht dies für In-Service Software Upgrade. Dafür muss die Hardware aber auch ausgelegt sein, dass heißt die Supervisor dürfen nicht des Types -R, -EX und -FX sein. Ob man diese Funktion im Endeffekt nutzen möchte, ist jedem selbst überlassen.

Ich greife auf ISSU nicht zurück und bevorzuge doch lieber ein sauberes klassisches Upgrade. Als Referenz habe ich mir einen Blogbeitrag und die offizielle Cisco Doku zu dem Thema rausgesucht. Allerdings weicht mein Upgradeprozess etwas von den beiden Beiträgen ab. Dazu nachher noch mehr.




Vorbereitung

Die Vorbereitung hält sich in Grenzen somit ist der Aufwand auch relativ gering.


1. Firmware downloaden

Eigentlich selbsterklärend. Die Software findet man nach dem Einloggen mit dem Smart-Account auf der offiziellen Seite von Cisco. Wichtig ist hier die Checksum zwischenzuspeichern, diese braucht man später zum Abgleich.

MD5:
a9d40fbfaf43c214c3d97cb290788d06



2. Firmware kopieren

Das Image muss in das bootflash Verzeichnis, man sollte prüfen, dass dort auch genug freier Speicher vorhanden ist.

dir



Die neue Firmware kann man schon mal auf alle Switche kopieren mittels SFTP oder SCP.

copy sftp://cisco:cisco@10.100.100.100/nxos.7.0.3.I7.7.bin bootflash:nxos.7.0.3.I7.7.bin vrf management



Sobald die Firmware dann auf den Switchen kopiert wurde, sollte man zum Schluss die Checksum abgleichen. Es kann auch schon bei Kopiervorgängen zu Fehlern kommen und die Datei ist danach beschädigt.

show file bootflash:nxos.7.0.3.I7.7.bin md5sum
a9d40fbfaf43c214c3d97cb290788d06



3. Ablaufplan festlegen

Der Punkt kann getrost ignoriert werden, falls es sich hierbei nur um einen Switch oder an sich getrennten Switche handelt. Sobald man aber mehrere Switche einer HSRP-Gruppe anpacken möchte, sollte man sich hier vorher bezüglich der Reihenfolge Gedanken machen.


Erst einmal sollte man herausfinden, welcher Switch der Primär und Sekundär ist und welche weiteren Switche die Slaves darstellen in der HSRP-Gruppe. Best practice sollte der Master als Letztes neugestartet werden, da dieser die virtuelle IP-Adresse hält. Somit sollte man mit den Slaves anfangen und sich dann bis zum Master durcharbeiten. Es sollte zu keinem Impact führen, solange der Master nicht angefasst wird. In diesem Zuge kann man auch gleich mal seine HSRP Konfiguration auf Tauglichkeit prüfen *g*




Upgradeprozess

Der eigentliche Upgradeprozess besteht aus zwei Teilen mit mindestens einem Reboot zwiswchendurch. Im ersten Teil wird der Bootloader angepasst und neugestartet. Danach wird im zweiten Teil die Firmware installiert, alle Abhängigkeiten angepasst und das BIOS geupgradet.


1. Backup ziehen

Das Wichtigste ist wohl vor dem eigentlichen Upgrade ein Backup von dem System zu machen. Daher nochmal speichern und die Startup-Config mit SFTP oder SCP sichern. Aber wieso haben wir das nicht schon während der Vorbereitung getan? - Ganz einfach, meistens liegt zwischen Vorbereitung und praktischer Umsetzung mehrere Tage oder sogar Wochen, in denen noch Veränderungen am Zielsystem durchgeführt werden und das Backup wäre dann inkonsistent.

copy startup-config sftp://cisco:cisco@10.100.100.100/backup-core vrf management



2. Bootloader anpassen

In der Startup-Config wird definiert, welche Firmware beim Bootvorgang geladen werden soll. Dies muss nun händig auf die neue Firmware angepasst werden.

boot nxos bootflash:nxos.7.0.3.I7.7.bin



Der Bootvorgang von NX-OS basierenden Geräten dauert eine ganze Weile. Selbst wenn der Switch netzwerkseitig wieder erreichbar ist, sollte man nochmals zwei Minuten warten. Im Hintergrund werden trotzdem noch die Supervisor nach und nach hochgenommen und damit auch die Konfigurierten der Interface und Portchannels. Das System sagt logseitig an, wann es einsatzbereit ist.

Bei mir hat der Switch jedesmal einen Pingverlust ausgeworfen, sobald ein Supervisor geladen wurde, vielleicht fällt das einem von euch auch auf?

2019 Dec 27 10:44:22.910 %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by on vsh.bin.32505
2019 Dec 27 10:44:23.971 %ASCII-CFG-2-CONFIG_REPLAY_STATUS: Ascii Replay Done.
2019 Dec 27 10:44:24.703 %ASCII-CFG-2-CONF_CONTROL: System ready



Laut dem Blogbeitrag und der Cisco Doku soll man nun die Startup-Config löschen und den Switch neustarten. Die Frage ist nur, wieso soll man die Konfiguration löschen? Was ist der Sinn und Zweck davon? Kann man das NX-OS Upgrade nur ohne Konfiguration durchführen? Das kam mir sehr suspekt vor und daher habe ich das ganze mal auf unserem Testswitch des selbigen Types nachgestellt. Einmal mit gelöscher Konfiguration und einmal mit bestehender Konfiguration. Da ich direkt mit dem Konsolenkabel am Switch verbunden war, konnnte ich den Bootvorgang beobachten und die Logs auswerten. Ich habe bei beiden Vorgängen keine Auffälligkeiten wahrnehmen können... Da ich mich nicht auf einen Durchgang verlassen wollte, habe ich mehrmals ein Downgrade und Upgrade mit bestehender Konfiguration durchgeführt und konnte keine Problematiken feststellen.

Im Endeffekt habe ich nun das Softwareupgrade auf den Core-Switchen weiterhin mit bestehender Konfiguration vorgenommen. Ich mein, wer will denn bitte jeden Switch nach dem Neustart über Konsolenkabel erneut konfigurieren, wenn dieser keine IP-Konfiguration mehr hat und somit auch nicht mehr netzwerkseitig ansprechbar ist?!




3. Firmware installieren

Sobald der Switch mit der neuen Firmware hochgefahren ist, kann nun das neue Image für alle Module auf dem System installiert werden. Dafür wird außerdem das BIOS auf den neusten Stand gebracht.

install all nxos bootflash:nxos.7.0.3.I7.7.bin



Der Installationsprozess sieht dann ungefähr folgendermaßen aus:

Installer will perform compatibility check first. Please wait.
Installer is forced disruptive

Verifying image bootflash:/nxos.7.0.3.I7.7.bin for boot variable "nxos".
[####################] 100% -- SUCCESS

Verifying image type.
[####################] 100% -- SUCCESS

Preparing "bios" version info using image bootflash:/nxos.7.0.3.I7.7.bin.
[####################] 100% -- SUCCESS

Preparing "nxos" version info using image bootflash:/nxos.7.0.3.I7.7.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 non-disruptive none
2 yes non-disruptive none
3 yes non-disruptive none
22 yes non-disruptive none
23 yes non-disruptive none
24 yes non-disruptive none
26 yes non-disruptive none
27 yes non-disruptive copy-only
29 yes non-disruptive none
30 yes non-disruptive none

Images will be upgraded according to following table:
Module Image Running-Version(pri:alt) New-Version Upg-Required
------ ---------- ---------------------------------------- -------------------- ------------
1 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
1 bios v01.54(00:v01.54(00 v01.48(00 no
2 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
2 bios v01.54(00:v01.54(00 v01.48(00 no
3 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
3 bios v01.54(00:v01.54(00 v01.48(00 no
22 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
22 bios v01.54(00:v01.54(00 v01.48(00 no
23 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
23 bios v01.54(00:v01.54(00 v01.48(00 no
24 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
24 bios v01.54(00:v01.54(00 v01.48(00 no
26 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
26 bios v01.54(00:v01.54(00 v01.48(00 no
27 nxos 7.0(3)I7(7) 7.0(3)I7(7) no
27 bios v05.31(05/17/2018):v05.24(08/02/2017) v05.38(06/12/2019) yes
29 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
29 bios v01.48(00:v01.48(00 v01.48(00 no
30 lcn9k 7.0(3)I7(7) 7.0(3)I7(7) no
30 bios v01.48(00:v01.48(00 v01.48(00 no

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

Module 2: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 3: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 22: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 23: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 24: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 26: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 27: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 29: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Module 30: Refreshing compact flash and upgrading bios/loader/bootrom.
Warning: please do not remove or power off the module at this time.
[####################] 100% -- SUCCESS

Install has been successful.



4. Letzter Neustart

Laut Cisco kann das System nach der Installation der neuen Firmware und BIOS ohne Neustart genutzt werden. Irgendwie scheint mir das aber ein wenig komisch, kein Neustart nach einer Firmwareinstallation und BIOS-Upgrade? Außerdem würde ich gerne verifizieren können, dass der Switch mit dem neuen NX-OS auch sauber hochfährt unbd es zu keinen Problemen kommt. Daher habe ich jeden Switch nochmals neugestartet.

wr mem
reload



Fazit

Man sollte das System dennoch eine Weile im Auge behalten und immer mal wieder die Logs prüfen, dass es auch keine Komplikationen gibt. Falls es doch irgendwie Schwierigkeiten mit dem Upgrade geben sollte, kein ein Downgrade auf dem selben Weg durchgeführt werden. Ein letzter Blick in show version sollte nun Klarheit über den erfolgreichen Upgradeprozess liefern.

Software
BIOS: version 05.31
NXOS: version 7.0(3)I7(7)
BIOS compile time: 05/17/2018
NXOS image file is: bootflash:///nxos.7.0.3.I7.7.bin
NXOS compile time: 8/28/2019 16:00:00 [08/29/2019 02:41:42]

Hardware
cisco Nexus9000 C9508 (8 Slot) Chassis ("Supervisor Module")
Intel(R) Xeon(R) CPU D-1528 @ 1.90GHz with 32828824 kB of memory.
Processor Board ID FOC22XXXXX

Device name: XXX
bootflash: 240834904 kB
Kernel uptime is 0 day(s), 0 hour(s), 3 minute(s), 20 second(s)

Last reset at 6328 usecs after Fri Dec 27 10:37:14 2019
Reason: Reset Requested by CLI command reload
System version: 7.0(3)I7(5a)
Service:

plugin
Core Plugin, Ethernet Plugin



over & out,
jonsch