Каково взаимодействие тайм-аутов и интервалов в операциях монитора ресурсов кардиостимулятора

Если у меня есть ресурс кардиостимулятора, подобный этому:

     Resource: FoobarServer (class=ocf provider=foo type=bar)
  Operations: monitor interval=5m timeout=8m (FoobarServer-monitor-interval-5m)
              start interval=0 timeout=360s (FoobarServer-start-0)
              stop interval=0 timeout=360s (FoobarServer-stop-0)

Похоже, возникнет конфликт, учитывая, что тайм-аут больше, чем интервал. Однако я не могу найти никакой документации, которая конкретно предупреждает об этом потенциальном состоянии.

Каждые 5 минут появляется другой процесс монитора, который умирает через 8 минут? Или один процесс перезапускается каждые 5 минут и (в этом случае) он пропустит события, которые происходят с разницей в 3 минуты между интервалом и тайм-аутом?

1
задан 2 June 2021 в 21:55
1 ответ

Из документации, доступной на Red Hat (который наряду с SUSE является главным спонсором ClusterLabs' pacemaker/corosync):

RHEL8 - Глава 20. Resource monitoring operations:

interval

[...]
Повторяющееся действие мониторинга будет выполнено сразу после того, как запуска ресурса, а последующие действия монитора планируются начиная с момента завершения предыдущего действия. Для например, если действие монитора с интервалом=20с выполняется в 01:00:00, следующее действие монитора произойдет не в 01:00:20, а через через 20 секунд после завершения первого действия монитора.

таймаут

Если операция не завершается за время, заданное этим параметром, прервите операцию и считайте, что операция завершена. параметром, прервите операцию и считайте ее неудачной.
[...]

Итак, подведем итоги:

  • не будет двух пересекающихся действий мониторинга: интервал составляет после завершения предыдущего, а не после запуска. Последовательные действия мониторинга могут происходить между 5млн и 13млн. В случае ОП, за час прошедшего времени может произойти от 4 (1ч/(5мн+8мн)) до 12 (1ч/5мн) срабатываний мониторинга, в зависимости от времени, необходимого монитору для завершения проверки,
  • даже если интервал является делителем часа, события монитора не будут происходить в фиксированное время (как 12 раз здесь) в течение часа, а будут дрейфовать,
  • в зависимости от того, как реализован ресурс и монитор, то есть весь интервал времени, 5млн, события могут быть пропущены, если эти события не поставлены в очередь, чтобы оставаться доступными для обработки монитором,
  • в любом случае, если сбой произошел сразу после последнего интервала, будет почти интервал времени, прежде чем появится шанс обнаружить сбой,
  • таймаут таймаут - это максимальное время, отведенное для завершения действия мониторинга, но может быть и короче,
  • роль монитора - возвращать статус, когда его действие начинается. Он не должен "продолжать мониторинг" в течение 8млн. 8mn для таймаута монитора выглядит сомнительным значением, как по сравнению с интервалом, так и в абсолютном значении,
  • хотя кажется логичным, что действие является новым порожденным процессом, эта информация не документирована, поэтому может быть специфичной для реализации/монитора. Это не имеет большого значения, поскольку не будет двух пересекающихся действий мониторинга.
0
ответ дан 28 July 2021 в 13:23

Теги

Похожие вопросы