問題
パッチ適用後にサーバーが再起動された後 – 以下のエラーは起動中に発生する可能性があり、同じエラーが /var/log/boot.log に表示されます :
Starting udev: udevd inotify_init failed: too many open files
udev の起動に失敗したため、ネットワークおよびボンディング インターフェイスがありません (モジュール/ドライバーを含む)。
解決策
/etc/sysctl.conf に変更がありました 、/etc/sysctl.d/99-install-oracle 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 さまざまなプログラム/アプリおよび udev でもファイルの変更を追跡するために使用されます。この場合、ウォッチャーは 0 に設定されているため、udev はウォッチャーを使用して OS 上のすべての変更を追跡できず、開いているファイルが多すぎるとエラーが発生します。システムが再起動されると、OS は fs.inotify の新しい設定を使用し始め、udev で全体的な問題を引き起こしました。
この問題を解決するには、以下の手順に従ってください:
1. /etc/sysctl.conf および /etc/sysctl.d/ フォルダーに新しい値を保持している可能性のあるファイルからの変更を元に戻します。以下のコマンドを使用すると、/etc で変更が適用されたすべてのファイルを簡単に見つけることができます。
# grep -rnw /etc -e "fs.inotify" 2>/dev/null
2. 変更を元に戻すには、/etc/sysctl.conf の vi edit を開き、新しいスタンザにコメントを付けます:
#fs.inotify.max_queued_events = 0 #fs.inotify.max_user_instances = 0 #fs.inotify.max_user_watches = 0 #fs.dir-notify-enable = 0
3. ファイルを保存して再起動します。再起動後、インターフェイスが起動しているかどうか、および udev が問題なく起動するかどうかを確認します。 CentOS/RHEL 6 のデフォルトでは、fs.inotify スタンザは次のように設定されています:
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.dir-notify-enable = 1
4. sysctl コマンドを実行して、fs.inotify の現在の設定を確認できます。
# sysctl -a | grep fs.inotify