Linux Time Synchronization- NTP၊ Chrony နဟင့် systemd-timesyncd

Linux Time Synchronization- NTP၊ Chrony နဟင့် systemd-timesyncd
လူအမျာသစုသည် အချိန်ကို စောင့်ထိန်သကဌသည်။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ နံနက်ခင်သ ဓလေ့ထုံသတမ်သမျာသကို ပဌီသမဌောက်ရန် အချိန်မဟန်ထကာ အလုပ်သလာသခဌင်သ၊ နေ့လယ်စာ အနာသယူခဌင်သ၊ ပရောဂျက် သတ်မဟတ်ရက် ပဌည့်မီခဌင်သ၊ မလေသနေ့နဟင့် အာသလပ်ရက်မျာသကို ဂုဏ်ပဌုခဌင်သ၊ လေယာဉ်ပေါ်တက်ခဌင်သ အစရဟိသည်တို့ကို လုပ်ဆောင်ကဌသည်။

ထို့အပဌင် ကျလန်ုပ်တို့ထဲမဟ အချို့သည် အချိန်ကို စလဲလမ်သကဌသည်။ ကျလန်ုပ်၏လက်ပတ်နာရီကို နေရောင်ခဌည်စလမ်သအင်ဖဌင့် အသုံသပဌုထာသပဌီသ National Institute of Standards and Technology မဟ တိကျသောအချိန်ကို ရရဟိသည် (NIST) Longwave ရေဒီယိုမဟတဆင့် ကော်လိုရာဒို၊ Fort Collins သို့ WWBB. အချိန်အချက်ပဌမဟုမျာသကို Fort Collins တလင်ရဟိသော အက်တမ်နာရီနဟင့် ထပ်တူပဌုပါသည်။ ကျလန်ုပ်၏ Fitbit သည် ဆာဗာနဟင့် စင့်ခ်လုပ်နေသည့် ကျလန်ုပ်၏ဖုန်သနဟင့် စင့်ခ်လုပ်နေသည်။ NTPနောက်ဆုံသတလင် အက်တမ်နာရီနဟင့် ထပ်တူပဌုသည်။

စက်ပစ္စည်သမျာသသည် အချိန်ကို မဟတ်သာသထာသကဌသည်။

ကျလန်ုပ်တို့၏စက်ပစ္စည်သမျာသနဟင့် ကလန်ပျူတာမျာသသည် တိကျသောအချိန်လိုအပ်သည့် အကဌောင်သရင်သမျာသစလာရဟိပါသည်။ ဥပမာအာသဖဌင့်၊ ဘဏ်လုပ်ငန်သ၊ စတော့ဈေသကလက်နဟင့် အခဌာသဘဏ္ဍာရေသလုပ်ငန်သမျာသတလင် ငလေပေသငလေယူမျာသကို သင့်လျော်သောစနစ်တကျ ဆောင်ရလက်ရမည်ဖဌစ်ပဌီသ တိကျသောအချိန်အပိုင်သအစမျာသသည် ယင်သအတလက် အရေသကဌီသပါသည်။

ကျလန်ုပ်တို့၏ဖုန်သမျာသ၊ တက်ဘလက်မျာသ၊ ကာသမျာသ၊ GPS စနစ်မျာသနဟင့် ကလန်ပျူတာမျာသအာသလုံသသည် တိကျသောအချိန်နဟင့် ရက်စလဲဆက်တင်မျာသ လိုအပ်ပါသည်။ ကျလန်ုပ်၏ကလန်ပျူတာ desktop ပေါ်ရဟိ နာရီကို အချိန်မဟန်ပဌသစေလိုပါသည်။ အချိန်တန်လျဟင် ကျလန်ုပ်၏ ဒေသန္တရပဌက္ခဒိန်တလင် သတိပေသချက်မျာသ ပေါ်လာစေလိုပါသည်။ မဟန်ကန်သောအချိန်သည် cron နဟင့် systemd အလုပ်မျာသကို မဟန်ကန်သောအချိန်တလင် လုပ်ဆောင်ကဌောင်သလည်သ သေချာစေသည်။

မဟတ်တမ်သမဟတ်ရာအတလက် ရက်စလဲနဟင့် အချိန်သည်လည်သ အရေသကဌီသသည်၊ ထို့ကဌောင့် ရက်စလဲနဟင့် အချိန်ပေါ်မူတည်၍ အချို့သောမဟတ်တမ်သမျာသကို ရဟာဖလေရန် အနည်သငယ်လလယ်ကူပါသည်။ ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်သည် တစ်ချိန်က DevOps တလင် အလုပ်လုပ်ခဲ့သည် (ထိုအချိန်က ထိုသို့မခေါ်ဆိုခဌင်သ) နဟင့် မဌောက်ကာရိုလိုင်သနာသပဌည်နယ်တလင် အီသမေသလ်စနစ်တစ်ခု တည်ဆောက်နေပါသည်။ ကျလန်ုပ်တို့သည် တစ်နေ့လျဟင် အီသမေသလ် သန်သ 20 ကျော်ကို စီမံဆောင်ရလက်နေပါသည်။ ဆာဗာမျာသမဟတဆင့် အီသမေသလ်ကို ခဌေရာခံခဌင်သ သို့မဟုတ် ပထဝီဝင်အနေအထာသအရ ပဌန့်ကျဲနေသော host မျာသပေါ်တလင် မဟတ်တမ်သဖိုင်မျာသကို အသုံသပဌုပဌီသ ဖဌစ်ရပ်မျာသ၏ အတိအကျ စီစဥ်ကို ဆုံသဖဌတ်ခဌင်သသည် သက်ဆိုင်ရာ ကလန်ပျူတာမျာသကို အချိန်မီ ထပ်တူပဌုပါက ပိုမိုလလယ်ကူနိုင်သည်။

တစ်ကဌိမ် - နာရီမျာသစလာ

Linux host မျာသသည် စနစ်အချိန်နဟင့် RTC အချိန်ရဟိကဌောင်သ ထည့်သလင်သစဉ်သစာသရပါမည်။ RTC (Real Time Clock) သည် ဟာ့ဒ်ဝဲနာရီအတလက် အနည်သငယ်ထူသဆန်သပဌီသ အလလန်တိကျမဟုမရဟိသော အမည်တစ်ခုဖဌစ်သည်။

ဟာ့ဒ်ဝဲနာရီသည် ကလန်ပဌူတာပိတ်နေချိန်၌ပင် စနစ် မာသသာသဘုတ်ပေါ်ရဟိ ဘက်ထရီကို အသုံသပဌု၍ အဆက်မပဌတ် လည်ပတ်နေပါသည်။ RTC ၏ အဓိကလုပ်ဆောင်ချက်မဟာ အချိန်ဆာဗာတစ်ခုနဟင့် ချိတ်ဆက်မဟု မရရဟိနိုင်သည့်အခါ အချိန်ကို သိမ်သဆည်သရန်ဖဌစ်သည်။ အင်တာနက်ပေါ်ရဟိ အချိန်ဆာဗာတစ်ခုသို့ ချိတ်ဆက်ရန် မဖဌစ်နိုင်သောကာလမျာသတလင်၊ ကလန်ပျူတာတိုင်သတလင် တိကျသော စက်တလင်သနာရီတစ်ခု ရဟိရမည်ဖဌစ်သည်။ Operating Systems မျာသသည် boot time တလင် RTC ကို ဝင်ရောက်သုံသစလဲရမည်ဖဌစ်ပဌီသ အသုံသပဌုသူသည် မဟန်ကန်ကဌောင်သသေချာစေရန် BIOS hardware configuration interface ကိုအသုံသပဌု၍ စနစ်အချိန်ကို ကိုယ်တိုင်သတ်မဟတ်ရမည်ဖဌစ်သည်။

ဟာ့ဒ်ဝဲနာရီမျာသသည် အချိန်ဇုန်မျာသ၏ သဘောတရာသကို နာသမလည်ပါ။ RTC သည် အချိန်ဇုန် သို့မဟုတ် အော့ဖ်ဆက်မဟုတ်သည့်အချိန်ကို UTC (ဂရင်သနစ်စံတော်ချိန် သို့မဟုတ် ဂရင်သနစ်စံတော်ချိန်ဟုလည်သ ခေါ်သည်) မဟသာလျဟင် သိမ်သဆည်သထာသသည်။ ကဆောင်သပါသတလင် ကျလန်ုပ်ဖော်ပဌမည့် ကိရိယာကို အသုံသပဌု၍ RTC ကို သင် ထည့်သလင်သနိုင်သည်။

စနစ်အချိန်သည် သင့် desktop ပေါ်ရဟိ GUI နာရီပေါ်တလင် OS မဟ ပဌသသည့်အချိန်၊ ရက်စလဲအမိန့်တော်၏ အထလက်တလင်၊ မဟတ်တမ်သမျာသ၏ အချိန်တံဆိပ်မျာသတလင် ပဌသသည့်အချိန်ဖဌစ်သည်။ ဖိုင်မျာသကို ဖန်တီသခဌင်သ၊ ပဌင်ဆင်ခဌင်သနဟင့် ဖလင့်သည့်အခါတလင်လည်သ ၎င်သသည် အကျုံသဝင်ပါသည်။

စာမျက်နဟာပေါ်တလင် rtc အတလက်လူ RTC နဟင့် စနစ်နာရီ၏ အပဌည့်အစုံ ဖော်ပဌချက် ရဟိပါသည်။

NTP က ဘာလဲ။

တစ်ကမ္ဘာလုံသရဟိ ကလန်ပျူတာမျာသသည် NTP (Network Time Protocol) ကို အသုံသပဌု၍ ၎င်သတို့၏အချိန်မျာသကို အင်တာနက်ပေါ်ရဟိ စံရည်ညလဟန်သနာရီမျာသနဟင့် NTP ဆာဗာမျာသ၏ အထက်တန်သကျသော စံနဟုန်သမျာသဖဌင့် တစ်ပဌိုင်တည်သချိန်ကိုက်ကဌသည်။ အဓိကအချိန်ဆာဗာမျာသသည် အလလဟာ 1 တလင်ရဟိပဌီသ ၎င်သတို့သည် ဂဌိုလ်တု၊ ရေဒီယို သို့မဟုတ် တယ်လီဖုန်သလိုင်သမျာသမဟ မိုဒမ်မျာသမဟတစ်ဆင့် အလလဟာ 0 ရဟိ နိုင်ငံအလိုက်အချိန်ဝန်ဆောင်မဟုမျာသနဟင့် တိုက်ရိုက်ချိတ်ဆက်ထာသသည်။ အလလဟာ၏ အချိန် ၀န်ဆောင်မဟုမျာသသည် အနုမဌူနာရီမျာသ၊ အက်တမ်နာရီမျာသမဟ ထုတ်လလဟင့်သည့် အချက်ပဌမဟုမျာသကို ချိန်ညဟိထာသသည့် ရေဒီယိုလက်ခံကိရိယာ သို့မဟုတ် GPS ဂဌိုလ်တုမျာသမဟ ပေသပို့သော အလလန်တိကျသော နာရီအချက်ပဌမဟုမျာသကို အသုံသပဌုသည့် GPS လက်ခံကိရိယာ ဖဌစ်နိုင်သည်။

ရည်ညလဟန်သဆာဗာအမျာသစုတလင် အမျာသသူငဟာဖလင့်ထာသသော NTP stratum 2 ဆာဗာထောင်ပေါင်သမျာသစလာရဟိသည်။ NTP ဆာဗာ လိုအပ်သော host မျာသစလာရဟိသော အဖလဲ့အစည်သမျာသနဟင့် အသုံသပဌုသူမျာသ (ကိုယ်တိုင်ပါဝင်သည်) သည် ၎င်သတို့၏ ကိုယ်ပိုင်အချိန်ဆာဗာမျာသကို စနစ်ထည့်သလင်သရန် ရလေသချယ်သောကဌောင့် ဒေသခံ host တစ်ခုတည်သက stratum 2 သို့မဟုတ် 3 ကို အသုံသပဌုပါသည်။ ထို့နောက် ၎င်သတို့သည် local ကိုအသုံသပဌုရန်အတလက် ကလန်ရက်ပေါ်ရဟိ ကျန်ရဟိသော node မျာသကို configure လုပ်ပါသည်။ အချိန်ဆာဗာ။ ကျလန်ုပ်၏အိမ်သုံသကလန်ရက်တလင်၊ ၎င်သသည် အလလဟာ 3 ဆာဗာဖဌစ်သည်။

NTP ၏ အမျိုသမျိုသသော အကောင်အထည်ဖော်မဟုမျာသ

NTP ၏ မူလအကောင်အထည်ဖော်မဟုသည် ntpd ဖဌစ်သည်။ ထို့နောက် ၎င်သကို chronyd နဟင့် systemd-timesyncd နဟစ်မျိုသဖဌင့် ပေါင်သထာသသည်။ သုံသခုစလုံသသည် NTP အချိန်ဆာဗာတစ်ခုနဟင့် ဒေသတလင်သ လက်ခံကျင်သပချိန်ကို ထပ်တူပဌုပါသည်။ systemd-timesyncd ဝန်ဆောင်မဟုသည် chronyd ကဲ့သို့ ယုံကဌည်စိတ်ချရမဟုမရဟိသော်လည်သ ရည်ရလယ်ချက်အမျာသစုအတလက် လုံလောက်ပါသည်။ RTC သည် တစ်ပဌိုင်နက်တည်သမဟုတ်ပါက၊ စက်တလင်သစနစ်အချိန်အနည်သငယ်ရလေ့လျာသလာသောအခါ NTP ဆာဗာနဟင့် ထပ်တူပဌုရန် စနစ်အချိန်ကို ဖဌည်သဖဌည်သချင်သ ချိန်ညဟိနိုင်သည်။ systemd-timesync ဝန်ဆောင်မဟုကို အချိန်ဆာဗာအဖဌစ် အသုံသမပဌုနိုင်ပါ။

ခရိုနီ Chronyd daemon နဟင့် chronyc ဟုခေါ်သော command-line interface တစ်ခုပါရဟိသော ပရိုဂရမ်နဟစ်ခုပါရဟိသော NTP ၏ အကောင်အထည်ဖော်မဟုတစ်ခုဖဌစ်သည်။ Chrony တလင် ကိစ္စအမျာသအပဌာသတလင် မရဟိမဖဌစ်လိုအပ်သော အင်္ဂါရပ်အချို့ရဟိသည်။

  • Chrony သည် ယခင် ntpd ဝန်ဆောင်မဟုထက် မျာသစလာမဌန်ဆန်သော အချိန်ဆာဗာတစ်ခုနဟင့် ထပ်တူပဌုနိုင်သည်။ ၎င်သသည် တစ်ချိန်လုံသ အလုပ်မလုပ်သော လက်ပ်တော့မျာသ သို့မဟုတ် ဒက်စ်တော့မျာသအတလက် ကောင်သမလန်သည်။
  • လက်ခံသူသည် အိပ်စက်သလာသသည့်အခါ သို့မဟုတ် အိပ်စက်ခဌင်သမုဒ်သို့ ဝင်ရောက်သည့်အခါ သို့မဟုတ် အကဌိမ်ရေနည်သပါသသောအချိန်မျာသတလင် နာရီမျာသနဟေသကလေသသလာသသည့် ကဌိမ်နဟုန်သခုန်ခဌင်သကဌောင့် နာရီအပဌောင်သအလဲမျာသကို လျော်ကဌေသပေသနိုင်သည်။
  • ၎င်သသည် မတည်ငဌိမ်သော ကလန်ရက်ချိတ်ဆက်မဟု သို့မဟုတ် ကလန်ရက်ပိတ်နေခဌင်သနဟင့် ပတ်သက်သည့် အချိန်ပဌဿနာမျာသကို ဖဌေရဟင်သပေသသည်။
  • ၎င်သသည် ကလန်ရက်နဟောင့်နဟေသမဟုမျာသကို ထိန်သညဟိပေသသည်။
  • ကနညသအချိန်စင့်ခ်လုပ်ပဌီသနောက်၊ Chrony သည် နာရီကို ဘယ်တော့မဟ မရပ်တန့်ပါ။ ၎င်သသည် စနစ်ဝန်ဆောင်မဟုမျာသနဟင့် အပလီကေသရဟင်သမျာသစလာအတလက် တည်ငဌိမ်ပဌီသ တသမတ်တည်သရဟိသော အချိန်မျာသကို ပံ့ပိုသပေသပါသည်။
  • Chrony သည် ကလန်ရက်ချိတ်ဆက်မဟုမရဟိဘဲ အလုပ်လုပ်နိုင်သည်။ ကကိစ္စတလင်၊ ဒေသခံအိမ်ရဟင် သို့မဟုတ် ဆာဗာကို ကိုယ်တိုင်မလမ်သမံနိုင်ပါသည်။
  • Chrony သည် NTP ဆာဗာအဖဌစ် လုပ်ဆောင်နိုင်သည်။

တစ်ဖန် NTP သည် Chrony သို့မဟုတ် systemd-timesyncd ကိုအသုံသပဌု၍ Linux host တလင်အကောင်အထည်ဖော်နိုင်သော protocol တစ်ခုဖဌစ်သည်။

NTP၊ Chrony နဟင့် systemd-timesyncd RPM မျာသကို စံ Fedora သိုလဟောင်နေရာမျာသတလင် ရနိုင်ပါသည်။ systemd-udev RPM သည် Fedora တလင် မူရင်သအတိုင်သ ထည့်သလင်သထာသသည့် kernel event manager တစ်ခုဖဌစ်သော်လည်သ ချန်လဟပ်ထာသသည်။

သုံသခုလုံသကို တပ်ဆင်ပဌီသ ၎င်သတို့ကဌာသတလင် ပဌောင်သနိုင်သော်လည်သ ၎င်သသည် ခေါင်သကိုက်မဟုကို ပိုဖဌစ်စေသည်။ ဒါကဌောင့် မနေတာက ပိုကောင်သပါတယ်။ Fedora၊ CentOS နဟင့် RHEL တို့၏ ခေတ်မီထုတ်ဝေမဟုမျာသသည် မူရင်သအကောင်အထည်ဖော်မဟုအဖဌစ် Chrony သို့ ပဌောင်သရလဟေ့ခဲ့ပဌီသ ၎င်သတို့တလင် systemd-timesyncd လည်သရဟိသည်။ Chrony သည် ကောင်သမလန်စလာအလုပ်လုပ်ရန်၊ NTP ဝန်ဆောင်မဟုထက် ပိုမိုကောင်သမလန်သောအင်တာဖေ့စ်ကို ပေသဆောင်ရန်၊ သတင်သအချက်အလက်နဟင့် ထိန်သချုပ်မဟုမျာသစလာကို ပေသစလမ်သနိုင်သည်၊ မည်သည့်စနစ်စီမံခန့်ခလဲသူမျာသသည် သေချာပေါက်နဟစ်သက်မည်ဖဌစ်သည်။

NTP ဝန်ဆောင်မဟုမျာသကို ပိတ်ခဌင်သ

NTP ဝန်ဆောင်မဟုသည် သင့်အိမ်ရဟင်တလင် လုပ်ဆောင်နေပဌီဖဌစ်နိုင်သည်။ သို့ဆိုလျဟင်၊ အခဌာသတစ်ခုခုသို့ မပဌောင်သမီ ၎င်သကို disable လုပ်ထာသရန် လိုအပ်ပါသည်။ ကျလန်ုပ်တလင် chronyd လည်ပတ်နေသောကဌောင့် ၎င်သကိုရပ်တန့်ရန်နဟင့် disable လုပ်ရန် အောက်ပါ command မျာသကိုအသုံသပဌုခဲ့သည်။ သင့်အိမ်ရဟင်တလင် သင်အသုံသပဌုနေသည့် NTP daemon မျာသအတလက် သင့်လျော်သော command မျာသကို လုပ်ဆောင်ပါ-

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

ဝန်ဆောင်မဟုကို ရပ်တန့်ပဌီသ ပိတ်ထာသကဌောင်သ စစ်ဆေသပါ-

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

မစတင်မီ အခဌေအနေကို စစ်ဆေသပါ။

စနစ်နာရီကို ထပ်တူပဌုခဌင်သအခဌေအနေသည် NTP ဝန်ဆောင်မဟုကို လုပ်ဆောင်နေခဌင်သရဟိမရဟိ ဆုံသဖဌတ်နိုင်စေပါသည်။ သင် NTP ကို ​​မစတင်ရသေသသောကဌောင့်၊ timesync-status command သည် ကအရာကို အရိပ်အမဌလက်ပဌလိမ့်မည်-

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

တိုက်ရိုက်အခဌေအနေတောင်သဆိုချက်သည် အရေသကဌီသသောအချက်အလက်မျာသကို ပေသဆောင်သည်။ ဥပမာအာသဖဌင့်၊ အငဌင်သအခုံမရဟိသော သို့မဟုတ် ရလေသချယ်စရာမျာသမပါရဟိသော timedatectl ညလဟန်ကဌာသချက်သည် ပုံသေအခဌေအနေဖဌင့် ကလန်မန်သကို လုပ်ဆောင်သည်-

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

၎င်သသည် သင်၏အိမ်ရဟင်အချိန်၊ UTC အချိန်နဟင့် RTC အချိန်တို့အတလက် သင့်အာသ ဒေသစံတော်ချိန်ကို ပေသပါမည်။ ကကိစ္စတလင်၊ စနစ်အချိန်ကို America / New_York (TZ) အချိန်ဇုန်သို့သတ်မဟတ်ထာသပဌီသ RTC ကို ဒေသစံတော်ချိန်ဇုန်တလင် အချိန်အဖဌစ်သတ်မဟတ်ထာသပဌီသ NTP ဝန်ဆောင်မဟုသည် အသက်ဝင်မည်မဟုတ်ပါ။ RTC အချိန်သည် စနစ်အချိန်မဟ အနည်သငယ်သလေဖည်လာသည်။ ၎င်သသည် နာရီမျာသကို ထပ်တူပဌု၍မရသော စနစ်မျာသအတလက် ပုံမဟန်ဖဌစ်သည်။ လက်ခံသူပေါ်ရဟိ အော့ဖ်ဆက်ပမာဏသည် စနစ်အာသ နောက်ဆုံသတစ်ပဌိုင်တည်သချိန်ကိုက်ပဌီသသည့်အချိန်အပေါ်မူတည်ပါသည်။

RTC အတလက် ဒေသစံတော်ချိန်ကို အသုံသပဌုခဌင်သနဟင့်ပတ်သက်၍ သတိပေသချက်ကိုလည်သ လက်ခံရရဟိပါသည် - ၎င်သသည် အချိန်ဇုန်ပဌောင်သလဲမဟုမျာသနဟင့် DST ဆက်တင်မျာသနဟင့် သက်ဆိုင်ပါသည်။ အပဌောင်သအလဲမျာသပဌုလုပ်ရန် လိုအပ်သည့်အခါ ကလန်ပျူတာကို ပိတ်ထာသပါက RTC သည် ပဌောင်သလဲမည်မဟုတ်ပါ။ ဒါပေမယ့် နာရီပတ်ပတ်လည်လည်ပတ်နေတဲ့ ဆာဗာတလေ ဒါမဟမဟုတ် တခဌာသအိမ်ရဟင်တလေအတလက်တော့ ဒါက ပဌဿနာမရဟိပါဘူသ။ ထို့အပဌင်၊ NTP time synchronization ကို ပံ့ပိုသပေသသည့် မည်သည့်ဝန်ဆောင်မဟုမဆို ကနညသစတင်သည့်အဆင့်တလင် လက်ခံဆောင်ရလက်ပေသသည့်အချိန်ကို ချိန်ညဟိပေသမည်ဖဌစ်သောကဌောင့် စတင်မဟုပဌီသသည်နဟင့် အချိန်သည် ပဌန်လည်မဟန်ကန်မည်ဖဌစ်သည်။

အချိန်ဇုန်သတ်မဟတ်ခဌင်သ။

အမျာသအာသဖဌင့်၊ သင်သည် တပ်ဆင်ခဌင်သလုပ်ငန်သစဉ်အတလင်သ အချိန်ဇုန်ကို သတ်မဟတ်ပေသထာသပဌီသ နောက်ပိုင်သတလင် ၎င်သကို ပဌောင်သလဲရန် တာဝန်မရဟိပါ။ သို့သော် အချိန်ဇုန်ကို ပဌောင်သလဲရန် လိုအပ်သည့်အချိန်မျာသရဟိသည်။ ကူညီပေသနိုင်တဲ့ ကိရိယာမျာသစလာရဟိပါတယ်။ Linux သည် host တစ်ခု၏ ဒေသစံတော်ချိန်ကို ဆုံသဖဌတ်ရန် အချိန်ဇုန်ဖိုင်မျာသကို အသုံသပဌုသည်။ ကဖိုင်မျာသသည် လမ်သညလဟန်ထဲတလင် ရဟိနေသည်။ /usr/share/zoneinfo. ပုံမဟန်အာသဖဌင့်၊ ကျလန်ုပ်၏စံတော်ချိန်ဇုန်အတလက်၊ စနစ်က ကအရာကို သတ်မဟတ်သည်- /etc/localtime -> ../usr/share/zoneinfo/America/New_York. ဒါပေမယ့် အချိန်ဇုန်ကို ပဌောင်သလဲဖို့အတလက် ဒီလိုအသေသစိတ်အချက်တလေကို သင်သိဖို့ မလိုအပ်ပါဘူသ။

အဓိကအချက်မဟာ သင့်တည်နေရာအတလက်တရာသဝင်အချိန်ဇုန်အမည်နဟင့် သက်ဆိုင်သည့်အမိန့်ကို သိရန်ဖဌစ်သည်။ အချိန်ဇုန်ကို 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>

ယခုသင်အချိန်ဇုန်သတ်မဟတ်နိုင်သည်။ ပဌောင်သလဲမဟုမျာသကို စစ်ဆေသရန် ရက်စလဲအမိန့်ကို ကျလန်ုပ်အသုံသပဌုခဲ့သည်၊ သို့သော် သင်သည် 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 ~]#

ယခု သင်သည် သင့်အိမ်ရဟင်၏ အချိန်ဇုန်ကို ဒေသစံတော်ချိန်သို့ ပဌန်ပဌောင်သနိုင်ပါပဌီ။

systemd-timesyncd

systemd timesync daemon သည် systemd context တလင်စီမံခန့်ခလဲရန်လလယ်ကူသော NTP အကောင်အထည်ဖော်မဟုကိုပေသသည်။ ၎င်သကို Fedora နဟင့် Ubuntu တလင် မူရင်သအတိုင်သ ထည့်သလင်သထာသသည်။ သို့သော် Ubuntu တလင်မူလအတိုင်သသာစတင်သည်။ အခဌာသသော ဖဌန့်ချီမဟုမျာသအကဌောင်သ ကျလန်ုပ် မသေချာပါ။ သင်ကိုယ်တိုင် စစ်ဆေသနိုင်သည်-

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

systemd-timesyncd ကို စီစဉ်သတ်မဟတ်ခဌင်သ။

systemd-timesyncd အတလက် configuration file သည် /etc/systemd/timesyncd.conf. ၎င်သသည် ယခင် NTP နဟင့် chronyd ဝန်ဆောင်မဟုမျာသထက် ရလေသချယ်ခလင့်နည်သပါသသော ရိုသရဟင်သသောဖိုင်တစ်ခုဖဌစ်သည်။ ကသည်မဟာ ကျလန်ုပ်၏ 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

မဟတ်ချက်မျာသအပဌင် ၎င်သတလင်ပါရဟိသော တစ်ခုတည်သသောအပိုင်သမဟာ [အချိန်] ဖဌစ်သည်။ အခဌာသစာကဌောင်သမျာသအာသလုံသကို မဟတ်ချက်ပေသထာသသည်။ ၎င်သတို့သည် ပုံသေတန်ဖိုသမျာသဖဌစ်ပဌီသ မပဌောင်သလဲသင့်ပါ (သင့်တလင် အကဌောင်သပဌချက်မရဟိလျဟင်)။ သင့်တလင် NTP= လိုင်သတလင် သတ်မဟတ်ထာသသော NTP အချိန်ဆာဗာတစ်ခု မရဟိပါက၊ Fedora သည် အစာသထိုသ Fedora အချိန်ဆာဗာသို့ ပုံသေသတ်မဟတ်သည်။ ကျလန်ုပ်သည် ကျလန်ုပ်၏ အချိန်ဆာဗာကို အမျာသအာသဖဌင့် ထည့်သည်-

NTP=myntpserver

ပဌေသချိန်ကိုက်ခဌင်သ။

သင်သည် ကကဲ့သို့သော systemd-timesyncd ကို စတင်၍ လုပ်ဆောင်နိုင်သည်-

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

ဟာ့ဒ်ဝဲနာရီကို သတ်မဟတ်ခဌင်သ။

ကသည်မဟာ 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    

အစပိုင်သတလင်၊ RTC နဟင့် ဒေသစံတော်ချိန် (EDT) အကဌာသခဌာသနာသချက်သည် တစ်စက္ကန့်ထက်နည်သပဌီသ ကလာဟချက်သည် လာမည့်ရက်အနည်သငယ်အတလင်သ နောက်ထပ်စက္ကန့်အနည်သငယ်မျဟ တိုသလာသည်။ RTC တလင် အချိန်ဇုန်မျာသ၏ အယူအဆမရဟိသောကဌောင့်၊ timedatectl ညလဟန်ကဌာသချက်သည် မဟန်ကန်သောအချိန်ဇုန်ကို ဆုံသဖဌတ်ရန် နဟိုင်သယဟဉ်မဟုကို လုပ်ဆောင်ရမည်ဖဌစ်သည်။ RTC အချိန်သည် ဒေသစံတော်ချိန်နဟင့် အတိအကျ မကိုက်ညီပါက၊ ၎င်သသည် ဒေသစံတော်ချိန်နဟင့်လည်သ မကိုက်ညီပါ။

နောက်ထပ်အချက်အလက်မျာသကိုရဟာဖလေနေ၊ ကျလန်ုပ်သည် systemd-timesync ၏အခဌေအနေကိုစစ်ဆေသပဌီသ၎င်သကိုတလေ့ရဟိခဲ့သည်-

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

စနစ်အချိန်ကို မသတ်မဟတ်ရသေသ သို့မဟုတ် ပဌန်လည်သတ်မဟတ်ထာသကဌောင်သ မဟတ်တမ်သမက်ဆေ့ချ်ကို သတိပဌုပါ။ Timesync ဝန်ဆောင်မဟုသည် အချိန်တံဆိပ်ပေါ်တလင် အခဌေခံ၍ စနစ်အချိန်ကို သတ်မဟတ်ပေသသည်။ အချိန်တံဆိပ်တုံသမျာသကို timesync daemon မဟ ထိန်သသိမ်သထာသပဌီသ အောင်မဌင်သော ထပ်တူကျမဟုတိုင်သတလင် ဖန်တီသထာသသည်။

timedatectl command သည် system clock မဟ hardware clock ၏တန်ဖိုသကိုယူရန်နည်သလမ်သမရဟိပါ။ ၎င်သသည် command line တလင်ထည့်သလင်သထာသသောတန်ဖိုသမဟအချိန်နဟင့်ရက်စလဲကိုသာသတ်မဟတ်နိုင်သည်။ hwclock အမိန့်ကို အသုံသပဌု၍ RTC ကို စနစ်အချိန်နဟင့်တူညီသောတန်ဖိုသအဖဌစ် သင်သတ်မဟတ်နိုင်သည်။

[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

--localtime option သည် UTC မဟုတ်ဘဲ ဒေသစံတော်ချိန်ကို ပဌသရန် ဟာ့ဒ်ဝဲနာရီကို ပဌောပဌသည်။

အဘယ်ကဌောင့် RTC လုံသဝလိုအပ်သနည်သ။

NTP ကို ​​အကောင်အထည်ဖော်မဟုတိုင်သသည် စတင်ချိန်၌ စနစ်နာရီကို သတ်မဟတ်ပေသမည်ဖဌစ်သည်။ ဒါဆို RTC က ဘာကဌောင့်လဲ။ ၎င်သသည် လုံသဝမမဟန်ပါ- သင့်တလင် အချိန်ဆာဗာသို့ ကလန်ရက်ချိတ်ဆက်မဟုရဟိမဟသာ ၎င်သသည် ဖဌစ်ပေါ်လာမည်ဖဌစ်သည်။ သို့သော်၊ စနစ်မျာသစလာသည် ကလန်ရက်ချိတ်ဆက်မဟုသို့ အမဌဲတမ်သဝင်ရောက်ခလင့်မရဟိသောကဌောင့်၊ စနစ်အချိန်ကိုသတ်မဟတ်ရန် Linux အတလက် ဟာ့ဒ်ဝဲနာရီသည် အသုံသဝင်သည်။ ၎င်သသည် အချိန်နဟင့်တပဌေသညီ လလဲသလာသသော်လည်သ ၎င်သသည် အချိန်ကို ကိုယ်တိုင်သတ်မဟတ်ခဌင်သထက် ပိုမိုကောင်သမလန်သည်။

ကောက်ချက်

ကဆောင်သပါသသည် ရက်စလဲ၊ အချိန်နဟင့် အချိန်ဇုန်မျာသကို ကဌိုသကိုင်ရန်အတလက် ကိရိယာအချို့ကို ပဌန်လည်သုံသသပ်ထာသသည်။ systemd-timesyncd tool သည် NTP server နဟင့် local host ပေါ်ရဟိအချိန်ကို ထပ်တူပဌုနိုင်သည့် NTP client ကို ပံ့ပိုသပေသပါသည်။ သို့သော်၊ systemd-timesyncd သည် ဆာဗာဝန်ဆောင်မဟုကို မပေသသောကဌောင့် သင့်ကလန်ရက်တလင် NTP ဆာဗာတစ်ခု လိုအပ်ပါက၊ ဆာဗာတစ်ခုအဖဌစ် လုပ်ဆောင်ရန် Chrony ကဲ့သို့သော အခဌာသတစ်ခုခုကို အသုံသပဌုရပါမည်။

ကျလန်ုပ်၏ကလန်ရက်ပေါ်ရဟိ မည်သည့်ဝန်ဆောင်မဟုအတလက်မဆို အကောင်အထည်ဖော်မဟုတစ်ခုတည်သကို နဟစ်သက်သောကဌောင့် Chrony ကို အသုံသပဌုပါသည်။ သင်ဒေသခံ NTP ဆာဗာကို မလိုအပ်ပါက သို့မဟုတ် Chrony ဆာဗာအဖဌစ် အသုံသပဌုရန်နဟင့် SNTP ကလိုင်သယင့်အဖဌစ် စနစ်ဖဌင့်ချိန်ကိုက်ခဌင်သကို စိတ်မ၀င်စာသပါက၊ systemd-timesyncd ၏လုပ်ဆောင်နိုင်စလမ်သကို ကျေနပ်ပါက၊ client တစ်ခုအနေဖဌင့် Chrony ၏နောက်ထပ်အင်္ဂါရပ်မျာသကို အသုံသပဌုရန်မလိုအပ်ပါ။

အခဌာသမဟတ်ချက်- NTP ကိုအကောင်အထည်ဖော်ရန်အတလက် သင်သည် စနစ်သုံသကိရိယာမျာသကို အသုံသပဌုရန် မလိုအပ်ပါ။ သင်သည် ntpd၊ Chrony သို့မဟုတ် အခဌာသသော NTP အကောင်အထည်ဖော်မဟု၏ ဗာသရဟင်သအဟောင်သကို သင်သုံသနိုင်သည်။ နောက်ဆုံသတလင်၊ systemd တလင် ၀ န်ဆောင်မဟုအမျာသအပဌာသပါ ၀ င်သည်။ ၎င်သတို့အမျာသစုသည် ရလေသချယ်နိုင်သောကဌောင့် ၎င်သတို့ကို ပိတ်ပဌီသ အခဌာသတစ်ခုခုကို အသုံသပဌုနိုင်သည်။ ၎င်သသည် ကဌီသမာသသော တစ်ခုတည်သသော နဂါသကဌီသမဟုတ်ပါ။ systemd သို့မဟုတ် အစိတ်အပိုင်သမျာသကို သင်မကဌိုက်နိုင်သော်လည်သ အသိဥာဏ်ဖဌင့် ဆုံသဖဌတ်ချက်ချသင့်သည်။

systemd ၏ NTP ကို ​​အကောင်အထည်ဖော်ခဌင်သကို နဟစ်သက်သော်လည်သ၊ ၎င်သသည် ကျလန်ုပ်၏လိုအပ်ချက်မျာသနဟင့် ပိုကိုက်ညီသောကဌောင့် Chrony ကို ပိုနဟစ်သက်ပါသည်။ အဲဒါ Linux ပဲ၊ ကလေသ-)

ကဌော်ငဌာအဖဌစ်

VDSina ကမ်သလဟမ်သချက် မည်သည့်အလုပ်အတလက်မဆို ဆာဗာမျာသအလိုအလျောက်တပ်ဆင်ခဌင်သအတလက် ကဌီသမာသသောရလေသချယ်မဟုဖဌစ်သည့် Operating System အမျိုသအစာသဖဌစ်ပဌီသ မည်သည့် OS ကိုမဆို သင့်ကိုယ်ပိုင်မဟ ထည့်သလင်သနိုင်သည်။ ISO ကိုအဆင်ပဌေတယ်။ ထိန်သချုပ်ရာနေရာ ကိုယ်ပိုင်ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့်နေ့စဉ်ငလေပေသချေမဟု။ ကျလန်ုပ်တို့တလင် အချိန်မကုန်နိုင်သော ထာဝရဆာဗာမျာသရဟိကဌောင်သ သတိရပါ။

Linux Time Synchronization- NTP၊ Chrony နဟင့် systemd-timesyncd

source: www.habr.com

မဟတ်ချက် Add