Tenho cerca de 70 instâncias do Linux em execução em um cluster do OpenStack que atualmente consiste em dois nós de computação e um controlador. Além disso, essas máquinas vivem em um DC do RackSpace como parte de seu programa 'Private Cloud', portanto, todos os nossos recursos são dedicados.
Anteriormente, estávamos usando apenas servidores NTP do RackSpace para sincronizar os relógios em todas as nossas instâncias, mas o Check_MK frequentemente nos notificava de que as instâncias estavam sendo sincronizadas [estrato 10], sugerindo que os servidores NTP não estavam respondendo. Dado que apenas 4/70 + instâncias possuíam endereços IP públicos, eu assumi que os servidores NTP do RackSpace estavam ratelimitando-nos, já que eles veriam 35+ vezes a taxa normal de consultas NTP originadas de nossos dois hosts de computação. Isso parecia lógico, já que as 4 instâncias com IPs públicos nunca geraram reclamações sobre o NTP.
Para resolver isso, alterei o ntpd.conf em nossas instâncias para incluir nosso nó controlador junto com os servidores Rackspace, para que tivéssemos pelo menos um fallback quando os servidores RS parassem de responder. [o livro de receitas NTP que estamos usando não nos permite definir uma preferência] No entanto, isso não parou ou reduziu o número de reclamações do NTP. Eu tenho visto last
entradas em ntpq -p
em excesso de 60 minutos para todos os três hosts. Não consigo ver como a limitação de taxa baseada em IP pode estar entrando em vigor com o nó do controlador, já que as instâncias e o controlador residem e se comunicam por meio de uma rede privada em que cada instância possui seu próprio endereço IP.
O que poderia estar causando isso? Até onde eu sou capaz de dizer, não há nada na linha restrict default
que poderia causar o que estamos experimentando.
ntp.conf
de uma instância:
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
leapfile /etc/ntp.leapseconds
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server controller01.dfw.domain.com iburst
restrict controller01.dfw.domain.com nomodify notrap noquery
server time.dfw1.rackspace.com iburst
restrict time.dfw1.rackspace.com nomodify notrap noquery
server time2.dfw1.rackspace.com iburst
restrict time2.dfw1.rackspace.com nomodify notrap noquery
restrict default kod notrap nomodify nopeer noquery
restrict 127.0.0.1 nomodify
restrict -6 default kod notrap nomodify nopeer noquery
restrict -6 ::1 nomodify
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
ntp.conf
do nó do controlador:
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
leapfile /etc/ntp.leapseconds
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 0.pool.ntp.org iburst
restrict 0.pool.ntp.org nomodify notrap noquery
server 1.pool.ntp.org iburst
restrict 1.pool.ntp.org nomodify notrap noquery
server 2.pool.ntp.org iburst
restrict 2.pool.ntp.org nomodify notrap noquery
server 3.pool.ntp.org iburst
restrict 3.pool.ntp.org nomodify notrap noquery
restrict default kod notrap nomodify nopeer noquery
restrict 127.0.0.1 nomodify
restrict -6 default kod notrap nomodify nopeer noquery
restrict -6 ::1 nomodify
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
Controlador:
# ntpq -npcrv
remote refid st t when poll reach delay offset jitter
==============================================================================
+66.79.167.34 129.6.15.28 2 u 933 1024 377 50.360 3.898 5.064
-208.53.158.34 164.244.221.197 2 u 372 1024 377 27.384 6.635 5.323
+173.230.158.30 199.102.46.73 2 u 780 1024 357 47.656 0.897 0.596
*129.250.35.251 209.51.161.238 2 u 373 1024 377 40.828 1.786 0.163
127.127.1.0 .LOCL. 10 l 84d 64 0 0.000 0.000 0.000
associd=0 status=0615 leap_none, sync_ntp, 1 event, clock_sync,
version="ntpd [email protected] Tue Jun 5 20:12:08 UTC 2012 (1)",
processor="x86_64", system="Linux/3.2.0-54-generic", leap=00, stratum=3,
precision=-22, rootdelay=48.228, rootdisp=69.214, refid=129.250.35.251,
reftime=d6f049cf.5ce03f06 Wed, Apr 9 2014 22:35:59.362,
clock=d6f04f81.183edd61 Wed, Apr 9 2014 23:00:17.094, peer=21729,
tc=10, mintc=3, offset=1.514, frequency=12.879, sys_jitter=1.158,
clk_jitter=0.896, clk_wander=0.058
Instância:
$ ntpq -npcrv
remote refid st t when poll reach delay offset jitter
==============================================================================
+10.240.0.81 129.250.35.251 3 u 1997 1024 376 0.461 -2.098 0.194
+72.3.128.240 204.9.54.119 2 u 1556 1024 376 0.677 2.234 4.023
*72.3.128.241 204.9.54.119 2 u 1664 1024 376 0.793 -0.783 0.836
127.127.1.0 .LOCL. 10 l 51h 64 0 0.000 0.000 0.000
associd=0 status=06ff leap_none, sync_ntp, 15 events, stale_leapsecond_values,
version="ntpd [email protected] Sat Nov 23 18:21:48 UTC 2013 (1)",
processor="x86_64", system="Linux/2.6.32-431.5.1.el6.x86_64", leap=00,
stratum=3, precision=-22, rootdelay=30.593, rootdisp=105.114,
refid=72.3.128.241,
reftime=d6f04951.9026bd89 Wed, Apr 9 2014 22:33:53.563,
clock=d6f04fd1.0d15b2be Wed, Apr 9 2014 23:01:37.051, peer=54008,
tc=10, mintc=3, offset=-0.295, frequency=-0.163, sys_jitter=1.914,
clk_jitter=0.918, clk_wander=0.080, tai=35, leapsec=201207010000,
expire=201306280000