Suicide
14.08.2021, 00:35
Компания Facebook опубликовала (https://engineering.fb.com/2021/08/11/open-source/time-appliance/) наработки, связанные с созданием PCIe-платы, включающей реализацию миниатюрных атомных часов (https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%B5_%D1%87% D0%B0%D1%81%D1%8B) и GNSS-ресивера. Плата может применяться для организации работы обособленных серверов синхронизации точного времени. Спецификации, схемы, BOM, Gerber, PCB и CAD-файлы, необходимые для производства платы, опубликованы (https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card) на GitHub. Плата изначально спроектирована как модульное устройство, допускающее использование различных готовых чипов атомных часов и GNSS-модулей, таких как SA5X, mRO-50, SA.45s и u-blox RCB-F9T. Производство готовых плат на базе подготовленных спецификаций намерена начать (https://www.orolia.com/about-the-atomic-reference-time-card-art-card/) компания Orolia.
https://www.opennet.ru/opennews/pics_base/0_1628864548.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/timingcard.png)
Плата Time Card развивается как часть более глобального проекта Time Appliance (https://www.opencompute.org/projects/time-appliances-project-tap-incubation), нацеленного на предоставление компонентов для создания первичных (Time Master) серверов точного времени (Open Time Server (https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Open-Time-Server/)), которые могут быть развёрнуты в своей инфраструктуре и использоваться, например, для организации синхронизации времени в датацентрах. Использование обособленного сервера позволяет не зависеть от внешних сетевых сервисов синхронизации точного времени, а наличие встроенных атомных часов предоставляет высокий уровень автономности в случае сбоев получения данных от спутниковых систем (например, из-за погодных условий или атак).
Особенность проекта в том, что для построения первичного сервера точного времени можно использовать обычный сервер на базе архитектуры x86, включающий типовую сетевую карту и плату Time Card. В подобном сервере информация о точном времени принимается со спутников через GNSS, а атомные часы выступают в роли высокостабильного осцилятора, позволяющего поддерживать высокий уровень точности в случае сбоя получения сведений через GNSS. Возможное отклонение от точного времени в случае невозможности получения данных через GNSS в предложенной плате оценивается примерно в 300 наносекунд в сутки.
https://www.opennet.ru/opennews/pics_base/0_1628880345.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/overall.png)
Для Linux подготовлен (https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card/DRV) драйвер ocp_pt, который планируется включить (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=773bda96492153e11d21eb63ac814669b51fc701) в основной состав ядра Linux 5.15. В драйвере реализованы интерфейсы PTP POSIX (/dev/ptp2), GNSS через последовательный порт (/dev/ttyS7), атомные часы через последовательный порт (/dev/ttyS8) и два устройства i2c (/dev/i2c-*), при помощи которых может быть организован доступ к возможностям аппаратных часов (PHC) из пользовательского окружения. При запуске NTP-сервера (Network Time Protocol) предлагается использовать Chrony (https://github.com/mlichvar/chrony) и NTPd, а при запуске сервера PTP (Precision Time Protocol) - ptp4u (https://github.com/facebookincubator/ptp) или ptp4l (https://github.com/richardcochran/linuxptp) в сочетании со стеком phc2sys (https://github.com/richardcochran/linuxptp), обеспечивающим копирование значений времени из атомных часов в сетевую карту.
Согласование работы GNSS-ресивера и атомных часов может производиться как аппаратно, так и программно. Аппаратно функциональность согласующего модуля реализована на основе FPGA, а программный вариант работает на уровне прямого мониторинга состояния GNSS-ресивера и атомных часов из приложений, подобных ptp4l и chronyd.
https://www.opennet.ru/opennews/pics_base/0_1628879618.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/idea.png)
В качестве причины разработки открытой платы вместо использования имеющихся на рынке готовых решений называется проприетарный характер подобных продуктов, не позволяющий убедиться в корректности реализации, несоответствие предлагаемого программного обеспечения требованиям безопасности (в большинстве случаев поставляются устаревшие программы, а доставка исправлений уязвимостей может затянуться на месяцы или даже годы), а также ограниченные возможности мониторинга (SNMP) и настройки (предлагаются свои CLI или Web UI).
13.08.2021
https://www.opennet.ru/opennews/art.shtml?num=55624
https://www.opennet.ru/opennews/pics_base/0_1628864548.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/timingcard.png)
Плата Time Card развивается как часть более глобального проекта Time Appliance (https://www.opencompute.org/projects/time-appliances-project-tap-incubation), нацеленного на предоставление компонентов для создания первичных (Time Master) серверов точного времени (Open Time Server (https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Open-Time-Server/)), которые могут быть развёрнуты в своей инфраструктуре и использоваться, например, для организации синхронизации времени в датацентрах. Использование обособленного сервера позволяет не зависеть от внешних сетевых сервисов синхронизации точного времени, а наличие встроенных атомных часов предоставляет высокий уровень автономности в случае сбоев получения данных от спутниковых систем (например, из-за погодных условий или атак).
Особенность проекта в том, что для построения первичного сервера точного времени можно использовать обычный сервер на базе архитектуры x86, включающий типовую сетевую карту и плату Time Card. В подобном сервере информация о точном времени принимается со спутников через GNSS, а атомные часы выступают в роли высокостабильного осцилятора, позволяющего поддерживать высокий уровень точности в случае сбоя получения сведений через GNSS. Возможное отклонение от точного времени в случае невозможности получения данных через GNSS в предложенной плате оценивается примерно в 300 наносекунд в сутки.
https://www.opennet.ru/opennews/pics_base/0_1628880345.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/overall.png)
Для Linux подготовлен (https://github.com/opencomputeproject/Time-Appliance-Project/tree/master/Time-Card/DRV) драйвер ocp_pt, который планируется включить (https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=773bda96492153e11d21eb63ac814669b51fc701) в основной состав ядра Linux 5.15. В драйвере реализованы интерфейсы PTP POSIX (/dev/ptp2), GNSS через последовательный порт (/dev/ttyS7), атомные часы через последовательный порт (/dev/ttyS8) и два устройства i2c (/dev/i2c-*), при помощи которых может быть организован доступ к возможностям аппаратных часов (PHC) из пользовательского окружения. При запуске NTP-сервера (Network Time Protocol) предлагается использовать Chrony (https://github.com/mlichvar/chrony) и NTPd, а при запуске сервера PTP (Precision Time Protocol) - ptp4u (https://github.com/facebookincubator/ptp) или ptp4l (https://github.com/richardcochran/linuxptp) в сочетании со стеком phc2sys (https://github.com/richardcochran/linuxptp), обеспечивающим копирование значений времени из атомных часов в сетевую карту.
Согласование работы GNSS-ресивера и атомных часов может производиться как аппаратно, так и программно. Аппаратно функциональность согласующего модуля реализована на основе FPGA, а программный вариант работает на уровне прямого мониторинга состояния GNSS-ресивера и атомных часов из приложений, подобных ptp4l и chronyd.
https://www.opennet.ru/opennews/pics_base/0_1628879618.png (https://raw.githubusercontent.com/opencomputeproject/Time-Appliance-Project/master/Time-Card/images/idea.png)
В качестве причины разработки открытой платы вместо использования имеющихся на рынке готовых решений называется проприетарный характер подобных продуктов, не позволяющий убедиться в корректности реализации, несоответствие предлагаемого программного обеспечения требованиям безопасности (в большинстве случаев поставляются устаревшие программы, а доставка исправлений уязвимостей может затянуться на месяцы или даже годы), а также ограниченные возможности мониторинга (SNMP) и настройки (предлагаются свои CLI или Web UI).
13.08.2021
https://www.opennet.ru/opennews/art.shtml?num=55624