Объявление Systemd-timesyncd в Systemd файле NEWS делает хорошую работу по объяснению различий этого инструмента по сравнению с Chrony и инструменты , как это. (выделение мое):
Новый демон "systemd-timesyncd" был добавлен для синхронизации системных часов по сети. Он реализует клиент SNTP . В отличие от реализаций NTP, таких как Chrony или эталонный сервер NTP, он реализует только клиентскую часть и не заботится о полной сложности NTP, концентрируясь только на запросе времени с одного удаленного сервера и синхронизации с ним локальных часов . Если вы не собираетесь обслуживать NTP для сетевых клиентов или хотите подключиться к локальным аппаратным часам, этот простой NTP-клиент более чем подходит для большинства установок. [...]
Эта настройка является распространенным вариантом использования для большинства хостов в серверном парке. Обычно они синхронизируются с локальными NTP-серверами, которые сами синхронизируются из нескольких источников, возможно, включая оборудование. systemd-timesyncd пытается предоставить простое в использовании решение для этого общего случая использования.
Попытка ответить на ваши конкретные вопросы:
Каковы реальные различия между двумя с точки зрения точности?
Я считаю, что вы можете получить более высокую точность, получая данные синхронизации из нескольких источников, что, в частности, не поддерживается в случае использования systemd-timesyncd. Но когда вы используете его для получения данных синхронизации от центральных NTP-серверов, подключенных к вашей надежной внутренней сети, использование нескольких источников не так уж важно, и вы получаете хорошую точность из одного источника.
Если вы синхронизируете свой сервер с доверенным сервером в локальной сети и в одном и том же центре обработки данных , разница в точности между NTP и SNTP будет практически отсутствовать. NTP может принимать во внимание RTT и делать временные расчеты, но это не так выгодно, когда ваш RTT очень маленький, как в случае быстрой локальной сети и соседней машины. Вам также не нужно несколько источников, если вы можете доверять тому, который используете.
Каковы различия в эффективности?
Получить синхронизацию из одного источника намного проще, чем получить ее из нескольких источников, поскольку вам не нужно принимать решения о том, какие источники лучше других, и, возможно, объединять информацию из нескольких источников. Алгоритмы намного проще и потребуют меньше нагрузки на процессор для простого случая.
Что такое «непростая» синхронизация времени, такая как сценарии использования chrony в качестве клиента NTP?
Об этом говорится в приведенной выше цитате, но в любом случае это варианты использования Chrony, которые не охватываются systemd-timesyncd:
- запуск NTP-сервера (чтобы другие хосты могли использовать этот хост в качестве источника для синхронизации);
- получение информации синхронизации NTP из нескольких источников (что важно для хостов, получающих эту информацию с публичных серверов в Интернете); и
- получение информации о синхронизации от местных часов, которая обычно включает специализированное оборудование, такое как устройства GPS, которые могут получать точную информацию о времени со спутников.
Эти варианты использования требуют Chrony или NTDP или аналогичные.
Как правильно говорит другой ответ,
chrony
реализует NTP иsystemd-timesyncd
SNTP.С точки зрения клиента службы времени:
SNTP - намного более простой протокол для реализации;
NTP допускает пошаговое увеличение / исправление во времени. Одним из основных преимуществ NTP является то, что он также учитывает RTT ответа, чтобы получить более точное время.
С https://www.meinbergglobal.com/english/faq/faq_37.htm
С https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp
Еще один важный момент, который я вижу, когда реализации SNTP создают больше проблем, чем NTP, - это виртуализация, когда и гипервизор, и демон NTP пытаются изменить время виртуальной машины. Особенно из-за того, что они не соглашаются вовремя с некоторой неверной конфигурацией, они оба становятся активными, это может вызвать большие проблемы. (Хотя компетентные системные администраторы сохранят активным только один метод синхронизации со временем, может случиться, что оба они активны из-за ошибки конфигурации).
PS
systemd-timesyncd
не должно быть рекомендуемой альтернативой, когда не используетсяsystemd
.источник
systemd-timesyncd
программу под другим менеджером службы.service-manager
С 2018 года я предоставляю пакет услуг для запуска его под инструментарием nosh. Что вы упустили, так это то, что пользователи systemd (согласно ошибке Debian # 812522) поощряют гостевые службы VirtualBox и других явно конфликтовать с этойsystemd-timesyncd
службой, чтобы предотвратить ее использование. в виртуальных машинах.systemd
.... Тем не менее, vmtools timesync может и будет отключен и должен быть отключен на серверах, выполняющих службы NTP (например, на виртуальных машинах NTP-серверов), а некоторые системные администраторы синхронизируются с помощью vmtools, другие следуют документам VmWare об отключении vmtools timesync (который следует использовать только тогда, когда вы знаете, что делаете). Эта ошибка не является линейной для устранения, и это будет дополнительная точка конфигурации, которую люди, следуя рекомендациям VmWare, не будут использовать vmtools timesync.vmware-toolbox-cmd timesync disable
на своих NTP-серверах, независимо от того, отключили ли парни из VmWare временную синхронизацию для этих виртуальных машин. (Я также обычно предпочитаю использовать Chrony в качестве клиента NTP)chrony
это не форма вилки,ntpd
но она реализована с нуля. Он реализует как клиентский, так и серверный режимы полного протокола NTPv4 ( RFC5905 ). Что касается пользователей корпоративного уровня, мы наблюдаем смену тренда с традиционныхntpd
наchrony
подобные Red Hat (RHEL 7 и выше) и SuSE (с SLES 15).systemd-timesyncd
реализовывать только клиентский режим протокола SNTP ( RFC4330 ) . Следовательно, сложные случаи использования не охватываются . Например, SNTP не может сделать его более точным, получая время из нескольких источников, как это делает NTP по умолчанию. В результате не может обеспечить такое же точное время, как .systemd-timesyncd
systemd-timesyncd
chrony
источник