Linux Nguva Yekuwiriranisa: NTP, Chrony uye systemd-timesyncd

Linux Nguva Yekuwiriranisa: NTP, Chrony uye systemd-timesyncd
Vanhu vazhinji vanochengeta nguva. Isu tinomuka nenguva kuti tipedze tsika dzedu dzemangwanani toenda kubasa, kutora zororo remasikati, kusangana nenguva dzechirongwa, kupemberera mazuva ekuzvarwa nemazororo, kukwira ndege, zvichingodaro.

Uyezve: vamwe vedu vanobatikana nenguva. Wachi yangu inofambiswa nesimba rezuva uye inowana nguva chaiyo kubva kuNational Institute of Standards and Technology (NET) kuenda kuFort Collins, Colorado kuburikidza neredhiyo refu WWVB. Iwo masaini enguva anowiriraniswa neatomic wachi, zvakare iri paFort Collins. Fitbit yangu iri kuwiriranisa nefoni yangu iyo iri kuwiriranisa neseva NTP, iyo inozoenderana newachi yeatomu.

Midziyo inochengeta nguva zvakare

Pane zvikonzero zvakawanda nei midziyo yedu nemakomputa zvinoda nguva chaiyo. Semuenzaniso, mumabhangi, misika yemasheya, uye mamwe mabhizinesi emari, kutengeserana kunofanirwa kuitwa nenzira kwayo, uye kutevedzana kwenguva kwakakosha kune izvi.

Nharembozha dzedu, mahwendefa, mota, masisitimu eGPS nemakomputa zvese zvinoda nguva nemasetirwo emazuva chaiwo. Ndinoda wachi iri padesktop yekombuta yangu kuratidza nguva chaiyo. Ndinoda kuti zviyeuchidzo zvionekwe pakarenda yenzvimbo yangu panguva chaiyo. Nguva chaiyo inovimbisawo kuti cron uye systemd mabasa anomhanya panguva chaiyo.

Zuva uye nguva zvakakoshawo pakucheka matanda, saka zviri nyore kuwana mamwe matanda zvichienderana nezuva uye nguva. Semuenzaniso, ndakamboshanda muDevOps (yaisadanwa izvozvo panguva iyoyo) uye yakanga ichigadzira email system mudunhu reNorth Carolina. Taigara tichigadzira maemail anopfuura mamirioni makumi maviri pazuva. Kutsvaga mae-mail kuburikidza nenhevedzano yemaseva, kana kuona kutevedzana chaiko kwezviitiko uchishandisa faira regi pavaridzi vakapararira munzvimbo, zvinogona kuve nyore kana makomputa acho akawiriraniswa nenguva.

Imwe nguva - maawa akawanda

Linux mauto anofanirwa kufunga nezvekuti pane system nguva uye RTC nguva. RTC (Real Time Clock) izita risinganzwisisike uye risiri rakanyatsorongeka rewachi yehardware.

Iwachi yehardware inoenderera mberi kunyangwe komputa yakadzimwa, uchishandisa bhatiri pane system mamaboard. Basa guru reRTC nderekuchengetedza nguva kana yekubatanidza kune server yenguva isipo. Mumazuva apo zvakanga zvisingakwanisi kubatana nevhavha yenguva paInternet, kombiyuta imwe neimwe yaifanira kuva newachi yemukati yakarurama. Masisitimu ekushanda aifanira kuwana iyo RTC panguva yebhutsu uye mushandisi aifanira kuseta nemaoko nguva yekushandisa achishandisa BIOS hardware configuration interface kuti ave nechokwadi chekuti yaive chaiyo.

Hardware wachi haanzwisise pfungwa yenzvimbo dzenguva; RTC inongochengeta nguva, kwete nguva yenguva kana kumisa kubva kuUTC (Coordinated Universal Time, inozivikanwawo seGMT kana Greenwich Mean Time). Unogona kuisa RTC uchishandisa chishandiso chandichavhara gare gare mune ino chinyorwa.

Iyo nguva yehurongwa inguva iyo OS inoratidza pawachi yeGUI padesktop yako, mukubuda kweiyo date rairo, mumatampu ematanda. Izvi zvinoshandawo kune kana mafaera agadzirwa, akagadziridzwa, uye akavhurwa.

Pane peji murume we rtc pane tsanangudzo yakazara yeRTC uye system clock.

Chii chinonzi NTP?

Makomputa pasi rese anoshandisa NTP (Network Time Protocol) kuwiriranisa nguva yavo nemawachi akajairwa ereferensi paInternet vachishandisa hierarchy yemaseva eNTP. Iwo masevha enguva huru ari pa layer 1 uye akabatana zvakananga kune akasiyana siyana nyika masevhisi pa layer 0 kuburikidza nesetiraiti, redhiyo kana kunyange modemu pamusoro pemitsara yerunhare. Layer 0 nguva masevhisi anogona kunge ari wachi yeatomu, chigashi cheredhiyo chinotariswa kune masiginecha anofambiswa neatomu yewachi, kana GPS inogamuchira inoshandisa masaini ewachi echokwadi anofambiswa nemasatellite eGPS.

Iyo yakawanda yemaseva ereferenzi ane zviuru zvinoverengeka zveruzhinji NTP stratum 2 maseva akavhurika kune veruzhinji. Masangano mazhinji nevashandisi (ini pachangu ndakasanganisirwa) vane mauto akawanda anoda sevha yeNTP vanosarudza kumisa maseva avo enguva kuitira kuti muenzi mumwe chete wepanzvimbo awane stratum 2 kana 3. Vanobva vagadzirisa node dzakasara pamumbure kuti vashandise nharaunda. nguva server. Panyaya yenetiweki yangu yekumba, iyi ndeye layer 3 server.

Kuitwa kwakasiyana kweNTP

Kuitwa kwekutanga kweNTP ndeye ntpd. Yakazobatanidzwa nemaviri matsva, chronyd uye systemd-timesyncd. Ese ari matatu anowiriranisa iyo yemuno nguva yekutambira neNTP nguva server. Iyo systemd-timesyncd sevhisi haina kuvimbika senge chronyd, asi yakanaka zvakakwana kune zvakawanda zvinangwa. Kana iyo RTC isiri kuwiriraniswa, inogona zvishoma nezvishoma kugadzirisa iyo system nguva kuti ienderane neNTP server kana iyo yemuno system nguva ichidonha zvishoma. Iyo systemd-timesync sevhisi haigone kushandiswa sevhavha yenguva.

Chrony iko kuita kweNTP ine zvirongwa zviviri: iyo chronyd daemon uye yekuraira-mutsara interface inonzi chronyc. Chrony ine mamwe maficha anodiwa muzviitiko zvakawanda:

  • Chrony inogona kuwiriranisa nesevha yenguva nekukurumidza kupfuura iyo yekare ntpd sevhisi. Izvi zvakanakira malaptop kana desktops asingashande nguva dzese.
  • Inogona kutsiva kuchinja kwewachi, senge kana muenzi anorara kana kupinda mumodhi yekurara, kana wachi painochinja nekuda kwe frequency hopping, iyo inononoka wachi pakuremerwa kwakaderera.
  • Inogadzirisa matambudziko enguva ane chekuita nekusagadzikana network yekubatanidza kana network congestion.
  • Inogadzirisa kunonoka kwetiweki.
  • Mushure mekutanga kuwiriranisa nguva, Chrony haambomira wachi. Izvi zvinopa yakagadzikana uye inowirirana nguva dzenguva dzeakawanda sisitimu masevhisi uye maapplication.
  • Chrony inogona kushanda kunyangwe isina network yekubatanidza. Muchiitiko ichi, mugadziri wepanzvimbo kana sevha anogona kuvandudzwa nemaoko.
  • Chrony inogona kuita seNTP server.

Zvekare, NTP iprotocol inogona kuitwa pane Linux host uchishandisa Chrony kana systemd-timesyncd.

Iyo NTP, Chrony, uye systemd-timesyncd RPMs inowanikwa mune yakajairwa Fedora repositori. Iyo systemd-udev RPM ndeye kernel chiitiko maneja iyo inoisirwa nekusarudzika paFedora, asi inosarudzika.

Iwe unogona kuisa ese ari matatu uye chinja pakati pavo, asi izvi zvinogadzira imwe musoro musoro. Saka zviri nani kusadaro. Kuburitswa kwemazuva ano kweFedora, CentOS, uye RHEL kwatamira kuChrony seyakagadzika kuita, uye ivo zvakare vane systemd-timesyncd. Ini ndinowana Chrony ichishanda nemazvo, inopa chimiro chiri nani pane iyo NTP sevhisi, inopa ruzivo rwakawanda uye kutonga, izvo vatariri vehurongwa vachanakidzwa nazvo.

Kudzima masevhisi eNTP

Iyo NTP sevhisi inogona kunge yave kutoshanda pane yako yekugamuchira. Kana zvakadaro, unofanirwa kuidzima usati wachinja kune chimwe chinhu. Ndakanga ndine chronyd ichimhanya saka ndakashandisa mirairo inotevera kuti ndimise nekuidzima. Mhanya iyo yakakodzera mirairo kune chero NTP daemon yauri kuita pane yako host:

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

Tarisa kuti sevhisi yakamira uye yakavharwa here:

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

Tarisa mamiriro asati atanga

Iyo system wachi yekuwiriranisa mamiriro inokutendera iwe kuti uone kana iyo NTP sevhisi iri kushanda. Sezvo usati watanga NTP parizvino, iyo timesync-status command icharatidza pane izvi:

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

Chikumbiro chechimiro chakananga chinopa ruzivo rwakakosha. Semuenzaniso, iyo timedatectl yekuraira isina kupokana kana sarudzo inoita iyo mamiriro subcommand nekukasira:

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

Izvi zvinokupa iwe nguva yemuno yemugamuchiri wako, UTC nguva, uye RTC nguva. Muchiitiko ichi, nguva yehurongwa inogadzirirwa kuAmerica / New_York (TZ) nguva yenguva, iyo RTC inotarirwa kunguva munzvimbo yenguva yenguva, uye sevhisi yeNTP haisi kushanda. Iyo RTC nguva yatanga kutsauka zvishoma kubva panguva yehurongwa. Izvi zvakajairika kumasisitimu ane wachi dzisina kuwiriraniswa. Huwandu hwekubvisa pamugamuchiri hunoenderana nenguva yakapfuura kubva pakapedzisira kuwiriraniswa system.

Takagamuchirawo yambiro nezvekushandisa nguva yemuno yeRTC - izvi zvinoshanda kukuchinja kwenzvimbo uye DST marongero. Kana komputa ikadzimwa kana shanduko dzichida kuitwa, iyo RTC haizochinji. Asi kune maseva kana mamwe mauto anomhanya achitenderera wachi, iri harisi dambudziko zvachose. Pamusoro pezvo, chero sevhisi inopa NTP nguva yekuwiriranisa ichagadzirisa nguva yemuenzi panguva yekutanga chikamu chekutanga, saka nguva ichave yakarurama zvakare mushure mekutanga kwapera.

Kuisa nzvimbo yenguva

Kazhinji, iwe unotsanangura iyo nguva yenguva panguva yekuisa maitiro uye iwe hauna basa rekuchinja gare gare. Nekudaro, pane dzimwe nguva paunoda kushandura nzvimbo yenguva. Pane maturusi akawanda anogona kubatsira. Linux inoshandisa mafaera enguva kuona nguva yenzvimbo yeanotambira. Mafaira aya ari mudhairekitori /usr/share/zoneinfo. Nekumisikidza, yenguva yangu yenguva, sisitimu inoraira izvi: /etc/localtime -> ../usr/share/zoneinfo/America/New_York. Asi iwe haufanirwe kuziva zvinyengeri zvakadaro kuti uchinje nzvimbo yenguva.

Chinhu chikuru ndechekuziva iyo yepamutemo nguva yenguva zita renzvimbo yako uye inoenderana nekuraira. Ngatiti iwe unoda kushandura nzvimbo yenguva kuti ive 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>

Iye zvino unogona kuseta nzvimbo yenguva. Ndakashandisa iyo date command kutarisa shanduko, asi iwe unogona zvakare kushandisa 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 ~]#

Iye zvino unokwanisa kushandura nzvimbo yenguva yemugamuchiri wako kudzokera kunguva yemuno.

systemd-timesyncd

Iyo systemd timesync daemon inopa kuita kweNTP kuri nyore kubata mune systemd mamiriro. Iyo yakaiswa nekusarudzika paFedora uye Ubuntu. Nekudaro, inongotanga nekusarudzika paUbuntu. Handina chokwadi nezve kumwe kugovera. Unogona kuzvitarisa wega:

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

Kugadzirisa systemd-timesyncd

Iyo faira yekumisikidza ye systemd-timesyncd iri /etc/systemd/timesyncd.conf. Iri ifaira rakareruka rine mashoma sarudzo anogoneswa kupfuura yekare NTP uye chronyd masevhisi. Hezvino zviri mukati meiyi faira (pasina kumwe kugadziridzwa) pane yangu 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

Chikamu chega chainacho, kunze kwetsanangudzo, i[Nguva]. Mimwe mitsara yese inoratidzwa. Aya ndiwo maitiro akasarudzika uye haafanire kuchinjwa (kunze kwekunge uine chikonzero chekudaro). Kana iwe usina NTP yenguva sevha inotsanangurwa muNTP = mutsara, Fedora inosarudzika kune yekudzokera shure Fedora nguva sevha. Ini ndinowanzo wedzera nguva yangu server:

NTP=myntpserver

Kumhanya timesync

Unogona kutanga uye kuita systemd-timesyncd ishande seizvi:

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

Kuisa hardware wachi

Hezvino izvo mamiriro ezvinhu anotaridzika mushure mekumhanya 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    

Pakutanga, musiyano uripo pakati peRTC nenguva yemuno (EDT) ishoma pane sekondi, uye mutsauko unowedzera nemamwe masekonzi mashoma mumazuva mashoma anotevera. Sezvo pasina pfungwa yenzvimbo dzenguva muRTC, murairo wetimedatectl unofanirwa kuita kuenzanisa kuona nguva chaiyo yenguva. Kana iyo RTC nguva isinganyatsoenderana nenguva yemuno, saka haienderane nenguva yenzvimbo.

Ndichitsvaga rumwe ruzivo, ndakatarisa mamiriro e systemd-timesync ndikaona izvi:

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

Ziva irogi meseji inoti iyo system nguva haisati yaiswa kana kugadzikiswa patsva. Iyo Timesync sevhisi inoseta iyo system nguva zvichibva pane timestamp. Timestamps inochengetedzwa neiyo timesync daemon uye inogadzirwa pane ese akabudirira sync.

Iyo timedatectl command haina nzira yekutora kukosha kwewachi yehardware kubva kune system wachi. Inogona chete kuseta nguva uye zuva kubva pakukosha kwakapinda pamutsara wekuraira. Iwe unogona kuseta iyo RTC kune imwechete kukosha seyo system nguva uchishandisa iyo hwclock command:

[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

Iyo --localtime sarudzo inotaurira wachi yehardware kuratidza nguva yemuno, kwete UTC.

Sei uchida RTC zvachose?

Chero kuitwa kweNTP kuchaisa system wachi panguva yekutanga. Uye sei zvino RTC? Ichi hachisi chokwadi chakazara: izvi zvichaitika chete kana uine network yekubatanidza kune server yenguva. Nekudaro, masisitimu mazhinji haagare achiwana mukana wekubatanidza netiweki, saka wachi yehardware inobatsira Linux kushandisa kuseta system nguva. Izvi zviri nani pane kuseta nguva nemaoko, kunyangwe ichigona kutsauka kubva panguva chaiyo.

mhedziso

Chinyorwa ichi chaongorora mamwe maturusi ekugadzirisa misi, nguva, uye nguva. Iyo systemd-timesyncd chishandiso inopa mutengi weNTP anogona kuwiriranisa nguva pane yemuno host neNTP server. Nekudaro, systemd-timesyncd haipe sevhisi sevhisi, saka kana iwe uchida sevha yeNTP panetiweki yako, unofanirwa kushandisa chimwe chinhu, chakadai seChrony, kuita sevhavha.

Ini ndinosarudza kuve nekuita kamwe chete kune chero sevhisi panetiweki yangu, saka ini ndinoshandisa Chrony. Kana iwe usingade yemuno NTP sevha, kana kana usinganetse kushandisa Chrony sevha uye systemd-timesyncd seSNTP mutengi. Mushure mezvose, hapana chikonzero chekushandisa mamwe maficha eChrony semutengi kana iwe uchigutsikana nekushanda kwe systemd-timesyncd.

Chimwe chiziviso: haufanirwe kushandisa systemd maturusi kuita NTP. Unogona kushandisa yekare vhezheni yentpd, Chrony, kana imwe NTP kuita. Mushure mezvose, systemd ine nhamba huru yemasevhisi; mazhinji acho ndeokusarudza, saka unogona kudzima uye kushandisa chimwe chinhu panzvimbo. Iyi haisi hombe monolithic monster. Iwe unogona kusada systemd kana zvikamu zvayo, asi iwe unofanirwa kuita sarudzo ine ruzivo.

Ini ndinoda kuita kwesystemd kweNTP, asi ini ndinosarudza Chrony nekuti inokodzera zvandinoda zvirinani. ILinux, mucheche -)

Pamusoro pekodzero dzekutsvaga

VDSina inopa maseva kune chero basa, sarudzo yakakura yemashandisirwo ekugadzirisa otomatiki, zvinokwanisika kuisa chero OS kubva kune yako ISO, kusununguka control pan kuvandudza uye kubhadhara kwezuva nezuva. Rangarira kuti isu tine maseva ekusingaperi ayo anogara asina nguva πŸ˜‰

Linux Nguva Yekuwiriranisa: NTP, Chrony uye systemd-timesyncd

Source: www.habr.com

Voeg