Il problema
Dopo che un server è stato riavviato dopo l'applicazione delle patch:è possibile che durante l'avvio si verifichi l'errore riportato di seguito e lo stesso errore è visibile in /var/log/boot.log :
Starting udev: udevd inotify_init failed: too many open files
A causa del mancato avvio di udev, mancano le interfacce di rete e di collegamento (inclusi moduli/driver).
La soluzione
C'è stata una modifica in /etc/sysctl.conf , /etc/sysctl.d/99-install-oracle che includeva la stanza di seguito per superare alcuni problemi con 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 viene utilizzato da vari programmi/app e anche da udev per tenere traccia delle modifiche nei file:in questo caso gli osservatori sono impostati su 0, quindi udev non può utilizzare gli osservatori per tenere traccia di tutte le modifiche sul sistema operativo e generare errori su troppi file aperti. Quando il sistema è stato riavviato, il sistema operativo ha iniziato a utilizzare le nuove impostazioni per fs.inotify e ha causato l'intero problema con udev.
Per risolvere il problema, segui i passaggi descritti di seguito:
1. Ripristina le modifiche da /etc/sysctl.conf e qualsiasi file che potrebbe ancora contenere un nuovo valore nella cartella /etc/sysctl.d/, il comando seguente può essere utilizzato per trovare facilmente tutti i file a cui è stata applicata la modifica in /etc.
# grep -rnw /etc -e "fs.inotify" 2>/dev/null
2. Per ripristinare le modifiche, aprire vi edit per /etc/sysctl.conf e commentare la nuova stanza:
#fs.inotify.max_queued_events = 0 #fs.inotify.max_user_instances = 0 #fs.inotify.max_user_watches = 0 #fs.dir-notify-enable = 0
3. Salva il file e riavvia:dopo il riavvio verifica se le interfacce sono attive e se udev si avvia senza problemi. Per impostazione predefinita su CentOS/RHEL 6, le stanze fs.inotify sono impostate su:
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.dir-notify-enable = 1
4. Puoi controllare l'impostazione corrente per fs.inotify eseguendo il comando sysctl:
# sysctl -a | grep fs.inotify