Actualizar firmware OS9 en Dell-Force10 mediante CLI

La gama Dell-Force10 para Data Center comprende los series C, E, M, S y Z con sus diferentes variantes. Posiblemente los equipos más ampliamente instalados son el S4048-ON y el S4048T-ON, sus antecesores S4810 y S4820T y las MXL instaladas en los chassis M1000E de Dell.

En este PDF puedes ver un resumen de la mayor parte de switches Dell-Force10 disponibles en la actualidad. Enlace.

¿Donde consigo la versión de firmware?

Dell ha crecido en los últimos años comprando compañías líderes en su sector. Tras la compra, se inicia un proceso de integración de los sistemas de la compañía original en los sistemas corporativos de Dell. Esto incluye por ejemplo la información del producto, la atención comercial, el soporte de fabricante o el respositorio de firmware y documentación.

En el caso de Force10, la mayor parte se ha migrado ya a la web de Dell excepto la descarga de Firmware que aún sigue estando solo disponible en la web de Force10. Creo recordar que solo les queda por migrar (6 años después) esta parte de descarga de Software y el bug tracker.

Para conseguir el firmware actualizado debemos solicitarlo a nuestro Partner de Networking Dell-Force10 o tener disponible una cuenta de partner.

Descarga de firmware Dell-Force10. Enlace.

Una vez logados, pinchamos en la serie (S, M, etc.) de nuestro switch y localizamos el modelo exacto. En la siguiente imagen se puede ver la última versión del equipo Dell S4048-ON.

Descarga de Firmware para S4048-ON
Descarga de Firmware para S4048-ON

Para esta versión 9.11.0.0 vemos 3 archivos de interés:

  • FTOS-SK-9.11.0.0.bin. Es el binario que contiene el firmware y todos los paquetes de interés (boot flash, boot selector, etc.).
  • ONIE-FTOS-SK-9.11.0.0.bin. En los nuevos switches Dell-Force10 que tenga la coletilla -ON de Open Networking, vamos a encontrar la versión ONIE. Ignoradla.
  • Release notes. Como siempre, un documento de vital importancia con instrucciones específicas de update. Nunca jamás actualicéis sin echar un vistazo a las Release notes, que luego vienen los llantos cuando se rompen las cosas.

¿Como funciona el sistema de particiones y versiones en los equipos Dell-Force10?

Todos los equipos Dell-Force10 tienen 2 particiones donde almacenan el firmware llamadas A: y B:

Si hacemos un show version:

MXL-lab#show version 
Dell Force10 Real Time Operating System Software
Dell Force10 Operating System Version: 2.0
Dell Force10 Application Software Version: 9.3(0.0)
Copyright (c) 1999-2014 by Dell Inc. All Rights Reserved.
Build Time: Thu Jan 2 03:17:36 2014
Build Path: /work.local/build/buildSpaces/build03/E9-3-0/SW/SRC
MXL-lab uptime is 2 year(s), 46 week(s), 4 day(s), 8 hour(s), 11 minute(s)

System image file is "system://A"

System Type: MXL-10/40GbE 
Control Processor: MIPS RMI XLP with 2147483648 bytes of memory, core(s) 1.

256M bytes of boot flash memory.

4 34-port GE/TE/FG (XL)
192 Ten GigabitEthernet/IEEE 802.3 interface(s)
 8 Forty GigabitEthernet/IEEE 802.3 interface(s)

Las líneas en negrita nos dicen que el equipo está en la versión 9.3(0.0) y que  el puntero de arranque está apuntado a la partición A:

Y como podemos saber que versión tenemos en B:?

MLX-LAB#show boot system stack-unit 0

Current system image information in the system:
=============================================

Type Boot Type A B
----------------------------------------------------------------
Stack-unit 0 FLASH BOOT 9.3(0.0)[boot] 9.2(0.0)

El copy-paste sale algo desmaquetado pero puede comprobarse que en la partición A: tenemos la 9.3(0.0) y que en la B: tenemos la 9.2(0.0). También podemos comprobar que la partición A: es la que actualmente está arrancada por el [boot]

Es interesante comprobar que versiones de “Boot flash” y “Boot selector” tenemos porque puede que nos toque actualizarlas.

MXL-LAB#show system stack-unit 0

-- Unit 0 --
Unit Type : Standby Unit
Status : online 
Next Boot : online 
Required Type : MXL-10/40GbE - 34-port GE/TE/FG (XL)
Current Type : MXL-10/40GbE - 34-port GE/TE/FG (XL)
Master priority : 14 
Hardware Rev : A02 
Num Ports : 56 
Up Time : 2 yr, 8 wk, 5 day, 0 hr, 27 min
FTOS Version : 9.3(0.0) 
Jumbo Capable : yes 
POE Capable : no 
FIPS Mode : disabled 
Boot Flash : A: 4.0.1.2 [booted] B: 4.0.1.1
Boot Selector : 4.0.0.1

---output cut---

Y por último, tendremos que comprobar la versión de CPLD (que se actualiza en muy raras ocasiones):

MXL-LAB#show revision

-- Stack unit 0 --
IOM SYSTEM CPLD : 6

Con toda esta información, la secuencia de actualización de firmware sería:

  1. Comprobar que versión está activa (A: o B:).
  2. Copiar por FTP/TFTP la nueva versión a la partición NO activa.
  3. Cambiar los punteros de A: a B: o viceversa. Esto se hace en la running-config o con el comando boot (lo explicaremos más adelante).
  4. Actualizar boot flash, boot selector o CPLD según proceda.
  5. Reload y comprobar que está todo OK.

Y ahora que somos casi expertos en Force10, vamos al lío!

Requisitos

  • Conexión por consola o SSH/Telnet al switch. Es preferible la conexión por consola porque en caso de problemas será tu única opción para saber que ha pasado.
  • Servidor FTP accesible desde el switch. La opción más simple es levantar un servidor FTP en tu propio ordenador como Filezilla. Recuerda desactivar el Firewall de Windows o similares. TFTP también es una opción pero en alguna versión da problemas (recuerda leer siempre las release notes).
  • Disponer del archivo .bin que incluye el firmware.

Instrucciones

En este ejemplo, estamos conectados por consola a un Switch MXL y tenemos un servidor FTP accesible en la IP 10.10.26.100

  1. Realizar backup de la configuración.
    MXL-LAB# copy running-config ftp://10.10.26.100/mitesoro.txt
  2. Copiar la imagen de tu equipo a la partición no activa del switch. En este ejemplo será la B: La copia tarda unos 5 minutos así que poneros cómodos y aprovechad la espera para suscribiros al blog :D.
    MXL-LAB#upgrade system ftp://10.10.26.100/FTOS-SK-9.11.0.0.bin B:

  3. Cambiar los punteros en la running-config. Puedes hacerlo mediante el comando boot que modifica la running-config. Yo prefiero editar direrctamente la running-config, pero el efecto es el mismo

    Debéis cambiar la running-config de esto:

    boot system stack-unit 1 primary system: A:
    
    boot system stack-unit 1 secondary system: B:
    
    boot system stack-unit 1 default system: A:

    A esto otro:

    boot system stack-unit 1 primary system: B:
    
    boot system stack-unit 1 secondary system: A:
    
    boot system stack-unit 1 default system:B:
  4. Guardar la configuración y reload
    MXL-LAB#copy running-config startup-config
    MXL-LAB#reload
  5. Haced un show version y comprobar que todo está OK.

Actualizar Boot Flash y Boot Selector

En algunas ocasiones, una actualización de firmware implica también una actualización de varias partes del boot. Al contrario que en la Serie N, aquí si podemos comprobar las version de ambos con un simple comando:

MXL-LAB#show system stack-unit 0

Si habéis hecho antes un reload y ya estáis en la nueva versión, podéis instalar los 2 ficheros de boot desde el propio firmware instalado.

MXL-LAB#upgrade boot all stack-unit 0 booted

Ahora hay que hacer un nuevo reload para comprobar que se han instalado las nuevas versiones.

Como buena práctica, yo os aconsejo hacer siempre un upgrade boot ya que el propio sistema te informa la versión actual y la versión que quieres instalar.

Actualizar la CPLD

El procedimiento es muy similar solo que en este caso deberemos además poner en shutdown todas las interfaces y hacer un power-cycle.

Actualizar la CPLD es algo muy infrecuente. Si tuvieras que actualizarla, consulta las instrucciones detalladas en la Release notes.

Escenarios alternativos: stack y cluster VLT

En el caso de stack, las instrucciones son exactamente la mismas. Solo que en lugar de poner el id 0, debemos poner la palabra clave all en todos los comandos. Por ejemplo:

MXL-LAB#upgrade boot all stack-unit all booted

En el caso de VLT, las instrucciones son similares pero hay que aplicar las peculiaridades del cluster VLT. El procedimiento sería:

  1. Actualizar equipo 1 del cluster VLT y reload. El control pasa integramente al equipo 2.
  2. El equipo 1 reinicia con la nueva versión y se incorpora al cluster VLT.
  3. Actualizar equipo 2 del cluster VLT y reload. El control pasa integramente al equipo 1.
  4. El equipo 2 reinicia con la nueva versión y se incorpora al cluster VLT.

Dos puntos a destacar en la actualización del cluster VLT:

  • Si todas las conexiones están correctamente redundandas, la actualización será sin corte. Consecuentemente, todas aquellas conexiones que no están redundandas se perderán mientras dura el reinicio del equipo.
  • En algunas actualizaciones de Firmware, cambia también la versión Major de VLT. En este caso, cuando el equipo 1 acabe el reinicio el cluster NO se montará. Estas instrucciones específicas de salto entre versiones se encuentra en las releases notes. (La enésima razón para leer las releases notes ;).

Llegados a este punto, ya deberías ser capaz (si te atreves) de actualizar un equipo Dell-Force10 con OS9. Y recuerda que si necesitas ayuda profesional, en EPMTIC somos expertos en networking de Dell-Force10 y podemos echarte una mano.

Autor: Miguel Angel Corzo

Teleco de formación, curioso de vocación. Me encanta el olor a post por la mañana.

Un comentario en “Actualizar firmware OS9 en Dell-Force10 mediante CLI”

  1. Gracias por el artículo. Estaba intentando hacer una copia del firmware antes del upgrade por si después tuviera que hacer un downgrade, pero no encuentro el archivo .bin dentro de la flash.
    ¿Sabes dónde se encuentra?
    Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada.