Estimados lectores, en esta nueva entrada os voy a explicar cómo actualizar el Firmware de discos para NetApp ONTAP de tal forma que nuestro sistema de almacenamiento esté al día y libre de errores o bugs. Precisamente lo segundo, los bugs, puede ser motivo de actualización «manual» del firm pues como sabemos este proceso se lanza de forma automática, en segundo plano y de forma no disruptiva, cuando cargamos las actualizaciones de ONTAP o añadimos discos nuevos si éstos vienen con una versión inferior a la disponible en el repositorio.
Recientemente se ha detectado un bug en ciertos modelos de discos de clase performance (SAS) por lo que el fabricante nos recomienda actualizar su firmware. Aquí tenemos un par de opciones:
- Valorar actualizar ONTAP: debería ser la opción adecuada en primera instancia aunque puede que existan motivos para no hacerlo (matriz de compatibilidad, interoperabilidad, …).
- Actualizar solamente el firmware de los discos afectados: esta es la opción que vamos a ver a continuación
Preparación del sistema
El procedimiento de actualizar el Firmware de discos para NetApp ONTAP es bastante sencillo, seguro y sobre todo no disruptivo siempre y cuando lo hagamos en el formato predeterminado que podemos verificar de la siguiente forma desde la shell de nuestro clúster:
aff_david::> storage disk option show -fields bkg-firmware-update node bkg-firmware-update aff_david-01 on aff_david-02 on
Si las opciones están en «off» las podemos modificar nuevamente para que queden activas; existen casos donde el soporte técnico de NetApp nos puede indicar desactivar el modo en segundo plano para controlar el proceso de actualización de forma manual o forzada:
aff_david::> storage disk firmware update -disk 1.0.0
Por ejemplo, en el caso anterior, estaríamos lanzando de forma manual el proceso de actualización de firmware para el disco 1.0.0, en cuyo caso podríamos incurrir en una interrupción del acceso a los datos.
Para modificar de nuevo las opciones de actualización en segundo plano, activar o desactivar, lanzaríamos lo siguiente:
aff_david::> storage disk option modify -node aff_david-01 -bkg-firmware-update off|on aff_david::> storage disk option modify -node aff_david-02 -bkg-firmware-update off|on
Recordemos que estas acciones se deben llevar a cabo en todos los nodos de nuestro clúster, pues cada uno de ellos mantiene la propiedad de sus discos así como su repositorio de firmware, esto último para poder lanzar los procesos en paralelo optimizando así la actualización completa de todos ellos.
Antes de lanzar el proceso de actualización debemos listar los discos existentes en el sistema de almacenamiento así como sus versiones de firmware. Esto lo podemos hacer de muchas formas: desde OnCommand System Manager (Interfaz Web), desde la Shell de ONTAP (acceso SSH), desde PowerShell con las PowerShell Toolkit, desde Ansible o si lo preferimos mediante RESTful APIs si nuestro clúster cuenta con la versión de ONTAP 9.6 o superior. En este caso vamos a usar PowerShell:
PS C:\Users\david\Desktop> Get-NcDisk | select model, fw Model FW ----- -- X438_TPM3V400AMD NA02 X438_TPM3V400AMD NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_SIRMN1T2A10 NA01 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_TA14E1T2A10 NA02 X438_TPM3V400AMD NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X438_TPM3V400AMD NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_HCBFE1T2A10 NA02 X425_TA14E1T2A10 NA02
Lo interesante de PowerShell es que trabajamos con objetos así que podemos filtrar de forma sencilla los atributos (propiedades) para obtener solamente lo que nos interesa. Con nuestra lista de modelos de disco y versión de firmware podemos dirigirnos a la web de descargas de NetApp (recordad que requiere login) para buscar cada uno de ellos y descargar la versión deseada (normalmente la última disponible o bien la que nos recomiende NetApp).
Si estamos en una recomendación del fabricante en cuanto a versión mínima de firmware podemos filtrar por ambos, modelo de disco y revisión. Una vez filtrados descargaremos el archivo .zip que contiene todos los elementos necesarios para almacenar en el repositorio local de cada nodo.
Archivo .zip en mano podemos usar un servidor FTP o bien usar un servidor Web, ya sabéis que normalmente suelo usar HFS por su sencillez y comodidad a la hora de realizar este tipo de operaciones. Lo tenemos ya todo listo, todos los nodos están con la opción bkg-firmware-update en «on» y hemos cargado el archivo .zip a nuestro servidor Web por lo que tan sólo nos queda lanzar el proceso de actualización.
Proceso para actualizar el Firmware
- Accedemos a la Shell de nuestro clúster ONTAP mediante un terminal (PuTTY)
- Cambiamos el contexto elevándolo a «advanced«:
aff_david::> set -privilege advanced
- Cargamos el archivo .zip a cada uno de los nodos del clúster (recordemos que debe haber visibilidad entre la red de gestión y el servidor Web):
aff_david::*> storage firmware download -node aff_david-01 -package-url http://172.26.90.211/X425_HCBFE1T2A10.NA04.LOD.zip aff_david::*> storage firmware download -node aff_david-02 -package-url http://172.26.90.211/X425_HCBFE1T2A10.NA04.LOD.zip
- A partir de este momento el clúster detectará que existe una nueva versión de firmware para los modelos de disco correspondientes a la carga anterior. En este caso hemos cargado solamente un modelo de disco pero repetiríamos el paso anterior para todos los archivos .zip necesarios.
- Por último nos quedaría revisar el proceso de actualización para ver cómo está avanzando:
aff_david::*> storage disk firmware show-update-status Number Average Total Update Waiting Duration Completion Node State Download /Disk (Sec) Est. (Min) Unable to Update aff_david-02 idle 8 120 16 - aff_david-01 idle 5 120 10 -
- Si queremos ir un paso más allá y identificar exactamente la cola de discos que está en espera para ser actualizados podemos verlo de la siguiente forma:
aff_david::*> storage disk firmware show-update-status -instanceNode: aff_david-02 The Number of Disks Waiting to Download: 1 Estimated Duration to Completion (mins): 2
Average Firmware Update Duration per Disk (secs): 120 List of Disks with a Failed Update: 1.0.6 1.0.8 1.0.14 1.0.16 1.0.20 1.0.18 Background Disk Firmware Update Status: idleNode: aff_david-01 The Number of Disks Waiting to Download: 0 Estimated Duration to Completion (mins): 0
Average Firmware Update Duration per Disk (secs): 120 List of Disks with a Failed Update: 1.0.11 1.0.17 1.0.23 1.0.21 1.0.15 Background Disk Firmware Update Status: idle
- A medida que vamos lanzando el comando anterior observaremos cómo va disminuyendo la cola. Interesante observar en el ejemplo que los dos nodos de este clúster están trabajando en el proceso por los motivos indicados anteriormente.
Por último comentar que durante este proceso es posible que observemos algunos errores en el sistema especialmente si se están actualizando los discos de Spare; generalmente ocurre cuando solamente se reserva un disco (o particiones de disco root/data) por cada par HA de forma que podemos ver el famoso Message: callhome.spares.low: Call home for SPARES_LOW. En tal caso podemos verificar luego que todos los discos de Spare siguen como tal en cada nodo, a menos que se haya producido un fallo van a seguir ahí.
This Post by David Solé Pérez is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License
hola! sabes alguna alternativa para descargar el firmware? es para un FAS8300, nos comunicamos con netapp, pero nos pide la factura y hace como 15 años de la compra… no la tenemos