Tukutahi Waa Linux: NTP, Chrony me te systemd-timesyncd

Tukutahi Waa Linux: NTP, Chrony me te systemd-timesyncd
Ko te nuinga o nga tangata e mau ana i te waa. Ka maranga i runga i te waa ki te whakaoti i a tatou kawa o te ata ka haere ki te mahi, ki te okioki tina, ki te whakatutuki i nga wa mutunga o te kaupapa, ki te whakanui i nga ra whanau me nga hararei, ka eke ki runga waka rererangi, aha atu.

I tua atu: ko etahi o tatou e aro nui ana ki te waa. Ko taku mataaratanga e whakakahangia ana e te hiko o te ra me te wa tika mai i te National Institute of Standards and Technology (NIST) ki Fort Collins, Colorado mā te reo irirangi ngaru roa WWVB. Ko nga tohu wa ka tukutahi me te karaka ngota, kei Fort Collins hoki. Kei te tukutahi taku Fitbit me taku waea e tukutahi ana me te tūmau NTP, i te mutunga ka tukutahi me te karaka ngota.

Ko nga taputapu ka aroturuki i te waa

He maha nga take e hiahia ana a tatou taputapu me o rorohiko ki te wa tika. Hei tauira, i roto i nga putea, i nga maakete kararehe, me era atu pakihi putea, me whakahaere nga whakawhitiwhitinga i runga i te raupapa tika, a ko nga raupapa wa tika he mea nui ki tenei.

Ko o maatau waea, papa, waka, punaha GPS me o rorohiko me whakarite nga wa tika me te ra. E hiahia ana ahau kia whakaatu te karaka i runga i te papamahi o taku rorohiko i te wa tika. Kei te pirangi au kia puta nga whakamaumahara ki taku maramataka rohe i te wa tika. Ko te wa tika ka whakarite kia rere nga mahi cron me te punaha i te wa tika.

He mea nui ano te ra me te wa mo te takiuru, no reira he ngawari ake te rapu i etahi raarangi i runga i te ra me te waa. Hei tauira, i mahi ahau i tetahi wa i DevOps (kaore i kiia i tera wa) me te whakatu i tetahi punaha imeera i te kawanatanga o North Carolina. Neke atu i te 20 miriona nga imeera i whakamahia e matou i ia ra. Ko te whai i nga ī-mēra i roto i te raupapa o nga tūmau, te whakatau ranei i te raupapa tika o nga huihuinga ma te whakamahi i nga konae rangitaki i runga i nga kaihautu kua marara matawhenua, ka ngawari ake mena ka tukutahi nga rorohiko i te waa.

Kotahi te wa - he maha nga haora

Me whai whakaaro nga kaihautu Linux he wa punaha me te wa RTC. Ko te RTC (Real Time Clock) he ingoa rerekee me te kore tino tika mo te karaka taputapu.

Ka haere tonu te karaka taputapu ahakoa ka weto te rorohiko, ma te whakamahi i te pākahiko i runga i te papahoa papaa. Ko te mahi matua a te RTC ko te penapena i te waa karekau he hononga ki te tūmau wa e waatea ana. I nga ra e kore e taea te hono atu ki tetahi tuumau wa i runga i te Ipurangi, me whai karaka tika o roto o ia rorohiko. Me uru atu nga punaha whakahaere ki te RTC i te wa whakaoho me te kaiwhakamahi ki te whakarite a-ringa i te wa punaha ma te whakamahi i te atanga whirihoranga taputapu BIOS kia mohio ai he tika.

Karekau nga karaka taputapu e mohio ana ki te kaupapa o nga waahi waahi; Ko te RTC anake e pupuri ana i te wa, kaua ko te rohe wa, te whakatiki ranei mai i te UTC (Coordinated Universal Time, e mohiotia ana ko GMT, Greenwich Mean Time ranei). Ka taea e koe te whakauru RTC ma te whakamahi i tetahi taputapu ka hipokina e ahau i muri mai i tenei tuhinga.

Ko te wa o te punaha ko te wa ka whakaatuhia e te OS i runga i te karaka GUI i runga i to papamahi, i te putanga o te whakahau ra, i nga tohu wa o nga raarangi. Ka pa ano tenei ki te wa ka hangaia nga konae, te whakarereke me te whakatuwhera.

Kei te whaarangi tangata mo rtc he korero katoa mo te RTC me te karaka punaha.

He aha te NTP?

Ko nga rorohiko huri noa i te ao ka whakamahi i te NTP (Kawa Waa Whatunga) ki te tukutahi i o raatau waa ki nga karaka tohutoro paerewa i runga i te Ipurangi ma te whakamahi i te rarangi o nga tūmau NTP. Ko nga kaitoro wa matua kei te paparanga 1 ka hono atu ki nga momo ratonga wa a-motu i te paparanga 0 ma te amiorangi, te reo irirangi, tae noa ki nga pouwhanga i runga i nga raina waea. Ko nga ratonga wa apa 0 ka taea he karaka ngota, he kaikawe reo irirangi e arohia ana ki nga tohu ka tukuna e nga karaka ngota, he kaiwhiwhi GPS ranei e whakamahi ana i nga tohu karaka tino tika ka tukuna e nga peerangi GPS.

Ko te nuinga o nga kaitoro tohutoro he maha nga mano nga kaitoro NTP stratum 2 e tuwhera ana ki te marea. He maha nga whakahaere me nga kaiwhakamahi (ko ahau ano) me te tini o nga kaihautu e hiahia ana ki te tūmau NTP ka whiriwhiri ki te whakarite i o raatau ake tuunga wa kia kotahi anake te kaihautu o te rohe ka uru ki te papa 2, 3 ranei. tūmau wā. Mo taku kupenga kainga, he paparanga 3 tenei.

Nga momo whakatinanatanga o NTP

Ko te whakatinanatanga taketake o NTP he ntpd. Katahi ka honoa e nga mea hou e rua, chronyd me systemd-timesyncd. Ko enei e toru ka tukutahi i te wa kaihautu o te rohe me tetahi tūmau wa NTP. Ko te ratonga systemd-timesyncd kaore i te pono penei i te chronyd, engari he pai mo te nuinga o nga kaupapa. Ki te kore te RTC i te tukutahi, ka taea e ia te whakatika haere i te wa o te punaha ki te tukutahi me te tūmau NTP ka paheke te wa o te punaha rohe. Ko te ratonga systemd-timesync e kore e taea te whakamahi hei tūmau wa.

Chrony he whakatinanatanga o te NTP e rua nga kaupapa: ko te chronyd daemon me tetahi atanga raina whakahau e kiia nei ko chronyc. Kei a Chrony etahi ahuatanga he mea nui i roto i te maha o nga keehi:

  • Ka taea e Chrony te tukutahi me te tūmau wa tere ake i te ratonga ntpd tawhito. He pai tenei mo nga rorohiko rorohiko, papamahi ranei kaore e mahi i nga wa katoa.
  • Ka taea e ia te utu mo nga rereketanga o te karaka, penei i te wa e moe ana te kaihautu ki te moe, ka uru ranei ki te momo moe, ka huri ranei te karaka na te tere o te karaka, ka whakaheke i nga karaka i nga kawenga iti.
  • Ka whakatau i nga raru o te waa e pa ana ki te hononga whatunga korekore, ki te kupenga whatunga ranei.
  • Ka whakatauhia te roa o te whatunga.
  • Whai muri i te tukutahi wa tuatahi, kaore a Chrony e aukati i te karaka. Ka whakarato tenei i nga waahi waahi pumau mo te maha o nga ratonga punaha me nga tono.
  • Ka taea e Chrony te mahi ahakoa kaore he hononga whatunga. I tenei keehi, ka taea te whakahou a-ringa te kaihautu o te rohe, te tūmau ranei.
  • Ka taea e Chrony te mahi hei tūmau NTP.

Ano ano, ko te NTP he kawa ka taea te whakatinana i runga i te kaihautu Linux ma te whakamahi i te Chrony, systemd-timesyncd ranei.

Ko te NTP, Chrony, me te systemd-timesyncd RPM e waatea ana i roto i nga rehitatanga Fedora paerewa. Ko te systemd-udev RPM he kaiwhakahaere takahanga kernel kua whakauruhia ma te taunoa ki Fedora, engari he mea kee.

Ka taea e koe te whakauru i nga mea e toru ka huri i waenga i a raatau, engari ka nui ake te mate o te mahunga. Na he pai ake kia kaua. Ko nga putanga hou o Fedora, CentOS, me RHEL kua neke ki Chrony hei whakatinanatanga taunoa, a kei a raatau ano te systemd-timesyncd. Ki taku mohio he pai te mahi a Chrony, he pai ake te atanga atu i te ratonga NTP, he maha atu nga korero me te mana whakahaere, ka tino koa nga kaiwhakahaere punaha.

Te whakakore i nga Ratonga NTP

Kei te whakahaere tonu pea te ratonga NTP i runga i to kaihautu. Ki te pera, me whakakore e koe i mua i te huri ki tetahi atu mea. Kua chronyd ahau i te rere na reira i whakamahia e au nga whakahau e whai ake nei hei whakamutu me te whakakore. Whakahaerehia nga whakahau e tika ana mo nga daemon NTP e whakahaerehia ana e koe i runga i to kaihautu:

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

Tirohia kua mutu te ratonga me te mono:

[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 ~]#

Taki tūnga i mua i te whakarewatanga

Ko te mana tukutahi karaka karaka ka taea e koe te whakatau mena kei te whakahaere te ratonga NTP. I te mea kaore ano koe kia timata i te NTP, ka tohu te whakahau-timesync-status ki tenei:

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

Ko te tono mana tika e whakarato ana i nga korero nui. Hei tauira, ko te tono timedatectl kaore he tautohetohe, he whiringa ranei ka mahia te tono-iti ma te taunoa:

[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 ~]#

Ma tenei ka hoatu te wa rohe mo to kaihautu, te wa UTC, me te wa RTC. I tenei keehi, kua whakaritea te wa punaha ki te rohe wa Amerika / New_York (TZ), kua whakaritea te RTC ki te wa i roto i te rohe wa rohe, a, kaore i te kaha te ratonga NTP. Kua timata te wa RTC ki te kotiti paku mai i te wa punaha. He mea noa tenei mo nga punaha kaore ano nga karaka i tukutahia. Ko te nui o te utu i runga i te kaihautu ka whakawhirinaki ki te wa kua pahemo mai i te tukutahitanga whakamutunga o te punaha.

I tae mai ano he whakatupato mo te whakamahi i te wa rohe mo te RTC - e pa ana tenei ki nga huringa rohe wa me nga tautuhinga DST. Mena ka wetohia te rorohiko i te wa e tika ana kia whakarereketia, kaore te RTC e huri. Engari mo nga kaitoro me etahi atu kaihautu e rere ana i te karaka, ehara tenei i te raru. I tua atu, ko nga ratonga e whakarato ana i te tukutahi wa NTP ka whakatika i te wa o te kaihautu i te wahanga whakaoho tuatahi, na ka tika ano te wa i muri i te mutunga o te whakaoho.

Te whakarite i te rohe wa

I te nuinga o te wa, ka tohua e koe te rohe waahi i te wa o te whakaurunga karekau he mahi ki te whakarereke i muri mai. Engari, he wa ano ka hiahia koe ki te whakarereke i te waahi waahi. He maha nga taputapu ka taea te awhina. Ka whakamahi a Linux i nga konae rohe waahi hei whakatau i te rohe waahi o te kaihautu. Ko enei kōnae kei roto i te whaiaronga /usr/share/zoneinfo. Ma te taunoa, mo taku rohe waahi, ka whakatauhia e te punaha tenei: /etc/localtime -> ../usr/share/zoneinfo/America/New_York. Engari kaore koe e hiahia ki te mohio ki nga mahi tinihanga hei whakarereke i te waahi waahi.

Ko te mea nui ko te mohio ki te ingoa rohe waahi mana mo to waahi me te whakahau e pa ana. Me kii e hiahia ana koe ki te huri i te rohe wa ki 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>

Inaianei ka taea e koe te whakarite i te rohe waahi. I whakamahia e ahau te whakahau ra ki te tirotiro mo nga huringa, engari ka taea hoki e koe te whakamahi 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 ~]#

Inaianei ka taea e koe te huri i te rohe wa o to kaihautu ki te wa rohe.

systemd-timesyncd

Ko te systemd timesync daemon e whakarato ana i te whakatinanatanga NTP he ngawari ki te whakahaere i roto i te horopaki systemd. Kua whakauruhia ma te taunoa ki Fedora me Ubuntu. Heoi, ka tiimata noa i runga i te Ubuntu. Kaore au i te tino mohio mo etahi atu tohatoha. Ka taea e koe te tirotiro mo koe ake:

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

Te whirihora i te systemd-timesyncd

Ko te konae whirihoranga mo systemd-timesyncd ko /etc/systemd/timesyncd.conf. He kōnae ngawari tenei he iti ake nga whiringa ka whakahohea i nga NTP tawhito me nga ratonga chronyd. Anei nga korero o tenei konae (kaore he whakarereketanga) i runga i taku 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

Ko te waahanga anake kei roto, haunga nga korero, ko te [Wā]. Ko era atu rarangi katoa e korero ana. Koinei nga uara taunoa, kaua e whakarereketia (mehemea ka whai take koe). Mena karekau he tūmau wa NTP kua tautuhia ki te raina NTP=, ka taunoa a Fedora ki te tūmau wā Fedora takahuri. I te nuinga o te wa ka taapirihia e au taku tūmau wa:

NTP=myntpserver

E whakahaere ana i te timesync

Ka taea e koe te tiimata me te mahi systemd-timesyncd penei:

[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 ~]#

Te whakarite i te karaka taputapu

Anei te ahua o te ahuatanga i muri i te whakahaere i te 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 te timatanga, ko te rereketanga i waenga i te RTC me te wa o te rohe (EDT) he iti iho i te hekona, ka piki ake te rereketanga ma etahi atu hēkona e rua i roto i nga ra e whai ake nei. I te mea karekau he ariā o nga rohe wa i roto i te RTC, me mahi whakataurite te whakahau timedatectl hei whakatau i te rohe wa tika. Ki te kore te taima RTC i te rite ki te wa o te rohe, kare ano hoki e rite ki te rohe wa rohe.

I te rapu korero ake, ka tirohia e ahau te mana o te systemd-timesync ka kitea tenei:

[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]#

Tirohia te karere rangitaki e kii ana kaore ano te wa o te punaha i whakaritea, kua tautuhia ranei. Ko te ratonga Timesync e whakatakoto ana i te wa o te punaha i runga i te tohu waahi. Kei te pupurihia nga tohu wa e te daemon timesync ka hangaia i runga i nga tukutahi angitu katoa.

Ko te whakahau timedatectl kaore he huarahi ki te tango i te uara o te karaka taputapu mai i te karaka punaha. Ka taea anake te tautuhi i te wa me te ra mai i te uara i whakauruhia ki te raina whakahau. Ka taea e koe te whakarite i te RTC ki te uara rite ki te wa punaha ma te whakamahi i te whakahau 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

Ko te kōwhiringa --localtime e whakaatu ana i te karaka taputapu ki te whakaatu i te wa o te rohe, ehara i te UTC.

He aha te take ka hiahia koe ki te RTC?

Ko te whakatinanatanga o te NTP ka tautuhi i te karaka punaha i te wa whakaoho. Na he aha te RTC? Ehara tenei i te tino pono: ka puta noa tenei mena he hononga whatunga koe ki te tuumau wa. Heoi, he maha nga punaha kaore e uru ki tetahi hononga whatunga i nga wa katoa, na reira ka whai hua te karaka taputapu ma Linux hei whakarite i te waa o te punaha. He pai ake tenei i te tautuhi-a-ringa i te waa, ahakoa ka rereke pea i te waa tuuturu.

mutunga

Kua arotakehia e tenei tuhinga etahi taputapu mo te raweke i te ra, te wa, me nga waahi waahi. Ko te taputapu systemd-timesyncd e whakarato ana i te kiritaki NTP ka taea te tukutahi i te wa i runga i te kaihautu rohe me te tūmau NTP. Heoi, karekau a systemd-timesyncd e whakarato ratonga tūmau, na, ki te hiahia koe ki tetahi tūmau NTP i runga i to whatunga, me whakamahi koe i tetahi atu mea, penei i a Chrony, hei mahi hei tūmau.

He pai ake ki ahau kia kotahi te whakatinanatanga mo tetahi ratonga i runga i taku whatunga, na reira ka whakamahi ahau i a Chrony. Mena karekau koe e hiahia ki tetahi tūmau NTP rohe, ki te kore koe e whakaaro ki te whakamahi i a Chrony hei tūmau me te systemd-timesyncd hei kaihoko SNTP. I muri i nga mea katoa, kaore he take ki te whakamahi i nga waahanga taapiri o Chrony hei kaihoko mena ka makona koe ki nga mahi a systemd-timesyncd.

Ko tetahi atu tuhipoka: kaore koe e hiahia ki te whakamahi i nga taputapu punaha hei whakatinana i te NTP. Ka taea e koe te whakamahi i tetahi putanga tawhito o ntpd, Chrony, tetahi atu whakatinanatanga NTP ranei. I muri i nga mea katoa, ko te systemd he maha nga ratonga; he maha nga mea ka taea e koe te whakakore me te whakamahi i tetahi atu mea. Ehara tenei i te taniwha monolithic nui. Kaore pea koe e pai ki te punaha me etahi waahanga ranei, engari me whakatau koe i runga i te mohio.

He pai ki ahau te whakatinanatanga o te NTP a systemd, engari he pai ake ki a au a Chrony na te mea he pai ake ki aku hiahia. Ko Linux, peepi -)

I runga i nga Tika Tika

Ka tukuna e VDSina tūmau mo tetahi mahi, he kowhiringa nui o nga punaha whakahaere mo te whakaurunga aunoa, ka taea te whakauru i tetahi OS mai i a koe ake ISO, hāneanea paewhiri mana ake whanaketanga me te utu o ia ra. Kia maumahara kei a tatou he kaimau tonu e kore e mutu 😉

Tukutahi Waa Linux: NTP, Chrony me te systemd-timesyncd

Source: will.com

Tāpiri i te kōrero