Назад | Перейти на главную страницу

В FreeBSD 12 на вычислительном движке время идет слишком быстро

Я создал виртуальную машину FreeBSD на облачном движке Google. Образ устанавливается с настроенным ntpd и работает:

$service ntpd status
ntpd is running as pid 4950.

Но дата в будущем, время на сервере идет слишком быстро.

$date
Mon Feb 25 15:59:38 UTC 2019

UTC сейчас: Mon Feb 25 10:31:21 UTC 2019

Я попытался перезапустить службу ntpd:

$service ntpd restart

без везения. Я нашел здесь обсуждение: https://forums.freebsd.org/threads/the-system-clock-is-falling-behind.61450/. Мне нужен дрифт-файл, поэтому я добавил его:

$echo "0" > /var/db/ntpd.drift

Затем я остановился и запустил службу ntpd:

$service ntpd stop
$service ntpd start

Время пришло. Но я немного растерялся, решила ли проблема жесткая остановка / запуск или дрейфовый файл.

[Обновить]

Подводя итог проблемы: время, когда сервер идет слишком быстро. Служба ntpd не исправляет проблему, только когда я перезапускаю службу. С моих наивных глаз кажется, что секунда на виртуальной машине немного короче реальной секунды.

Поместите эту строку в rc.conf. Время будет синхронизироваться при запуске системы и / или при (повторном) запуске ntpd.

ntpd_sync_on_start="YES"

Этот параметр заставляет "ntpd" начинаться с опции "-грамм"(см. /etc/rc.d/ntpd), (см. man ntpd)

-g, --panicgate. Позвольте первой настройке быть Большой. Эта опция может появляться неограниченное количество раз. Обычно ntpd завершает работу с сообщением в системный журнал, если смещение превышает порог паники, который по умолчанию составляет 1000 с. Эта опция позволяет установить любое значение времени без ограничений; однако это может произойти только один раз. Если после этого порог будет превышен, ntpd выйдет с сообщением в системный журнал. Этот параметр можно использовать с параметрами -q и -x. См. Другие параметры в директиве файла конфигурации tinker.

Чтобы синхронизировать работающую систему:

1) остановить ntpd

# /etc/rc.d/ntpd stop
Stopping ntpd.

2) время синхронизации

# ntpdate 2.freebsd.pool.ntp.org
25 Feb 13:58:42 ntpdate[78591]: adjust time server 62.197.207.182 offset 0.003268 sec

3) запустить ntpd

# /etc/rc.d/ntpd start
Starting ntpd.

Чтобы ответить на ваш вопрос

Была ли проблема решена жесткой остановкой / запуском или файлом дрейфа?

Должно быть, это была «жесткая остановка / запуск». driftfile используется для точной настройки частоты часов. Это не может объяснить разницу в 5 часов.

FWIW. См. Ниже мой дрифт-файл во FreeBSD на сайте DO.

# cat /var/db/ntpd.drift 
0.075

# ps ax | grep ntpd
26681  -  Ss       22:51.54 /usr/sbin/ntpd -g -c /etc/ntp.conf -p /var/run/ntpd.pid -f /var/db/ntpd.drift

При использовании ntpd и ntpdate смягчит проблему, время между обновлениями будет продолжать меняться. Кроме того, текущие образы GCE для FreeBSD 12 уже настроены для синхронизации с сервером времени Google, но проблема все еще остается. Это известная проблема FreeBSD 12 в Google Compute Engine.

Проверьте GCE: значительный дрейф часов - решение для настройки, чтобы исправить это. Резюмируя:

/boot/loader.conf:

machdep.disable_tsc_calibration=1
kern.timecounter.invariant_tsc=1

/etc/sysctl.conf:

kern.timecounter.hardware=TSC-low