Kulunzanitsa Nthawi ya Linux: NTP, Chrony ndi systemd-timesyncd

Kulunzanitsa Nthawi ya Linux: NTP, Chrony ndi systemd-timesyncd
Anthu ambiri amasunga nthawi. Timadzuka pa nthawi yake kuti timalize miyambo yathu ya m’mawa ndi kupita kuntchito, kupuma nkhomaliro, kukumana ndi masiku omalizira a polojekiti, kukondwerera masiku obadwa ndi maholide, kukwera ndege, ndi zina zotero.

Komanso: ena aife timatengeka ndi nthawi. Wotchi yanga imayendetsedwa ndi mphamvu ya dzuwa ndipo imapeza nthawi yolondola kuchokera ku National Institute of Standards and Technology (NETE) kupita ku Fort Collins, Colorado kudzera pa wailesi ya longwave WWVB. Zizindikiro za nthawi zimalumikizidwa ndi wotchi ya atomiki, yomwe ilinso ku Fort Collins. Fitbit yanga ikugwirizana ndi foni yanga yomwe ikugwirizana ndi seva NTP, yomwe pamapeto pake imalumikizana ndi wotchi ya atomiki.

Zipangizo zimasunganso nthawi

Pali zifukwa zambiri zomwe zida zathu ndi makompyuta amafunikira nthawi yolondola. Mwachitsanzo, m'mabanki, misika yamasheya, ndi mabizinesi ena azachuma, kugulitsana kuyenera kuchitika mwadongosolo loyenera, ndipo kutsata nthawi yolondola ndikofunikira pa izi.

Mafoni athu, matabuleti, magalimoto, makina a GPS ndi makompyuta onse amafunikira nthawi ndi masiku olondola. Ndikufuna wotchi yapakompyuta yanga kuti iwonetse nthawi yoyenera. Ndikufuna kuti zikumbutso ziziwonekera pa kalendala yanga yapafupi panthawi yoyenera. Nthawi yolondola imatsimikiziranso kuti ntchito za cron ndi systemd zikuyenda nthawi yoyenera.

Tsiku ndi nthawi ndizofunikanso pakudula mitengo, kotero ndizosavuta kupeza zipika zina malinga ndi tsiku ndi nthawi. Mwachitsanzo, nthawi ina ndinagwira ntchito ku DevOps (sinkatchedwa kuti panthawiyo) ndipo ndinali kukhazikitsa maimelo ku North Carolina. Tinkakonda kukonza maimelo opitilira 20 miliyoni patsiku. Kutsata maimelo kudzera pa maseva angapo, kapena kudziwa kutsatana kwenikweni kwa zochitika pogwiritsa ntchito mafayilo a log pa omwe amwazikana, kungakhale kosavuta ngati makompyutawo alumikizidwa munthawi yake.

Nthawi imodzi - maola ambiri

Makamu a Linux ayenera kuganizira kuti pali nthawi yadongosolo ndi nthawi ya RTC. RTC (Real Time Clock) ndi dzina lachilendo komanso losalondola kwambiri la wotchi ya hardware.

Wotchi ya hardware imayenda mosalekeza ngakhale kompyuta itazimitsidwa, pogwiritsa ntchito batri pa bolodi la makina. Ntchito yaikulu ya RTC ndikusunga nthawi pamene kugwirizana kwa seva ya nthawi sikupezeka. M'masiku omwe kunali kosatheka kulumikizana ndi seva yanthawi pa intaneti, kompyuta iliyonse iyenera kukhala ndi wotchi yolondola yamkati. Machitidwe ogwiritsira ntchito amayenera kupeza RTC pa nthawi yoyambira ndipo wogwiritsa ntchitoyo amayenera kuyika nthawi yadongosolo pogwiritsa ntchito mawonekedwe a BIOS hardware kuti atsimikizire kuti zinali zolondola.

Mawotchi a Hardware samamvetsetsa lingaliro la magawo a nthawi; RTC imangosunga nthawi, osati nthawi kapena kuchotsera ku UTC (Coordinated Universal Time, yomwe imadziwikanso kuti GMT kapena Greenwich Mean Time). Mutha kukhazikitsa RTC pogwiritsa ntchito chida chomwe ndifotokoza pambuyo pake m'nkhaniyi.

Nthawi yamakina ndi nthawi yomwe OS imawonetsa pa wotchi ya GUI pa desktop yanu, pakutulutsa kwa tsiku lolamula, mumayendedwe amitengo. Izi zimagwiranso ntchito pamene mafayilo amapangidwa, kusinthidwa, ndi kutsegulidwa.

Patsamba munthu kwa rtc pali kufotokozera kwathunthu kwa RTC ndi wotchi yadongosolo.

NTP ndi chiyani?

Makompyuta padziko lonse lapansi amagwiritsa ntchito NTP (Network Time Protocol) kuti agwirizanitse nthawi yawo ndi mawotchi odziwika pa intaneti pogwiritsa ntchito ma seva a NTP. Ma seva anthawi yayikulu ali pagawo 1 ndipo amalumikizidwa mwachindunji ndi mautumiki osiyanasiyana anthawi yapadziko lonse lapansi osanjikiza 0 kudzera pa satellite, wailesi kapena ma modemu pama foni. Mawotchi anthawi ya Layer 0 akhoza kukhala wotchi ya atomiki, cholandirira wailesi chomwe chimalumikizidwa ndi mawotchi otumizidwa ndi mawotchi a atomiki, kapena cholandila GPS chomwe chimagwiritsa ntchito mawotchi olondola kwambiri otumizidwa ndi ma satellite a GPS.

Ma seva ambiri amawu ali ndi ma seva masauzande angapo a NTP stratum 2 otsegulidwa kwa anthu. Mabungwe ambiri ndi ogwiritsa ntchito (inenso ndikuphatikizapo) omwe ali ndi makamu ambiri omwe amafunikira seva ya NTP amasankha kukhazikitsa ma seva awo a nthawi kotero kuti msilikali m'modzi yekha wa m'deralo amapeza stratum 2 kapena 3. Kenako amakonza ma node otsala pa intaneti kuti agwiritse ntchito malo amderalo. seva ya nthawi. Pankhani ya netiweki yanga yakunyumba, iyi ndi seva yosanjikiza 3.

Kukhazikitsa kosiyanasiyana kwa NTP

Kukhazikitsa koyambirira kwa NTP ndi ntpd. Kenako idalumikizidwa ndi awiri atsopano, chronyd ndi systemd-timesyncd. Onse atatu amalunzanitsa nthawi yolandila yakomweko ndi seva yanthawi ya NTP. Ntchito ya systemd-timesyncd siyodalirika ngati chronyd, koma ndiyabwino pazolinga zambiri. Ngati RTC ili kunja kwa kulunzanitsa, ikhoza kusintha pang'onopang'ono nthawi ya dongosolo kuti igwirizane ndi seva ya NTP pamene nthawi ya m'deralo imayenda pang'ono. Ntchito ya systemd-timesync singagwiritsidwe ntchito ngati seva ya nthawi.

Chrony ndikukhazikitsa kwa NTP komwe kumakhala ndi mapulogalamu awiri: chronyd daemon ndi mawonekedwe a mzere wa malamulo otchedwa chronyc. Chrony ili ndi zinthu zina zomwe ndizofunikira nthawi zambiri:

  • Chrony imatha kulunzanitsa ndi seva yanthawi mwachangu kuposa ntchito yakale ya ntpd. Izi ndizabwino pama laputopu kapena ma desktops omwe sagwira ntchito nthawi zonse.
  • Ikhoza kubwezera kusinthasintha kwa mawotchi, monga pamene wolandirayo amagona kapena kulowa m'malo ogona, kapena pamene wotchi imasintha chifukwa cha kuthamanga kwafupipafupi, komwe kumachepetsa mawotchi pa katundu wochepa.
  • Imathetsa mavuto a nthawi okhudzana ndi kulumikizana kosakhazikika kwa maukonde kapena kusokonekera kwa maukonde.
  • Imawongolera kuchedwa kwa maukonde.
  • Pambuyo pa kulunzanitsa koyamba, Chrony samayimitsa koloko. Izi zimapereka nthawi yokhazikika komanso yosasinthika pazantchito zambiri zamakina ndi ntchito.
  • Chrony imatha kugwira ntchito ngakhale popanda intaneti. Pankhaniyi, wolandila wamba kapena seva akhoza kusinthidwa pamanja.
  • Chrony imatha kukhala ngati seva ya NTP.

Apanso, NTP ndi protocol yomwe imatha kukhazikitsidwa pa Linux host pogwiritsa ntchito Chrony kapena systemd-timesyncd.

Ma NTP, Chrony, ndi systemd-timesyncd RPMs amapezeka m'malo osungira a Fedora. Systemd-udev RPM ndi woyang'anira zochitika za kernel zomwe zimayikidwa mwachisawawa pa Fedora, koma ndizosankha.

Mutha kukhazikitsa onse atatu ndikusintha pakati pawo, koma izi zipangitsa mutu wowonjezera. Choncho ndi bwino kuti asatero. Zotulutsa zamakono za Fedora, CentOS, ndi RHEL zasamukira ku Chrony monga kukhazikitsa kosasintha, komanso ali ndi systemd-timesyncd. Ndikupeza kuti Chrony ikugwira ntchito bwino, imapereka mawonekedwe abwinoko kuposa ntchito ya NTP, imapereka zambiri zambiri ndikuwongolera, zomwe oyang'anira dongosolo angasangalale nazo.

Kuyimitsa Ntchito za NTP

Ntchito ya NTP ikhoza kukhala ikugwira ntchito pa omwe akukulandirani. Ngati ndi choncho, muyenera kuyimitsa musanasinthe china. Ndinali ndi chronyd kuthamanga kotero ndidagwiritsa ntchito malamulo otsatirawa kuyimitsa ndikuyimitsa. Thamangani malamulo oyenera a daemon iliyonse ya NTP yomwe mukuyendetsa pa omwe akukulandirani:

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

Onetsetsani kuti ntchitoyo yayimitsidwa ndikuyimitsidwa:

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

Onani momwe zinthu ziliri musanayambe

Kulumikizana kwa wotchi yamakina kumakupatsani mwayi wodziwa ngati ntchito ya NTP ikugwira ntchito. Popeza simunayambe NTP pano, lamulo la timesync-status likuwonetsa izi:

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

Pempho lachindunji limapereka chidziwitso chofunikira. Mwachitsanzo, lamulo la timedatectl lopanda mkangano kapena zosankha limapereka subcommand mwachisawawa:

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

Izi zikupatsirani nthawi yakunyumba kwanu, nthawi ya UTC, ndi nthawi ya RTC. Pamenepa, nthawi yadongosolo imayikidwa ku nthawi ya America / New_York (TZ), RTC imayikidwa ku nthawi ya nthawi yapafupi, ndipo ntchito ya NTP sikugwira ntchito. Nthawi ya RTC yayamba kupatuka pang'ono kuchokera ku nthawi yadongosolo. Izi ndizabwinobwino pamakina omwe mawotchi awo sanalumikizidwe. Kuchuluka kwa kuchotsera kwa wolandirayo kumadalira nthawi yomwe yadutsa kuyambira pomwe dongosolo lidalumikizidwa komaliza.

Tidalandiranso chenjezo lokhudza kugwiritsa ntchito nthawi yaku RTC - izi zikugwiranso ntchito pakusintha kwanthawi ndi zokonda za DST. Ngati kompyuta yazimitsidwa pakufunika kusintha, RTC sidzasintha. Koma kwa ma seva kapena makamu ena omwe amayendayenda nthawi yonseyi, izi sizovuta konse. Kuphatikiza apo, ntchito iliyonse yomwe imapereka kulumikizana kwa nthawi ya NTP idzasintha nthawi ya wolandilayo pagawo loyambira, kotero nthawiyo ikhala yolondola pambuyo poyambira.

Kukhazikitsa zone ya nthawi

Nthawi zambiri, mumatchula nthawi yanthawi yoyikapo ndipo mulibe ntchito yosintha pambuyo pake. Komabe, pali nthawi zina zomwe muyenera kusintha nthawi. Pali zida zingapo zomwe zingathandize. Linux imagwiritsa ntchito mafayilo anthawi yake kuti adziwe nthawi yapafupi ya wolandira. Mafayilo awa ali m'ndandanda /usr/share/zoneinfo. Mwachikhazikitso, kwa nthawi yanga yanthawi, dongosololi limalongosola izi: /etc/localtime -> ../usr/share/zoneinfo/America/New_York. Koma simuyenera kudziwa zidziwitso zotere kuti musinthe nthawi.

Chinthu chachikulu ndikudziwa dzina lovomerezeka la nthawi ya malo anu ndi lamulo lofanana. Tiyerekeze kuti mukufuna kusintha nthawi kukhala 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>

Tsopano mutha kukhazikitsa zone yanthawi. Ndinagwiritsa ntchito tsiku lolamula kuti muwone zosintha, koma mutha kugwiritsanso ntchito 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 ~]#

Tsopano mutha kusintha zone yanthawi ya omwe akukulandirani kuti abwerere kunthawi yakwanuko.

systemd-timesyncd

The systemd timesync daemon imapereka kukhazikitsa kwa NTP komwe ndikosavuta kuwongolera pamachitidwe a systemd. Imayikidwa mwachisawawa pa Fedora ndi Ubuntu. Komabe, zimangoyambira pa Ubuntu. Sindikutsimikiza za magawo ena. Mutha kudzifufuza nokha:

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

Kukonza systemd-timesyncd

Fayilo yosinthira ya systemd-timesyncd ndi /etc/systemd/timesyncd.conf. Ili ndi fayilo losavuta lomwe lili ndi zosankha zochepa zomwe zathandizidwa kuposa ntchito zakale za NTP ndi chronyd. Nazi zomwe zili mufayiloyi (popanda kusintha kwina) pa Fedora VM yanga:

#  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

Gawo lokhalo lomwe lili ndi, kupatula ndemanga, ndi [Nthawi]. Mizere ina yonse yaperekedwa. Izi ndiye zokhazikika ndipo siziyenera kusinthidwa (pokhapokha mutakhala ndi chifukwa). Ngati mulibe seva ya nthawi ya NTP yofotokozedwa mu NTP = mzere, Fedora imasinthira ku seva yanthawi ya Fedora yobwerera. Nthawi zambiri ndimawonjezera seva yanga yanthawi:

NTP=myntpserver

Kuthamanga kwa timesync

Mutha kuyambitsa ndikupanga systemd-timesyncd kugwira ntchito motere:

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

Kukhazikitsa wotchi ya hardware

Izi ndi zomwe zimawoneka pambuyo poyendetsa 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    

Poyambirira, kusiyana pakati pa RTC ndi nthawi yakomweko (EDT) sikuchepera sekondi imodzi, ndipo kusiyana kumawonjezeka ndi masekondi angapo masiku angapo otsatira. Popeza palibe lingaliro la magawo a nthawi mu RTC, lamulo la timedatectl liyenera kufananitsa kuti mudziwe nthawi yoyenera. Ngati nthawi ya RTC sikufanana ndendende ndi nthawi yakumaloko, ndiye kuti sizikugwirizana ndi nthawi yakumaloko.

Mukuyang'ana zambiri, ndidayang'ana momwe systemd-timesync ndidapeza izi:

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

Zindikirani uthenga wa chipika womwe umanena kuti nthawi yadongosolo sinakhazikitsidwe kapena yakhazikitsidwanso. Ntchito ya Timesync imayika nthawi yadongosolo kutengera sitampu yanthawi. Mastampu anthawi amasungidwa ndi daemon ya timesync ndipo amapangidwa pamalumikizidwe aliwonse opambana.

Lamulo la timedatectl lilibe njira yotengera mtengo wa wotchi ya hardware kuchokera pa wotchi yadongosolo. Itha kungoyika nthawi ndi tsiku kuchokera pamtengo womwe walowa pamzere wolamula. Mutha kukhazikitsa RTC pamtengo wofanana ndi nthawi yadongosolo pogwiritsa ntchito lamulo la 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

Njira --localtime imauza wotchi ya hardware kuti iwonetse nthawi yakomweko, osati UTC.

Chifukwa chiyani mukufunikira RTC konse?

Kukhazikitsa kulikonse kwa NTP kudzakhazikitsa wotchi yoyambira panthawi yoyambira. Ndipo chifukwa chiyani RTC? Izi sizowona kwathunthu: izi zidzangochitika ngati muli ndi intaneti ku seva ya nthawi. Komabe, makina ambiri sakhala ndi mwayi wolumikizana ndi netiweki, kotero wotchi ya Hardware ndiyothandiza kuti Linux agwiritse ntchito kukhazikitsa nthawi yadongosolo. Izi ndi zabwino kuposa kuyika nthawi pamanja, ngakhale ingapatuka pa nthawi yeniyeni.

Pomaliza

Nkhaniyi yawunikiranso zida zina zosinthira deti, nthawi, ndi nthawi. Chida cha systemd-timesyncd chimapereka kasitomala wa NTP yemwe amatha kulunzanitsa nthawi pagulu lapafupi ndi seva ya NTP. Komabe, systemd-timesyncd siyimapereka seva, chifukwa chake ngati mukufuna seva ya NTP pamaneti yanu, muyenera kugwiritsa ntchito zina, monga Chrony, kuti mukhale ngati seva.

Ndimakonda kukhala ndi kukhazikitsa kamodzi pa ntchito iliyonse pa netiweki yanga, chifukwa chake ndimagwiritsa ntchito Chrony. Ngati simukufuna seva ya NTP yakomweko, kapena ngati mulibe vuto kugwiritsa ntchito Chrony ngati seva ndi systemd-timesyncd ngati kasitomala wa SNTP. Kupatula apo, palibe chifukwa chogwiritsa ntchito zowonjezera za Chrony ngati kasitomala ngati mukukhutira ndi magwiridwe antchito a systemd-timesyncd.

Chidziwitso china: simukuyenera kugwiritsa ntchito zida za systemd kukhazikitsa NTP. Mutha kugwiritsa ntchito mtundu wakale wa ntpd, Chrony, kapena kukhazikitsa kwina kwa NTP. Kupatula apo, systemd imakhala ndi mautumiki ambiri; ambiri aiwo ndi osankha, kotero mutha kuzimitsa ndikugwiritsa ntchito zina m'malo mwake. Ichi si chilombo chachikulu cha monolithic. Simungakonde systemd kapena magawo ake, koma muyenera kupanga chisankho mwanzeru.

Ndimakonda kukhazikitsa kwa systemd kwa NTP, koma ndimakonda Chrony chifukwa ikugwirizana ndi zosowa zanga bwino. Ndi Linux, mwana -)

Pa Ufulu Wotsatsa

VDSina amapereka ma seva a ntchito iliyonse, kusankha kwakukulu kwa machitidwe opangira makina opangira okha, ndizotheka kukhazikitsa OS iliyonse kuchokera kwa inu ISO, womasuka gulu lowongolera chitukuko chanu ndi malipiro a tsiku ndi tsiku. Kumbukirani kuti tili ndi ma seva amuyaya omwe alibe nthawi πŸ˜‰

Kulunzanitsa Nthawi ya Linux: NTP, Chrony ndi systemd-timesyncd

Source: www.habr.com

Kuwonjezera ndemanga