29.10.2011 - orbk.net

Протокол ntp и синхронизация времени в Linux.

Поділитися:

 Время в Linux

В Linux, как и в любой другой ОС, существует два типа часов. Первые — аппаратные, иногда называемые Real Time Clock, сокращенно RTC, они же часы BIOS. Обычно эти часы связаны с колеблющимся кварцевым кристаллом, имеющим точность хода до нескольких секунд в день. Точность хода кварцевых часов зависит от различных параметров, например, от изменений окружающей температуры. Вторые часы — внутренние программные часы, которые идут непрерывно, в том числе и при перерывах в работе системы. Они подвержены отклонениям, связанным с большой системной нагрузкой и задержкой прерываний. Операционная система обычно считывает показания аппаратных часов при загрузке, а потом использует уже системные часы.

Через некоторое время между аппаратными и программными часами может быть разница в несколько секунд. Какие же часы содержат правильное время? Ни те, ни другие, пока мы не настроим синхронизацию времени Linux.

Дата и время операционной системы устанавливается при загрузке на основании значения аппаратных часов, а так же настроек часового пояса. Настройки часового пояса берутся из файла /etc/localtime. Данный файл — есть ссылка (но чаще — копия) одного из файлов в структуре каталога /usr/share/zoneinfo/.

Аппаратные часы Linux могут хранить время в формате UTC (аналог GMT), либо текущее территориальное время. Если на компьютере установлено несколько ОС и одна из них — Windows, то необходимо использовать текущее время, т.к. Windows берет время из BIOS/CMOS и считает его локальным. Если используются только  операционные системы UNIX семейства, то желательно хранить время в BIOS в UTC формате.

После загрузки часы операционной системы и BIOS полностью независимы. Ядро системы раз в 11 секунд синхронизацию времени Linux, сравнивая  системные часы с аппаратными.

NTP Server Linux

Существует масса реализаций протокола ntp для синхронизации времени Linux. Наиболее известными являются Xntpd (NTP версия 3), ntpd (NTP версия 4), Crony и ClockSpeed. В нашем примере мы будем использовать ntp-сервер ntpd.

Демон ntpd является одновременно и сервером времени и клиентом, в зависимости от настроек конфигурационного файла /etc/ntpd.conf (иногда /etc/ntp.conf), демон может и «принимать» время с уделенных серверов и «раздавать» другим хостам время.

Общая схема синхронизации времени Linux в локальной сети следующая: необходимо иметь 1 или 2 сервера, имеющие доступ в глобальную сеть, которые будут получать время из интернет. Все компьютеры локальной сети синхронизировать с указанными серверами, получающими время из интернет.

Схема синхронизации времени Linux при повышенных требованиях к точности времени: необходимо иметь сервер точного времени непосредственно в своей локальной сети.

Установка ntpd

Собственно, установка демона сводится к установке следующих пакетов: ntp (пакет, включающий самого демона), ntpdate (утилита для ручной синхронизации времени — устарела), ntp-doc (документация по пакету), в некоторых дистрибутивах нужно будет установить так же ntp-utils (утилиты для диагностики), в некоторых они включены в пакет ntp.

 

Рекомендую:

Настройка синхронизации времени в сети в Debian Li... Проблема синхронизации времени в сети Всё ведь было хорошо, всё отлично работало - и тут вы замечаете, что часы на компьютерах вашей сети показывают ...

Інтернет Linux / UTC / аппаратные / непрерывно / программные часы / Протокол ntp / синхронизация времени / территориальное время / Установка ntpd /