TM Feed
Хабрахабр
Мегамозг
Geektimes
Тостер
Brainstorage
Фрилансим

Черный ящик в офиc1 000 000 на образование Принять вызов?

Разделы

Публикации
Хабы
Компании
Пользователи
Q&A
Песочница
Биржа авторов

Спецпроекты

Выбрать принтер?

Все в Ажуре

Intel Edison

unicast

карма

37,5

59 голосов

рейтинг

3,8

Профиль

Публикации (8)

Комментарии (209)

Избранное (86)

29 декабря 2009 в 14:38

Делаем собственный NTP-сервер Stratum-1

Системное администрирование*

На написание этой заметки меня натолкнул хабраюзер BarsMonster со своим топиком «О точном времени».

В своей статье он призывал хабраюзеров «Давать больше Stratum-1 серверов», но не сказал как (:

Выбор источника точного времени

Я проделывал эту работу примерно три года назад, когда в сети информации по этой теме было гораздо меньше. Основным источником моих познаний была документация из пакета ntp-doc (/usr/share/doc/ntp-doc/html/refclock.html), также её можно найти в сети.

Само название Stratum-1 означает, что наш NTP-сервер непосредственно подключен к источнику точного времени.

Давайте посмотрим какие у нас есть варианты этих источников:

Радиостанции точного времени

Ничего сложного, берём подходящую частоту из справочника, паяем приёмник и преобразователь в удобный для компьютера интерфейс. ^_^

Я забросил этот вариант, т.к. напротив моей старой работы стояло здание то ли ФАПСИ, то ли ещё какой-то службы, в общем эфир был довольно зашумлён (-:

Телефон GSM или CDMA

Как-то я им не доверяю, хотя не самый плохой вариант.

Приёмник GPS или ГЛОНАСС

Этот вариант мне показался самым реальным.

Подключаем

Приёмник ГЛОНАСС тогда было сложно достать, поэтому я пошел в магазин и купил GPS-приёмник с RS232-м интерфейсом и внешней антенной. Антенну прилепил на металлический подоконник за окном, а приёмник соответственно подключил к COM-порту одного из серверов.

Первым делом нам нужно убедиться что приёмник «видит» спутники. Мой, например, в этом случае начинает весело подмигивать светодиодом.

Более универсальный способ — посмотреть что он отдаёт в COM-порт:

cat /dev/ttyS0

Тут мы должны увидеть дамп протокола NMEA.

Настраиваем

Для работы ntpd нам нужно сделать символические ссылки:

/dev/gps0 -> /dev/ttyS0

Если вы используете udev, то полезно будет создать правило /etc/udev/rules.d/10-gps.rules следующего содержания:

KERNEL==«ttyS0», NAME="%k", SYMLINK+=«gps0», MODE=«0660», GROUP=«uucp»

Модифицируем ntp.conf:

# Local Clock — если теряем спутники, то снижаем stratum до 10

server 127.127.1.0

fudge 127.127.1.0 stratum 10

# NMEA GPS driver

server 127.127.20.0 prefer

driftfile /var/lib/ntp/ntp.drift

restrict default nomodify notrust # Отдаём время всем

restrict 127.0.0.1 # Разрешаем себе всё

disable auth

logfile /var/log/ntp/messages

В строке server 127.127.20.0 число 20 — это ответ на «главный вопрос жизни, вселенной и вообще» номер соответствующего драйвера источника точного времени.

Перезапускаем NTPD и смотрим статус. Должно быть что-то подобное:

ntpq -p

remote refid st t when poll reach delay offset jitter

==============================================================================

LOCAL(0) LOCAL(0) 10 l 52 64 377 0.000 0.000 0.002

*GPS_NMEA(0) .GPS. 0 l 15 64 377 0.000 -0.018 0.004

Всё, сервер можно пиарить регистрировать в списке stratum-1 серверов.

Надеюсь эта статья поможет увеличить количество хороших NTP-серверов в рунете (-;

[Важный UPD]

Мне тут человек постучался в IM, у него нет аккаунта на Хабре, просил меня прояснить ситуацию с переходниками COM-USB. Цитирую:

brn:

Так вот, так как в приёмниках часто один из служебных пинов COM разъёма заведён на 1PPS сигнал, который обозначает начало очередной секунды, в случае USB этот сигнал будет потерян

А, так сигнал NMEA без PPS даёт точность порядка 50-100 миллисекунд, а для сервера точного времени это неприемлимо

Это как раз проясняет почему у меня был такой разбег с коллегой из Новосибирска — мой приёмник PPS не поддерживал.

Чтобы использовать PPS, нужно в конфиг ntp заменить NMEA на PPS:

# PPS driver

server 127.127.22.0 prefer

enable pps

[UPD2]

Встречаем нового хабраколлегу brn!

Он уже успел написать топик про NMEA.

BarsMonster, спасибо за инвайт.

время

, точное время

, ntp

, stratum

, stratum one

, сервер

, stratum1

+44

11477

74

unicast
3,8

Похожие публикации

Экономичные серверы HP для SMB и провайдеров
21 апреля в 15:46

Intel Xeon`ы врываются на рынок отказоустойчивых RISC-серверов, построенных по лекалам mainframe
18 апреля в 02:31

Управление дисковым пространством сервера на лету: опыт 1cloud
16 апреля в 14:55

ThinkServer RD650: анатомия сервера нового поколения от Lenovo
10 апреля в 16:56

Изъяты серверы крупного регистратора NIC.UA
7 апреля в 16:42

В меру Универсальное Устройство Управления на Raspberry Pi + stratum1 NTP-сервер
7 апреля в 16:10

Серверы для бизнеса: энергоэффективность имеет значение
2 апреля в 14:46

Пример простейшего cgi сервера
1 апреля в 15:48

Сервер очень точного времени stratum 1 на Garmin GPS
13 октября 2011 в 14:01

В какое время суток Вы производите обновление ПО на серверах
17 декабря 2008 в 03:09

Комментарии (35)

НЛО прилетело и опубликовало эту надпись здесь

+1

gibson_dev
29 декабря 2009 в 15:29

#

↵

↑

Можно например такой RS-232 GPS GlobalSat BR-304

webpanel.ru/GlobalSat-BR-304-GPS-Receiver-RS-232.aspx

GPS-мышка на базе чипсета EverMore

во влагозащищенном корпусе с интерфейсом RS-232 и внешней антенной

+1

unicast
29 декабря 2009 в 17:20

#

↵

↑

Конкретно у меня GPS Haicom HI-303CF, а так, почти все старые Garmin подойдут.

Думаю гугл GPS + RS232 должен помочь.

0

timothyz
19 июня 2012 в 10:33

#

↵

↑

Я использовал Garmin GPS 18x LVC. Разница LVC от PC и USB в том, что в LVC выведен PPS.

Плюсы: Относительно дешевый. Простота подключения (честные уровни RS-232).

Минусы: Большой jitter (~100 мс), если использовать только NMEA без PSS. Нет возможности принудительно зафиксировать координаты — это полезно в случае плохой видимости спутников — с зафиксированными координатами приемник теоретически может отдавать точное время и при видимости только одного спутника.

0

gibson_dev
29 декабря 2009 в 15:24

#

Можно например такой RS-232 GPS GlobalSat BR-304

webpanel.ru/GlobalSat-BR-304-GPS-Receiver-RS-232.aspx

0

gag_fenix
29 декабря 2009 в 17:04

#

Забавно: GPS-приемник, который всю жизнь работает на одном месте :)

+4

BarsMonster
29 декабря 2009 в 17:14

#

↵

↑

И таких приемников много ) На всех WiMax/CDMA базовых станциях по одному :-)

0

jerom
29 декабря 2009 в 23:23

#

↵

↑

Есть ещё один тип приёмников, который всегда на одном месте — приёмники, накапливающие поправки. Позволяют получать координаты с сантиметровой точностью.

Метода такая: пишите лог несколько часов, потом скачиваете со стационарного приёмника лог за это же время и обрабатываете.

0

expolit
4 января 2010 в 02:07

#

↵

↑

Давно кружится идея такая, даёшь пару приёмников и вот тебе точность приёма в несколько сантиметров!

0

Mad_Fish
29 декабря 2009 в 17:07

#

Сейчас COM-порта обычно уже нет в компьютерах. Как это можно сделать с другими вариантами подключения?

+1

BarsMonster
29 декабря 2009 в 17:13

#

↵

↑

USB<>COM адаптер

PCI<>COM адаптор

Bluetooth<>GPS, Bluetooth — используется в GPS как COM порт на расстоянии, но в Linux не знаю как это настраивается.

0

Elvis_the_King
29 декабря 2009 в 17:18

#

↵

↑

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

Кстати сейчас полно приемников которые ловят в помещении, в нескольких метрах от окон. Это практически любой приемник на чипсете MTK или SIRF 3.

+1

tangro
29 декабря 2009 в 19:01

#

↵

↑

Все это (в особенности блютус) даст большие и, самое главное, непредсказуемые задержки во времени. В обычных прогах на десятки или даже сотни милисекунд можно было бы забить, но мы же боремся за точность.

+1

BarsMonster
29 декабря 2009 в 19:03

#

↵

↑

Чертовски согласен.

Разве что PCI<>COM дает нормальные задержки, там обычный аппаратный контроллер распаян.

0

gag_fenix
29 декабря 2009 в 17:21

#

↵

↑

www.dealextreme.com/details.dx/sku.707

0

unicast
29 декабря 2009 в 17:25

#

↵

↑

Мне кажется, что современные GPS-приёмники с USB должны иметь вменяемую поддержку в Linux.

Я тоже свой сначала взял «на попробовать», а потом купил.

+2

unicast
29 декабря 2009 в 17:28

#

Кстати, коллега в Новосибирске поднял аналогичный сервер и мы по внутренней сети добавили друг-друга в конфиги NTP. Был небольшой разбег, порядка 30-60ms. Выяснить почему, не успел — уволился.

0

toshnya
29 декабря 2009 в 17:49

#

На сайте gpsd пишут следующее:

Note that deriving time from messages received from the GPS is not as accurate as you might expect. Messages are often delayed in the receiver and on the link by several hundred milliseconds, and this delay is not constant.

Что в переводе примерно означает: Учтите, что время доставки сообщения от GPS не так точно, как можно ожидать. Сообщение часто задерживается в устройстве и в канале передачи на несколько сотен миллисекунд, причем это время не постоянно. (далее говорится, что существуют методы частичной коррекции для некоторых типов устройств)

В связи с чем у меня возник вопрос: Существует ли стандарт точности определения времени для серверов Stratum 1, или достаточно оснастить сервер устройством определения времени?

+1

unicast
29 декабря 2009 в 18:00

#

↵

↑

Добавил апдейт про это.

0

locust
29 декабря 2009 в 18:40

#

↵

↑

Задержка в несколько сотен миллисекунд? Вы с ума сошли?

Если у Вас с приемником такая «потрясающая» точность то не стоит заморачиваться о построении системы. РС-232 не может вносить такой задержки.

ИМХО в gpsd просто страхуются и говорят, что мол, AS IS.

+1

unicast
29 декабря 2009 в 18:49

#

↵

↑

Такая точность будет, если не использовать PPS. Тут дело не в RS-232, а в работе NMEA.

Берите приёмник с PPS и всё будет супер.

0

tangro
29 декабря 2009 в 19:03

#

↵

↑

Ну ладно, а с PPS какая будет точность?

+2

BarsMonster
29 декабря 2009 в 19:04

#

↵

↑

Наносекунды + точность интерфейса (RS-232)

0

locust
29 декабря 2009 в 21:10

#

↵

↑

вот это уже подходит под решение.

0

tangro
2 января 2010 в 02:55

#

↵

↑

Наносекунды +\- точность интерфейса RS-232. Т.е. если мы работаем в 115200 б\с (один из самых распространенных стандартов), то мы не можем принимать сигнал с погрешностью меньшей 1\115200 = около 0.01 милисекунды. Что в 1000 раз больше наносекунды.

0

BarsMonster
2 января 2010 в 09:11

#

↵

↑

Э нет ) Вы упускаете самую суть PPS :-)

Точно в момент начала новой секунды устанавливается служебный сигнал на COM-порте, и его можно прочитать мгновенно, если сможете :-)

–1

Nebonum
29 декабря 2009 в 20:29

#

Хм… Вы уверены, что при использовании GPS получается точное время? Выше пишут, что даже bluetooth вносит определенную задержку.

Атомные часы находятся на спутнике. Сколько времени нужно радиосигналу чтобы достигнуть земли? И даже эта цифра не будет постоянной, ведь разные спутники находятся на разном удалении от приемника.

+1

BarsMonster
29 декабря 2009 в 20:44

#

↵

↑

Ясен хрен задержки от распространения сигнала учитываются (т.к. на их основе и лежит принцип определения координат), время точное с точностью до наносекунд.

Про BlueTooth все согласны, тут речь идет о приемнике через железный COM-порт.

+2

locust
29 декабря 2009 в 21:21

#

↵

↑

Не знаю, как кто, но я уверен, что с использованием GPS можно узнать точное время. Прикладным доводом этого является то, что в оборудовании Oscilloquartz и Symmetricom (стратум-0, рубидий, цезий, редко водородный мазер) есть входы для подключения антен GPS. Тоесть эта дэвайсина может работать как на внутреннем источнике, так и на внешних, а еще лучше — усредняя и то и другое.

Для решения проблем с задержкой распространения используют 2 частоты а также сам алгоритм использует очень много эфемеридных (прогнозируемых) данных, что позволяет предугадывать задержку в реальном времени.

0

naum
30 декабря 2009 в 01:11

#

↵

↑

Извините, но я сомневаюсь, что стоит усреднять данные внутреннего источника (уровня перечисленных) и внешнего (gps), т.к. преимущество сомнительно и велика вероятность падения точности. Дублирование (резервное) не помешает точно. В остальном целиком согласен с вами.

0

ZloCm
29 декабря 2009 в 22:31

#

↵

↑

Именно для этого существуют специализированные приёмники, например от кампании Trimble, поглядеть можно здесь www.trimble.com/timing/ (как раз они и стоят на CDMA станциях), а не те, что в виде мышей и т.п. продают. Ещё вроде эти приёмники (но может и не все) отличаются от обычных поддержкой 2х частот GPS (обычные поддерживают одну).

0

scamp
29 декабря 2009 в 21:03

#

unicast, а можно адрес твоего сервера?

хочу посмотреть ntpq -p

0

unicast
30 декабря 2009 в 09:19

#

↵

↑

Мой сервер во внутренней сети одного государственного предприятия, именно за отсутствием интернетов возникла необходимость в собственном stratum-1.

И я там не работаю уже.

0

z123
30 декабря 2009 в 11:53

#

а ком-порт не будет узким местом в системе?

для передачи одного байта на скорости 115200 потребуется время порядка 0.1мс, в конечном счёте это выльется в какую-то разницу между точным временем и временем сервера. не ясно, может ли такой сервер считаться stratum-1…

0

unicast
30 декабря 2009 в 12:02

#

↵

↑

Уже тут обсуждаем.

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

Пометьте топик понятными вам метками, если хотите

Метки лучше разделять запятой. Например: общение, социальные сети, myspace.com, подростки, мердок

или закрыть

Популярное за сутки

Правим баг без исходных кодов

ExpvarMon — консольный мониторинг сервисов на Go

Многоуровневое меню для Arduino и не только

Об автоматическом дифференцировании, методе Ньютона и решении СЛАУ на Delphi. Часть 1

все лучшие

Лучшее на Geektimes

Вторая Мировая Война глазами Китая

Форма вселенной: возможностей много, но реальность одна

За 90% загрязнений воздуха ответственными оказались всего 25% автомобилей

SkyNet всё-таки существует, но терминаторов пока опасаться рано

Нью-Йорк — самый мусорный город на планете, а в Москве — одна из самых эффективных систем отопления

Раз плюнуть: обзор и результаты генетического теста Атлас и дайджест основных ДНК-тестов в России и мире

«Особое мнение»: студия Стивена Спилберга готовит продолжение фильма

Как учат водить беспилотный автомобиль

все публикации

Лучшее на Мегамозге

Книги и ресурсы о мотивации на рабочем месте

Китайская комната по-русски: “думать” по шаблону

все публикации

Вопросы по теме

Как установить время и дату на Raspberry PI автоматически при включении с NTP сервера?

Почему не правильно синхронизируется время?

Как синхронизировать время с NTP?

Откуда могут браться + 5 минут времени?

Как настроить ntp на freebsd для коммутаторов dlink?

Как в Ubuntu задать timezone с помощью отклонения от UTC через командною строку?

Как собрать проект open source в Qt?

Атака NTP reflection - amplification, как проверить сервер на уязвимость?

Есть ли рабочий конфиг NTP в Debian (NTP-сервер для локальных клиентов)?

Точность синхронизации времени в Windows

Насколько точны часы в вашем Android-устройстве?

Что обсуждают?

Правим баг без исходных кодов 12

Как перевести сайт целиком на постоянный HTTPS для всех 3

Средние ставки фрилансеров — итоги исследования Payoneer 33

Как мы придумывали конструктор для детской робототехники. #1 74

Фотоотчет с открытия Робостанции 25

Загрузка и хранение фотографий в Web приложениях 40

Компьютер маленького человечка 17

Работа глушилки GPS во время парада на красной площади 41

«Проблема дверного звонка» или когда вы думаете, что все знаете 21

Monitoring-as-a-service для инфраструктур на примере сервиса Anturis 6

все публикации

Компания дня

Фонд ReactOS

Последняя публикация:
Видео от пользователя: MacOS внутри ReactOS

128 подписчиков

Алгоритм поиска неисправности в драйвере LED лампы или Эркюль Пуаро отдыхает

Загрузочный сервер — как загрузочная флешка, только сервер и по сети

Плохо документированные особенности Linux

Brainstorage

PHP–разработчик

Системный администратор Linux (со знанием python)

Веб-разработчик (back-end)

JS/PHP программист

Ведущий бизнес-аналитик

Увлеченный программист для масштабируемого web-стартапа

Дизайнер интерфейсов

Гейм дизайнер

Фронтенд-разработчик

Веб-программист

все вакансии

Организовать IP-телефонию в маленьком офисе

Коучинг для повышения эффектиности пользования комп.техникой

Разработка Android приложения на Phonegap

Нужен райтер для написания текстов на общественно-политическую тематик

Продвижение в fb

Мониторинг Интернет-СМИ

Сбор информации в сети Интернет

Мониторинг ключевых слов на ТВ

Оптимизация CMS с помощью xml

Парсер google play market

все заказы

Войти

Регистрация

Разделы

Публикации

Хабы

Компании

Пользователи

Q&A

Песочница

Инфо

О сайте

Правила

Помощь

Соглашение

Услуги

Реклама

Спецпроекты

Тарифы

Контент

Семинары

Разное

Приложения

Тест-драйвы

Помощь стартапам

© TM

Служба поддержки

Мобильная версия