Aiki tare Lokacin Linux: NTP, Chrony da tsarin lokaci-lokaci

Aiki tare Lokacin Linux: NTP, Chrony da tsarin lokaci-lokaci
Yawancin mutane suna kula da lokaci. Mu kan tashi a kan lokaci don kammala ayyukanmu na safe mu tafi aiki, hutun abincin rana, saduwa da ranar aiki, bikin ranar haihuwa da hutu, shiga jirgi, da sauransu.

Bugu da ƙari: wasun mu sun damu da lokaci. Agogona yana aiki da makamashin hasken rana kuma yana samun ingantaccen lokaci daga Cibiyar Matsayi da Fasaha ta ƙasa (NIST) zuwa Fort Collins, Colorado ta hanyar rediyo mai tsayi Farashin WWVB. Ana daidaita siginonin lokaci tare da agogon atomic, kuma suna a Fort Collins. My Fitbit yana daidaitawa da wayata wacce ke aiki tare da uwar garken NTP, wanda a ƙarshe yana aiki tare da agogon atomic.

Na'urori suna kiyaye lokaci kuma

Akwai dalilai da yawa da yasa na'urorinmu da kwamfutocinmu ke buƙatar ingantaccen lokaci. Misali, a cikin banki, kasuwannin hannun jari, da sauran kasuwancin hada-hadar kudi, dole ne a gudanar da hada-hadar a cikin tsari da ya dace, kuma ingantattun jeri na lokaci suna da matukar muhimmanci ga wannan.

Wayoyin mu, allunan, motoci, tsarin GPS da kwamfutoci duk suna buƙatar sahihan saitunan lokaci da kwanan wata. Ina son agogon da ke kan tebur ɗin kwamfuta ta ya nuna daidai lokacin. Ina son masu tuni su bayyana akan kalanda na gida a daidai lokacin. Lokacin daidai kuma yana tabbatar da cewa cron da ayyukan da aka tsara suna gudana a daidai lokacin.

Kwanan wata da lokaci su ma suna da mahimmanci don shiga, don haka yana da ɗan sauƙi don nemo wasu logs dangane da kwanan wata da lokaci. Alal misali, na taɓa yin aiki a DevOps (ba a kira shi ba a lokacin) kuma ina kafa tsarin imel a cikin jihar North Carolina. Mun kasance muna aiwatar da imel sama da miliyan 20 a rana. Bibiyar imel ta hanyar jerin sabobin, ko tantance ainihin jerin abubuwan da suka faru ta amfani da fayilolin log akan runduna da aka tarwatsa, na iya zama da sauƙi idan kwamfutoci daban-daban suna aiki tare cikin lokaci.

Lokaci daya - sa'o'i masu yawa

Masu runduna Linux dole ne suyi la'akari da cewa akwai lokacin tsarin da lokacin RTC. RTC (Real Time Clock) baƙon abu ne kuma ba daidai ba suna don agogon kayan aiki.

Agogon hardware yana ci gaba da gudana koda lokacin da kwamfutar ke kashe, ta yin amfani da baturin da ke kan tsarin motherboard. Babban aikin RTC shine adana lokaci lokacin da babu haɗin kai zuwa uwar garken lokaci. A zamanin da ba zai yiwu a haɗa zuwa uwar garken lokaci akan Intanet ba, kowace kwamfuta dole ne ta sami ingantaccen agogon ciki. Tsarukan aiki dole ne su sami damar yin amfani da RTC a lokacin taya kuma mai amfani dole ne ya saita lokacin tsarin da hannu ta amfani da tsarin daidaita kayan aikin BIOS don tabbatar da cewa daidai ne.

Agogon kayan masarufi ba sa fahimtar manufar yankunan lokaci; RTC yana adana lokacin ne kawai, ba yankin lokaci ko kashewa daga UTC (Haɗin kai Universal Time, wanda kuma aka sani da GMT ko Greenwich Mean Time). Kuna iya shigar da RTC ta amfani da kayan aiki wanda zan rufe daga baya a cikin wannan labarin.

Lokacin tsarin shine lokacin da OS ke nunawa akan agogon GUI akan tebur ɗinku, a cikin fitowar umarnin kwanan wata, a cikin tambarin rajistan ayyukan. Wannan kuma ya shafi lokacin da aka ƙirƙira, gyara, da buɗe fayiloli.

A shafi mutum don rtc akwai cikakken bayanin RTC da agogon tsarin.

Me ke tare da NTP?

Kwamfutoci a duk faɗin duniya suna amfani da NTP (Network Time Protocol) don daidaita lokacinsu tare da daidaitattun agogo a kan Intanet ta amfani da matsayi na sabar NTP. Babban sabar lokaci suna Layer 1 kuma ana haɗa su kai tsaye zuwa sabis na lokaci na ƙasa daban-daban a Layer 0 ta tauraron dan adam, rediyo ko ma modem ta layukan tarho. Sabis na lokaci na Layer 0 na iya zama agogon atomic, mai karɓar rediyo wanda aka kunna zuwa siginar da agogon atomatik ke watsawa, ko mai karɓar GPS wanda ke amfani da ingantattun sigina na agogo da tauraron dan adam GPS ke watsawa.

Galibin sabar abubuwan tunani suna da sabar NTP stratum 2 dubu da yawa buɗe ga jama'a. Ƙungiyoyi da masu amfani da yawa (na haɗa ni da kaina) tare da ɗimbin runduna waɗanda ke buƙatar uwar garken NTP sun zaɓi saita sabar lokaci don haka mai masaukin gida ɗaya ne kawai ya shiga stratum 2 ko 3. Sannan sai su saita ragowar nodes akan hanyar sadarwa don amfani da uwar garken lokacin gida . A yanayin sadarwar gida na, wannan sabar Layer 3 ce.

Daban-daban aiwatarwa na NTP

Asalin aiwatar da NTP shine ntpd. Sa'an nan kuma an haɗa shi da sababbi biyu, chronyd da systemd-timesyncd. Duk ukun suna aiki tare da lokacin masaukin gida tare da sabar lokacin NTP. Sabis na systemd-timesyncd ba abin dogaro bane kamar chronyd, amma yana da kyau isa ga yawancin dalilai. Idan RTC bai daidaita ba, sannu a hankali zai iya daidaita lokacin tsarin don aiki tare da uwar garken NTP lokacin da tsarin gida ya ɗan ɗanɗana. Ba za a iya amfani da sabis ɗin systemd-timesync azaman sabar lokaci ba.

Na zamani aiwatar da NTP ne wanda ya ƙunshi shirye-shirye guda biyu: chronyd daemon da layin umarni da ake kira chronyc. Chrony yana da wasu fasalulluka waɗanda ba makawa a lokuta da yawa:

  • Chrony na iya aiki tare da uwar garken lokaci da sauri fiye da tsohon sabis na ntpd. Wannan yana da kyau ga kwamfutar tafi-da-gidanka ko kwamfutar tafi-da-gidanka waɗanda ba sa aiki koyaushe.
  • Yana iya rama jujjuyawar agogo, kamar lokacin da mai gida ya yi barci ko ya shiga yanayin barci, ko kuma lokacin da agogon ya canza saboda yawan tsalle-tsalle, wanda ke rage saurin agogo a ƙananan lodi.
  • Yana magance matsalolin lokaci masu alaƙa da haɗin yanar gizo mara tsayayye ko cunkoson cibiyar sadarwa.
  • Yana daidaita jinkirin hanyar sadarwa.
  • Bayan farkon lokacin daidaitawa, Chrony baya tsayawa agogon. Wannan yana ba da kwanciyar hankali da daidaiton lokuta don yawancin ayyuka da aikace-aikace na tsarin.
  • Chrony na iya aiki koda ba tare da haɗin cibiyar sadarwa ba. A wannan yanayin, ana iya sabunta rundunar gida ko uwar garken da hannu.
  • Chrony na iya aiki azaman sabar NTP.

Har yanzu, NTP yarjejeniya ce da za a iya aiwatar da ita akan mai masaukin Linux ta amfani da Chrony ko systemd-timesyncd.

Ana samun NTP, Chrony, da tsarin RPMs-timesyncd a daidaitattun ma'ajin Fedora. Systemd-udev RPM mai sarrafa taron kwaya ne wanda aka shigar ta tsohuwa akan Fedora, amma na zaɓi ne.

Kuna iya shigar da duka ukun kuma ku canza tsakanin su, amma wannan zai haifar da ƙarin ciwon kai. Don haka yana da kyau kada a yi. Fitowa na zamani na Fedora, CentOS, da RHEL sun koma Chrony azaman aiwatar da tsoho, kuma suna da tsarin lokaci-syncd. Na sami Chrony don yin aiki da kyau, samar da ingantacciyar hanyar sadarwa fiye da sabis na NTP, samar da ƙarin bayanai da sarrafawa, wanda tabbas masu gudanar da tsarin za su ji daɗi.

Kashe Ayyukan NTP

Wataƙila sabis ɗin NTP yana gudana akan mai masaukin ku. Idan haka ne, kuna buƙatar kashe shi kafin ku canza zuwa wani abu dabam. Ina da chronyd yana gudana don haka na yi amfani da waɗannan umarni don dakatar da kashe shi. Gudanar da umarni masu dacewa don kowane NTP daemon da kuke gudana akan mai masaukin ku:

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

Bincika cewa an dakatar da sabis ɗin kuma an kashe shi:

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

Bincika matsayi kafin ƙaddamarwa

Matsayin daidaita agogon tsarin yana ba ku damar tantance idan sabis na NTP yana gudana. Tun da ba ku fara NTP ba tukuna, umarnin timesync-status zai nuna wannan:

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

Buƙatun matsayi kai tsaye yana ba da mahimman bayanai. Misali, umurnin timedatectl ba tare da gardama ko zažužžukan yana aiwatar da umarnin submard ta tsohuwa ba:

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

Wannan zai ba ku lokacin gida don mai masaukin ku, lokacin UTC, da lokacin RTC. A wannan yanayin, an saita lokacin tsarin zuwa yankin lokaci na Amurka / New_York (TZ), an saita RTC zuwa lokacin a yankin lokaci na gida, kuma sabis na NTP ba ya aiki. Lokacin RTC ya fara karkata kadan daga lokacin tsarin. Wannan al'ada ce ga tsarin da ba a daidaita agogon su ba. Adadin kashewa akan mai watsa shiri ya dogara da lokacin da ya wuce tun lokacin da tsarin yayi aiki tare.

Mun kuma sami gargaɗi game da amfani da lokacin gida don RTC - wannan ya shafi canje-canjen yankin lokaci da saitunan DST. Idan kwamfutar tana kashe lokacin da ake buƙatar canje-canje, RTC ba zai canza ba. Amma ga uwar garken ko wasu runduna da ke aiki da dare, wannan ba matsala bace. Bugu da kari, duk wani sabis da ke ba da aiki tare na lokacin NTP zai daidaita lokacin mai masaukin lokacin lokacin farawa na farko, don haka lokacin zai sake daidai bayan an gama farawa.

Saita yankin lokaci

Yawancin lokaci, kuna ƙayyade yankin lokaci yayin aikin shigarwa kuma ba ku da aikin canza shi daga baya. Koyaya, akwai lokutan da kuke buƙatar canza yankin lokaci. Akwai kayan aikin da yawa waɗanda zasu iya taimakawa. Linux yana amfani da fayilolin yankin lokaci don tantance yankin lokacin gida na mai masaukin baki. Waɗannan fayilolin suna cikin kundin adireshi /usr/share/zoneinfo. Ta hanyar tsoho, don yankin lokaci na, tsarin yana tsara wannan: /etc/localtime -> ../usr/share/zoneinfo/America/New_York. Amma ba kwa buƙatar sanin irin waɗannan dabarar don canza yankin lokaci.

Babban abu shine sanin sunan yankin lokaci na hukuma don wurin ku da kuma umarnin da ya dace. Bari mu ce kuna son canza yankin lokaci zuwa 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>

Yanzu zaku iya saita yankin lokaci. Na yi amfani da umarnin kwanan wata don bincika canje-canje, amma kuna iya amfani da 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 ~]#

Yanzu zaku iya canza yankin lokacin mai masaukin ku zuwa lokacin gida.

systemd-timesyncd

The systemd timesync daemon yana ba da aikin NTP wanda ke da sauƙin sarrafawa a cikin mahallin tsarin. An shigar da shi ta tsohuwa akan Fedora da Ubuntu. Koyaya, kawai yana farawa ta tsohuwa akan Ubuntu. Ban tabbata game da sauran rabawa ba. Kuna iya bincika da kanku:

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

Yana daidaita tsarin lokaci-lokaci

Fayil ɗin daidaitawa don systemd-timesyncd shine /etc/systemd/timesyncd.conf. Wannan fayil ne mai sauƙi tare da ƙananan zaɓuɓɓukan da aka kunna fiye da tsohuwar sabis na NTP da chronyd. Ga abubuwan da ke cikin wannan fayil ɗin (ba tare da ƙarin gyare-gyare ba) akan Fedora VM na:

#  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

Sashin da ya kunsa, baya ga sharhi, shi ne [Lokaci]. Duk sauran layukan an yi sharhi. Waɗannan su ne tsoffin dabi'u kuma bai kamata a canza su ba (sai dai idan kuna da dalili). Idan baku da sabar lokacin NTP da aka ayyana a cikin layin NTP=, Fedora ya sabawa sabar lokacin Fedora. Yawancin lokaci ina ƙara sabar lokaci na:

NTP=myntpserver

Lokacin daidaitawa

Kuna iya farawa kuma ku sanya systemd-timesyncd aiki kamar haka:

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

Saita agogon hardware

Ga yadda yanayin ya kasance bayan gudanar da 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    

Da farko, bambanci tsakanin RTC da lokacin gida (EDT) bai wuce daƙiƙa ɗaya ba, kuma bambancin ya ƙaru da wasu daƙiƙa biyu a cikin ƴan kwanaki masu zuwa. Tunda babu ra'ayi na yankuna lokaci a cikin RTC, umarnin timedatectl dole ne yayi kwatancen don tantance yankin lokaci daidai. Idan lokacin RTC bai yi daidai da lokacin gida ba, to bai dace da yankin lokacin gida ba.

Neman ƙarin bayani, na duba matsayin systemd-timesync kuma na sami wannan:

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

Lura da saƙon log ɗin da ke cewa ba a saita lokacin tsarin ba ko an sake saita shi. Sabis na Timesync yana saita lokacin tsarin bisa tambarin lokaci. Timesync daemon yana kiyaye tamburan lokaci kuma ana ƙirƙira su akan kowane aiki tare mai nasara.

Umurnin timedatectl ba shi da hanyar ɗaukar ƙimar agogon hardware daga agogon tsarin. Yana iya saita lokaci da kwanan wata daga ƙimar da aka shigar akan layin umarni. Kuna iya saita RTC zuwa ƙimar daidai da lokacin tsarin ta amfani da umarnin 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

Zaɓin --localtime yana gaya wa agogon kayan aiki don nuna lokacin gida, ba UTC ba.

Me yasa kuke buƙatar RTC kwata-kwata?

Duk wani aiwatar da NTP zai saita agogon tsarin a lokacin farawa. Kuma me yasa sannan RTC? Wannan ba gaskiya bane gabaɗaya: wannan zai faru ne kawai idan kuna da haɗin hanyar sadarwa zuwa sabar lokaci. Koyaya, yawancin tsarin ba koyaushe suna samun hanyar haɗin yanar gizo ba, don haka agogon kayan aiki yana da amfani ga Linux don amfani da shi don saita lokacin tsarin. Wannan ya fi kyau saita lokaci da hannu, kodayake yana iya karkata daga ainihin lokacin.

ƙarshe

Wannan labarin ya sake nazarin wasu kayan aikin don sarrafa kwanan wata, lokaci, da yankunan lokaci. Kayan aikin systemd-timesyncd yana samar da abokin ciniki na NTP wanda zai iya daidaita lokacin akan mai masaukin gida tare da sabar NTP. Koyaya, systemd-timesyncd baya bayar da sabis na uwar garken, don haka idan kuna buƙatar sabar NTP akan hanyar sadarwar ku, dole ne kuyi amfani da wani abu dabam, kamar Chrony, don aiki azaman sabar.

Na fi son samun aiwatarwa guda ɗaya don kowane sabis akan hanyar sadarwa ta, don haka ina amfani da Chrony. Idan ba kwa buƙatar uwar garken NTP na gida, ko kuma idan ba ku damu da amfani da Chrony azaman sabar da tsarin lokaci-lokaci a matsayin abokin ciniki na SNTP ba. Bayan haka, babu buƙatar amfani da ƙarin fasalulluka na Chrony azaman abokin ciniki idan kun gamsu da ayyukan systemd-timesyncd.

Wani bayanin kula: ba a buƙatar ku yi amfani da kayan aikin da aka tsara don aiwatar da NTP ba. Kuna iya amfani da tsohuwar sigar ntpd, Chrony, ko wani aikin NTP. Bayan haka, systemd ya ƙunshi babban adadin ayyuka; da yawa daga cikinsu na zaɓi ne, saboda haka zaku iya kashe su kuma ku yi amfani da wani abu maimakon. Wannan ba babban dodo bane. Wataƙila ba za ku so tsarin tsarin ko sassan sa ba, amma ya kamata ku yanke shawara mai cikakken bayani.

Ina son tsarin tsarin NTP, amma na fi son Chrony saboda ya fi dacewa da bukatuna. Linux ne, baby -)

Hakoki na Talla

VDSina tayi sabobin ga kowane aiki, babban zaɓi na tsarin aiki don shigarwa ta atomatik, yana yiwuwa a shigar da kowane OS daga naka ISO, dadi sarrafa panel nasu ci gaban da kullum biya. Ku tuna cewa muna da madawwamiyar sabar da ba ta da lokaci 😉

Aiki tare Lokacin Linux: NTP, Chrony da tsarin lokaci-lokaci

source: www.habr.com

Add a comment