Ժամանակի համաժամացումը
Ինչու՞ է դա անհրաժեշտ
Միասնական և ճշգրիտ ժամանակն այն է, որ պատվիրենք իրադարձությունները, ճիշտ հարաբերակցությունը լոգարանների/թրեյսների, գործարքների ստորագրման և հաշվետվությունների վերարտադրման հիմքը։ Դրամավարկային հոսքերի պլատֆորմների համար սա կոմպլանսի և վստահության հարց է. <<Ով առաջինն էր>>, երբ գրանցվեց արդյունքը>, "ո՞ րն է օգտագործվել>>։
Հիմնական հասկացությունները
UTC vs TAI: UTC-ն պարունակում է 108 բարձրորակ վայրկյաններ։ TAI-ը առանց նրանց։ Համակարգերի մեծ մասը աշխատում է UTC-ում։
Leap second: վայրկյան ներդիր/հեռացում։ Աջակցություն/հավատարմագրում (smear) կրիտիկական են անխոհեմ աշխատանքի համար։
STRATUM (NTP) 'ստանդարտ հեռավորության մակարդակը (0-ատոմ/GNSS, 1-ը սերվերներ, 2 + հաճախորդներ)։
PTP роли: Grandmaster (GM) → Boundary Clock (BC) / Transparent Clock (TC) → Slave.
PPS 'իմպլանտանտ վայրկյան GNSS/գեներատորի ճշգրիտ հեռացման համար։
Servo: ալգորիթմ, որը ուղղում է հաճախականությունը/տեղական ժամացույցի հաճախությունը (chrony/ptp4l/phc2sys)։
Երբ NTP-ն, երբ PTP-ը
NTP (Chrony) 'միլիսեքսունդների ճշգրտությունը/հարյուրավոր միլիմետրեր։ WAN/համացանցը; պարզապես և հուսալի։
PTP (IEEE 15.88): 108 միլիմետրանոց և մինչև միկրովայրկյանները ապարատային նշանով։ պահանջում է ցանցային առարկաներ (L2/multicast/QoS)։
Հիբրիդ ՝ NTP/Chrony-ը համապատասխանում է PTP-GM-ի վրա։ Այնուհետև COD-ում 'PTP HW-timestamp։
Ժամանակի աղբյուրները և կայունությունը
GNSA (GPS/GLONASS/Galileo/BeiDouu) + PPS որպես առաջնային ստանդարտ։
OCXO/TCXO (գեներատորներ) holdover-ի համար արբանյակների կորստի ժամանակ։
Պահուստային հանրաքվեներ ՝ երկու GNIM ընդունիչ, տարբեր ալեհավաքներ/կաբելներ, ջամինգի սահմաններ։
Ստացիոնար NTP-պուլներ 'արտաքին հուսալի պրովայդերներ և մասնավոր սերվերներ (MSN)։
Grandmaster x2-ը BMC-ի հետ (Best Corter Clock) և ձեռքով failover պլանը։
Ցանցային ճարտարապետությունը PTP
Պրոֆիլներ ՝ Lenta.ru, Telecom (G.1275։ x), Power. CODA-ի համար ավելի հաճախ, քան Մոսկվան, կամ գենդորի պրոֆիլները։
Transparent Clock (TC). նավարկողը ավելացնում է ուշացումը (www.rfeld) - բարելավում է ճշգրտությունը։
Boundary Clock (BC) 'նավարկողը/երթուղիչը հաճախորդն է բարձր և միջին սեգմենտին։
QoS 'PTP մուլտիկաստի/ունիկաստի գերակայությունը, հերթերի նվազեցումը։
Մեկուսացում 'MSAN/VRF-ի հատկացված ժամանակի համար։ L3-NAT-ի բացակայությունը PTP ճանապարհին։
Անվտանգություն: NTS-ի համար, PTP պաշտպանություն
NTP: օգտագործեք NTS (Network Time Service, RSA 8915) - TIM-վավերացում ժամանակային։ Սիմետրիկ բանալիները (classic auth) թույլատրելի են պարագծի ներսում։ Autokey-ը հնացած է։
PTP 'Մայրիկ MAS/վավերացում գրեթե չեն օգտագործում։ փոխհատուցեք ցանցային մեկուսացումը, ACL, SNsec/IPsec-ը L2/L3-ում։
GNSA 'պաշտպանություն jamming/spoofing-ից' ազդանշանների որակի մոնիտոր, DOP դիտարկումը, գեո ֆիլտրերը, անոմալիայի մանրամասն։
Վիսոկոսային վայրկյանի մշակումը և «քսուքը»
Leap-announce: NTP/Chrony-ը հայտարարում է հաջորդ վայրկյանի տեղադրման մասին։
Smear 'օրվա ձգումը 240-ով։ 5 s (կամ այլ պատուհան), խուսափելով քայլից։ Google-նման smear-ը հարմար է «ցատկելուց» հրաժարվելու համար, բայց բոլոր ծառայությունները պետք է հետևեն միասնական քաղաքականությանը (կամ անջատեն ուրվագծերը)։
SLO ժամանակի համար (օրինակներ)
Disset p95 հաճախորդը նշված է թիվ 1 ստանդարտով։ 0 71 (NTP-112 CODA), p99 245 ռուբլիներ։
PTP-ի հետ HW-timestamp: wwww.set p95-20 www.s, p99 35100 pps տիրույթի ներսում։
Jitter (stddev) ≤ 0. 2 ms (NTP) / ≤ 5 μs (PTP-HW).
Clock step իրադարձությունների = 0; միայն slew (լողացող ուղղում) պրոդ դասարանում։
Drift-ը holdover OCXO-ի դեպքում ՝ 361 հազար մ (վերահսկում և ալերտիմը)։
Ինժեներական պրակտիկա (NTP/Chrony)
Ինչու Chrony: ավելի լավ է համընկնում «աղմկոտ» ցանցի վրա, որը կապված է packet loss/ասիմետրիայի, ճկուն NTS-ի հետ։
Նվազագույն «chrony»։ conf '(սերվերը)
conf
Sources (top-level servers)
server ntp1. example iburst nts server ntp2. example iburst nts
Local GNSS with PPS (if any)
refclock SHM 0 poll 4 refid GNSS refclock PPS /dev/pps0 poll 4 refid PPS lock GNSS
Access restrictions allow 10. 0. 0. 0/8 deny all
makestep adjustment policy 0. 1 3 rtcsync log tracking measurements statistics
Ստուգումը և կարգավորումը
bash chronyc tracking chronyc sources -v chronyc sourcestats -v
Հաճախորդները 'նշեք առնվազն երկու սերունդ։ միացրեք «makestep» -ը վաղ մեկնարկի համար և «maxslewrate» անհրաժեշտության դեպքում։
Ինժեներական պրակտիկան (PTP/linuxptp)
Ժամանակի ապարատային նշանը (HW-TS) պահանջում է NIC/վարորդներ PHC (PHC = PTP Hardom Clock)։
Ստուգում
bash ethtool -T eth0 grep timestamp phc2sys -l
ptp4l (slave/GM/BC) - դելիգի օրինակ
conf
[global]
twoStepFlag 1 time_stamping hardware tx_timestamp_timeout 30 logging_level 6 clock_class 248 clock_accuracy 0x20 priority1 128 priority2 128 delay_mechanism E2E network_transport L2 dsptp_domain 0
[eth0]
delay_filter moving_average delay_filter_length 10 announceReceiptTimeout 3 syncReceiptTimeout 3
PHC-ի միացումը կանոնավոր ժամացույց է
bash
PHC NIC -> system clock (slew)
phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -O 0 -E ntpshm -w
Boundary/Transparent clocks-ի համար օգտագործեք հավելարարների/պատկերներ BC/TC աջակցությամբ և միացրեք դրանց պրոֆիլները։ վերահսկեք www.r.field pmc-ում
bash pmc -u -b 0 "GET TIME_STATUS_NP"
Kubernetes, վիրտուալացում և բեռնարկղեր
Nody K8s-ը համաժամեցված է որպես սովորական հանրակացարաններ։ Բեռնարկղերը օգտագործում են հոստի ժամանակը։
PTP: PTP Oper.ru/DaemonSystem-ի համար (օրինակ ՝ «linuxptp-daemonset») HW-TS-ի հետ տեղադրված նոդոդների վրա, «NodeFeatom Discovery» -ը NIC-ի հետ նշելու համար։
Աշխատանքային բեռի մեկուսացումը ժամանակի զգայունության հետ (RNG/խաղային իվենտներ) 'taints/toler.ru noda, լավագույն համաժամացումով։
Վիրտուալիզացիայի մեջ անջատեք ագրեսիվ «վիրտուալ» drift-ուղղիչները հիպերվիզորի, օգտագործեք մեկ ժամանակի կարգապահություն (կամ guest NTP/PTP, կամ հիպերվիզորից)։
Ցանց և QoS
Կիսեք Time-MASAN/VRF-ը, պահեք հետաձգումները և ջիթերը նվազագույն։
PTP E2E-ի համար խուսափեք ուղիների ասիմետրիայից։ P2P-ի համար օգտագործեք ոսպնյակ-ալյումինե ուշացում։
Միացրեք jumbo MTU end-to-end միայն եթե ամենուր համաձայնեցված է։ հակառակ դեպքում ստանդարտ MTU-ն է, բայց կայուն հերթը։
Ուղարկեք NTP-ը UDP/123-ում, թույլ տվեք NTS-TSA-ը։ PTP-ի համար ճիշտ ACL-ն է մուլտիկաստի համար (224։ 0. 1. 129/130).
Windows և alerts
Ինչ չափել
Disset (ներկա տարբերությունը), jitter, frequency drift, 108/վրկ։
Для PTP: `offsetFromMaster`, `meanPathDelay`, `grandmasterIdentity`, `stepsRemoved`.
GNSA-ի համար 'SDR, DOP, տեսանելի արբանյակներ, PPS jitter։
Գործիքներ
«chrony» էքսպորտը Prometheus (chrony-exporter), Loki-ի տեքստի լոգները։
«linuxptp» վիճակագրությունը («ptp4l-m»), մետրերը node-exporter textfile միջոցով։
Ցանցային հաշվիչները ՝ drops/retransmit/queue-len Time-MASAN-ում։
Ալերտա (գաղափարներ)
NTP wwww.set p95> 1 ռուբլիներ 5 րոպեում
PTP offsetFromMaster > 25 μs (p95) 5 мин.
GNSA/PPS> 1 րոպե (անցում holdover)։
Grandmaster (BMC) փոփոխությունը պլանավորված պատուհանից դուրս։
RTC տարբերությունը տեղադրվում է www.clock> շեմի վրա բեռնման ժամանակ։
Վիրահատություններ և նորարարություններ
Սկսեք/դադար. Նախ վերականգնեք ցանցը/GNSA/PPS no GM no BC/TC-ը հաճախորդները։
Leap-second: հայտարարեք նախօրոք, smear քաղաքականությունը և համատեղելիությունը։
Նորարարություններ ՝ firmult NIC/լուծիչներ, «linuxptp/chrony» - staged, որը վերահսկում է set։
Runbooks: GNSA-ի կորուստը, GM-ի փոխարինումը, PTP տիրույթի տեղափոխումը, հրթիռների վերակենդանացումը, MSAN-ի պատահարը։
Ներդրման թուղթ
- Որոշվել է SLO ժամանակի ընթացքում (www.set/jitter) ծառայությունների և ամսագրերի համար։
- Երկու ռուսական ժամանակի աղբյուրներ (GNSA + NTP), երկու GM, նավատորմի/ազատ ֆեյլերի պլանը։
- Ընտրված TIMAN/VRF, QoS, ACL/CORsec; PTP BC/TC-ն ներառված է։
- Ամենուրեք, leap (smear/step արգելված է վաճառքում)։
- Chrony с NTS; ptp4l/phc2sys - PHC-ի նոդների վրա, սերվ։
- Windowset/jitter/GM/wwww.GN.RU, alerts և dashbords։
- Runbooks: loss of GNSS, GM failover, leap-second, drift-hunt.
- Կոդավորման համար 'աղբյուրներ, ալգորիթմներ, SLO հաշվետվություններ, GM-ի ամսագիր։
Տիպիկ սխալներ
Ժամանակի մեկ սերվեր առանց պարամետրերի։ հանրային փամփուշտների և մասնավոր մարդկանց խառնուրդ առանց վերահսկողության։
PTP-ն «աղմկոտ» L3-երթուղիների/ասիմետրիայի միջոցով, առանց BC/TC-ի։
Ոչ NTS/մեկուսացում, NTP/spufing PTP-ի փոխարինման հնարավորություն։
Տարբեր leap քաղաքականությունը ենթահամակարգերում բացատրում է «ճեղքումը» ծառայությունների միջև ժամանակի ընթացքում։
Drift/holdover մոնիտորինգի անտեսումը, հանկարծակի շագանակագույն պարամետրերը։
Վիրտուալ մեքենաները կրկնակի առարկայով (host + guest) կապված են տարբերության հետ։
Հատուկ iGaming/fintech համար
Իրավաբանորեն նշանակալի ժամանակներ 'պահեք օֆսետներն ու ստատուսները գործարքների/իվենտների լոգարաններում (ապացուցելու համար)։
Իրադարձությունների կարգը 'խաչաձև ծառայողական հարաբերակցությունը օգտագործում է մոնոտոնային տրամաբանական ժամացույց + UTC-2019, ոչ միայն «պատերը»։
Ձայնագրություններ/խաղեր. Արձանագրեք start/stop time single source (PTP տիրույթ/NTP սերվեր), TTL-kash ճակատներում, օֆսետի ստուգում դեպի «սուլիչ»։
RNG/seed նախաձեռնություն 'նախաձեռնեք ծպտյալ աղբյուրներից, իսկ ժամանակը օգտագործեք միայն որպես բաղադրիչ, ստուգելով SLO-ի ներսում set-ը։
Հաշվետվությունները/կարգավորիչները 'SLO ժամանակի պարբերական զեկույցները և GM/աղբյուրները։
Մինի պլեյբուկները
1) Արագ ժամանակի աուդիտ կլաստերում
1. «chronyc tracking» յուրաքանչյուր հանդիպման ժամանակ նախատեսվում է հավաքել www.set/jitter։
2. 'ptp4l-m/' pmc "PTP-nods-ում նախատեսվում է ստուգել GM, dray, steast Removed-ը։
3. Նվազեցնել ձախ քաղաքականությունը, համոզվել միաեղջյուրի մեջ։
2) GNSA կորուստ
1. Գնալ holdover (OCXO), ալերտ։
2. Միացրեք արտաքին NTP over SNN-ը որպես ռուսական հանրաքվե։
3. Ստուգել ալեհավաքը/մալուխ/ընդունիչ; փոխարինման պլանը։
3) Grandmaster փոփոխությունը
1. BMC ստուգումը գերակայություն է։ երկրորդ GM-ի ձեռքով բարձրացումը։
2. Rotset վերահսկումը VS/հաճախորդների մոտ; phc2sys-ի վերագործարկումը։
3. Պատահականության մասին զեկույցը ժամանակավոր շարքերի հետ։
Արդյունքը
Ժամանակի հուսալի ստանդարտ է (GNMS + PPS + OCXO), ճիշտ ցանցային ճարտարապետությունը PTP (BC/TC/QoS/մեկուսացում), անվտանգ NTP-ը NTS-ի հետ, համաձայնեցված ձախ քաղաքականությունը, slew-շտկման կարգապահությունը և դիտարկումը SLO (wwww.set/jitter/holdover)։ Ամրագրեք ամեն ինչ runbook-ah-ում, կանոնավորաբար ստուգեք օֆսեթները և սովորեք ուսմունքների վրա, և ձեր ժամանակը կմնա ճշգրիտ նույնիսկ այն ժամանակ, երբ մնացած ամեն ինչ «դողում է»։