Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

NFS サーバーが利用可能な場合でも、NFS READ または WRITE オペレーションが進行時にシステムを再起動するとハングする

Solution In Progress - Updated -

Environment

  • Red Hat Enterprise Linux 6 (NFS クライアント)
    • カーネル 2.6.32-431.el6 および 2.6.32-358.32.3.el6 で報告されている
    • おそらくその他のカーネルでも発生する
  • Red Hat Enterprise Linux 5 (NFS クライアント)
    • カーネル 2.6.18-400.1.1.el5 で報告されている
  • すべての NFS サーバー
  • 再起動時に NFS への IO が高い状況が発生するアプリケーション
  • RHEL7 または Fedora20、ならびに kernel-3.16.0-rc7 では発生しない

Issue

  • NFS マウントで I/O 発生時に NFS クライアントマシンを再起動するとハングします。
  • RHEL5 または RHEL7 で同じテストを実施しても、再起動時にハングしませんでした。
  • 'reboot' または 'halt' コマンドは sync_filesystems でハングします。
  • サーバーの再起動またはシャットダウンは NFS サーバーが応答していないというメッセージを出力してハングします。

Resolution

  • この問題に対処すると見なされている initscripts テストパッケージが利用できます。この問題は Bugzilla #1101546 (非公開) で対応しています。詳細は Red Hat グローバルサポートサービスまでご連絡ください。

回避策

  • シャットダウンするためのスクリプト /etc/rc.d/rc0.d/K90network を削除します。
  • 再起動するスクリプト /etc/rc.d/rc6.d/K90network を削除します。

Root Cause

  • RHEL6 では、'reboot' コマンドは、ネットワークがダウンしているために実施できない、'sync' の完了を待っているためハングしています。RHEL7、および Fedora20 ならびに kernel-3.16.0-rc7 ではこの問題は発生しません。その他の設定では、ネットワークがなくなり、システムで進行中の NFS IO があったとしても、reboot コマンドはハングしません。
  • NFS IO が存在している際の再起動時に RHEL6 がハングする理由については現在調査中です。

Diagnostic Steps

  • kdump を設定し、シャットダウンのハング時に vmcore を取得します。

vmcore の解析

  • vmcore を解析すると、flush が保留されており、またネットワークが利用できなくないことが分かります。
  • ネットワークデバイスを確認し、ネットワークがダウンしていることを示す IP アドレスがないことを確認します。
crash> net
   NET_DEVICE     NAME   IP ADDRESS(ES)
ffff887fe7090020  lo     
ffff883fe4e26020  eth0   
ffff883fe48a0020  eth1   
ffff883fe4f20020  eth2   
ffff883fe5d21020  eth3   
ffff88bfe6600020  eth4   
ffff88bfe4d80020  eth5   
ffff88bfe6a00020  eth6   
ffff88bfe6a80020  eth7   
ffff88bfe78f0020  bond0  
  • sync_filesystems 上で待っているバックトレースにおいてハングしている 'reboot' または 'halt' タスクを探します。
crash> ps | grep reboot
  10479      1  25  ffff883fe2a53540  UN   0.0   14756    788  reboot
crash> bt 10479
PID:10479  TASK: ffff883fe2a53540  CPU:25  COMMAND:"reboot"
 #0 [ffff883684c55bd8] schedule at ffffffff8150e7f2
 #1 [ffff883684c55ca0] io_schedule at ffffffff8150efd3
 #2 [ffff883684c55cc0] sync_page at ffffffff81119e6d
 #3 [ffff883684c55cd0] __wait_on_bit at ffffffff8150f98f
 #4 [ffff883684c55d20] wait_on_page_bit at ffffffff8111a0a3
 #5 [ffff883684c55d80] wait_on_page_writeback_range at ffffffff8111a4cb
 #6 [ffff883684c55e80] filemap_fdatawait at ffffffff8111a58f
 #7 [ffff883684c55e90] sync_inodes_sb at ffffffff811ac214
 #8 [ffff883684c55f20] __sync_filesystem at ffffffff811b2012
 #9 [ffff883684c55f40] sync_filesystems at ffffffff811b2118
#10 [ffff883684c55f70] sys_sync at ffffffff811b21b1
#11 [ffff883684c55f80] system_call_fastpath at ffffffff8100b072
...
crash> ps | grep halt
  23311      1   6  ffff880b7b6f8040  UN   0.0   14760    796  halt
crash> bt 23311
PID:23311  TASK: ffff880b7b6f8040  CPU:6   COMMAND:"halt"
 #0 [ffff880b8ffafbd8] schedule at ffffffff81528bc0
 #1 [ffff880b8ffafca0] io_schedule at ffffffff81529393
 #2 [ffff880b8ffafcc0] sync_page at ffffffff8111f81d
 #3 [ffff880b8ffafcd0] __wait_on_bit at ffffffff81529e5f
 #4 [ffff880b8ffafd20] wait_on_page_bit at ffffffff8111fa53
 #5 [ffff880b8ffafd80] wait_on_page_writeback_range at ffffffff8111fe7b
 #6 [ffff880b8ffafe80] filemap_fdatawait at ffffffff8111ff3f
 #7 [ffff880b8ffafe90] sync_inodes_sb at ffffffff811b5044
 #8 [ffff880b8ffaff20] __sync_filesystem at ffffffff811bb6d2
 #9 [ffff880b8ffaff40] sync_filesystems at ffffffff811bb7d8
#10 [ffff880b8ffaff70] sys_sync at ffffffff811bb871
  • さらに、vmcore の発生時に、NFS の 'not responding" メッセージがログに存在するが、'nfs: server ... OK' メッセージがないか、または 'OK' メッセージが少なくても 1 つ足りません。これは、1 つの NFS オペレーションが NFS サーバーからの応答を受け取らなかったことを示しています。
crash> log | grep "nfs: server"
nfs: server nfsserver not responding, still trying
nfs: server nfsserver not responding, still trying
crash> log | grep 'nfs: server' | sort | uniq -c
      2 nfs: server nfsserver not responding, still trying
crash>

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments