Chapter 10. Upgrading EOS

Upgrading Arista’s Extensible Operating System (EOS) is a simple process. In a nutshell, get the software image onto the switch, configure the switch to see the new image, and then reboot the switch. Let’s begin by taking a look at the current version of EOS on a 7280R-48C6 switch by using the show version command:

Arista#sho ver
Arista DCS-7280SR-48C6-M-F
Hardware version:    21.05
Serial number:       SSJ17290598
System MAC address:  2899.3abe.9f92

Software image version: 4.19.5M
Architecture:           i386
Internal build version: 4.19.5M-7506183.4195M
Internal build ID:      ef83948c-6c45-4097-9d8b-a78a4722d49a

Uptime:                 3 minutes
Total memory:           32463792 kB
Free memory:            30178840 kB

We can see from this output that our switch is running EOS version 4.19.5M.

Note

Once again, check out the model number in the first line of output, which reads DCS-7280SR-48C6-M-F. The “-F” indicates that this switch shipped with front-to-rear airflow fans. If the model number had “-R” appended to it, the fans would be rear-to-front. Cool, huh? Well, I think it is, but then, little things like this excite me. The “-M” indicates that this switch has expanded memory (32 GB). The “SR” means that this is an Small Form-Factor Pluggable (SFP)-based (S) switch with advanced routing (R) capabilities. The “48C6” means there are 48 front-panel SFP interfaces along with six 100 Gb (C) interfaces.

If we felt like poking around further where we don’t belong (and who doesn’t?), we could use the show version detail command, which would regale us with page upon page of process names and their requisite versions:

Arista#sho ver detail
Arista DCS-7280SR-48C6-M-F
Hardware version:    21.05
Deviations:          D0003570, D0003550
Serial number:       SSJ17290598
System MAC address:  2899.3abe.9f92

Software image version: 4.19.5M
Architecture:           i386
Internal build version: 4.19.5M-7506183.4195M
Internal build ID:      ef83948c-6c45-4097-9d8b-a78a4722d49a

Uptime:                 7 minutes
Total memory:           32463792 kB
Free memory:            29957796 kB

Installed software packages:

Package              Version         Release
--------------------------------------------
Aaa                  1.1.1           7498111.4195M
Aaa-cli              1.1.1           7498111.4195M
Aaa-lib              1.1.1           7498111.4195M
Aboot-utils          1.0.2           7498111.4195M
Acl                  1.0.2           7498111.4195M
Acl-cli              1.0.2           7498111.4195M
Acl-lib              1.0.2           7498111.4195M
AclAgent             1.0.2           7498111.4195M
AclAgent-cli         1.0.2           7498111.4195M
AclAgent-lib         1.0.2           7498111.4195M

[-- pages of output removed to keep my editor from hurting me --]

zile                 2.4.9           1.fc18
zip                  3.0             5.fc18
zlib                 1.2.7           9.fc18

Component       Version                    
--------------- ---------------------------
Aboot           Aboot-norcal6-6.1.2-4757975
scd             0xd                        
stdbycpld       0x15                        
Ucd9012-2       SFT004190111 ( 2.3.4.0011 )
Ucd9012-3       SFT004100105 ( 2.3.4.0007 )

System Epoch:   02.00
Note

See the line in bold (as well as many others) in the previous output that ends with .fc18? This indicates that the package on that line was built on Fedora Core 18.

Interesting information if you’re Arista TAC (Technical Assistance Center), but probably overkill for us. Our goal in this chapter is to upgrade this switch from EOS version 4.19.5M to version 4.21.1F (which, by the way, is built on Fedora Core 18). So, let’s get started.

The first thing to do is take a look at what devices there are available to us on this Arista switch by using the dir ? command:

Arista#dir ?
  all-filesystems  List files on all filesystems
  certificate:     Directory or file name
  drive:           Directory or file name
  extension:       Directory or file name
  file:            Directory or file name
  flash:           Directory or file name
  sslkey:          Directory or file name
  system:          Directory or file name
  /all             List all files, including hidden files
  /recursive       List files recursively
  <cr>

Arista switches all contain useful USB ports. Figure 10-1 shows the USB port on 7280R switch, located on the back of the device (there is also one on the front of this model). After years of using switches from other vendors that contained USB ports that were unavailable, being able to slap a thumb drive in and actually make use of it came as a pleasant surprise.

Upon insertion of a USB drive, the dir ? command yields different results:

Arista-7280#dir ?
  all-filesystems  List files on all filesystems
  certificate:     Directory or file name
  drive:           Directory or file name
  extension:       Directory or file name
  file:            Directory or file name
  flash:           Directory or file name
  sslkey:          Directory or file name
  system:          Directory or file name
  usb1:            Directory or file name
  /all             List all files, including hidden files
  /recursive       List files recursively
  <cr>
The management, console, and USB2: ports on the back of an Arista 7280R
Figure 10-1. The management, console, and usb2: ports on the back of an Arista 7280R

Now we see the usb1: device, which was not there previously. Note also that this switch has a drive: device. That indicates that this switch was shipped with a solid-state drive (SSD) drive, which we can see by using the show inventory command:

Arista#sho inventory | egrep -A4 "has SSD"
System has SSD
  Model                    Serial Number        Rev      Size (GB)
  ------------------------ -------------------- -------- ---------
  StorFly VSFBM8CC120G-160 P1T13004414108250019 0728-000 120

Executing the dir command by itself will default to the current directory, which is in flash:/:

Arista#dir
Directory of flash:/

       -rwx   609823300            Feb 8  2018  EOS-4.19.5M.swi
       -rwx          77            Jan 3 22:17  SsuRestore.log
       -rwx          27            Jan 3 22:15  boot-config
       drwx        4096            Jan 3 22:19  debug
       drwx        4096            Jan 3 22:19  persist
       drwx        4096            Jan 2 22:09  schedule
       -rwx        2983            Jan 3 22:15  startup-config
       -rwx           0            Jan 3 22:18  zerotouch-config

3269361664 bytes total (2047406080 bytes free)

As we can see, there is an existing EOS image in this directory called EOS-4.19.5M.swi. This image corresponds to the version shown earlier with the show version command. The M in the version is a reference to where this EOS release sits in the life cycle of the release, with “M” indicating a Maintenance release and “F” indication a Feature release. You can read the EOS life cycle policy at Arista.com.

You can also find references to the image file in the running configuration. We use the command found here to upgrade the system in this chapter:

Arista#sho run | grep boot
! boot system flash:/EOS-4.19.5M.swi

If you have a sharp eye, you might have noticed that the command is commented out. This is due to the way that EOS actually operates. This will become apparent later in this chapter.

One of the cool things about EOS is that it allows a wide variety of ways to get new files onto the switch. Check out the possibilities included in the copy ? output:

Arista#copy ?
  boot-extensions        Copy boot extensions configuration
  certificate:           Source file path
  clean-config           Copy from clean, default, configuration
  drive:                 Source file path
  extension:             Source file path
  file:                  Source file path
  flash:                 Source file path
  ftp:                   Source file path
  http:                  Source file path
  https:                 Source file path
  installed-extensions   Copy installed extensions status
  running-config         Copy from current system configuration
  scp:                   Source file path
  sftp:                  Source file path
  startup-config         Copy from startup configuration
  system:                Source file path
  terminal:              Source file path
  tftp:                  Source file path

To do this, we use the copy source destination command. Arista allows a variety of source and destinations when copying.

In this example, we’re going to copy from a web page within a private lab, so the source will be http://url/filename, and the destination flash:. If we were to source the file from a TFTP server, the source would be tftp.

Arista#copy http://10.0.0.100/EOS/EOS-4.21.1F.swi flash:
'/EOS/EOS-4.21.1F.swi' at 469575994 (66%) 101.87M/s eta:2s [Receiving data]

When the copy is done, we can verify that it resides in its new home in the flash:/ directory.

Arista#dir
Directory of flash:/

       -rwx   609823300            Feb 8  2018  EOS-4.19.5M.swi
       -rwx   700978970           Nov 12  2018  EOS-4.21.1F.swi
       -rwx          77            Jan 3 22:17  SsuRestore.log
       -rwx          27            Jan 3 22:15  boot-config
       drwx        4096            Jan 3 22:19  debug
       drwx        4096            Jan 3 22:19  persist
       drwx        4096            Jan 2 22:09  schedule
       -rwx        2983            Jan 3 22:15  startup-config
       -rwx           0            Jan 3 22:18  zerotouch-config

3269361664 bytes total (1346424832 bytes free)

Now that we have our EOS image safely on board, we can configure the system to use it. Note that EOS will not simply boot the first image it finds on flash. The reason for this will become apparent when we discuss Aboot, but for now let’s go ahead and configure the system to boot from the new image. As with other vendors, the command to do this is the boot system command:

Arista#conf
Arista(config)#boot system ?
  drive:  Software image URL
  file:   Software image URL
  flash:  Software image URL

If we had a USB stick in the USB slot, the usb1: filesystem would be included in the output. We could configure the switch to boot from an image on the USB drive if we so desired. Almost anything we can do with normal flash, we can also do with USB, provided that there is a drive in the USB slot. For now, though, let’s go ahead and configure the switch to boot from its new image in flash:

Arista(config)#boot system flash:EOS-4.21.1F.swi
Arista(config)#

EOS supports tab completion, so instead of copying and pasting the entire filename, try using the Tab key. Luckily, Arista keeps all of the image names short and tidy, which is another pleasant surprise after decades of other vendors’ lengthy filenames.

Now that we have the new image primed and ready to go, let’s reboot the switch:

Arista-7280(config)#reload
Proceed with reload? [confirm]

Hold on a minute! We didn’t save the configuration, so why didn’t the system prompt us to save it before rebooting? The boot system command doesn’t really make changes to the running-config. Instead, it writes to a file on flash: called boot-config:

Arista(config)#dir
Directory of flash:/

       -rwx   609823300            Feb 8  2018  EOS-4.19.5M.swi
       -rwx   700978970           Nov 12  2018  EOS-4.21.1F.swi
       -rwx          77            Jan 3 22:17  SsuRestore.log
       -rwx          27            Jan 3 22:38  boot-config
       drwx        4096            Jan 3 22:19  debug
       drwx        4096            Jan 3 22:19  persist
       drwx        4096            Jan 2 22:09  schedule
       -rwx        2935            Jan 3 22:38  startup-config
       -rwx           0            Jan 3 22:18  zerotouch-config

3269361664 bytes total (1346424832 bytes free)

Boot-config is the filename used for something called Aboot. Aboot is the bootloader for the switch (which is really a Linux system, remember), which I cover in more detail in Chapter 14. For now, understand that without the bootloader’s configuration file, our switch will not boot. You can view the contents of the boot-config file in a couple of ways, the easiest of which is by using the show boot command.

Arista(config)#sho boot
Software image: flash:/EOS-4.21.1F.swi
Console speed: (not set)
Aboot password (encrypted): (not set)
Memory test iterations: (not set)

In the first edition of Arista Warrior, I took the liberty of deleting this file to prove my point. With both image files present and no boot-config file found, the switch floundered shortly after initialization:

Arista(config)#reload
System configuration has been modified. Save? [yes/no/cancel/diff]:y
Proceed with reload? [confirm]

Broadcast meStopping sshd: [  OK  ]
[  575.544430] SysRq : Remount R/O
Restarting system

Aboot 1.9.2-140514.2006.eswierk
Press Control-C now to enter Aboot shell
No SWI specified in /mnt/flash/boot-config
Welcome to Aboot.
Aboot#

At this point, the switch was dead in the water. What’s worse, if you’ve ever been near a modern switch from most any vendor when it boots, you’ll know that all of the fans go to full power upon power up and then slow down to an acceptable level after boot up. With no EOS image to load, the switch spins its fans at full speed. It’s annoying, and no one likes it, especially my wife, who came down to yell at me about all the noise while I was writing this chapter. But I digress...

On modern versions of code, the switch will actually warn us if there is no boot-config file:

Arista(config)#del flash:boot-config
Arista(config)#reload
The boot image ((not set)) is not present.
Are you sure you want to reload? [confirm]

Let’s fix our boot image problem by using the boot system command:

Arista(config)#boot system flash:EOS-4.21.1F.swi
Arista(config)#

From this point on, the switch will load the specified image on reload. Here’s the final output of show version before we reboot with the new code:

Arista(config)#sho ver
Arista DCS-7280SR-48C6-M-F
Hardware version:    21.05
Serial number:       SSJ17290598
System MAC address:  2899.3abe.9f92

Software image version: 4.19.5M
Architecture:           i386
Internal build version: 4.19.5M-7506183.4195M
Internal build ID:      ef83948c-6c45-4097-9d8b-a78a4722d49a

Uptime:                 26 minutes
Total memory:           32463792 kB
Free memory:            29917256 kB

Note that sometimes when you upgrade a switch, you’ll see one or more messages like this, which indicates that new microcode is being loaded onto the Field Programmable Gate Arrays (FPGA), which are essentially programmable Application-Specific Integrated Circuits (ASICs):

-----------------------------------------------------
Upgrading the casini system fpga.
This process can take 2 minutes.
Please do not reboot your switch.
-----------------------------------------------------
Upgrade of the casini system fpga completed successfully.

Without the diversion for showing you how the switch reacts to not having a boot-config file, the process was very simple: get the code on the system, update the boot-config file with the boot system command, and reload.

Finally, here’s the output of show version after the upgrade:

Arista#sho ver
Arista DCS-7280SR-48C6-M-F
Hardware version:    21.05
Serial number:       SSJ17290598
System MAC address:  2899.3abe.9f92

Software image version: 4.21.1F
Architecture:           i386
Internal build version: 4.21.1F-9887494.4211F
Internal build ID:      1497e24b-a79b-48e7-a876-43061e109b92

Uptime:                 0 weeks, 0 days, 0 hours and 6 minutes
Total memory:           32458980 kB
Free memory:            30458056 kB

If you’re running Multi-Chassis Link Aggregation Group (MLAG), check out Chapter 18 for details about upgrading using MLAG In-Service Software Upgrade (ISSU), which allows for a switch pair to be upgraded with minimal packet loss and no STP reconvergence!

Conclusion

As someone who’s been in the field for far too long, I’ve installed or upgraded thousands of switches in my lifetime, and even after being at Arista for more than six years, I’m still impressed at the ease with which I can change the code revision on Arista devices. With automation tools like CloudVision (Chapter 15) or eAPI (Chapter 30), it becomes even easier. Be warned, though, that it’s so simple that you’ll likely grow annoyed when you have to go back to upgrading other vendors’ devices!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.47.163