2 июля 2015 г. 12:41 | Новостной канал: Основной канал
 608
 

30 июня при синхронизации времени появилась лишняя секунда

 
 

C целью синхронизации с астрономическим временем Земли эталонные мировые атомные часы были сегодня приостановлены на одну секунду, что привело к появлению 61 секунды в одной из минут. В прошлый раз подобная синхронизация состоялась в 2012 году и привела к массовым сбоям в серверных системах, в которых была настроена синхронизация точного времени по протоколу NTP.

Из-за неготовности обработать появление лишней секунды некоторые системы зацикливались и начинали потреблять излишние ресурсы CPU. Фактически лишняя секунда была добавлена на атомных часах в 23:59:60 GMT. В разных системах используются разные методы для предотвращения сбоев в приложениях, связанных с появлением аномальной 61 секунды. Учитывая печальный опыт прошлого, современные дистрибутивы Linux, а также проекты FreeBSD и OpenBSD, своевременно подготовились к грядущему появлению лишней секунды. Тем не менее, в конце мая в ядре Linux выявлена недоработка, которая может привести к срабатыванию некоторых таймеров на секунду раньше намеченного срока.

Патч с исправлением данной проблемы не успел попасть в основной состав ядра. В реализации NTP из состава FreeBSD реализован способ, основанный на повторении одной секунды два раза, т.е. будет два раза выдано значение 23:59:59, вместо появления 23:59:60. Другим способом решения проблемы является сглаживание добавляемой секунды путём её разбиения на несколько циклов синхронизации времени, с прибавлением каждый раз по доле секунды, что приведёт к плавному размыванию секунды по большому отрезку времени. Так как большинство публичных NTP-серверов отдают лишнюю секунду как есть, без её размытия на серию интервалов, администраторам рекомендовалось предварительно протестировать поведение своих систем, чтобы не столкнуться с непредвиденным ночным сбоем.

Не раньше, чем за сутки до намеченного добавления лишней секунды нужно было выполнить команду "ntpq -c 'rv 0 leap'" - если в выводе будет указано leap_add_sec, то используемый NTP-сервер корректно поддерживает операцию добавления лишней секунды. 

Источник

Лаборатория Цифровой Форензики