14.6.2. ウォッチドッグの定義
次の手順を実行して、ゲストオペレーティングシステムの健全性を監視するウォッチドッグを定義できます。
- 仮想マシン (VM) のウォッチドッグデバイスを設定します。
- ゲストにウォッチドッグエージェントをインストールします。
ウォッチドッグデバイスはエージェントを監視し、ゲストオペレーティングシステムが応答しない場合、次のいずれかのアクションを実行します。
-
poweroff: VM の電源がすぐにオフになります。spec.runStrategyがmanualに設定されていない場合、仮想マシンは再起動します。 reset: VM はその場で再起動し、ゲストオペレーティングシステムは反応できません。注記再起動時間が原因で liveness プローブがタイムアウトする場合があります。クラスターレベルの保護が liveness プローブの失敗を検出すると、VM が強制的に再スケジュールされ、再起動時間が長くなる可能性があります。
-
shutdown: すべてのサービスを停止することで、VM の電源がグレースフルにオフになります。
ウォッチドッグは、Windows VM では使用できません。
14.6.2.1. 仮想マシンのウォッチドッグデバイスの設定 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシン (VM) のウォッチドッグデバイスを設定するとします。
前提条件
-
x86システムの場合、仮想マシンはi6300esbウォッチドッグデバイスで動作するカーネルを使用する必要があります。s390xアーキテクチャーを使用する場合は、カーネルでdiag288を有効にする必要があります。Red Hat Enterprise Linux (RHEL) イメージは、i6300esbとdiag288をサポートします。 -
OpenShift CLI (
oc) がインストールされている。
手順
次の内容で
YAMLファイルを作成します。apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: <vm-label> name: <vm-name> spec: runStrategy: Halted template: metadata: labels: kubevirt.io/vm: <vm-label> spec: domain: devices: watchdog: name: <watchdog> <watchdog-device-model>:1 action: "poweroff"2 # ...- 1
- 使用するウォッチドッグデバイスモデル。
x86の場合はi6300esbを指定します。s390xの場合はdiag288を指定します。 - 2
poweroff、reset、またはshutdownを指定します。shutdownアクションは、ゲスト仮想マシンが ACPI シグナルに応答する必要があります。したがって、shutdownの使用は推奨されません。上記の例では、
poweroffアクションを使用して仮想マシン上のウォッチドッグデバイスを設定し、デバイスを/dev/watchdogとして公開します。このデバイスは、ウォッチドッグバイナリーで使用できるようになりました。
以下のコマンドを実行して、YAML ファイルをクラスターに適用します。
$ oc apply -f <file_name>.yaml
検証
この手順は、ウォッチドッグ機能をテストするためにのみ提供されており、実稼働マシンでは実行しないでください。
以下のコマンドを実行して、VM がウォッチドッグデバイスに接続されていることを確認します。
$ lspci | grep watchdog -i以下のコマンドのいずれかを実行して、ウォッチドッグがアクティブであることを確認します。
カーネルパニックをトリガーします。
# echo c > /proc/sysrq-triggerウォッチドッグサービスを停止します。
# pkill -9 watchdog