Для изменения системного таймера кластера используется встроенная утилита freeze-ticktime. Данная утилита меняет значение параметра net_ticktime с трех секунд (стандартное значение) на 30 секунд на всех нодах хоста.
Это значение поддерживается в течение заданного интервала (должен задаваться в минутах). Если в течение этого периода запустятся другие ноды, то на них net_ticktime также будет изменён.
По истечении интервала значение net_ticktime на всех нодах меняется на стандартное значение.
Использование
freeze-ticktime <интервал в минутах>
Утилита freeze-ticktime может потребоваться во время выполнения бэкапа виртуальной машины. Т.к. в момент выполнения бэкапа задействуются ресурсы хоста, которые могут привести к задержкам в передаче служебными сообщениями между нодами кластера.
Для настройки автоматического включения увеличенного таймера netticktime необходимо создать system.service и systemd.timer
Сервис и таймер, настраивается на каждом из двух серверов.
Создание сервиса
[Unit] Description=Turn on long timer netticktime [Service] Type=oneshot User=root ExecStartPre=/usr/bin/freeze-ticktime get-ticktime ExecStart=/usr/bin/freeze-ticktime 30 # Запуск сервиса для увеличения таймера на 30 минут ExecStartPost=/bin/sleep 10 ExecStartPost=/usr/bin/freeze-ticktime get-ticktime
Создание таймера
Обязательно прочитайте комментарий в 15 строке ниже
[Unit] Description=Execute ecss-freeze-ticktime by timer [Timer] # Формат таймера: ДеньНедели Год-Месяц-День Часы:Минуты:Секунды # # Чтобы указать все значения используется (*) # для перечисления значения используется (,) # для промежутка используется (..) # # Запуск каждый день в 12:00: *-*-* 12:00 # Запуск первые 3 дня месяца в 00:00 (по умолчанию): *-*-1..3 # Запуск каждый понедельник и субботу в 12:00: Mon,Sat *-*-* 12:00 OnCalendar=*-*-* 21:00 # Запуск таймера каждый день в 21:00 (Этот параметр следует изменить т.к этот сервис необходимо включить ТОЛЬКО перед бекапом виртуальных машин) #Возможные вариации #OnCalendar=Sat *-*-* 21:00 #Запуск каждую субботу в 21:00 - Раскомментировать при использовании [Install] WantedBy=multi-user.target
Запуск таймера
Для запуска таймера необходимо выполнить перечитывание конфигурации сервисов:
sudo systemctl daemon-reload
Далее, запустить таймер:
sudo systemctl start ecss-freeze-ticktime.timer
И добавить его в автозагрузку:
sudo systemctl enable ecss-freeze-ticktime.timer
После этого, проверить запущенные таймера
sudo systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES Fri 2025-04-04 08:35:00 UTC 2min 5s left Fri 2025-04-04 08:30:18 UTC 2min 35s ago ecss-copycdr.timer ecss-copycdr.service Fri 2025-04-04 23:00:00 UTC 14h left Thu 2025-04-03 23:00:18 UTC 9h ago ecss-restfs-cleaner.timer ecss-restfs-cleaner.service Sat 2025-04-05 00:00:00 UTC 15h left Fri 2025-04-04 00:00:02 UTC 8h ago ecss-restfs-crawler.timer ecss-restfs-crawler.service Sat 2025-04-05 07:40:00 UTC 23h left Fri 2025-04-04 07:40:08 UTC 52min ago ecss-freeze-ticktime.timer ecss-freeze-ticktime.service #наш таймер