Public Time’s Open Architecture Stratum One – Part Three: The Technical Overview

In our previous two articles, Public Time introduced our open architecture stratum one solution, and then explained the rationale for why we embarked on the project in the first place.

In this third entry in the series, we get into the technical decisions we made, and the decision points we encountered along the way to the current iteration.

Form Factor

Going with a standard 19 inch/482.6mm width, 1.75 inch/44.5mm high (1U) rackmount form factor was a no-brainer. We are going to install these servers in commercial datacenters and it’s easier and cheaper to buy equipment that fits in a standard datacenter equipment rack.

Server chassis

We looked at both Dell PowerEdge and HP Enterprise (HPE) rackmount servers.

Based on our board members’ collective positive personal experiences working with Dell servers, the competitive price point, and availability of spare parts, we chose the Dell PowerEdge R240 chassis.

The R240 is a single socket 1U rackmount server with 2x PCIe Gen 3.0 slots, with the ability to hold up to 64GB of memory, and has configurations with price points starting below 600 USD.

Server hardware configuration

  • CPU: as all modern NTP daemons are single-threaded, there is no advantage for a large number of CPU cores. We purchased the two-core/four-thread Intel Pentium G5500 at 3.80 GHz with 4MB of cache.
  • Memory: Dedicated NTP servers require very little memory. We stayed at the chassis minimum of a single 8GB 2666MT/s DDR4 ECC DIMM
  • Storage: NTP servers are very light on storage requirements, including capacity, latency, and IO operations per second. A pair of 1TB 7200 RPM SATA drives in a RAID-1 configuration is entirely sufficient for our needs
  • Network card: NTP requires very little bandwidth (roughly 200 bytes per request/response pair), so the onboard 1Gbps NIC is sufficient
  • Power cord: this is very dependent upon what country the server is being installed in, so it varies wildly

PCI Express GPS Receiver

Public Time settled on the Meinberg GPS180PEX PCI Express card as our GPS receiver (purchased through our partners at JTime!, the exclusive distributor for Meinberg in the US).

  • So far, the Meinberg solution has been a perfect match for our needs, primarily due to the following factors:
    • Competitive price point
    • Well-known, highly-respected brand (Meinberg has a very strong reputation)
    • Three year warranty standard, extendable to ten years
    • Extension can be purchased at any point, during ordering or later down the road
    • Excellent technical support, including lifetime software support
    • Manufacturer-provided and -supported driver support for Linux, including out-of-the-box support for the NTP reference implementation (which we run)
    • Meinberg-produced and -supported active (amplified) GPS antenna included
    • Optional Surge voltage suppressor
    • Excellent documentation, particularly the user manual
    • Supports long runs from card to antenna
      • Can do 300 meters with RG58 and 700 meters with RG213 without any additional amplification needed

Operating System

Public Time primarily runs Ubuntu Long Term Support (LTS) on our servers, so we are currently installing Ubuntu 18.04 (“Bionic Beaver”).

NTP Server Software

Public Time currently runs the Network Time Protocol Reference Implementation (more commonly known as “ntpd”) from the Network Time Foundation on our servers.

We have started internal testing with NTP server software from other vendors, including the NTPsec project, but these efforts aren’t yet mature enough to roll out to our production servers.

UTC Synchronization

We configured NTPd to synchronize to UTC using both the shared memory (SHM) driver and the Pulse-Per-Second (“PPS”) clock discipline using pin one of the serial output of the Meinberg GPS receiver.

The shared memory driver allows the server to synchronize within about ~70 microseconds (0.000070 seconds) of Coordinated Universal Time (UTC).

Supplementing the shared memory driver with the PPS clock discipline allows the server to get within ~10 microseconds (0.000010 seconds) of UTC.


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *