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:
parent
3c7dc4f847
commit
3fe88375c7
141
specs/queens/tripleo-ptp.rst
Normal file
141
specs/queens/tripleo-ptp.rst
Normal 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
|
Loading…
Reference in New Issue
Block a user