Le problème
Après le redémarrage d'un serveur après l'application d'un correctif - L'erreur ci-dessous peut éventuellement être observée lors du démarrage et la même erreur est visible dans /var/log/boot.log :
Starting udev: udevd inotify_init failed: too many open files
En raison de l'échec du démarrage d'udev, les interfaces réseau et de liaison sont manquantes (y compris les modules/pilotes).
La solution
Il y a eu un changement dans /etc/sysctl.conf , /etc/sysctl.d/99-install-oracle qui comprenait la strophe ci-dessous pour résoudre un problème avec Veritas Cluster :
fs.inotify.max_queued_events = 0 fs.inotify.max_user_instances = 0 fs.inotify.max_user_watches = 0 fs.dir-notify-enable = 0
fs.inotify est utilisé par divers programmes/applications et udev également pour suivre les changements dans les fichiers - dans ce cas, les observateurs sont définis sur 0, donc udev ne peut pas utiliser les observateurs pour suivre tous les changements sur le système d'exploitation et générer des erreurs autour de trop de fichiers ouverts. Au redémarrage du système, le système d'exploitation a commencé à utiliser de nouveaux paramètres pour fs.inotify et a causé tout un problème avec udev.
Pour résoudre le problème, suivez les étapes décrites ci-dessous :
1. Annulez les modifications de /etc/sysctl.conf et de tout fichier qui pourrait encore contenir une nouvelle valeur dans le dossier /etc/sysctl.d/, la commande ci-dessous peut être utilisée pour trouver facilement tous les fichiers où la modification a été appliquée dans /etc.
# grep -rnw /etc -e "fs.inotify" 2>/dev/null
2. Pour annuler les modifications, ouvrez vi edit pour /etc/sysctl.conf et commentez la nouvelle strophe :
#fs.inotify.max_queued_events = 0 #fs.inotify.max_user_instances = 0 #fs.inotify.max_user_watches = 0 #fs.dir-notify-enable = 0
3. Enregistrez le fichier et redémarrez - après le redémarrage, vérifiez si les interfaces sont actives et si udev démarre sans aucun problème. Par défaut sur CentOS/RHEL 6, les strophes fs.inotify sont définies sur :
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.dir-notify-enable = 1
4. Vous pouvez vérifier le paramètre actuel de fs.inotify en exécutant la commande sysctl :
# sysctl -a | grep fs.inotify