Introducción
Este documento describe cómo solucionar un problema en el que el daemon Docker no puede iniciarse en IE3400 cuando la tarjeta SD no tiene formato ext4.
Problema
El IE3400 utiliza la tarjeta SD para el almacenamiento relacionado con las aplicaciones IOx. En caso de que la tarjeta SD no tenga formato ext4, esto causa problemas.
Estos son los Síntomas:
Cuando intenta implementar una aplicación a través de la GUI de Ex, se muestra este mensaje:
Application Deployment Failed: Invalid Archive file: Unable to extract docker rootfs /flash11/iox/tmpArchiverPznor to /flash11/iox/tmpExtractYXZJbE/rootfs Error:global name 'app_mount_dir' is not defined
Desde el registro/la consola, estos mensajes se ven cuando se habilita IOx o cuando se inicia IOx después de un reinicio.
ie3400#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ie3400(config)#iox
Warning: Do not remove SD flash card when IOx is enabled or errors on SD device could occur.
*Feb 21 12:45:27.045: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start
*Feb 21 12:45:30.737: %PMAN-3-PROCFAIL: R0/0: root: The process dockerd has failed (rc 1)
*Feb 21 12:45:32.184: %PMAN-3-PROCHOLDDOWN: R0/0: root: The process dockerd has been helddown (rc 1)
*Feb 21 12:46:57.983: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.
Solución
Este problema está relacionado con el Sistema de Archivos de la Tarjeta SD. Si la tarjeta tiene un formato distinto de ext4, por ejemplo, FAT/vFAT, el problema parece aparecer.
Para verificar el sistema de archivos actual en la tarjeta SD, se puede utilizar:
ie3400#sh sdflash: file
Filesystem: sdflash
Filesystem Path: /flash11
Filesystem Type: vfat
Mounted: Read/Write
Como puede ver en el resultado, esta tarjeta SD fue formateada como FAT/vFAT.
Para solucionar este problema, primero detenga/inhabilite IOx.
ie3400#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ie3400(config)#no iox
Notify IOx to stop. To safely remove SD card, please wait until IOx is stopped.
*Feb 21 12:48:01.615: %UICFGEXP-6-SERVER_NOTIFIED_STOP: R0/0: psd: Server iox has been notified to stop
Utilice el comando show iox para asegurarse de que se ha detenido completamente.
ie3400#sh iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) : Not Running
IOx service (HA) : Not Supported
IOx service (IOxman) : Not Running
IOx service (Sec storage) : Not Supported
Libvirtd 1.3.4 : Running
Dockerd : Not Running
A continuación, formatee la tarjeta correctamente para usarla con IOx, puede utilizar este comando.
Tenga en cuenta que esto borra todos los datos de la tarjeta SD.
ie3400#format sdflash: ext4
Format operation may take a while. Continue? [confirm]
Format operation will destroy all data in "sdflash:". Continue? [confirm]
format completed with no errors
Format of sdflash: complete
Una vez completada, inicie o habilite la E/Sx de nuevo.
ie3400#conf t
Enter configuration commands, one per line. End with CNTL/Z.
ie3400(config)#iox
Warning: Do not remove SD flash card when IOx is enabled or errors on SD device could occur.
*Feb 21 12:49:18.310: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start
*Feb 21 12:49:48.165: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.
Como puede ver, ya no se ven los mensajes de error con respecto a los vaciados y utilice este comando show iox para verificar el estado.
ie3400#sh iox
IOx Infrastructure Summary:
---------------------------
IOx service (CAF) 1.10.0.1 : Running
IOx service (HA) : Not Supported
IOx service (IOxman) : Running
IOx service (Sec storage) : Not Supported
Libvirtd 1.3.4 : Running
Dockerd 18.03.0 : Running