
Enamik inimesi jĂ€lgib aega. TĂ”useme Ă”igeaegselt, et tĂ€ita oma hommikurutiinid ja minna tööle, teha lĂ”unapausi, tĂ€ita projekti tĂ€htaegu, tĂ€histada sĂŒnnipĂ€evi ja pĂŒhi, lennata jne.
Lisaks on mĂ”ned meist ajast tĂ€ielikult sĂ”ltuvad. Minu kell töötab pĂ€ikeseenergiaga ja saadab tĂ€pset aega Ameerika Ăhendriikide Rahvuslike Standardite ja Tehnoloogia Instituudist () Fort Collinsis (Colorado osariik) pika laine raadiosignaali kaudu. Ajasedelid sĂŒnkroonitakse aatomikelladega, mis asuvad samuti Fort Collinsis. Minu Fitbit sĂŒnkroonitakse minu telefoniga, mis omakorda sĂŒnkroonitakse serveriga, mis lĂ”puks sĂŒnkroonitakse aatomikelladega.
Seadmed jÀlgivad samuti aega.
On palju pÔhjuseid, miks meie seadmed ja arvutid vajavad tÀpset aega. NÀiteks panganduses, aktsiaturgudel ja teistes finantsettevÔtetes peavad tehingud toimuma Ôiges jÀrjekorras ja selle jaoks on kriitilise tÀhtsusega tÀpsed ajajÀrjestused.
Meie telefonid, tahvelarvutid, autod, GPS-sĂŒsteemid ja arvutid vajavad tĂ€pseid aega ja kuupĂ€eva seadistusi. Ma tahan, et minu arvuti töölaua kell nĂ€itaks Ă”iget aega. Ma tahan, et minu kohalikus kalendris tuletatakse mulle meelde asju Ă”igeaegselt. Ăige aeg garanteerib ka, et cron- ja systemd-ĂŒlesanded kĂ€ivitatud Ă”igel ajal.
KuupĂ€ev ja aeg on olulised ka logimise jaoks, mistĂ”ttu on lihtsam leida teatud logisid, vaadates kuupĂ€eva ja aega. NĂ€iteks töötasin kunagi DevOps'is (toona ei kutsutud seda nii) ja seadistasin e-posti sĂŒsteemi PĂ”hja-Carolinas. Tol ajal töötasime me ĂŒle 20 miljoni e-kirja pĂ€evas. E-kirjade jĂ€lgimine lĂ€bi mitmete serverite vĂ”i tĂ€psete sĂŒndmuste jĂ€rjekorra mÀÀramine logifailide abil geograafiliselt hajutatud hostides vĂ”ib olla palju lihtsam, kui vastavad arvutid on aja poolest sĂŒnkroniseeritud.
Aeg on ĂŒks, kuid kelli on palju.
Linuxi hostid peavad arvestama, et on sĂŒsteemiaeg ja RTC aeg. RTC (Reaalaja Kell) on pisut kummaline ja mitte eriti tĂ€pne nimetus riistvarakellade jaoks.
Riistakellad töötavad pidevalt, isegi kui arvuti on vĂ€lja lĂŒlitatud, kasutades emaplaadi akut. RTC peamine ĂŒlesanne on hoida aega, kui ajaserveriga ĂŒhendus pole saadaval. Aegadel, mil interneti kaudu ajaserveriga ĂŒhendada ei saanud, pidi igal arvutil olema tĂ€psed sisemised kellad. OperatsioonisĂŒsteemid pidid RTC-le ligi pÀÀsema kĂ€ivitamise ajal ja kasutaja pidi kĂ€sitsi sĂŒsteemiaega seadma BIOSi konfiguratsiooniliidese abil, et veenduda, et see on Ă”ige.
Riistakellad ei mĂ”ista ajavööndite mĂ”istet; RTC-s hoitakse ainult aega, mitte ajavööndit vĂ”i UTC-st (Ăhendatud Aeg, mida tuntakse ka kui GMT vĂ”i Greenwichi keskmine aeg) kĂ”rvalekallet. Saate RTC-d seadistada tööriista abil, millest ma rÀÀgin hiljem selles artiklis.
SĂŒsteemiaeg on aeg, mida operatsioonisĂŒsteem kuvab teie töölaual GUI kellades, kuupĂ€eva kĂ€su vĂ€ljundis ja logide ajatemplites. See viitab ka failide loomise, muutmise ja avamise ajale.
LehekĂŒljel on RTC ja sĂŒsteemikellade tĂ€ielik kirjeldus.
Mis on NTP juures?
Arvutid ĂŒle kogu maailma kasutavad NTP (vĂ”rguaegade protokoll) oma aja sĂŒnkroonimiseks standardsete etalon kelladega veebis, kasutades NTP serverite hierarhiat. Peamised ajaserverid asuvad tasemel 1 ja need on otse ĂŒhendatud erinevate riiklike ajateenustega tasemel 0 lĂ€bi satelliidi, raadio vĂ”i isegi modemite abil telefoniliinide kaudu. Taseme 0 ajateenused vĂ”ivad olla aatomkellad, raadiovastuvĂ”tja, mis on seadistatud aatomkellade edastatud signaalide vastuvĂ”tmiseks, vĂ”i GPS vastuvĂ”tja, mis kasutab satelliitide GPS edastatavaid tĂ€psete kellasignaalide signaale.
Enamikus standardserverites on avatud mitu tuhat avaliku NTP stratum 2 serverit, mis on kĂ”igi jaoks kergesti ligipÀÀsetavad. Paljud organisatsioonid ja kasutajad (ka mina) suurte hostide arvuga, kellele on vajalik NTP-server, eelistavad seadistada omaenda ajaseervereid, nii et vaid ĂŒks kohalik host pöördub stratum 2 vĂ”i 3 poole. SeejĂ€rel seadistavad nad ĂŒlejÀÀnud vĂ”rgus olevad sĂ”lmed kasutama kohalikku ajaserverit. Minu koduvĂ”rgu puhul on see kolmanda taseme server.
Erinevad NTP teostused
Algne NTP teostus on ntpd. SeejĂ€rel liitusid sellega kaks uuemat, chronyd ja systemd-timesyncd. KĂ”ik kolm sĂŒnkroniseerivad kohaliku hosti aega NTP ajaserveriga. Systemd-timesyncd teenus ei ole nii usaldusvÀÀrne kui chronyd, kuid piisab enamiku eesmĂ€rkide saavutamiseks. Kui RTC ei ole sĂŒnkroniseeritud, vĂ”ib see aeglaselt kohandada sĂŒsteemi aega, et sĂŒnkroniseerida NTP serveriga, kui kohaline sĂŒsteemi aeg veidi nihkub. Systemd-timesync teenust ei saa kasutada ajaserverina.
on NTP teostus, mis sisaldab kahte programmi: chronyd demon ja kÀsurea liides nimega chronyc. Chronyl on mÔned funktsioonid, mis on paljude olukordade korral lihtsalt vÀltimatud:
- Chrony suudab sĂŒnkroniseerida ajaga palju kiiremini kui vana teenus ntpd. See on hea sĂŒlearvutitele vĂ”i lauaarvutitele, mis ei tööta pidevalt.
- See suudab kompenseerida taktsageduse kĂ”ikumisi, nĂ€iteks siis, kui host vahetab unereĆŸiim vĂ”i kui taktsagedus muutub jĂ€rsku, pĂ”hjustades taktsageduste aeglustumist madalate koormuste ajal.
- See lahendab ajaga seotud probleemid, mis on seotud ebastabiilse vĂ”rguĂŒhenduse vĂ”i vĂ”rgu ĂŒlekoormusega.
- See reguleerib vÔrgu viivitusi.
- PĂ€rast esmast aja sĂŒnkroniseerimist ei seisa Chrony kunagi kella. See tagab stabiilsed ja jĂ€rjepidevad ajavahemikud paljude sĂŒsteemiteenuste ja rakenduste jaoks.
- Chrony vĂ”ib töötada isegi ilma internetiĂŒhenduseta. Sellisel juhul saab kohalikku hosti vĂ”i serverit kĂ€sitsi vĂ€rskendada.
- Chrony vÔib toimida NTP-serverina.
Veel kordi: NTP on protokoll, mida saab rakendada Linuxi hostis kasutades Chrony vÔi systemd-timesyncd.
NTP, Chrony ja systemd-timesyncd RPM-pakettide standardne varud on saadaval Fedora tavarepositorites. RPM systemd-udev on tuuma sĂŒndmuste haldur, mis on vaikimisi Fedora-s installitud, kuid ei ole kasutamiseks kohustuslik.
Sa saad installida kĂ”ik kolm ja nende vahel vahetada, aga see toob endaga kaasa ĂŒleliigse peavalu. Seega on parem seda mitte teha. Moodsa Fedora, CentOS ja RHEL vĂ€ljaanded on lĂ€inud ĂŒle Chrony-le kui standardsele rakendusele ning lisaks on neil systemd-timesyncd. Ma arvan, et Chrony töötab hĂ€sti, pakub paremat liidest kui NTP teenus, annab palju rohkem teavet ja suurendab kontrolli, mis kindlasti meeldib sĂŒsteemiadministraatoritele.
NTP teenuste vĂ€ljalĂŒlitamine
VĂ”ib-olla on sinu hostis juba NTP teenus kĂ€imas. Kui jah, siis pead selle enne millegi teise kasutusele vĂ”tmist vĂ€ljalĂŒlitama. Mul oli kĂ€imas chronyd, seega kasutasin jĂ€rgmisi kĂ€ske selle peatamiseks ja vĂ€ljalĂŒlitamiseks. KĂ€ivita vastavad kĂ€sud igasuguse NTP deemonile, mida oma hostis kasutad:
[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Eemaldatud /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#Kontrolli, et teenus on peatatud ja vĂ€lja lĂŒlitatud:
[root@testvm1 ~]# systemctl status chronyd
â chronyd.service - NTP klient/serveer
Laaditud: laaditud (/usr/lib/systemd/system/chronyd.service; vĂ€lja lĂŒlitatud; tootja vaikevalik: lubatud)
Aktiivne: mitteaktiivne (surnud)
Dokumendid: man:chronyd(8)
man:chrony.conf(5)
[root@testvm1 ~]#Oleku kontrollimine enne kÀivitamist
SĂŒsteemi kellade sĂŒnkroniseerimise olek vĂ”imaldab mÀÀrata, kas NTP teenus on kĂ€imas. Kuna sa pole veel NTP-d kĂ€ivitanud, vihjab kĂ€su timesync-status sellele:
[root@testvm1 ~]# timedatectl timesync-status
Serveri pÀring ebaÔnnestus: Ei saanud aktiveerida kaugpartnerit.Otsene oleku pÀring annab olulist teavet. NÀiteks kÀsk timedatectl ilma argumentide vÔi parameetriteta tÀidab vaikimisi alamkÀsku status:
[root@testvm1 ~]# timedatectl status
Kohalik aeg: Reede 2020-05-15 08:43:10 EDT
Ăldine aeg: Reede 2020-05-15 12:43:10 UTC
RTC aeg: Reede 2020-05-15 08:43:08
Aeg kandi: America/New_York (EDT, -0400)
SĂŒsteemi kell on sĂŒnkroonimata: ei
NTP teenus: mitteaktiivne
RTC kohaliku TZ-s: jah
Hoiatus: SĂŒsteem on seadistatud lugema RTC aega kohaliku ajavööndi jĂ€rgi.
See reĆŸiim ei ole tĂ€ielikult toetatud. See tekitab mitmeid probleeme
ajavööndi muutuste ja suveaja seadistustega. RTC
aeg ei uuene kunagi, see toetub vÀlistele seadmetele selle sÀilitamiseks.
Kui see ĂŒldse vĂ”imalik on, kasutage RTC-d UTC-s, kutsudes esile
'timedatectl set-local-rtc 0'.
[root@testvm1 ~]#Nii saate kohaliku aja, UTC aja ja RTC aja oma hostile. Antud juhul on sĂŒsteemi aeg seadistatud ajavööndi America/New_York (TZ) jĂ€rgi, RTC on seadistatud kohaliku ajavööndi jĂ€rgi ja NTP teenus ei ole aktiivne. RTC aeg hakkab sĂŒsteemi ajast veidi kĂ”rvale kalduma. See on normaalne sĂŒsteemide puhul, mille kelli ei ole sĂŒnkroonitud. Kaldumise suurus hostis sĂ”ltub ajast, mis on möödunud viimase sĂŒsteemi sĂŒnkroonimise hetkest.
Saime ka hoiatusi kohaliku aja kasutamise kohta RTC jaoks â see puudutab ajavööndi ja suveaja seadistusi. Kui arvuti on vĂ€lja lĂŒlitatud siis, kui tuleb teha muudatusi, ei muutu RTC aeg. Kuid serverite vĂ”i muude hostide puhul, mis töötavad ööpĂ€evaringselt, ei ole see probleem. Lisaks parandab iga teenus, mis tagab NTP aja sĂŒnkroonimise, hosti aega juba kĂ€ivitamise alguses, seega pĂ€rast kĂ€ivitamise lĂ”petamist on aeg jĂ€lle Ă”ige.
Ajavööndi seadmine
Tavaliselt mÀÀrate ajavööndi installi kĂ€igus ja teil ei ole seda hiljem muuta. Siiski on juhtumeid, kus tuleb ajavööndit muuta. On mitmeid tööriistu, mis vĂ”ivad aidata. Linux mÀÀrab kohaliku ajavööndi ajavööndi failide pĂ”hjal. Need failid asuvad kataloogis /usr/share/zoneinfo. Vaikimisi mÀÀrab sĂŒsteem minu ajavööndi jaoks jĂ€rgmise: /etc/ localtime -> ../usr/share/zoneinfo/America/New_York. Kuid teile ei ole vajalikud sellised detailid, et ajavööndit muuta.
Peamine on teada kohaliku asukoha ametlikku ajavööndi nime ja vastavat kĂ€sku. Ătleme, et soovite muuta ajavööndi Los Angeleseks:
[root@testvm2 ~]# timedatectl list-timezones | column
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/HelsinkiNĂŒĂŒd saate ajavööndi seadistada. Muudatuste kontrollimiseks kasutasin ma date kĂ€sku, kuid vĂ”ite kasutada ka 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 ~]#NĂŒĂŒd saate oma hosti ajavööndi kohalikule ajale tagasi muuta.
systemd-timesyncd
Systemd timesync daemon pakub NTP teostust, mida on lihtne hallata systemd kontekstis. See on vaikimisi installitud Fedora ja Ubuntu sĂŒsteemidesse. Kuid vaikimisi kĂ€ivitub see ainult Ubuntu sĂŒsteemides. Ma ei ole kindel teiste distributsioonide osas. Saate ise kontrollida:
[root@testvm1 ~]# systemctl status systemd-timesyncdSystemd-timesyncd seadistamine
Systemd-timesyncd konfiguratsioonifail on /etc/systemd/timesyncd.conf. See on lihtne fail, millel on vÀhem lubatud valikuid kui vanematel NTP ja chronyd teenustel. Siin on selle faili sisu (ilma tÀiendavate muudatusteta) minu Fedora virtuaalmasinas:
# 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=2048Ainus jaotis, mis sisaldub lisaks kommentaaridele, on [Time]. KĂ”ik muud read on kommentaaritud. Need on vaikeseaded, neid ei ole vaja muuta (kui teil pole selleks pĂ”hjust). Kui teil pole ajaserverit NTP, mÀÀrab Fedora vaikimisi ajaserveri. Ma lisan ĂŒldiselt oma ajaserveri:
NTP=myntpserverTimesynci kÀivitamine
Systemd-timesyncd saab kÀivitada ja aktiivseks muuta jÀrgmiselt:
[root@testvm2 ~]# systemctl enable systemd-timesyncd.service
Loodud sĂŒmboolne link /etc/systemd/system/dbus-org.freedesktop.timesync1.service â /usr/lib/systemd/system/systemd-timesyncd.service.
Loodud sĂŒmboolne link /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 ~]#Riistvarakellade seadistamine
Nii nÀeb olukord vÀlja pÀrast timesyncd kÀivitamist:
[root@testvm2 systemd]# timedatectl
Kohalik aeg: Sat 2020-05-16 14:34:54 EDT
Ăksik aeg: Sat 2020-05-16 18:34:54 UTC
RTC aeg: Sat 2020-05-16 14:34:53
Ajavahemik: America/New_York (EDT, -0400)
SĂŒsteemi kell sĂŒnkroniseeritud: jah
NTP teenus: aktiivne
RTC kohalikus TZ: ei Alguses on RTC ja kohalik aja (EDT) vahe vaid sekundit ja see erinevus suureneb jĂ€rgmiste pĂ€evade jooksul veel paar sekundit. Kuna RTC-l ei ole ajavööndite mĂ”istet, peab kĂ€su timedatectl sooritama vĂ”rdluse, et mÀÀrata vajaliku ajavööndi. Kui RTC aeg ei ĂŒhti tĂ€pselt kohaliku ajaga, siis tĂ€hendab see, et see ei ĂŒhti ka kohaliku ajavööndiga.
Otsides tÀiendavat teavet, kontrollisin systemd-timesync olekut ja leidsin jÀrgmise:
[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
â systemd-timesyncd.service - VĂ”rgu Aja SĂŒnkroniseerimine
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: "Esialgne sĂŒnkroniseerimine aja serveriga 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]: SĂŒsteemi kella aeg on mÀÀramata vĂ”i tagurpidi hĂŒpanud, taastamine salvestatud ajatempli pĂ”hjal: 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]: Esialgne sĂŒnkroniseerimine aega serveriga 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#Pange tĂ€hele logisĂ”numit, milles öeldakse, et sĂŒsteemi aeg ei ole seadistatud vĂ”i on tagasi hĂŒpanud. Timesync teenus seab sĂŒsteemi aja pĂ”hinedes ajatempli. Ajatempleid toetab timesync daemon ja need luuakse iga eduka sĂŒnkroniseerimise ajal.
KĂ€sk timedatectl ei saa vĂ”tta seadme kellast vÀÀrtust sĂŒsteemi kellast. See suudab seadistada aega ja kuupĂ€eva ainult kĂ€surealt sisestatud vÀÀrtuse alusel. Saate seadme RTC sama vÀÀrtusega, mis sĂŒsteemi aeg, kasutades kĂ€sku hwclock:
[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
Kohalik aeg: Mon 2020-05-18 13:56:46 EDT
Ăksnes aeg: Mon 2020-05-18 17:56:46 UTC
RTC aeg: Mon 2020-05-18 13:56:46
Aja tsoon: America/New_York (EDT, -0400)
SĂŒsteemi kell sĂŒnkroniseeritud: jah
NTP teenus: aktiivne
RTC kohaliku TZ-s: jahValik âlocaltime nĂ€itab, et seadme kell nĂ€itab kohaliku aega, mitte UTC-d.
Miks sul ĂŒldse RTC on?
KĂ”ik NTP rakendused seadistavad sĂŒsteemi kella kĂ€ivitamisel. Aga miks siis RTC? See pole pĂ€ris nii: see juhtub ainult siis, kui sul on vĂ”rguĂŒhendus ajaserveriga. Kuid paljud sĂŒsteemid ei oma pidevat juurdepÀÀsu vĂ”rguĂŒhendusele, seega on riistvarakellad kasulikud, et Linux saaks nende alusel seadistada sĂŒsteemi aja. See on parem, kui seada aeg kĂ€sitsi, isegi kui see vĂ”ib erineda tegelikust ajast.
KokkuvÔte
Selles artiklis kĂ€sitletakse mĂ”ningaid tööriistu kuupĂ€eva, aja ja ajavööndite haldamiseks. Tööriist systemd-timesyncd pakub NTP-klienti, mis saab sĂŒnkroonida aega kohaliku hostiga NTP-serveriga. Kuid systemd-timesyncd ei paku serveriteenust, seega kui sul on vajalik NTP-server oma vĂ”rgus, pead kasutama midagi muud â nĂ€iteks Chronyt, et toimida serverina.
Ma eelistan, et minu vĂ”rgus oleks rakendatud ainult ĂŒks teenus, seega kasutan Chronyt. Kui sul pole vajalik kohaliku NTP-serveri, vĂ”i kui sa ei pahanda kasutada Chronyt serverina ja systemd-timesyncd SNTP-klientina. LĂ”ppude lĂ”puks pole pĂ”hjust kasutada Chrony tĂ€iendavaid vĂ”imalusi kliendina, kui sind rahuldab systemd-timesyncd funktsionaalsus.
Veel ĂŒks tĂ”demus: sa ei ole sunnitud kasutama systemd tööriistu NTP rakendamiseks. Sa saad kasutada vana versiooni ntpd, Chronyt vĂ”i mĂ”nda muud NTP rakendust. LĂ”ppude lĂ”puks koosneb systemd paljusid teenustest; paljusid neist vĂ”ib vĂ€lja lĂŒlitada ja kasutada selle asemel midagi muud. See ei ole tohutu monoliitne monstrum. Sa vĂ”id mitte armastada systemd-d vĂ”i selle osi, aga pead tegema teadliku otsuse.
Mulle meeldib systemd NTP rakendus, kuid eelistan Chronyt, kuna see vastab paremini minu vajadustele. See on Linux, beebi -)
Reklaami Ôigustes
VDSina pakub , tohutu valik operatsioonisĂŒsteeme automaatseks installiks, on vĂ”imalus installida ĂŒkskĂ”ik milline OS oma mugav enda arendust ja pĂ€evane tasu. Tuletame meelde, et meil on igavesed serverid, mis ei allu ajale đ
Allikas: habr.com
