Introduction
Ce document décrit comment résoudre un problème où le démon Docker ne démarre pas sur IE3400 lorsque la carte SD n'est pas formatée ext4.
Problème
L'IE3400 utilise la carte SD pour le stockage lié aux applications IOx. Si la carte SD n'est pas formatée en ext4, cela entraîne des problèmes.
Voici les symptômes :
Lorsque vous tentez de déployer une application via l'interface utilisateur graphique IOx, ce message s'affiche :
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
À partir du journal/de la console, ces messages s'affichent lorsque vous activez IOx ou lorsque IOx démarre après un redémarrage.
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.
Solution
Ce problème est lié au système de fichiers de la carte SD. Si la carte est formatée avec autre chose que ext4, par exemple FAT/vFAT, le problème semble apparaître.
Afin de vérifier le système de fichiers actuel sur la carte SD, ceci peut être utilisé :
ie3400#sh sdflash: file
Filesystem: sdflash
Filesystem Path: /flash11
Filesystem Type: vfat
Mounted: Read/Write
Comme vous pouvez le voir dans le résultat, cette carte SD a été formatée en FAT/vFAT.
Pour résoudre ce problème, arrêtez/désactivez d'abord 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
Utilisez la commande show iox pour vous assurer qu'elle est complètement arrêtée.
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
Ensuite, formatez la carte correctement pour l'utiliser avec IOx, vous pouvez utiliser cette commande.
N'oubliez pas que cela efface toutes les données de la carte 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
Une fois terminé, redémarrez/activez IOx.
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.
Comme vous pouvez le voir, les messages d'erreur concernant dockerd ne sont plus visibles et utilisez cette commande show iox pour vérifier l'état.
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