Reply
New Contributor
Posts: 5
Registered: ‎09-04-2013
Accepted Solution

Kudu ntpd only - no chrony

Is anyone aware of a *technical* (not personal preference) reason why Kudu close-coupled to ntpd only? At the moment we are hand-modying scripts for each Kudu release to support our chrony based environment.

Cloudera Employee
Posts: 40
Registered: ‎09-28-2015

Re: Kudu ntpd only - no chrony

Hi Derek,

No technical reason as far as I'm aware, but haven't done research into
chrony, nor has anyone done any testing. So long as chrony uses the same
adjtimex() syscalls to keep the kernel apprised of clock synchronization
status, including maxerror estimates, it should work OK.

What scripts are you having to hand-modify?

-Todd
New Contributor
Posts: 5
Registered: ‎09-04-2013

Re: Kudu ntpd only - no chrony

I would have throught the same but it does not appear to turn out that way, at least for us.

 

We mod kudu-tserver to stop chrony and start ntpd (with equivalent config) before 

exec ${KUDU_HOME}/sbin/kudu-tserver "$@"

 

Works with ntpd running, fails with chrony 

 

Chrony running log message

Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error: Clock synchronized but error wastoo high (10057805 us).

The clocks on all hosts as syncronised fine.

 

With nptd everything works fine.

Cloudera Employee
Posts: 40
Registered: ‎09-28-2015

Re: Kudu ntpd only - no chrony

Sounds like chrony isn't setting the maxerror estimate in the kernel. Kudu
depends on knowing a strict bound on the clock error between machines --
even if the clocks are well synchronized, it's important to know what the
absolute worst case error is to avoid giving incorrect results.

If you are willing to roll the dice and potentially receive inconsistent
results, you can change the --max_clock_sync_error_usec configuration flag
to a larger value.

-Todd
Highlighted
New Contributor
Posts: 5
Registered: ‎09-04-2013

Re: Kudu ntpd only - no chrony

--max_clock_sync_error_usec is probably not the path we'd like to pursue.

We'll investigate the maxerror estimate path with chrony

Announcements