web-dev-qa-db-ja.com

CentOSサーバーでハードウェアウォッチドッグがすでにアクティブになっていますか?

低価格のホスティングサービスで 専用サーバー (Intel Haswell CPUとカスタムハードウェアを使用)をレンタルし、CentOS 6.4/64ビットLinux(ストックカーネル:2.6.32-358.14.1.el6)で使用します.x86_64)。

数週間ごとにハングし、他の顧客にも同様の問題があるようです。

dmesg出力には、次のように表示されます(ここに 完全なdmesg出力 )があります。

CPU0: Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz stepping 03
....
NMI watchdog enabled, takes one hw-pmu counter.
....
iTCO_wdt: Intel TCO WatchDog Timer Driver v1.07rh
iTCO_wdt: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860)
iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)

そして私が見るプロセスリストでは:

#  ps uawwwx|grep [w]atchdog
root         6  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/0]
root        10  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/1]
root        14  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/2]
root        18  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/3]
root        22  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/4]
root        26  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/5]
root        30  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/6]
root        34  0.0  0.0      0     0 ?        S    Aug22   0:00 [watchdog/7]

これは、サーバーでハードウェアウォッチドッグがすでにアクティブであり、凍結してから30秒以内にマシンを再起動することを意味しますか?

(/etc/sysctl.confにkernel.panic=10、kdbコンソールにスタックしないように)。

または、CentOSパッケージwatchdogをインストールして起動する必要がありますか?

5

Linuxには、一般的なウォッチドッグインターフェイスがあります。 NMIウォッチドッグを有効にする iTCO_wdtハードウェアがサポートするか、またはインストールして構成する ソフトウェアウォッチドッグ に依存しないハードウェア。

6
sciurus

さて、ここで取り組むべきいくつかの問題があります...

  • サーバーがハングするとどうなりますか?画面には何がありますか?ログには何がありますか?再起動するには、ホスティングプロバイダーに連絡する必要がありますか?自分でリセットできますか?

  • サーバーがハングしたり、停止したり、クラッシュしたりすることはありません!!ローエンドのDIYまたはカスタムハードウェアが使用されている環境で作業した経験から、サービスプロバイダーの目的はコスト削減であると理解しています。ただし、安定性の問題がある場合は、プロバイダーがこれらの問題を修正する責任があります。 安定したLinuxサーバープラットフォームを構築することは難しくありません。しかし、それは必要以上に頻繁に発生します。ハードウェア/ソフトウェア/ OS /ファームウェアの組み合わせが有毒である場合、それは悪い兆候です。プロバイダーは、複数のクライアントに影響が及ぶ前に問題を理解できる規模で運用する必要があります。

  • ハードウェアにIPMIデバイスがありますか? IPMIにアクセスできますか?通常、ウォッチドッグは 帯域外管理 デバイスの一部です。たとえば、HP ProLiantサーバーには、これを処理するための Automatic Server Recovery(ASR) 機能が設定されています。

  • システムが検出するデバイスは、使用中の Intelチップセット の一部です。したがって、技術的にはウォッチドッグデバイスがあり、それに対する一般的なカーネルサポートがあります(CentOSPlusカーネルにあるようで、お持ちのカーネルではないようです)。ただし、 watchdog パッケージは、ハードウェアフック以外のソフトウェアレベルのウォッチドッグとして役立ちます。

しかし、ここでも症状を治療しています。根本原因を突き止めることが重要です。他のお客様がこれらの問題に直面している場合は、サービスプロバイダーと一緒にこの問題を解決する必要があります。

9
ewwhite

CentOS

yum install watchdog

Ubuntuの場合

apt-get install watchdog
#optional
#apt-get install das-watchdog

その後...

Sudo vi /etc/watchdog.conf

もちろん、VIM=では、コロン(:)ボタンがメニュー(またはコマンドライン)を開き、wが変更を書き込むように指示すること、またはw!が強制すること、およびq終了します(古いZX Spectrumカーソルキーを使用できるように、hjklで移動、dで削除、iで挿入、エスケープして挿入を停止します)。

コメント解除:

 watchdog-device = /dev/watchdog

見る

 man watchdog.conf

詳細...完了したら...

service watchdog restart

はい、それらのプロセスはウォッチドッグに関連していますが、適切に構成されていない限り、そこに座って何もしていません。

これは、ランダムなロックアップをランダムな再起動に変える信頼性の低い電源に対処するのに役立ちます。

あなたはそれをテストすることができます

echo *todo* placeholder while I test how to test it, in case I reboot...

それでも機能しない場合は、もう少し汗を流して、プラットフォームがサポートするドライバーを見つける必要があるかもしれません。

個人的には、次のようなものを使用して、各ウォッチドッグタイマーモジュールを個別にロードしてテストし、シェルでrootとして実行します。

echo "Testing default... " | tee -a /var/log/watchdog-test.log; sync
service watchdog stop
echo Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
# If the default watchdog does work, I bet stopping the service disabled the default watchdog then... *todo* test and update this
echo Modules still loaded...
DOGS=`lsmod|grep -e wdt -e dog|cut -d\  -f1`
echo $DOGS
for dog in $DOGS; do
  echo Unloading $dog
  rmmod $dog || { echo "Oops.. didn't work, $dog won't unload"; sleep 70; };
done;
echo Did they all unload...? If not, I think the rest of this is a waste of time... reboot and skip that one next time
sleep 63
DOGS=`find /lib/modules|grep watchdog|awk -F'\watchdog/' '{print $2}'|sed [email protected]@@g|sort|uniq`
for dog in $DOGS; do 
   echo "Testing $dog... " | tee -a /var/log/watchdog-test.log; sync
   modprobe -v $dog && if [ -e /dev/watchdog ]; then
      dmesg|tail -5
      echo $dog Loaded. Ready for a reboot? | tee -a /var/log/watchdog-test.log; sync
      echo *todo* force a quicker timeout? *todo* read kernel source
      cat /dev/watchdog & test=$!
      sleep 0.5
      [ -e /proc/$test ] && { sleep 63; kill $test; };
  fi
  rmmod $dog
  echo $dog Didn't work, we're still here... | tee -a /var/log/watchdog-test.log; sync
done

それが単に実行される場合、遅延はありません...その後、どのモジュールも機能していないようです。 PCが再起動した場合、起動時に:

テール-1 /var/log/watchdog-test.log

ありそうな候補を表示します...サーバーがそれをロードすることを確認してください...

Ubuntuは、ここでメモしたモジュールを使用しているようです:

Sudo vi /etc/default/watchdog

私はこれをテストしていません。もしそうなら、是非この答えを更新してください。 todoこれがSuSeのヒントです: https://www.suse.com/support/kb/doc?id=701688 =およびUbuntuの場合: https://github.com/miniwark/miniwark-howtos/wiki/Hardware-Watchdog-Timer-setup-on-Ubuntu-12.04http:// odroid .com/dokuwiki/doku.php?id = en:odroid_linux_watchdog

1
Dagelf