Tripleo PTP (Precision Time Protocol) support

This spec introduces support for a time synchronization
method called PTP (defined in the IEEE 1588-2008) which
provides better time accuracy than NTP in general. With
hardware timestamping support on the host, PTP can
achieve clock accuracy in the sub-microsecond range,
making it suitable for measurement and control systems.

Change-Id: I3e5cc2e854eb8e0374e36640816dcdb5fc8a773f
This commit is contained in:
zshi 2017-07-13 14:56:38 +08:00 committed by Alex Schultz
parent 3c7dc4f847
commit 3fe88375c7

View File

@ -0,0 +1,141 @@
..
This work is licensed under a Creative Commons Attribution 3.0 Unported
License.
http://creativecommons.org/licenses/by/3.0/legalcode
=============================================
TripleO PTP (Precision Time Protocol) Support
=============================================
https://blueprints.launchpad.net/tripleo/+spec/tripleo-ptp
This spec introduces support for a time synchronization method called PTP [0]
which provides better time accuracy than NTP in general. With hardware
timestamping support on the host, PTP can achieve clock accuracy in the
sub-microsecond range, making it suitable for measurement and control systems.
Problem Description
===================
Currently tripleo deploys NTP services by default which provide millisecond
level time accuracy, but this is not enough for some cases:
* Fault/Error events will include timestamps placed on the associated event
messages, retrieved by detectors with the purpose of accurately identifying
the time that the event occurred. Given that the target Fault Management
cycle timelines are in tens of milliseconds on most critical faults, events
ordering may reverse against actual time if precison and accuracy of clock
synchronization are in the same level of accuracy.
* NFV C-RAN (Cloud Radio Access Network) is looking for better time
sychronization and distribution in micro-second level accuracy as alternative
for NTP, PTP has been evaluated as one of the technologies.
This spec is not intended to cover all the possible ways of PTP usage, rather
to provide a basic deployment path for PTP in tripleo with default
configuration set to support PTP Ordinary Clock (slave mode); the master mode
ptp clock configuration is not in the scope of this spec, but shall be deployed
by user to provide the time source for the PTP Ordinary Clock. The full support
of PTP capability can be enhanced further based on this spec.
User shall be aware of the fact that NTP and PTP can not be configured together
on the same node without a coordinator program like timemaster which is also
provided by linuxptp package. How to configure and use timemaster is not in the
scope of this spec.
Proposed Change
===============
Overview
--------
Provide the capability to configure PTP as time synchronization method:
* Add PTP configuration file path in overcloud resource registry.
* Add puppet-tripleo profile for PTP services.
* Add tripleo-heat-templates composable service for PTP.
Retain the current default behavior to deploy NTP as time synchronization
source:
* The NTP services remain unchanged as the default time synchronization method.
* The NTP services must be disabled on nodes where PTP are deployed.
Alternatives
------------
The alternative is to continue to use NTP.
Security Impact
---------------
Security issues originated from PTP will need to be considered.
Other End User Impact
---------------------
Users will get more accurate time from PTP.
Performance Impact
------------------
No impact with default deployment mode which uses NTP as time source.
Other Deployer Impact
---------------------
The operator who wants to use PTP should identify and provide the PTP capable
network interface name and make sure NTP is not deployed on the nodes where PTP
will be deployed. The default PTP network interface name is set to 'nic1' where
user should change it according to real interface name. By default, PTP will
not be deployed unless explicitly configured.
Developer Impact
----------------
None
Implementation
==============
Assignee(s)
-----------
Primary assignee:
zshi
Work Items
----------
* Puppet-tripleo profile for PTP services
* Tripleo-heat-templates composable service for PTP deployment
Dependencies
============
* Puppet module for PTP services: ptp [1]
* The linuxptp RPM must be installed, and PTP capable NIC must be identified.
* Refer to linuxptp project page [2] for the list of drivers that support the
PHC (Physical Hardware Clock) subsystem.
Testing
=======
The deployment of PTP should be testable in CI.
Documentation Impact
====================
The deployment documation will need to be updated to cover the configuration of
PTP.
References
==========
* [0] https://standards.ieee.org/findstds/standard/1588-2008.html
* [1] https://github.com/redhat-nfvpe/ptp
* [2] http://linuxptp.sourceforge.net