GNU/Linux >> Linux の 問題 >  >> Cent OS

Sanlock は RedHat 仮想化でどのように機能しますか

RHV では、KVM ホストは Sanlock を使用してストレージ ドメインとの接続を検出します。 Sanlock が有効になると、wdmd デーモン (ウォッチドッグ多重化デーモン) が開き、特定のハートビートでキープアライブが送信されます。ストレージへの sanlock IO が一定時間内に完了しない場合、sanlock は wdmd へのキープアライブの送信を停止します。タイムアウトになると、/dev/watchdog を制御する wdmd デーモンがエラーをログに記録し、ウォッチドッグが維持されていないことを警告し、すぐに期限切れになり、KVM ホストを起動してリセットします。

$ systemctl status sanlock
● sanlock.service - Shared Storage Lease Manager
Loaded: loaded (/usr/lib/systemd/system/sanlock.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-07-13 15:03:26 NZST; 1 months 19 days ago
Process: 1041 ExecStart=/usr/sbin/sanlock daemon (code=exited, status=0/SUCCESS)
Main PID: 1044 (sanlock)
Tasks: 7
Memory: 18.6M
CGroup: /system.slice/sanlock.service
├─1044 /usr/sbin/sanlock daemon
└─1045 /usr/sbin/sanlock daemon

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
$ systemctl status wdmd
● wdmd.service - Watchdog Multiplexing Daemon
Loaded: loaded (/usr/lib/systemd/system/wdmd.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2020-07-13 15:03:26 NZST; 1 months 19 days ago
Process: 1131 ExecStart=/usr/sbin/wdmd (code=exited, status=0/SUCCESS)
Process: 1112 ExecStartPre=/lib/systemd/systemd-wdmd watchdog-check (code=exited, status=0/SUCCESS)
Main PID: 1133 (wdmd)
Tasks: 1
Memory: 2.3M
CGroup: /system.slice/wdmd.service
└─1133 /usr/sbin/wdmd

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

sanlock デーモンは、リースを更新するために一定の間隔で継続的にストレージに書き込みます。 Sanlock は、ストレージ結果への sanlock IO に基づいて、KVM ホストを UNKNOWN、FREE、LIVE、FAIL、および DEAD ステータスとしてマークします。

不明:

KVM ホストにはストレージのリースがありますが、クラスターロックはホストがまだ稼働しているか停止しているかを判断できません。通常は 10 ~ 20 秒間続きますが、KVM ホストが稼働中または障害が発生したと見なされるまでに最大 80 秒間続く可能性があります。

無料:

このホスト ID のリースはありません。

ライブ:

KVM ホストは、過去 80 秒間にリースを更新しました。現在リースを更新しているかどうかは、後でもう一度確認することによってのみわかります。

失敗:

ホストがリースを 80 秒間更新していません。ホストが死亡したと見なされるまで 60 秒間持続します。 KVM ホストのステータスが「失敗」とマークされている場合、関連するログは次のようになります:

2020-08-31 21:35:01 1665117 [1044]: s1 check_our_lease warning 72 last_success 1665045
2020-08-31 21:35:02 1665118 [1044]: s1 check_our_lease warning 73 last_success 1665045
2020-08-31 21:35:03 1665119 [1044]: s1 check_our_lease warning 74 last_success 1665045
2020-08-31 21:35:04 1665120 [1044]: s1 check_our_lease warning 75 last_success 1665045
2020-08-31 21:35:05 1665121 [1044]: s1 check_our_lease warning 76 last_success 1665045
2020-08-31 21:35:06 1665122 [1044]: s1 check_our_lease warning 77 last_success 1665045
2020-08-31 21:35:07 1665123 [1044]: s1 check_our_lease warning 78 last_success 1665045
2020-08-31 21:35:08 1665124 [1044]: s1 check_our_lease warning 79 last_success 1665045
2020-08-31 21:35:09 1665125 [1044]: s1 check_our_lease failed 80
2020-08-31 21:35:10 1665125 [1044]: s1 all pids clear
2020-08-31 21:35:21 1665137 [3859]: 8d627013 aio timeout RD 0x7f56e00009b0:0x7f56e00009c0:0x7f56f0299000 ioto 10 to_count 4
2020-08-31 21:35:21 1665137 [3859]: s1 delta_renew read timeout 10 sec offset 0 /rhev/data-center/mnt/[mountpoint]/[SD_UUID]/dom_md/ids
2020-08-31 21:35:21 1665137 [3859]: s1 renewal error -202 delta_length 20 last_success 1665045

死亡:

ホストは 140 秒間リースを更新していません。

ストレージへの sanlock IO が一定時間内に完了しない場合、sanlock デーモンは回復に入ります。回復は、sanlock デーモンが、影響を受けたストレージのリースを使用して pid を強制終了 (SIGTERM) しようとすることから始まります。 10 秒以上にわたって 10 個の SIGTERM を実行しても pid が終了しない場合、sanlock は kill(SIGKILL) を試みます。 pid が一定時間内に終了しない場合、ウォッチドッグが起動し、ホストがリセットされます。必要な時間内にすべての pid が終了した場合、ウォッチドッグは更新され、起動しません。


Cent OS
  1. NGINXとは何ですか?それはどのように機能しますか?

  2. スティッキービットはどのように機能しますか?

  3. Ssh – Tcp-keepaliveはSshでどのように機能しますか?

  1. rm はどのように機能しますか? rm は何をしますか?

  2. sig_atomic_t は実際にどのように機能しますか?

  3. Linux でデバッガーはどのように機能しますか?

  1. RedhatLinuxで仮想化を構成する方法

  2. ps コマンドはどのように機能しますか?

  3. ループバック インターフェイスはどのように機能しますか