Chris Perl
2017-09-21 11:54:02 UTC
I would like a way to be able to ask chronyd not to combine time from
multiple sources, but instead to just trim the local clock from the
selected system peer.
I believe the ways you could do that today are:
1. Only have 1 server defined in chrony.conf
2. Use the `trust' and `prefer' directives on just one server in chrony.conf
Unfortunately, I don't think I can get what I want using those while also
having the reliability I'm looking for. The issues I'm running into with
the current set of keywords stems from my exact setup, so let me explain
that it a bit more detail.
I have client systems talking to two local chronyd servers. These are
going to be high quality sources of time, as they are backed by GPS
receivers (or other high quality time sources) and are located very close
to the clients.
However, I would like a way to detect if either of them goes crazy, so I'd
like to add in some additional chronyd servers that are close, but farther
away than the local servers, and as such are subject to more uncertainty
due to network delay.
What I had intended to do, was to mark the two local servers with `trust'
and `prefer', which would cause the other servers to basically just
participate in deciding if either of the trust sources was crazy (I think).
But, if both of the local servers are selectable, I wind up with time being
combined, which I would like to be able to control (for the purposes of
reporting traceability back to UTC).
What I want to do is to implement a `exclusive' or a `nocombine' server
directive (like `noselect', `trust', `prefer', etc) that would allow you to
control this.
The idea with `exclusive' being that if the selected system peer is marked
exclusive, then all other sources that would have been combined in
SRC_SelectSource are discarded and not combined (perhaps marked
SRC_EXCLUSIVE_EXCLUDED or something like that).
The idea with `nocombine' being that if a set of servers that are
selectable, but not the system peer are marked `nocombine', they will be
discarded and no combined (perhaps marked SRC_NOCOMBINE or something like
that).
Either one would work for my use case.
Are there other directives that I'm missing that could help me achieve what
I'm shooting for?
If not, would you be open to patches implementing either `exclusive' or
`nocombine'. I think it would be a relatively easy change.
multiple sources, but instead to just trim the local clock from the
selected system peer.
I believe the ways you could do that today are:
1. Only have 1 server defined in chrony.conf
2. Use the `trust' and `prefer' directives on just one server in chrony.conf
Unfortunately, I don't think I can get what I want using those while also
having the reliability I'm looking for. The issues I'm running into with
the current set of keywords stems from my exact setup, so let me explain
that it a bit more detail.
I have client systems talking to two local chronyd servers. These are
going to be high quality sources of time, as they are backed by GPS
receivers (or other high quality time sources) and are located very close
to the clients.
However, I would like a way to detect if either of them goes crazy, so I'd
like to add in some additional chronyd servers that are close, but farther
away than the local servers, and as such are subject to more uncertainty
due to network delay.
What I had intended to do, was to mark the two local servers with `trust'
and `prefer', which would cause the other servers to basically just
participate in deciding if either of the trust sources was crazy (I think).
But, if both of the local servers are selectable, I wind up with time being
combined, which I would like to be able to control (for the purposes of
reporting traceability back to UTC).
What I want to do is to implement a `exclusive' or a `nocombine' server
directive (like `noselect', `trust', `prefer', etc) that would allow you to
control this.
The idea with `exclusive' being that if the selected system peer is marked
exclusive, then all other sources that would have been combined in
SRC_SelectSource are discarded and not combined (perhaps marked
SRC_EXCLUSIVE_EXCLUDED or something like that).
The idea with `nocombine' being that if a set of servers that are
selectable, but not the system peer are marked `nocombine', they will be
discarded and no combined (perhaps marked SRC_NOCOMBINE or something like
that).
Either one would work for my use case.
Are there other directives that I'm missing that could help me achieve what
I'm shooting for?
If not, would you be open to patches implementing either `exclusive' or
`nocombine'. I think it would be a relatively easy change.