Linux Time Synchronization: NTP, Chrony ma systemd-timesyncd

Linux Time Synchronization: NTP, Chrony ma systemd-timesyncd
O le tele o tagata e siaki le taimi. Tatou te feala i le taimi e faamaea ai a tatou sauniga o le taeao ma o atu i le galuega, fai se malologa o le aoauli, ausia taimi atofaina o galuega faatino, faamanatu aso fanau ma aso malolo, alu i se vaalele, ma isi.

E le gata i lea: o nisi oi tatou e popole i le taimi. O laʻu uati e faʻamalosia e le malosi o le la ma maua le taimi saʻo mai le National Institute of Standards and Technology (NISI) i Fort Collins, Colorado e ala i le leitio o le galu umi WWVB. O fa'ailoga taimi e fa'atasi ma le uati atomic, o lo'o iai fo'i i Fort Collins. O loʻo faʻatasi laʻu Fitbit ma laʻu telefoni o loʻo faʻatasi ma le server NTP, lea e iu ina ogatasi ma le uati atomika.

O masini e siaki foi le taimi

E tele mafuaʻaga e manaʻomia ai e a tatou masini ma komepiuta le taimi saʻo. Mo se faʻataʻitaʻiga, i teugatupe, maketi faʻatauga, ma isi pisinisi tau tupe, e tatau ona faʻatautaia fefaʻatauaiga i le faasologa saʻo, ma e taua tele le faʻasologa o taimi i lenei mea.

O a tatou telefoni, laulau, ta'avale, GPS ma komepiuta e mana'omia uma taimi ma aso sa'o. Ou te mana'o i le uati i luga o la'u komepiuta e fa'aali le taimi sa'o. Ou te mana'o ia fa'aali mai ni fa'amanatu i la'u kalena fa'apitonu'u i le taimi sa'o. O le taimi sa'o e fa'amautinoa ai fo'i e fa'agaoioi le cron ma le systemd jobs i le taimi sa'o.

O le aso ma le taimi e taua foi mo le taina, o lea e faigofie ai ona maua nisi ogalaau e faʻatatau i le aso ma le taimi. Mo se faʻataʻitaʻiga, na ou galue muamua i DevOps (e leʻi taʻua i lena taimi) ma sa faʻatulagaina se faiga imeli i le setete o North Carolina. Sa masani ona matou faʻatautaia le silia ma le 20 miliona imeli i le aso. Su'esu'eina i-meli e ala i se faasologa o sapalai, po'o le fuafuaina o le faasologa sa'o o mea e tutupu i le fa'aogaina o faila ogalaau i luga o fa'afanua fa'asalalauina fa'afanua, e mafai ona sili atu ona faigofie pe a fa'atasia komepiuta ta'itasi i le taimi.

Tasi taimi - tele itula

E tatau ona amanaia e le au Linux o loʻo i ai se taimi faʻaoga ma se taimi RTC. O le RTC (Real Time Clock) ose igoa uiga ese ma e le sa'o lelei mo se uati meafaigaluega.

O le uati meafaigaluega e faʻaauau pea e tusa lava pe tape le komepiuta, faʻaaoga le maa i luga o le motherboard system. O le galuega autu a le RTC o le teuina o le taimi pe a le maua se fesoʻotaʻiga i se taimi server. I aso na le mafai ai ona faʻafesoʻotaʻi i se taimi faigaluega i luga o le Initaneti, e tatau ona i ai i komepiuta uma se uati saʻo i totonu. O faiga fa'aoga e tatau ona maua le RTC i le taimi o le ta'avale ma e tatau i le tagata fa'aoga ona setiina ma le lima le taimi fa'aoga e fa'aaoga ai le fa'aogaina o masini BIOS ina ia mautinoa e sa'o.

Uati meafaigaluega e le malamalama i le manatu o sone taimi; E na'o le taimi e teu ai e le RTC, ae le o le sone o le taimi po'o le fa'asili mai le UTC (Coordinated Universal Time, lea e ta'ua o le GMT po'o le Greenwich Mean Time). E mafai ona e faʻapipiʻi le RTC e faʻaaoga ai se meafaigaluega o le a ou ufiufi mulimuli ane i lenei tusiga.

O le taimi faʻatulagaina o le taimi lea e faʻaalia ai e le OS i luga o le uati GUI i luga o lau laulau, i le gaioiga o le faʻatonuga o le aso, i faʻailoga taimi o ogalaau. E faʻatatau foi i le taimi e fai ai faila, suia, ma tatalaina.

I luga o le itulau tagata mo rtc o loʻo i ai se faʻamatalaga atoa o le RTC ma le uati faʻaoga.

O le a le NTP?

E fa'aoga e komepiuta i le lalolagi atoa le NTP (Network Time Protocol) e fa'amaopoopo ai o latou taimi ma fa'amaumauga masani i luga o le Initaneti e fa'aaoga ai se fa'auluuluga o 'au'aunaga NTP. O taimi autu o lo'o i luga ole laiga 1 ma o lo'o feso'ota'i sa'o ile tele o auaunaga ole taimi ole atunu'u ile layer 0 e ala ile satelite, leitio po'o modem i luga ole laina telefoni. Layer 0 time services e mafai ona avea ma uati atomika, se leitio e fa'alogo i fa'ailo o lo'o fa'asalalauina e uati atomika, po'o se GPS e fa'aogaina fa'ailoga uati sa'o lelei e fa'asalalauina e satelite GPS.

Ole tele ole tele ole 'au'aunaga fa'asinomaga o lo'o i ai le tele o tagata lautele NTP stratum 2 'aumau e tatala i tagata lautele. O le tele o faʻalapotopotoga ma tagata faʻaoga (o aʻu lava e aofia ai) ma le tele o 'au e manaʻomia se NTP server e filifili e faʻatutu a latou lava taimi faʻaumau ina ia naʻo le tasi le talimalo i le lotoifale e ulufale atu i le stratum 2 poʻo le 3. Ona latou faʻapipiʻi ai lea o nodes o loʻo totoe i luga o le upega tafaʻilagi e faʻaoga ai le lotoifale. server taimi . I le tulaga o laʻu upega tafaʻilagi, o le layer 3 server lea.

Fa'atinoga 'ese'ese ole NTP

O le uluai faʻatinoga o le NTP o le ntpd. Ona sosoo ai lea ma ni mea fou se lua, chronyd ma systemd-timesyncd. O mea uma e tolu e fa'amaopoopo le taimi fa'apitonu'u i le NTP time server. Ole auaunaga systemd-timesyncd e le fa'atuatuaina e pei ole chronyd, ae e lava lelei mo le tele o fa'amoemoega. Afai e le fetaui le RTC, e mafai ona fetuutuunai malie le taimi o le faiga e fa'amaopoopo ai ma le NTP server pe a fa'asetete teisi le taimi fa'alotoifale. Ole 'au'aunaga systemd-timesync e le mafai ona fa'aogaina e fai ma fa'aumau taimi.

Chrony o se faʻatinoga o le NTP o loʻo i ai ni polokalame se lua: o le chronyd daemon ma se laina faʻatonuga e taʻua o le chronyc. Chrony ei ai nisi o vaega e taua tele i le tele o tulaga:

  • Chrony e mafai ona fa'amaopoopoina ma se taimi e sili atu le vave nai lo le auaunaga tuai ntpd. E lelei lea mo komipiuta po o komipiuta e le aoga i taimi uma.
  • E mafai ona totogi ai le fesuisuiai o le uati, e pei o le taimi e moe ai le tagata talimalo pe ulufale i le moe, poʻo le suiga o le uati ona o le oso faʻasolosolo, lea e faʻagesegese ai uati i uta maualalo.
  • E fo'ia ai fa'afitauli o le taimi e feso'ota'i ma feso'ota'iga feso'ota'iga le mautu po'o le fa'apipi'iina o feso'otaiga.
  • E fa'atonutonuina le tuai o feso'ota'iga.
  • A mae'a le taimi muamua o le fa'atasi, e le taofia lava e Chrony le uati. E maua ai taimi mautu ma faifaipea mo le tele o auaunaga ma talosaga.
  • Chrony e mafai ona galue e tusa lava pe leai se fesoʻotaʻiga fesoʻotaʻiga. I le tulaga lea, e mafai ona fa'afouina ma le lima le talimalo i le lotoifale po'o le server.
  • Chrony e mafai ona galue o se NTP server.

O le isi, o le NTP o se faʻasalalauga e mafai ona faʻatinoina i luga o le Linux host e faʻaaoga ai Chrony poʻo systemd-timesyncd.

Ole NTP, Chrony, ma systemd-timesyncd RPMs o loʻo avanoa ile fale teu oloa Fedora. O le systemd-udev RPM o se pule o mea e fai ai fatu e faʻapipiʻi e ala i le faaletonu i Fedora, ae e filifili.

E mafai ona e fa'apipi'i mea uma e tolu ma fesuia'i i le va, ae o le a fa'atupu ai le ma'i tiga fa'aopoopo. E sili la ona aua le faia. O faʻasalalauga faʻaonaponei o Fedora, CentOS, ma RHEL ua siitia atu i Chrony o le faʻaogaina o le faʻatinoga, ma o loʻo i ai foi le systemd-timesyncd. Ou te maua Chrony e galue lelei, saunia se atinaʻe sili atu nai lo le NTP auaunaga, tuʻuina atu le tele o faʻamatalaga ma faʻatonuga, lea e mautinoa e fiafia i ai le pulega.

Fa'agata le NTP Auaunaga

Atonu o lo'o fa'agasolo le auaunaga NTP i lau 'au talimalo. Afai o lea, e tatau ona e faʻamalo ae leʻi sui i se isi mea. Sa ou chronyd tamoe o lea sa ou faaaogaina poloaiga nei e taofi ma tape ai. Faʻatonu tulafono talafeagai mo soʻo se NTP daemon o loʻo e tamoe i luga o lau 'au:

[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#

Siaki ua taofi le auaunaga ma ua le atoatoa:

[root@testvm1 ~]# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:chronyd(8)
             man:chrony.conf(5)
[root@testvm1 ~]#

Siaki tulaga a'o le'i fa'alauiloa

O le tulaga o le synchronization o le uati o le system e mafai ai ona e iloa pe o loʻo faʻaogaina le NTP. Talu ai e te leʻi amataina le NTP, o le timesync-status poloaiga o le a faʻaalia i lenei mea:

[root@testvm1 ~]# timedatectl timesync-status
Failed to query server: Could not activate remote peer.

O se talosaga tulaga tuusaʻo e maua ai faʻamatalaga taua. Mo se faʻataʻitaʻiga, o le timedatectl poloaiga e aunoa ma se finauga poʻo ni filifiliga e faʻatinoina le tulaga subcommand e ala i le faaletonu:

[root@testvm1 ~]# timedatectl status
           Local time: Fri 2020-05-15 08:43:10 EDT  
           Universal time: Fri 2020-05-15 12:43:10 UTC  
                 RTC time: Fri 2020-05-15 08:43:08      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: yes                    

Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'.
[root@testvm1 ~]#

O le a tu'uina atu ia te oe le taimi fa'apitonu'u mo lau talimalo, taimi UTC, ma le taimi RTC. I lenei tulaga, o le taimi faʻatulagaina e seti i le Amerika / New_York (TZ) taimi sone, o le RTC e seti i le taimi i le taimi faʻapitonuʻu, ma le NTP auaunaga e le o galue. O le taimi o le RTC ua amata ona alu ese teisi mai le taimi faʻaoga. Ole mea masani lea mo faiga e le'i fa'amaopoopoina uati. Ole aofa'i ole fa'ase'e ile talimalo e fa'alagolago ile taimi ua mavae talu ona fa'amaopoopoina le faiga.

Na matou maua foi se lapataiga e uiga i le faʻaogaina o le taimi faʻapitonuʻu mo le RTC - e faʻatatau i suiga o sone taimi ma faʻatulagaga DST. Afai e tape le komepiuta pe a mana'omia ni suiga, e le suia le RTC. Ae mo 'au'aunaga po'o isi 'au e tamomoe i le uati, e le o se fa'afitauli. E le gata i lea, soʻo se auaunaga e tuʻuina atu le taimi NTP faʻatasi o le a fetuutuunai le taimi o le talimalo i le taimi o le amataga amata, o lea o le a toe saʻo le taimi pe a maeʻa le amataga.

Fa'atulaga le sone taimi

E masani lava, e te faʻamaonia le sone taimi i le taimi o le faʻapipiʻiina ma e leai sau galuega e sui mulimuli ane. Ae ui i lea, e iai taimi e te manaʻomia ai le suia o le sone taimi. E tele meafaigaluega e mafai ona fesoasoani. E fa'aoga e Linux faila sone taimi e fa'amautu ai le sone taimi fa'apitonu'u o se talimalo. O faila nei o loʻo i totonu o le lisi /usr/share/zoneinfo. Ona o le faaletonu, mo la'u sone taimi, o lo'o fa'atonuina e le faiga lenei: /etc/localtime -> ../usr/share/zoneinfo/America/New_York. Ae e te le manaʻomia le iloa o ia mea faʻapitoa e sui ai le sone taimi.

O le mea autu o le iloa lea o le igoa ole sone taimi aloaia mo lou nofoaga ma le faʻatonuga tutusa. Fa'apea e te mana'o e sui le sone taimi i Los Angeles:


[root@testvm2 ~]# timedatectl list-timezones | column
<SNIP>
America/La_Paz                  Europe/Budapest
America/Lima                    Europe/Chisinau
America/Los_Angeles             Europe/Copenhagen
America/Maceio                  Europe/Dublin
America/Managua                 Europe/Gibraltar
America/Manaus                  Europe/Helsinki
<SNIP>

Ua mafai nei ona e setiina le sone taimi. Na ou faʻaogaina le aso e siaki ai suiga, ae e mafai foi ona e faʻaogaina timedatectl:

[root@testvm2 ~]# date
Tue 19 May 2020 04:47:49 PM EDT
[root@testvm2 ~]# timedatectl set-timezone America/Los_Angeles
[root@testvm2 ~]# date
Tue 19 May 2020 01:48:23 PM PDT
[root@testvm2 ~]#

O lea e mafai ona e suia le sone taimi a lau talimalo i tua i le taimi fa'apitonu'u.

systemd-timesyncd

O le systemd timesync daemon e maua ai se faʻatinoga NTP e faigofie ona pulea i le systemd context. O loʻo faʻapipiʻiina e ala i le faaletonu i Fedora ma Ubuntu. Ae ui i lea, e naʻo le amataga e ala ile faaletonu ile Ubuntu. Ou te le mautinoa e uiga i isi tufatufaga. E mafai ona e siaki mo oe lava:

[root@testvm1 ~]# systemctl status systemd-timesyncd

Fa'atulagaina systemd-timesyncd

O le faila faila mo systemd-timesyncd o le /etc/systemd/timesyncd.conf. O se faila faigofie lea e itiiti ni filifiliga e mafai nai lo le NTP tuai ma auaunaga chronyd. O mea nei o loʻo i totonu o lenei faila (e aunoa ma nisi suiga) i luga o laʻu Fedora VM:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

Pau lava le vaega o loo iai, e ese mai i faamatalaga, o le [Taimi]. O isi laina uma o loʻo faʻaalia. O tau fa'aletonu ia ma e le tatau ona suia (sei vagana ua i ai sau mafuaaga). Afai e leai sau NTP time server faʻamatalaina i le NTP = laina, Fedora faʻaletonu i le backback Fedora time server. E masani ona ou faʻaopoopoina laʻu server taimi:

NTP=myntpserver

Ta'avale timesync

E mafai ona e amata ma fa'agaoioia systemd-timesyncd pei o lenei:

[root@testvm2 ~]# systemctl enable systemd-timesyncd.service
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
[root@testvm2 ~]# systemctl start systemd-timesyncd.service
[root@testvm2 ~]#

Faatulaga le uati meafaigaluega

O le mea lenei e foliga mai pe a uma le taimi e fai ai timesyncd:

[root@testvm2 systemd]# timedatectl
               Local time: Sat 2020-05-16 14:34:54 EDT  
           Universal time: Sat 2020-05-16 18:34:54 UTC  
                 RTC time: Sat 2020-05-16 14:34:53      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: no    

I le amataga, o le eseesega i le va o le RTC ma le taimi fa'apitonu'u (EDT) e itiiti ifo i le sekone, ma fa'atupula'ia le eseesega i le isi lua sekone i nai aso o lumana'i. Talu ai e leai se manatu o sone taimi i le RTC, o le timedatectl poloaiga e tatau ona faia se faʻatusatusaga e fuafua ai le taimi saʻo. Afai e le fetaui lelei le taimi RTC ma le taimi fa'apitonu'u, e le fetaui fo'i ma le sone taimi fa'apitonu'u.

Suʻe mo nisi faʻamatalaga, na ou siakiina le tulaga o le systemd-timesync ma maua lenei:

[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-05-16 13:56:53 EDT; 18h ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 822 (systemd-timesyn)
     Status: "Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org)."
      Tasks: 2 (limit: 10365)
     Memory: 2.8M
        CPU: 476ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─822 /usr/lib/systemd/systemd-timesyncd

May 16 09:57:24 testvm2.both.org systemd[1]: Starting Network Time Synchronization...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: System clock time unset or jumped backwards, restoring from recorded timestamp: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Started Network Time Synchronization.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#

Matau le savali ogalaau o loʻo fai mai e leʻi setiina le taimi o le polokalama pe ua toe setiina. O le Timesync service e fa'atulaga le taimi fa'avae e fa'atatau i le timestamp. O faailoga taimi e tausia e le timesync daemon ma e faia i luga o sync manuia uma.

O le timedatectl poloaiga e leai se auala e ave ai le tau o le uati meafaigaluega mai le uati faʻaoga. E mafai ona setiina le taimi ma le aso mai le tau o loʻo tuʻuina i luga o le laina faʻatonu. E mafai ona e setiina le RTC i le tau tutusa ma le taimi faʻaoga e faʻaaoga ai le poloaiga hwclock:

[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
               Local time: Mon 2020-05-18 13:56:46 EDT  
           Universal time: Mon 2020-05-18 17:56:46 UTC  
                 RTC time: Mon 2020-05-18 13:56:46      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: yes

O le --localtime filifiliga e taʻu atu ai le uati meafaigaluega e faʻaalia le taimi faʻapitonuʻu, ae le o le UTC.

Aisea e te mana'omia ai le RTC?

So'o se fa'atinoga o le NTP o le a fa'atulaga le uati fa'atonu ile taimi amata. Ae aisea la le RTC? E le'o atoatoa lenei mea: e na'o le mea e tupu pe a iai sau feso'ota'iga feso'ota'iga i le time server. Ae ui i lea, o le tele o faiga e le maua i taimi uma se fesoʻotaʻiga fesoʻotaʻiga, o lea e aoga ai se uati meafaigaluega mo Linux e faʻaoga e seti ai le taimi faʻaoga. E sili atu lenei mea nai lo le setiina o le taimi ma le lima, e ui lava e ono alu ese mai le taimi moni.

iʻuga

O lenei tusiga ua toe iloiloina nisi meafaigaluega mo le faʻaogaina o aso, taimi, ma sone taimi. O le systemd-timesyncd meafaigaluega e maua ai le NTP client e mafai ona faʻafetaui le taimi i luga o le talimalo i le lotoifale ma se NTP server. Ae ui i lea, systemd-timesyncd e le tuʻuina atu se 'auʻaunaga tautua, o lea afai e te manaʻomia se NTP server i luga o lau fesoʻotaʻiga, e tatau ona e faʻaogaina se isi mea, e pei o Chrony, e galue o se server.

Ou te manaʻo e fai se faʻatinoga e tasi mo soʻo se auaunaga i luga o laʻu fesoʻotaʻiga, o lea ou te faʻaaogaina Chrony. Afai e te le manaʻomia se NTP server i le lotoifale, pe afai e te le mafaufau e faʻaaoga Chrony o le server ma le systemd-timesyncd o le SNTP client. A uma mea uma, e le manaʻomia le faʻaogaina o foliga faʻaopoopo o Chrony o se tagata faʻatau pe afai e te faʻamalieina i le faʻaogaina o le systemd-timesyncd.

O le isi faʻamatalaga: e le manaʻomia oe e faʻaogaina meafaigaluega faʻaoga e faʻatino ai le NTP. E mafai ona e fa'aogaina se lomiga tuai o le ntpd, Chrony, po'o se isi fa'atinoga NTP. A uma mea uma, systemd e aofia ai le tele o auaunaga; o le tele o ia mea e filifili, o lea e mafai ai ona e tape ma faʻaaoga se isi mea. E le o se monolithic tele tele lea. Atonu e te le fiafia i le systemd poʻo ni vaega, ae e tatau ona e faia se faʻaiuga faʻamaonia.

Ou te fiafia i le faʻatinoina o le NTP, ae ou te fiafia ia Chrony aua e fetaui lelei ma ou manaʻoga. Ole Linux, pepe -)

I Aia Tatau o Faasalalauga

VDSina ofo servers mo so'o se galuega, o se filifiliga tele o faiga faʻaogaina mo le faʻapipiʻiina otometi, e mafai ona faʻapipiʻi soʻo se OS mai ia oe lava ISO, mafanafana pulea le laupapa lava atinae ma totogi i aso taitasi. Manatua o loʻo i ai a matou 'auʻaunaga e faʻavavau e mautinoa e leai se taimi 😉

Linux Time Synchronization: NTP, Chrony ma systemd-timesyncd

puna: www.habr.com

Faaopoopo i ai se faamatalaga