Jump to content

Recommended Posts

Posted (edited)

Вот на роутере. В предупреждениях ceph видел 7.8 сек skew одного из хостов

logs_rout.png

 

@straus с локального ntp, ntp в контейнере, контейнер на гипервизоре, гипервизоры c ceph

сутки не было рассинронов

Edited by tcup
Posted (edited)

Так, стоп. Здесь я вижу не NTP, а SNTP. Это другой протокол. Он интероперабелен с NTP, но не имеет сложных функций компенсации задержек.

 

И пока непонятна причина такого рассинхрона:

- гуляет сам локальный NTP-сервер

- нескомпенсированы задержки при каждой синхронизации устройств с локальным NTP-сервером

- гуляют системные часы в устройствах

 

* системные часы - это не аппаратные часы на материнке, это системное время, отсчитываемое операционкой

 

В случае виртуалок и подобного работа с системным временем в каждом корыте может сильно отличаться от чистой ОС.

Edited by straus
Posted (edited)

@straus попробую поймать на гипервизоре, там chrony

 

root@debackup:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp.sstf.nsk.ru               1  10   377   372   -212us[ -212us] +/- 5429us
^* ip83-228.ipblk.ksn.ru         1  10   377   407    -70us[ -116us] +/- 4471us
^- ntp.ix.ru                     1  10   377   916  -5180us[-5223us] +/-   33ms
root@debackup:~# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ntp.sstf.nsk.ru               1  10   377    99   +209us[ +209us] +/- 5082us
^* ip83-228.ipblk.ksn.ru         1  10   377   118  +7207ns[  -19us] +/- 4248us
^- ntp.ix.ru                     1  10   377   677  -3088us[-3114us] +/-   33ms
root@debackup:~# chronyc tracking
Reference ID    : 50F253E4 (ip83-228.ipblk.ksn.ru)
Stratum         : 2
Ref time (UTC)  : Tue Sep 01 05:21:24 2026
System time     : 0.000034647 seconds slow of NTP time
Last offset     : -0.000026602 seconds
RMS offset      : 0.000089141 seconds
Frequency       : 13.987 ppm fast
Residual freq   : -0.000 ppm
Skew            : 0.028 ppm
Root delay      : 0.008213685 seconds
Root dispersion : 0.000283375 seconds
Update interval : 1043.8 seconds
Leap status     : Normal

Отдельно стоящий ПК, настроенный на те же сервера, вроде через те же маршруты. Как я понимаю, тут всё красиво

Edited by tcup
Posted

У NTP-серверов предусмотрена функция сравнения в пределах одного стратума. Настраиваешь второй локальный сервер и используешь его только для сравнения с первым. По логам будет понятно, разбегаются ли сами локальные сервера.

Posted (edited)
11 minutes ago, straus said:

У NTP-серверов предусмотрена функция сравнения в пределах одного стратума. Настраиваешь второй локальный сервер и используешь его только для сравнения с первым. По логам будет понятно, разбегаются ли сами локальные сервера.

Было два сервера, второй синхронизировал время с первого. По первому совету, пока загасил второй. Кажется, разбег стал в два раза меньше - 5 секунд, против 10

Edited by tcup
Posted (edited)
В 01.09.2026 в 08:37, tcup сказал:

Было два сервера, второй синхронизировал время с первого. По первому совету, пока загасил второй. Кажется, разбег стал в два раза меньше - 5 секунд, против 10

Нет. Оба сервера настраиваешь на синхронизацию от одного общего источника. Все устройства синхронизируешь только от первого локального, а второй используешь как контрольный встроенной функцией сравнения. И смотришь в логах, насколько сами сервера разбегутся. Тогда станет понятно, нужно ли грешить на локальный сервер, или проблема ниже по иерархии.

 

Обычный разбег нативной системы при синхронизации по SNTP (не NTP) через интернет +/- 200-500 мс на отрезке 12 часов и латентности до сервера 40-50 мс. То есть, не такая уж высокая точность, до полсекунды туда-сюда гуляет. И у меня нынче ежедневно в логах выскакивает "недоступны все сервера" из pool.ntp.org. В локалке SNTP даст точность больше.

 

В 01.09.2026 в 08:37, tcup сказал:

пока загасил второй

Насколько помню, SNTP вообще не умеет правильно работать от нескольких серверов, это прерогатива NTP. Разве что сами клиенты SNTP могут пытаться усреднять с нескольких серверов, но лучше бы они этого не делали.

Edited by straus
Posted (edited)

Ничего не понятно, но так интересно)

58 minutes ago, straus said:

 

Нет. Оба сервера настраиваешь на синхронизацию от одного общего источника.

Один источник - то есть, один сервер, не два-три?

58 minutes ago, straus said:

Все устройства синхронизируешь только от первого локального, а второй используешь как контрольный встроенной функцией сравнения.

Что за встроенная функция сравнения?

58 minutes ago, straus said:

И смотришь в логах, насколько сами сервера разбегутся. Тогда станет понятно, нужно ли грешить на локальный сервер, или проблема ниже по иерархии.

Куда ниже? На клиентах?

58 minutes ago, straus said:

 

Обычный разбег нативной системы при синхронизации по SNTP (не NTP) через интернет +/- 200-500 мс на отрезке 12 часов и латентности до сервера 40-50 мс. То есть, не такая уж высокая точность, до полсекунды туда-сюда гуляет. И у меня нынче ежедневно в логах выскакивает "недоступны все сервера" из pool.ntp.org. В локалке SNTP даст точность больше.

 

Насколько помню, SNTP вообще не умеет правильно работать от нескольких серверов, это прерогатива NTP. Разве что сами клиенты SNTP могут пытаться усреднять с нескольких серверов, но лучше бы они этого не делали.

Ожидал, что маршрутизатор использует второй источник, если недоступен первый

 

Edited by tcup
Posted
5 минут назад, tcup сказал:
1 час назад, straus сказал:

Нет. Оба сервера настраиваешь на синхронизацию от одного общего источника.

Один источник - то есть, один сервер, не два-три?

Можно от одного. Можно от нескольких, но в этом случае синхронизация только по NTP (не SNTP).

 

10 минут назад, tcup сказал:
1 час назад, straus сказал:

Все устройства синхронизируешь только от первого локального, а второй используешь как контрольный встроенной функцией сравнения.

Что за встроенная функция сравнения?

В терминах NTP это называется peering или sanity check. Несколько серверов своего stratum могут пирится между собой.

 

16 минут назад, tcup сказал:
1 час назад, straus сказал:

И смотришь в логах, насколько сами сервера разбегутся. Тогда станет понятно, нужно ли грешить на локальный сервер, или проблема ниже по иерархии.

Куда ниже? На клиентах?

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

 

18 минут назад, tcup сказал:

Ожидал, что маршрутизатор использует второй источник, если недоступен первый

Ну это просто Backup в SNTP. А в NTP встроен целый алгоритм повышения точности, он использует одновременно несколько серверов.

 

Posted
20 часов назад, tcup сказал:

Железячный/виртуальный/любой?

 

 

Например у нас NTP сервер стоит на вритуалке в проксмоксе, а всё остальное оборудование в нашей сети синхронизируется только с него.

 

Ну и пробуйте разные решения:

Для Linux-виртуалки на Proxmox лучшим решением является отключение внутреннего NTP-демона 
и полная передача контроля времени хосту через QEMU Guest Agent. 
Это исключит «качели», когда виртуалка и хост спорят за правильное время.
Выполните следующие шаги:

Шаг 1. Включите синхронизацию через QEMU Agent
Если агент уже установлен, примените принудительную синхронизацию с Proxmox:
Внутри виртуалки установите и запустите агент (если не сделали этого ранее):

Ubuntu/Debian: sudo apt update && sudo apt install -y qemu-guest-agent && sudo systemctl enable --now qemu-guest-agent
RHEL/Rocky/CentOS: sudo dnf install -y qemu-guest-agent && sudo systemctl enable --now qemu-guest-agent

Важно: В веб-интерфейсе Proxmox в настройках ВМ (Options -> QEMU Guest Agent) должно стоять Enabled. 
Если меняли этот параметр, полностью выключите и включите ВМ (Stop/Start, обычный Reboot не применит настройки гипервизора).

Шаг 2. Отключите внутренний NTP
Чтобы системные службы Linux не перезаписывали время из интернета:

sudo timedatectl set-ntp false

После этого timedatectl status должен показывать NTP service: inactive (или NTP active: no).

Шаг 3. Оптимизация таймера в Grub (Защита от дрифта)
При высокой нагрузке на хост ядра Linux в ВМ могут пропускать такты времени. 
Зафиксируйте надежный источник тактовой частоты:

1.Откройте файл конфигурации загрузчика:

sudo nano /etc/default/grub

Найдите строку GRUB_CMDLINE_LINUX_DEFAULT и добавьте в кавычки параметр clocksource=kvm-clock (или clocksource=tsc для процессоров Intel/AMD последних поколений):
text

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable clocksource=kvm-clock"

Обновите загрузчик и перезапустите систему:

    Ubuntu/Debian: sudo update-grub && sudo reboot
    RHEL/CentOS/Rocky: sudo grub2-mkconfig -o /boot/grub2/grub.cfg && sudo reboot

Шаг 4. Проверка на самом хосте Proxmox
Если на самом сервере Proxmox время спешит или отстает, виртуалка повторит эту ошибку. 
Проверьте статус времени на хосте:
Подключитесь к Proxmox по SSH.
Выполните: chronyc tracking или timedatectl status.
Убедитесь, что хост успешно синхронизирован с внешним NTP-пулом.

 

Posted
On 9/1/2026 at 5:11 AM, tcup said:

Файерволом запросы заруливаются? Чота не соображу, как это, на локалхост

Легко.

На роутере хрони слушает на 127.0.0.1, фаер проходящий трафик из локалки редиректит=натит на этот адрес.

Так же как и с прозрачным сквидом было раньше.

Posted (edited)
7 hours ago, Ivan_83 said:

Легко.

На роутере хрони слушает на 127.0.0.1, фаер проходящий трафик из локалки редиректит=натит на этот адрес.

Так же как и с прозрачным сквидом было раньше.

Примерно понятно)

На данный момент пока не наблюдаю скачков (больших по крайней мере)

Напомню, оставил один локальный ntp в контейнере. Синхронизируется с 2 серверами от НИИФТРИ + 1 msk-ix

Гипервизорам прописал высокоэффективную производительность.

Посмотрел логи.

На ntp-сервере, сегодня:

Sep 03 09:43:53 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:43:16 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:42:47 dns chronyd[5639]: Detected falseticker 194.190.168.1 (ntp.msk-ix.ru)
Sep 03 09:42:11 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:41:43 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:41:42 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:41:42 dns chronyd[5639]: Detected falseticker 194.190.168.1 (ntp.msk-ix.ru)
Sep 03 09:41:42 dns chronyd[5639]: Detected falseticker 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:40:38 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:40:38 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:40:02 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:39:34 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:38:57 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:38:29 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:37:52 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:37:24 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:36:48 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:36:48 dns chronyd[5639]: Detected falseticker 194.190.168.1 (ntp.msk-ix.ru)
Sep 03 09:36:19 dns chronyd[5639]: Selected source 194.190.168.1 (ntp.msk-ix.ru)
Sep 03 09:36:19 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:36:19 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:36:19 dns chronyd[5639]: Detected falseticker 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:35:43 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:34:10 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:33:33 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:32:00 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:29:50 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:29:15 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:28:46 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:28:45 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:28:45 dns chronyd[5639]: Detected falseticker 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:28:10 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:20:07 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:19:35 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:19:02 dns chronyd[5639]: Selected source 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:18:30 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:18:01 dns chronyd[5639]: Selected source 194.190.168.1 (ntp.msk-ix.ru)
Sep 03 09:18:01 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:17:57 dns chronyd[5639]: Selected source 80.242.83.227 (ntp.sstf.nsk.ru)
Sep 03 09:17:57 dns chronyd[5639]: Detected falseticker 80.242.83.228 (ntp.sniim.ru)
Sep 03 09:16:57 dns chronyd[5639]: Detected falseticker 80.242.83.227 (ntp.sstf.nsk.ru)

На одном из гипервизоров

Sep 02 07:39:38 pve2 chronyd[1191]: System clock wrong by 1.457903 seconds
Sep 02 07:37:30 pve2 chronyd[1191]: System clock wrong by 1.575654 seconds
Sep 02 07:35:20 pve2 chronyd[1191]: System clock wrong by -1.260975 seconds
Sep 02 07:34:15 pve2 chronyd[1191]: System clock wrong by -2.218039 seconds
Sep 02 07:29:57 pve2 chronyd[1191]: System clock wrong by 1.619190 seconds
Sep 02 07:29:57 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 02 07:28:52 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 02 07:25:38 pve2 chronyd[1191]: System clock wrong by -1.221860 seconds
Sep 02 07:17:02 pve2 chronyd[1191]: System clock wrong by -1.263051 seconds
Sep 01 11:26:08 pve2 chronyd[1191]: System clock wrong by 7.812319 seconds
Sep 01 11:26:08 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 11:22:54 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds
Sep 01 11:19:39 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 11:18:34 pve2 chronyd[1191]: System clock wrong by -1.357776 seconds
Sep 01 11:17:29 pve2 chronyd[1191]: System clock wrong by -4.760428 seconds
Sep 01 11:17:29 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 11:16:25 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 11:14:15 pve2 chronyd[1191]: System clock wrong by -14.590260 seconds
Sep 01 11:14:15 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 11:13:11 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds
Sep 01 11:12:07 pve2 chronyd[1191]: Root distance of 172.16.33.11 exceeds maxdistance of 3.000 seconds
Sep 01 11:08:52 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 11:07:48 pve2 chronyd[1191]: System clock wrong by 2.588064 seconds
Sep 01 11:06:43 pve2 chronyd[1191]: System clock wrong by 5.120498 seconds
Sep 01 11:06:43 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 11:05:39 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 11:04:34 pve2 chronyd[1191]: System clock wrong by 8.447292 seconds
Sep 01 11:04:34 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 11:02:24 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds
Sep 01 11:00:10 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:58:07 pve2 chronyd[1191]: System clock wrong by -3.380585 seconds
Sep 01 10:58:07 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 10:57:03 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:52:44 pve2 chronyd[1191]: System clock wrong by 2.574736 seconds
Sep 01 10:52:44 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 10:51:40 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:47:22 pve2 chronyd[1191]: System clock wrong by 1.596446 seconds
Sep 01 10:46:18 pve2 chronyd[1191]: System clock wrong by -4.758118 seconds
Sep 01 10:46:18 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 10:44:08 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:33:21 pve2 chronyd[1191]: System clock wrong by 1.287629 seconds
Sep 01 10:33:21 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 10:30:07 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds
Sep 01 10:26:54 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:25:49 pve2 chronyd[1191]: System clock wrong by 1.431441 seconds
Sep 01 10:24:45 pve2 chronyd[1191]: System clock wrong by -3.023559 seconds
Sep 01 10:21:30 pve2 chronyd[1191]: System clock wrong by -1.194266 seconds
Sep 01 10:15:02 pve2 chronyd[1191]: System clock wrong by 1.896213 seconds
Sep 01 10:12:53 pve2 chronyd[1191]: System clock wrong by -2.456758 seconds
Sep 01 10:12:53 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 10:11:49 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 10:10:44 pve2 chronyd[1191]: System clock wrong by -1.029437 seconds
Sep 01 10:08:35 pve2 chronyd[1191]: System clock wrong by 1.508236 seconds
Sep 01 10:02:08 pve2 chronyd[1191]: System clock wrong by -1.125146 seconds
Sep 01 09:35:13 pve2 chronyd[1191]: System clock wrong by -2.831171 seconds
Sep 01 09:35:13 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 09:28:46 pve2 chronyd[1191]: Root distance of 172.16.33.11 exceeds maxdistance of 3.000 seconds
Sep 01 09:27:41 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds
Sep 01 09:24:27 pve2 chronyd[1191]: Can't synchronise: no selectable sources (1 unreachable sources)
Sep 01 09:23:23 pve2 chronyd[1191]: System clock wrong by 1.415566 seconds
Sep 01 09:22:18 pve2 chronyd[1191]: System clock wrong by 1.852414 seconds
Sep 01 09:21:13 pve2 chronyd[1191]: System clock wrong by 9.070408 seconds
Sep 01 09:21:13 pve2 chronyd[1191]: Selected source 172.16.33.11
Sep 01 09:16:55 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds

Как видно, рассинхроны вчера-позавчера

Edited by tcup
Posted

На отдельно стоящем ПК на тех же настройках, как я понимаю, всё идеально. Решил перенаправить на него. Но и пока на виртуалке всё магически успокоилось (возможно, в какой-то момент начинает частота плавать).

Хостам добавил в настройку сервер, что на отдельно стоящем ПК, объединил их в пиры, добавил настройку 

Quote

local stratum 10 orphan

Как я понимаю, если перестанут синхронизироваться с внешкой, то будут обособленно синхронизироваться между собой.

Буду набюлдать

Всем спасибо за подсказки и советы

Есть ещё, что поизучать

Posted

Упс, я как-то пропустил одну очень важную строчку. Она весьма много говорит.

 

В 03.09.2026 в 05:51, tcup сказал:
Sep 01 10:30:07 pve2 chronyd[1191]: Jitter of 172.16.33.11 exceeds maxjitter of 1.000 seconds

И это повторяется неоднократно.

 

Теперь задумаемся - джиттер (дрожание) В ЛОКАЛКЕ (172.16) превышает 1 секунду. Расшифровываю: несколько TIME пакетов подряд из локалки дают разброс более 1 секунды. Вот и причина криминала, теперь осталось найти источник. Где-то по пути один только разброс меток более секунды, а сколько там сама задержка - одному господу известно (может быть и 9 секунд с дрожанием более секунды).

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...