Problém s nastavením času - CHRONY

Založil jaegermeister, 12. 07. 2012, 18:13:28

Předchozí téma - Další téma

jaegermeister

Ahojte,

Používam Debian Squeeze, kernel 2.6.32-5-686 #1 SMP Sun May 6 04:01:19 UTC 2012 i686 ako lokálny server na hardvéri Fit-PC 2. Všetko funguje správne, okrem systémového času - je stále pozadu. Čím dlhšie nechám server bez rebootu, tým je rozdiel väčší. Čítal som, že nie je vhodné nastavovať systémový čas cez cron kvôli prípadným väčším časovým skokom a nekonzistencii časových razítok v logoch, čomu by som chcel predísť. Preto, aby som probém opravil, nainštaloval som chrony, ktorý by mal v pozadí postupne korigovať časovú chybu. Nedeje sa tak. Čas je stále (aj po reštarte) nesprávny.

Po manuálnej synchronizácii systémového času s čas. servrom je všetko pár hodín OK. Potom to ide do kytek. Pripájam výpis z logov & spol.

Napadlo ma, či nie je chybná batéria na matičnej doske, ale popravde netuším, či Fit-PC2 vôbec nejakú batériu má (viem, znie to blbo, ale v dokumentácii som to nikde nenašiel...)

chronyc ukazuje toto:
# chronyc tracking
Reference ID    : 194.29.130.252 (ntp.coi.pw.edu.pl)
Stratum         : 2
Ref time (UTC)  : Thu Jul 12 15:42:34 2012
System time     : 51.732604980 seconds fast of NTP time
Frequency       : 42.811 ppm slow
Residual freq   : 0.257 ppm
Skew            : 2.806 ppm
Root delay      : -0.000210 seconds
Root dispersion : 0.007420 seconds


Podľa tohto je čas pozadu o necelú minútu, pretože som pár minút predtým manuálne synchronizoval čas s časovým servrom.

Hwclock:
# hwclock -r
Thu 12 Jul 2012 05:43:45 PM CEST  -0.387301 seconds


Systém vie o prechodoch na letný a zimný čas, toto by teda nemal byť problém:
# zdump -v /etc/localtime | grep 2012
/etc/localtime  Sun Mar 25 00:59:59 2012 UTC = Sun Mar 25 01:59:59 2012 CET isdst=0 gmtoff=3600
/etc/localtime  Sun Mar 25 01:00:00 2012 UTC = Sun Mar 25 03:00:00 2012 CEST isdst=1 gmtoff=7200
/etc/localtime  Sun Oct 28 00:59:59 2012 UTC = Sun Oct 28 02:59:59 2012 CEST isdst=1 gmtoff=7200
/etc/localtime  Sun Oct 28 01:00:00 2012 UTC = Sun Oct 28 02:00:00 2012 CET isdst=0 gmtoff=3600


Rozdiel času podľa date a hwclock:
# date && hwclock -r
Thu Jul 12 17:45:35 CEST 2012
Thu 12 Jul 2012 05:44:56 PM CEST  -0.588006 seconds


hwclock je nastavený na UTC zónu:
# tail -n1 /etc/adjtime
UTC
# hwclock --utc -w
# date && hwclock -r
Thu Jul 12 17:47:38 CEST 2012
Thu 12 Jul 2012 05:47:39 PM CEST  -0.143933 seconds


syslog ukazuje šialené časové rozdiely (všimnite si posledný riadok - moja manuálna synchronizácia):
# grep clock /var/log/syslog
Jun 25 06:47:28 odinsson chronyd[1372]: System clock wrong by 299.973736 seconds, adjustment started
Jun 25 08:01:26 odinsson chronyd[1372]: System clock wrong by 299.976328 seconds, adjustment started
Jun 25 09:00:30 odinsson chronyd[1372]: System clock wrong by 599.960738 seconds, adjustment started
Jun 25 10:13:53 odinsson chronyd[1372]: System clock wrong by 299.974611 seconds, adjustment started
Jun 25 11:54:33 odinsson chronyd[1372]: System clock wrong by 299.981746 seconds, adjustment started
Jul  9 08:33:41 odinsson kernel: [    0.000000] hpet clockevent registered
Jul  9 08:33:41 odinsson kernel: [    0.208049] Switching to clocksource tsc
Jul  9 08:33:41 odinsson kernel: [    1.053746] rtc_cmos 00:07: setting system clock to 2012-07-09 06:33:30 UTC (1341815610)
Jul  9 08:33:41 odinsson kernel: [    4.555655] Switching to clocksource hpet
Jul  9 08:33:56 odinsson chronyd[1415]: System clock wrong by 201434.890701 seconds, adjustment started
Jul  9 10:20:59 odinsson chronyd[1415]: System clock wrong by 299.976516 seconds, adjustment started
Jul  9 10:32:27 odinsson chronyd[1415]: System clock wrong by 299.980819 seconds, adjustment started
Jul  9 12:56:33 odinsson chronyd[1415]: System clock wrong by 299.977015 seconds, adjustment started
Jul  9 14:33:07 odinsson chronyd[1415]: System clock wrong by 299.976782 seconds, adjustment started
Jul  9 14:46:58 odinsson chronyd[1415]: System clock wrong by 299.977584 seconds, adjustment started
Jul  9 17:01:10 odinsson chronyd[1415]: System clock wrong by 599.956931 seconds, adjustment started
Jul  9 18:32:16 odinsson chronyd[1415]: System clock wrong by 22498.394361 seconds, adjustment started
Jul  9 19:02:41 odinsson chronyd[1415]: System clock wrong by 299.977071 seconds, adjustment started
Jul  9 19:43:35 odinsson chronyd[1415]: System clock wrong by 2999.784978 seconds, adjustment started
Jul 10 00:54:38 odinsson chronyd[1415]: System clock wrong by 5399.613711 seconds, adjustment started
Jul 10 01:14:30 odinsson chronyd[1415]: System clock wrong by 299.980321 seconds, adjustment started
Jul 12 17:42:19 odinsson chronyd[1415]: System clock wrong by -212630.652581 seconds, adjustment started


...a na záver chronyc tracking ukazuje správny čas a nulový rozdiel oproti UTC referenčnému času. Zajtra ale bude rozdiel určite opäť veľký.
# chronyc tracking
Reference ID    : 194.29.130.252 (ntp.coi.pw.edu.pl)
Stratum         : 2
Ref time (UTC)  : Thu Jul 12 16:05:55 2012
System time     : 0.000000416 seconds slow of NTP time
Frequency       : 32.682 ppm slow
Residual freq   : -193.552 ppm
Skew            : 80.109 ppm
Root delay      : 0.027413 seconds
Root dispersion : 0.010360 seconds


Máte niekto tip na riešenie alebo nejakú spoľahlivú politiku udržiavania správneho času na servri? Alebo sa mám vybodnúť na chrony a nastaviť každý deň synchronizáciu s časovým servrom cez CRON?

Vopred vďaka za odpovede!

Ota Trkola


Roman Horník

Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

jaegermeister

#3
Diky za tip, ale zda sa, ze problem to aj tak nevyriesilo. Chrony som odinstaloval, nahodil ntp. Demon bezi. Pred polhodinou bol systemovy cas zhodny s hardverovym.

Teraz:
# date
Fri Jul 13 11:58:25 CEST 2012
# hwclock
Fri 13 Jul 2012 12:03:29 PM CEST  -0.985121 seconds


Hardverove hodiny su spravne ale systemovy cas (date) uz po polhodine od synchronizacie zasa zacina spomalovat...

Cim to moze byt?

jaegermeister

Po chvili je situacia presne opacna. Hardverove hodiny (RTC) meskaju 5 minut, zatial co ntpd udrziava cas kernelu OK. Takze:

# date && hwclock
Fri Jul 13 12:40:15 CEST 2012
Fri 13 Jul 2012 12:35:16 PM CEST  -0.688221 seconds


Uz to moze byt jedine vadnou bateriou, nic ine ma nenapadlo.

Roman Horník

#5
RTC se napájí lithiovým článkem jen tehdy, když ze zdroje do MB neleze šťáva, jinak jsou hodiny napájeny zdrojem jako zbytek stroje.
Tyhle hodiny nejsou zrovna nejpřesnější, konkrétně v mým stroji se čas zpožďuje cca o 6 minut za tejden, když je stroj bez šťávy, ale jakmile se během bootování spustí ntpd, hodnota systémovýho času se napraví.
Zdá se mi spíš, že někde vázne komunikace s BIOSem.
Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz

jaegermeister

Vdaka za odpoved Roman. Server je stale pod prudom. Ak nepresnost nesposobuje bateria, potom neviem co. Od poslednej synchronizacie cas "uletel" az takto:

Spravny cas by mal byt 12:25
# date && hwclock
Sat Jul 14 18:15:52 CEST 2012
Sun 15 Jul 2012 11:15:53 AM CEST  -0.782147 seconds


Asi zostava jedina moznost, a to periodicky nastavovat cas cronjobom... alebo je este ina cesta?

BTW po instalacii Debianu ntp demon vyhlasoval, ze sa nedokaze pripojit k internetu a ukoncil sa. Pomohlo az ked som zmenil defaultne servery v /etc/ntpd.conf a demon restartoval. Teraz su tam tieto:

server 0.sk.pool.ntp.org
server 1.sk.pool.ntp.org
server 2.sk.pool.ntp.org
server 3.sk.pool.ntp.org