ウォッチドッグ ハードウェアのサポートを含めることで、systemdはウォッチドッグ デーモンLinuxの機能を実行できるようになりました。Dell PowerEdgeシステムでは、このハードウェアは、プラットフォームのチップセットに組み込まれているチップセット ウォッチドッグ タイマー(Intel ICH9など)またはDell iDRACのIPMI準拠BMCウォッチドッグ タイマーのいずれかになります。
Dell iDRACは 、自動システム リカバリ を提供します。これは、オペレーティング システムのハングアップからの回復に加えて、後で分析するためのスクリーンショットをキャプチャできます。これを有効にするには、オペレーティング システム上の 追加のソフトウェア が必要でした。systemdをサポートする新しいディストリビューションでは、この機能はディストリビューションでネイティブに使用可能なソフトウェアと連携するため、アドオン ソフトウェアは不要です。
ただし、Linuxではウォッチドッグ デーモンを使用できましたが、システムの残りの部分が動作している間にデーモン自体がロックアップする可能性がありました。systemdはすべてのシステム サービスのソフトウェア ウォッチドッグとして機能し、BMCウォッチドッグ タイマーはsystemd自体のハードウェア ウォッチドッグとして機能します。したがって、systemdが非動作の場合は、システムが一般的に使用できない可能性が高いです。これにより、すべてのシステム サービス、つまりサービスのマネージャー(systemd)がBMCのウォッチドッグ タイマーによって「監視」される、より信頼性の高い方法が得られます。
systemdとDell iDRACのBMCウォッチドッグの間の接着剤は、/dev/watchdogを使用してLinuxウォッチドッグAPIからBMCウォッチドッグへのアクセスを提供する、ipmi_watchdogカーネル モジュールです。Systemdは、このインターフェイスを使用してウォッチドッグを定期的に起動します。
ipmi_watchdogを使用したsystemdのセットアップ
Systemdは、次の手順でiDRAC BMCウォッチドッグを使用するように設定できます(Fedora 19の場合)。
- システムには2つのウォッチドッグ タイマー(チップセットとBMC)があるため、いずれかを使用できます。この例では、チップセット ウォッチドッグを無効にします。チップセット ウォッチドッグは、システムBIOSの[オペレーティング システム ウォッチドッグ タイマー]オプションを[無効](デフォルト)に設定することで無効にすることができます。
- ウォッチドッグのタイムアウト値(180秒など)が表示されます。
- ipmi_watchdogカーネル モジュールを有効にして、システム起動時に上記のタイムアウトでロードします。
- 方法1:次のコンテンツを使用して/etc/modules-load.d/ipmi_watchdogを作成します。
- timeout=180 ipmi_watchdogオプション
- 拒否リストiTCO_wdt # Optional。BIOSセットアップでチップセット ウォッチドッグが無効になっていない場合。
- 方法2:
- OpenIPMI rpmのインストール
- $ sudo yum install OpenIPMI
- IPMI_WATCHDOG=yesに設定し、/etc/sysconfig/ipmiのタイムアウトでIPMI_WATCHDOG_OPTIONSします。
- ipmiサービスを自動的に起動できるようにする
- $ sudo systemctl enable ipmi
- systemdのウォッチドッグを有効にします。
- /etc/systemd/system.confで RuntimeWatchdogSec=180 をコメント解除して設定する
- systemdを再起動します
- # systemctl daemon-reexec
これが機能するかどうかをテストします。
- ウォッチドッグがアクティブかどうかを確認します
- $ sudo journalctl |grep -i 'hardware watchdog' # は、systemdがIPMIウォッチドッグを使用するように設定されていることを示す必要があります。
- $ sudo ipmitool mc watchdog get # 「Watchdog Timer Is: Started/Running」というエラーが表示されます。
- カーネル パニックをシミュレートしてテストします(本番システムでは実行しないでください)。kdumpが無効になっていることを確認します。
- $ sudo echo c > /proc/sysrq-trigger
- システムのリセット後、障害画面のイメージがiDRACで使用可能であることを確認します
- iDRAC Web UIへのログイン
- Overview -> Server -> Troubleshooting -> Last Crash Screen