Taxitaxitaxi.ru

Эволюшн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Проблемы синхронизации времени для kubernetes узлов

Проблемы синхронизации времени для kubernetes узлов

Я получил часы времени задержки для некоторых узлов кластера. Нужно ли мне менять службу timesyncd или что-то еще, чтобы избежать проблем с синхронизацией?

1 ответ

  • kubernetes ошибка синхронизации pod — как отладить

Я часто получаю ошибки о том, что стручки не синхронизируются / ImagePullBackOff ошибки в моем кластере Kubernetes на движке Google Kubernetes. Но я не уверен, как отладить эту проблему, так как не могу установить первопричину. В приборной панели Google я вижу, что ReplicaSet имеет предупреждение.

У меня есть микро-сервис, масштабируемый по нескольким стручкам в движке Google Cloud Kubernetes. Находясь в multi-cloud-shop, мы имеем наш logging/monitoring/telemetry в Azure Application Insights. Наши данные должны храниться внутри Европы, поэтому наш кластер GCP Kubernetes создан с Master.

Синхронизация времени очень важна, потому что, если на узле остаться позади, это может привести к «split brain».

Похожие вопросы:

У меня есть простой кластер RabbitMQ с 2 физическими идентичными узлами linux: (CentOS, RabbitMQ 3.1.5, Erlang R15B, 2GB Ram, CPU 1xCore). Включено зеркальное отображение и синхронизация узлов. У.

Мы пытаемся запустить Elasticsearch поверх кластера kubernetes / flannel / coreos. Поскольку flannel не поддерживает многоадресную рассылку, мы не можем использовать Zen multicast discovery, чтобы.

Я новичок в Go году. Я хочу получить статистику хранения узлов и кластеров в kubernetes, используя код Go. Как я могу получить бесплатное и используемое хранилище Kubernetes узлов и кластера.

Я часто получаю ошибки о том, что стручки не синхронизируются / ImagePullBackOff ошибки в моем кластере Kubernetes на движке Google Kubernetes. Но я не уверен, как отладить эту проблему, так как не.

У меня есть микро-сервис, масштабируемый по нескольким стручкам в движке Google Cloud Kubernetes. Находясь в multi-cloud-shop, мы имеем наш logging/monitoring/telemetry в Azure Application Insights.

Я пытаюсь изменить свой сценарий развертывания с docker на Kubernetes. Теперь я исследовал архитектуру Kubernetes — кластера, узлов, модулей, сервисов, реплик Sets/controller, Kubernetes-cni.

У меня есть кластер Kubernetes на платформе IBM Cloud (не важно, вопрос связан с самим Kubernetes). Если бы я хотел реплицировать данные в разных центрах обработки данных в разных регионах , то.

Предисловие Когда вы создаете кластер Kubernetes на AKS, вы указываете тип VMs, который хотите использовать для своих узлов ( —node-vm-size ). я читал, что вы не можете изменить это после создания.

В моем кластере Kubernetes работают два пула узлов (называемых "A" и "B")), работающих в моем кластере Kubernetes. Мой deployment предпочитает (используя функцию.

У меня есть некоторая путаница в обновлениях и исправлениях пула узлов AKS. Не могли бы вы прояснить этот вопрос? У меня есть один пул узлов AKS, который имеет 4 узла, поэтому теперь я хочу обновить.

ShIoTiny: часы без пружины или реальное время и как с ним работать

Продолжаем цикл статей о ShIoTiny — визуально программируемом контроллере на базе чипа ESP8266.

В этот статье рассказано о часах реального времени в контроллере ShIoTiny, синхронизации времени и использовании узлов работы с часами.

Предыдущие статьи серии.

Вступление

Сегодня мы поговорим о времени. Не о времени, в том смысле, в котором о нем веками спорят философы и конца-края этому спору не видно. А о том времени, которое мы видим на часах и согласно которому идем на работу, в школу или спешим на свидание.

Вся штука в том, что энергонезависимые часы реального времени в чипе ESP8266 и контроллере ShIoTiny — отсутствуют. Эта родовая травма контроллера ShIoTiny — целиком и полностью моя вина. Но, что сделано — то сделано.

Как только прошивка увидела свет, возмущенная моим отношением к реальному времени общественность начала тыкать меня носом в этот недостаток.

Так как ошибки надо исправлять, и, на этот раз хотя бы не кровью, то я пошел навстречу все возрастающему числу пользователей моей прошивки и сделал то что смог. А именно — я добавил в прошивку контроллера ShIoTiny узлы, позволяющие более-менее удобно с этим работать с реальным временем.

О часах ShIoTiny

Как уже было сказано, «часов с батарейкой» в ShIoTiny нет. Но в то же время, отсчет секунд, начиная с 1 января 1970 года реализован.

Это то самое время, которое называется UNIX-time, хранится в переменных типа time_t языков С/C++ и которое в 32-битных системах должно закончится 19 января 2038 года.

Но, не бойтесь. Я думаю, что к 2038 году все успеют сделать тип time_t 64-битным и на ближайшие примерно 292 миллиарда лет проблема будет решена. Ну а там еще что-нибудь придумаем.

Заметим, что время в формате time_t называется иногда (и у меня в статье тоже) — timestamp или, по-русски временная метка.

Но вернемся к нашему контроллеру. Итак, часы в нем есть, но эти часы сбрасываются в 0 после отключения питания. Отсюда следует тривиальный вывод, что главной проблемой отсчета времени в контроллере ShIoTiny является необходимость синхронизации часов контролера при включении питания. Остальное — чисто технические проблемы

Читайте так же:
Регулировка люфта рулевой колонки велосипеда

Синхронизация времени

Давным давно устоявшийся способ синхронизации времени в интернете — это NTP-сервера. И первой идеей было сделать узел, который синхронизирует время с заданным NTP-сервером.

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

Ведь не факт, что пользователь захочет вытащить контролер с прошивкой ShIoTiny в интернет. И время для синхронизации может присылаться не только с NTP-сервера но и по UDP-multicast или при известном качестве связи — по MQTT.

Поэтому было принято судьбоносное решение — разделить узлы получения времени с NTP-сервера и установки системного времени.

Всего для синхронизации времени было разработано два узла: узел получения времени с NTP-сервера NTP Time

и узел установки системных часов Set Time

Узел получения времени с NTP-сервера в качестве параметров получает имя или IP-адрес NTP-сервера и, через запятую, период запроса времени с NTP-сервера в минутах. По умолчанию время запрашивается с NTP-сервера каждые 60 минут или 1 час. На выходе этот узел выставляет 0 до тех пор, пока время не синхронизировано или временную метку — результат последней синхронизации с сервером.

Узел установки системных часов получает на вход временную метку и и устанавливает системные часы в соответствии с этой меткой.

Простейшая схема синхронизации системных часов с NTP-сервером приведена на рисунке.

Период синхронизации не задан и по умолчанию равен 60 минут. На рисунке показана временная метка.

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

Если вам нужна экзотическая схема синхронизации — то можно использовать UDP-multicast или MQTT. Схемы при этом полностью аналогичны.

Для синхронизации по UDP-multicast, примерно такая, как на рисунке.

А для синхронизации по MQTT (не советую, конечно, но на крайний случай) — такая.

Надеюсь, теперь все понятно с синхронизацией времени системных часов контролера ShIoTIny. Перейдем к узлам получения и обработки времени.

Который час?

Вопрос простой, но ответить на него, порой, не просто. Ведь время в каждой точке Земли — разное. Наша необъятная Родина включает от Калининграда до Камчатки аж 11 часовых поясов.

NTP-сервер, в зависимости от настроек, может возвращать временную метку, привязанную к различным часовым поясам. Как правило, эта временная метка привязана к UTC — всемирному времени.

Но обычно нам нужно местное время того региона где работает наш контроллер. Как тут быть?

А очень просто — для получения временной метки системных часов контролера ShIoTIny был разработан узел Get Time, в котором можно задать часовой пояс в виде смещения времени от -12 часов до +12 часов относительно системных часов контроллера.

Предположим, мы получаем время с сервера pool.ntp.org и синхронизируем системные часы, как в нашем примере ранее. Этот сервер возвращает всемирное время. Нам нужно местное, например Томское, как у меня. Я знаю, что Томск находится в часовом поясе UTC+7. Значит, зададим в узле получение времени смещение +7 или просто 7. Как на рисунке ниже.

А если бы мы жили в Канадской провинции Альберта — то смещение было бы -7 часов. Главное запомните — часовой пояс задается в узле получения времени в часах. И задается он в виде смещения относительно времени системных часов. На выходе узла получения времени выставляется временная метка. Узлов получения времени на схеме может быть несколько.

Сверим часы

Машине очень удобно работать с временем в формате временных меток time_t. Ведь это просто целое число, которое показывает число секунд относительно начальной точки — 1 января 1970 года. В этом формате можно легко находить расстояние между двумя временными точками, отсчитывать периоды и так далее. Это всего лишь сложение и вычитание целых чисел.

Но человек — не машина. Ему гораздо удобнее привычное представление времени в виде года, месяца, числа, часов, минут и секунд. Так уж мы, люди, устроены.

Поэтому были введены узлы перевода временной метки в привычные человеку единицы изменения времени и наоборот — синтеза временной метки из понятных человеку единиц изменения времени. Называются эти узлы, соответственно, Split Time и Synth Time.

Как все это работает — понятно из рисунка ниже.

Отмечу, что узлы Split Time и Synth Time месяцы (month) и дни недели (wday) отсчитывают с нуля. Для месяцев: 0-январь, 11-декабрь. Для дней недели 0-воскресенье, 6-суббота.
Остальные выходы: день месяца (day), year (год), hour (час), min (минута), sec (секунда) — отсчитываются в привычном виде. Часы, минуты, секунды — от 0 до 59. День месяца — в зависимости от месяца от первого числа до 30го или 31го и, для февраля, до 28 или 29го.
Ну а год — он и есть год. 2019й сейчас.
Надеюсь, все понятно.

Читайте так же:
Щуп для регулировки клапанов змз 402

Пример системы

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

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

Попробуем это реализовать.

Все кусочки схемы нам знакомы. Время синхронизируется с сервера NTP. Пока оно не синхронизировано — узел NTP Time возвращает 0 и реле включения вентилятора — отключено. За это отвечает верхний по схеме элемент И.

Как только время синхронизировалось, включение-отключение вентилятора определяется текущим временем и уровнем влажности. Как только уровень влажности превысит 70% и время будет от 23:00 до 06:00 — вентилятор включится и не мешая никому проветрит помещение.

Разумеется, константы времени и влажности в реальном проекте лучше заменить на параметры, сохраняемые во FLASH и устанавливаемые, например по MQTT. Да и текущее состояние системы — уровень влажности, текущее, время, состояние вентилятора — тоже не повредит опубликовать в сети, чтобы контролировать систему со смартфона. Но это уже я оставляю простор для вашей фантазии.

Заключение

Вот мы и познакомили поближе наш контроллер с реальным временем.

Хочу выразить благодарность всем, кто присылал мне письма с конструктивной критикой и советами по модернизации программного обеспечения. Спасибо, ребята!

Как обычно — конструктивная критика приветствуется. Кроме этого приветствуются замечания и предложения.

Протокол синхронизации времени в сети стандарта IEEE 1588v2

В эпоху Великих географических открытий Британская Империя совершила резкий прорыв в мореходстве, и всё это благодаря нехитрому изобретению – морскому хронометру – устройству, способному точно измерять время даже в морских условиях. Путём настройки хронометра в соответствии со временем портового города Гринвича и сравниванием показателей устройства с положением солнца на небе, британские моряки определяли время своего плавания с высокой точностью. Хронометр для них был не чем иным, как уникальным открытием: большим шагом вперёд, который позволил британцам обойти всех своих современников. И пусть с тех пор прошло много времени, но и сегодня такой хронометр играет важную роль для всей планеты, ведь благодаря ему был установлен мировой стандарт времени по Гринвичу (GMT).

Возможность точно измерять время – большое преимущество при работе с промышленными сетями. Это особенно актуально в работе на энергетических станциях, где требуются сверхточные показания времени для управления, синхронизации и настройки сетевого оборудования. Высокий уровень точности в измерениях позволяет использовать резервы промышленных сетей, при помощи которых значительно повышается эффективность работы, стабильность, безопасность и возможность подстраивать систему под требования конечного пользователя.

Мы рассмотрим процесс синхронизации промышленных сетей, необходимый для работы с современными системами, в основном, на энергетических подстанциях.
Также будет рассмотрена система работы с технологиями измерения времени, NTP, GPS и протокол IEEE 1588 v2 для получения сверхточных данных, при помощи которого можно собрать полную информацию о работе всей сети.

История технологий синхронизации по времени.

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

Организация Inter-range Instrumentation Group (IRIG) утвердила стандарт для работы в сетях с последовательной коммутацией устройств. Технологии кодировки времени, разработанные IRIG в 1956г, были основой для работы систем прошлого поколения. В настоящее время стандарт IRIGB 205-87 является новейшим вариантом обновления.

Сетевой Протокол Времени (NTP): NTP – это протокол времени для данных сети, впервые появившийся в 1985г. Работа протокола NTP строится на иерархии уровней, при помощи которых поступает информация об общем для всей сети времени на данный момент. Иерархия NTP по своей сути представлена древом, что позволяет избежать повтора циклов в системе.

NTP делит сеть на разные уровни
(источник: B.D. Esham для Wikimedia Commons)

Система Глобального Позиционирования (GPS): спутники GPS являются сверхточными атомными часовыми механизмами, расположенными на орбите нашей планеты. Их данные по времени способны передаваться со скоростью света на приёмники, расположенные на земле. Эти данные также корректируются по принципам относительности, что позволяет приёмнику получить сверхточные данные о текущем времени.

Возможные неполадки при синхронизации по времени
Множество ныне существующих систем синхронизации по времени или несовершенны, или слишком дороги.

Промышленные системы, такие как автоматизированные сети подстанции, основаны на точных данных синхронизации, что позволяет управлять процессом работы различных подсистем и устройств, входящих в них. Однако многие технологии, использующиеся в этой среде, не соответствуют требованиям, предъявляемым к передаче данных и контролю таких систем.

Читайте так же:
Регулировка насоса 313 3 56 50 04

Точность: Для безупречной работы промышленных сетей важна каждая наносекунда, но большинство используемых технологий попросту не могут обеспечить работу систем на таком уровне. Например, автоматизированная сеть подстанции должна работать на наносекундном уровне с данными, чтобы лучше поддерживать работу особо важных приложений (запись ошибок, удалённое наблюдение, удалённое управление). Стандарты IRIGB и NTP не позволяют работать системе на уровне наносекундной точности. Даже при стандартных условиях работы погрешность стандарта NTP составляет сотни микросекунд.

Стоимость: GPS сеть обеспечивает очень высокую точность работы с информацией благодаря атомным часам, но чтобы такая же точность соблюдалась в работе всей системы, каждый её уровень должен работать с данными отдельных GPS-приёмников. Это подразумевает очень большие денежные вложения, так что такое решение нельзя назвать рациональным. Работа с данными GPS была бы идеальным вариантом, если бы удалось сократить количество требуемых GPS-приёмников на каждый узел сети, или более эффективно использовать изначальное малое количество таких устройств, которые могли бы обеспечивать работу со сверхточными данными GPS всей системы.

Протокол времени для промышленных сетей.

Протокол IEEE 1588v2 был специально разработан для того, чтобы промышленные системы могли работать с высочайшей точностью и не требовать дополнительных денежных затрат.

Технологии NTP, GPS, и IRIGB не соответствуют требованиям, предъявляемым к полноценной работе на подстанциях. Протокол точного времени (РТР) IEEE 1588v2 был специально разработан для применения в области промышленных сетей и систем управления. В сети, работающей согласно стандарту IEEE 1588v2, главные часы устанавливают время для всей остальной системы подстанции. Ethernet-коммутатор работает как определяющее время устройство, а объединители, устройства защиты, и др., как стационарные часы. Все устройства работают по принципу «master-slave», где вверху схемы расположено устройство, выполняющее функцию главных часов. На рисунке ниже продемонстрирован обмен пакета данными РТР между master- и slave- устройствами, и настройка стационарных часов, при помощи которой синхронизируется вся сеть. Связь с GPS необходима только главным часам, таким образом, все данные будут точно разосланы по остальным устройствам сети.

Чтобы работать с протоколом IEEE 1588v2, системе нужен лишь один приёмник GPS. Это обеспечит точную передачу данных всем устройствам в сети.

Ethernet коммутатор с поддержкой протокола IEEE 1588v2 обеспечивает точную передачу данных (до 1 микросекунды) и может быть использован в качестве главных часов. Чтобы передача данных получилась максимально точной, остальные устройства сети также должны поддерживать протокол IEEE 1588v2. В сети промышленной автоматизации компьютеры, поддерживающие протокол IEEE 1588v2, выполняют функцию стационарных часов, которые получают синхронизированные по времени данные от коммутатора Ethernet.

Для полной синхронизации все устройства сети должны поддерживать протокол IEEE 1588v2, включая встраиваемые компьютеры.

Когда все устройства сети поддерживают протокол IEEE 1588v2, система может передавать данные на наносекундном уровне, что обеспечивает точную синхронизацию. Возможность работы на таком уровне особенно подходит для использования оборудования на энергетических станциях, поэтому стандарт IEEE 1588v2 и является частью стандарта IEC 61850-2, отвечающего требованиям сетей промышленной энергетики. Международная Электротехническая Комиссия (IEC) включила протокол IEEE 1588v2 в стандарт, т.к. точная синхронизация по времени в сетях промышленной энергетики влияет качество исполнения следующих задач:

  • Предупреждение отключения подачи энергии — cистема позволяет определить ряд проблем на начальной стадии и места их возникновения в сети в режиме реального времени.
  • Детальный учёт неисправностей и регистрации — gозволяет производить точный анализ, благодаря регистрации событий на наносекундном уровне.
  • Более эффективная работа сети — отслеживание графика работы и состояния оборудования.
    «Вопрос-ответ». Работа с виртуальным графиком времени эксплуатации, генераторами и управлением питанием.

Стандарт IEEE 1588v2 не только помогает сэкономить средства на организации работы сети, но также обеспечивает высокую точность передачи данных на наносекундном уровне. Это позволяет подстанциям и другим системам энергетических сетей повысить планку конкурентоспособности и выглядеть на голову выше аналогичных организаций, не использующих в своей работе устройства, стандартизированные согласно IEEE 1588v2. Ведь система «умной сети» позволяет синхронизированным подстанциям быть намного производительнее, экономичнее, легче в управлении и надёжнее. Все эти преимущества позволяют организациям повысить рентабельность производства и максимально снизить вред, причиняемый окружающей среде.

Преимущества устройств МОХА в синхронизации работы подстанций.

Fast Ethernet коммутаторы МОХА модели PT-7728-PTP IEC 61850-3 поддерживают протокол PTP стандарта IEEE 1588v2, чем гарантируют точную синхронизацию по времени сети подстанции и её устройств.

  • до 14 портов 100BaseFX (Multi-mode, разъём ST) или 100BaseTX порты и 1 BNC коннектор. Поддержка IEEE1588 v1 и v2, маркировка времени на каждый порт и импульсные выходы (pps) на порт BNC.
  • 1- и 2-шаговые операции для главных часов с точностью до 1 микросекунды в режиме «End to End»
  • 2-шаговые операции для главных часов с точностью до 1 микросекунды в режиме «Peer to Peer»
  • Синхронизация часов по сети с наносекундной точностью
  • Синхронизация часов позволяет работать с основными и второстепенными сетями подстанции
  • Низкая стоимость сетей за счёт многоцелевого использования функций (Ethernet)
  • Быстрая синхронизация при возникновении изменений в сети
  • Простота установки и управления
Читайте так же:
Как отрегулировать карбюратор чтобы расход топлива был меньше

Для полноценной работы в сети МОХА предлагает встраиваемые компьютеры серии DA-683/DA-685 с поддержкой стандарта IEEE 1588v2.

Характеристика компьютеров:

  • Низкий уровень потребления энергии до 40 Ватт для удобства работы в промышленной среде
  • Промышленное исполнение «всё в одном»: в устройствах нет вентиляторов и внешних кабелей, что обеспечивает крайне надёжную производительность.
  • Сертификат IEC 61850-3 позволяет устройствам эксплуатироваться на энергетических станциях.
  • Модульное исполнение с двумя независимыми слотами для снижения затрат на будущую модернизацию системы (8-портовый модуль RS-232/422/485, 8-портовый модуль RS-422/485, 4-портовый модуль 10/100 Mbps LAN, 8-портовый модуль 10/100 Mbps или универсальный модуль PCI расширения)
  • Удобная для пользователя конфигурация протокола PTP IEEE 1588v2 на системе Linux для простой и лёгкой работы, что позволяет сэкономить деньги и время на установку и настройку

Настройте протокол PTP IEEE 1588v2 для работы с компьютером DA-683 всего за несколько минут при помощи помощника автоматической установки

Чем отличается протокол синхронизации времени NTP от SNTP?

Чем отличается протокол синхронизации времени NTP от SNTP

Сложно представить современный мир без точного времени. Во многих сферах жизни нужно иметь очень точные часы, при этом точность часто должна быть гораздо выше точности часов, применяющихся людьми в обычной жизни. Например, требования к точности часов авиационных диспетчерских, комплексов, управляющих космическими аппаратами, или военных систем находятся на высочайшем уровне. Также часы с высокой точностью необходимы и в системах с более простыми функциями – в системах биллинга и тарификации сотовых операторов и интернет-провайдеров, в системах банковских транзакций, в биржевых системах, в производственных и научных комплексах. В локальных сетях протокол аутентификации пользователей Kerberos также использует сравнение времени контроллера домена с часами пользовательских рабочих станций. В компьютерных сетях синхронизация обычно выполняется с серверами точного времени при помощи протокола NTP или его «облегчённой» разновидности – SNTP. В этой статье мы рассмотрим особенности, отличия и примеры применения этих протоколов.

NTP (англ. Network Time Protocol – протокол сетевого времени) – сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной пропускной способностью. Обеспечивает высокую точность синхронизации времени благодаря специальному алгоритму, который позволяет выбирать наиболее точные источники для оценки точного времени. Этот алгоритм позволяет сводить к минимуму влияние данных от заведомо некорректно настроенных NTP-серверов на общую систему. Протокол NTP обеспечивает механизмы синхронизации с точностью до наносекунд, и содержит средства для определения характеристик и оценки ошибок локальных часов и временного сервера, который осуществляет синхронизацию. Протокол NTP использует иерархическую систему уровней, или стратумов. Сервер NTP имеет наиболее высокий уровень (стратум 1), если он получает данные непосредственно от источника точного времени. Сервера, синхронизирующие свои часы с сервером 1-го стратума, находятся на уровне ниже (стратум 2), и т. д.

SNTP (англ. Simple Network Time Protocol – простой протокол сетевого времени) – протокол синхронизации времени по компьютерной сети. Представляет собой упрощённую реализацию протокола NTP, в нём отсутствует сложность алгоритма NTP. SNTP используется для узлов сети, которым не требуется полный набор функций NTP. Общепринятой практикой является синхронизация часов нескольких узлов локальной сети с другими узлами NTP по Интернет и использование этих узлов для временной синхронизации услуг, предоставляемых другим клиентам по локальной сети. В таком варианте использования не требуется высокой точности временной синхронизации. Протокол SNTP обеспечивает механизмы синхронизации с точностью от 1 до 50 мс

Пример использования протокола NTP: банк N предоставляет своим клиентам клиент-серверное приложение для биржевой торговли. Сервера, которые обрабатывают информацию о биржевых котировках, должны иметь часы с высокой точностью синхронизации со шкалой всемирного времени. В таком случае, каждый сервер биржевой торговли банка N синхронизируется с самым точным из серверов точного времени («стратум 1»), который получает данные непосредственно от источника точного времени. Самый точный сервер выбирается по алгоритму, встроенному в протокол NTP. Примерная архитектура такого решения отражена на схеме ниже:

NTP сервер биржевой торговли банка N синхронизируется с самым точным из серверов точного времени

Классический пример использования SNTP – синхронизация времени внутри домена. Контроллер домена получает время из глобальной сети Интернет от общедоступных серверов стратума 1 или стратума 2. Остальные клиенты домена синхронизируют свои часы со временем на контроллере домена. Примерная архитектура отображена на схеме:

SNTP - синхронизация времени внутри домена

Устройства NetPing поддерживают синхронизацию встроенных часов по протоколу NTP (SNTP) с локальными или публичными серверами точного времени. Подробнее можно прочитать в статьях нашего блога : «Пример настройки локального NTP сервера для работы с устройствами NetPing» и «Какой NTP сервер указать в настройках устройства NetPing?».

Хронометризация событий в беспроводных сенсорных сетях

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

Читайте так же:
Как отрегулировать педаль сцепления авенсис

В докладе приводится описание базовой техники, применяемой в существующих схемах синхронизации времени; описываются модели поведения локальных часов, а также взаимодействия устройств сети; проводится классификация задач синхронизации; дан обзор существующих подходов к синхронизации времени в беспроводных сенсорных сетях.

Введение

Беспроводные сенсорные сети состоят из множества узлов, которые собирают данные о физическом мире, обрабатывают и передают информацию посредством радиосвязи.

Сенсорные сети используются для регистрации событий какого-либо параметрического объекта, где часто возникает задача фиксировать время событий контролируемого пространства. Высокая точность локальных часов также необходима для обеспечения взаимодействия узлов сети, которые в целях экономии энергии большую часть времени находятся в спящем режиме и на связь выходят только периодически.

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

  • коммуникационные, энергетические и вычислительные ресурсы в сенсорных сетях,
  • масштабируемость сенсорных сетей,
  • инфраструктура синхронизации в сенсорных сетях,
  • конфигурирование узлов сенсорной сети,
  • источники погрешности синхронизации.

Описание модели системы

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

Аппаратные часы задают локальную временную шкалу узла (моделируют физическое время) и, обычно, состоят из счетчика (локальные часы) и задающего генератора, который генерирует временные отчеты — такты, и модифицирует счетчик на конструктивно заданное приращение ?.

Определим показания счетчика в момент физического времени t как (t). Требуется, чтобы (t) была кусочно-непрерывной, строго монотонной возрастающей функцией (t), t R[0,?). Счетчик увеличивается генератором тактов с частотой ?. Частота ? в момент времени t определяется как первая производная (t) по t:

У идеальных часов частота равна 1 в любой момент времени

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

Модель с постоянной рабочей частотой. Полагаем, что частота постоянна

Это допустимо, если требуемая точность синхронизации мала по отношению к флуктуациям частоты.

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

соответствующее ограничение обозначим ?max:

Очевидно следующее ограничение: ?i(t)>-1 . Это означает, что часы не могут остановиться: ?i(t)= -1; или идти назад: ?i(t) s .

Агрегация ошибок синхронизации. В некоторый момент физического времени t?, лежащего на интервале жизненного цикла синхронизации, каждый узел Ni, из множества синхронизирующихся узлов, имеет синхронизованное время

Где — программные часы, построенные в результате выполнения циклов синхронизации.

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

Некоторые авторы (например, [9]) используют стандартную девиацию между всеми , как меру мгновенной точности в момент времени t?.

В случае внешней синхронизации, мгновенная точность определяется как максимальная ошибка синхронизации

Такую оценку иногда называют погрешностью. Помимо этого, точность может быть определена, как средняя ошибка синхронизации в множестве синхронизирующихся узлов или как максимальная ошибка синхронизации между 90% узлов в множестве синхронизирующихся узлов с наименьшей ошибкой синхронизации.

Стабильное состояние и конвергенция времени. Мгновенная точность ?(t?) очевидно меняется в течение жизненного цикла синхронизации. Конечная метрика точности ? s может быть уточнена путем взятия максимума мгновенной точности ?(t?) на интервале жизненного цикла. Так же может быть использовано среднее значение ?(t?).

Очевидно, что точность ? s улучшается пропорционально «возрасту» процесса синхронизации, и, в некоторой точке, уточнение заканчивается. Обычно, точность ? s оценивается после этой точки, поэтому жизненный цикл синхронизации начинается после окончания процесса синхронизации и точность ? s описывает стабильное состояние.

Некоторые авторы оценивают конвергенцию времени — длину интервала от начала процесса синхронизации до момента времени, когда точность ? s перестает улучшаться или достигает заданного значения. Если определен жизненный цикл, конвергенция времени показывает, когда должен быть запущен процесс синхронизации, так как заданная точность ? s посчитана до начала жизненного цикла и поддерживается до его конца.

Заключение

Задача синхронизации времени в распределенных системах не нова. Было предложено и применено большое число алгоритмов для корректировки часов устройств сети. Тем не менее, некоторые принципы построения сенсорных сетей исключают возможность применения существующих методов синхронизации.

Доклад посвящен исследованиям существующих подходов к синхронизации времени в беспроводных сенсорных сетях. В работе описаны и проанализированы модели поведения локальных часов, а также взаимодействия устройств сети. Проведена классификация задач синхронизации.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector