chrony बनाम systemd-timesyncd - NTP क्लाइंट के रूप में क्या अंतर और उपयोग के मामले हैं?


18

किसी तरह लेकिन पुराने सवाल पर काफी इमारत नहीं है "ntpd बनाम systemd-timesyncd - विश्वसनीय NTP सिंकिंग कैसे प्राप्त करें?" , मैं एनटीपी क्लाइंट के संदर्भ में क्रोनी और सिस्टमड-टाइमसेंक के अंतर के बारे में पूछना चाहता हूं ।

मुझे पता है कि systemd-timesyncd कम या ज्यादा ntp क्लाइंट कार्यान्वयन है, जबकि क्रोनी एक पूर्ण विकसित NTP डेमन समाधान है जो एक NTP क्लाइंट को शामिल करने के लिए होता है।

उबंटू बायोनिक बीवर रिलीज नोट निम्नलिखित बताते हैं:

सरल समय के लिए सिंक की जरूरत है बेस सिस्टम पहले से ही systemd-timesyncd के साथ आता है। केवल समय सर्वर के रूप में कार्य करने के लिए या यदि आप विज्ञापित अधिक सटीक और कुशल सिंकिंग चाहते हैं तो क्रॉनिक की आवश्यकता है।

मुझे काम करने के लिए एक न्यूनतम प्रीइंस्टॉल्ड टूल का उपयोग करने का विचार पसंद है और मुझे पूरा यकीन है कि systemd-timesyncd मेरे उपयोग के मामलों के लिए काम करेगा, फिर भी मैं उत्सुक हूं:

  • सटीकता के मामले में दोनों के बीच वास्तविक विश्व अंतर क्या हैं?
  • दक्षता में अंतर क्या हैं?
  • एक "गैर सरल" समय सिंक एनटी क्लाइंट के रूप में क्रॉनिक के लिए उपयोग-मामलों की आवश्यकता उर्फ ​​क्या हैं?

जवाबों:


13

Systemd-timesyncd में systemd NEWS फाइल की घोषणा, इस उपकरण के अंतर को क्रोन्टी और उसके जैसे टूल्स की तुलना में समझाने का अच्छा काम करती है। (जोर मेरा):

पूरे नेटवर्क में सिस्टम क्लॉक को सिंक्रोनाइज़ करने के लिए एक नया "systemd-timesyncd" डेमॉन जोड़ा गया है। यह एक SNTP क्लाइंट को लागू करता हैएनटी के कार्यान्वयन जैसे कि क्रॉनी या एनटीपी संदर्भ सर्वर के विपरीत यह केवल एक ग्राहक पक्ष को लागू करता है, और पूरी एनटीपी जटिलता से परेशान नहीं करता है, केवल एक दूरस्थ सर्वर से क्वेरी करने पर ध्यान केंद्रित करता है और स्थानीय घड़ी को सिंक्रनाइज़ करता है । जब तक आप नेटवर्क क्लाइंट्स के लिए NTP सेवा करना चाहते हैं या स्थानीय हार्डवेयर घड़ियों से जुड़ना चाहते हैं, यह साधारण NTP क्लाइंट अधिकांश इंस्टॉलेशन के लिए उपयुक्त होना चाहिए। [...]

यह सेटअप सर्वर बेड़े में अधिकांश मेजबानों के लिए एक सामान्य उपयोग का मामला है। वे आमतौर पर स्थानीय एनटीपी सर्वर से सिंक्रनाइज़ हो जाते हैं, जो स्वयं कई स्रोतों से सिंक्रनाइज़ होते हैं, संभवतः हार्डवेयर सहित। systemd-timesyncd उस सामान्य उपयोग के मामले के लिए एक आसान उपयोग समाधान प्रदान करने का प्रयास करता है।


अपने विशिष्ट प्रश्नों को संबोधित करने की कोशिश कर रहा है:

सटीकता के मामले में दोनों के बीच वास्तविक विश्व अंतर क्या हैं?

मेरा मानना ​​है कि आप कई स्रोतों से सिंक्रनाइज़ेशन डेटा प्राप्त करके उच्च सटीकता प्राप्त कर सकते हैं, जो विशेष रूप से सिस्टमड-टाइमसेंडी के लिए एक समर्थित उपयोग मामला नहीं है। लेकिन जब आप इसका उपयोग अपने विश्वसनीय आंतरिक नेटवर्क से जुड़े केंद्रीय NTP सर्वर से सिंक्रनाइज़ेशन डेटा प्राप्त करने के लिए कर रहे हैं, तो कई स्रोतों का उपयोग करना वास्तव में प्रासंगिक नहीं है और आपको एकल स्रोत से अच्छी सटीकता प्राप्त होती है।

यदि आप अपने सर्वर को एक स्थानीय नेटवर्क में और विश्वसनीय सर्वर में उसी सर्वर से सिंक्रनाइज़ कर रहे हैं , तो NTP और SNTP के बीच सटीकता में अंतर लगभग न के बराबर होगा। NTP, RTT को ध्यान में रख सकता है और टाइमस्मीयरिंग कर सकता है, लेकिन यह तब फायदेमंद नहीं है जब आपका RTT वास्तव में छोटा हो, जो कि तेज़ स्थानीय नेटवर्क और पास की मशीन का मामला है। यदि आपको आपके द्वारा उपयोग किए जा रहे भरोसे पर भरोसा हो तो आपको कई स्रोतों की भी आवश्यकता नहीं है।

दक्षता में अंतर क्या हैं?

एक स्रोत से सिंक्रनाइज़ेशन प्राप्त करना कई स्रोतों से प्राप्त करने की तुलना में बहुत सरल है, क्योंकि आपको निर्णय लेने की ज़रूरत नहीं है कि कौन से स्रोत दूसरों की तुलना में बेहतर हैं और संभवतः कई स्रोतों से जानकारी गठबंधन करते हैं। एल्गोरिदम बहुत सरल हैं और सरल मामले के लिए कम सीपीयू लोड की आवश्यकता होगी।

एक "गैर सरल" समय सिंक एनटी क्लाइंट के रूप में क्रॉनिक के लिए उपयोग-मामलों की आवश्यकता उर्फ ​​क्या हैं?

वह ऊपर दिए गए उद्धरण में संबोधित किया गया है, लेकिन किसी भी मामले में ये क्रॉनिक के लिए उपयोग किए जाने वाले मामले हैं जो सिस्टमड-टाइमसेंडी द्वारा कवर नहीं किए गए हैं:

  • NTP सर्वर (ताकि अन्य होस्ट इस होस्ट को सिंक्रोनाइजेशन के स्रोत के रूप में उपयोग कर सकें) चला रहे हैं;
  • कई स्रोतों से एनटीपी सिंक्रनाइज़ेशन की जानकारी प्राप्त करना (जो इंटरनेट पर सार्वजनिक सर्वर से उस जानकारी को प्राप्त करने वाले मेजबानों के लिए महत्वपूर्ण है); तथा
  • स्थानीय घड़ी से सिंक्रोनाइज़ेशन की जानकारी प्राप्त करना, जिसमें आमतौर पर विशेष हार्डवेयर शामिल होते हैं जैसे कि जीपीएस डिवाइस, जो उपग्रहों से सटीक समय की जानकारी प्राप्त कर सकते हैं।

इन उपयोग मामलों में क्रॉनिक या ntpd या इसी तरह की आवश्यकता होती है।


1
आपके विस्तृत जवाब के लिए बहुत बहुत धन्यवाद और विशेष रूप से मेरे सवालों को संबोधित करने के लिए अंगूठे। उस पर विस्तार से: - - 1. सटीकता डेल्टा की भयावहता का क्रम क्या है। यह जानने से निश्चित रूप से निर्णय लेने में कुछ पदार्थ जुड़ जाएगा। क्या हम 10 ^ -9 या 10 ^ -1 सेकंड के बारे में बात कर रहे हैं? - - 2. दक्षता के संबंध में आपके उत्तर ने मुझे और भी अधिक कुटिल बना दिया: क्या - निन्दात्मक रूप से बोलना - कुछ संख्याओं में से कुछ औसत सीपीयू लोड में इतना जोड़ देते हैं कि आपको उबंटू रिलीज नोट में इसका उल्लेख करने की आवश्यकता है?
वेदी

3
@wedi: timesyncd की सटीकता मुख्य रूप से सर्वर और नेटवर्क पर निर्भर करेगी। केवल एक सर्वर के साथ, यह बताने का कोई तरीका नहीं है कि क्या सर्वर फर्जी डेटा लौटा रहा है, इसलिए आपको बस इस पर पूरी तरह से भरोसा करना होगा। (इसमें से अधिकतम त्रुटि अबाधित है)। आपके द्वारा प्राप्त अधिकतम सटीकता आपके और सर्वर के बीच नेटवर्क घबराहट द्वारा निर्धारित की जा सकती है (कुछ मिलीसेकंड या अधिक हो सकती है)।
टीओटी

1
धन्यवाद, @TooTea! ठीक है। समझा। तो बढ़ी हुई सटीकता एक से अधिक स्रोतों का उपयोग करने से आती है और किसी एक विशेष स्रोत के साथ किसी विशेष जादू के क्रॉनिक की उपेक्षा की जा सकती है। मेरी समझ: - - 1. एक जीसीई उदाहरण पर एकल टाइमएवर मेटाडेटा.ओन.इनटाउन का उपयोग करना => सटीकता में कोई औसत दर्जे का अंतर नहीं है (चलो टाइममीयरिंग ईटी को हटा दें।) - 2. एक वीएम पर महान प्रतिष्ठा के साथ तीन टाइम सर्वर का उपयोग करना कुछ बसे होस्टिंग कंपनी में => आपको एक अंतर दिखाई देता है, लेकिन "बहुत" (जो भी हो सकता है) - - 3. पूल का उपयोग कर रहा है। कुछ ISP => के माध्यम से जुड़े एक रास्पी पर पूल का उपयोग करके = आप उतने ही खुश हैं जितना कि लैरी मिल सकता है।
वेदी

मैं तीनों @wedi पर सही कहूंगा। विशेष रूप से (1), यदि आप एक ही "स्थानीय नेटवर्क" पर अपनी मशीन के रूप में एक टाइमस्वर का उपयोग कर रहे हैं और अनिवार्य रूप से एक ही डेटासेंटर में (बहुत कम आरटीटी और बहुत कम घबराना) सटीकता के बारे में, एनटीपी और एसएएमटीपी को पूरा करने के फायदे। बहुत कम होगा। तो उन उपयोग के मामलों में NTP (और SNTP नहीं) चलाने का बहुत कम कारण है!
फिल्मब्रांडेन

@wedi स्थानीय नेटवर्क पर एक विश्वसनीय सर्वर का उपयोग करके स्पष्ट रूप से उल्लेख करने का उत्तर अपडेट किया गया।
फिल्मब्रांडेन

14

जैसा कि अन्य उत्तर सही ढंग से बताता है, chronyएनटीपी और systemd-timesyncdएसएनटीपी को लागू करता है ।

एक समय सेवा ग्राहक के दृष्टिकोण से:

एसएनटीपी लागू करने के लिए एक अधिक सरल प्रोटोकॉल है;
NTP समय-समय पर चरण-दर-चरण वृद्धि / सुधार के लिए अनुमति देता है। NTP का एक बड़ा फायदा यह है कि यह अधिक सटीक समय प्राप्त करने के लिए उत्तर के RTT को भी ध्यान में रखता है।

से https://www.meinbergglobal.com/english/faq/faq_37.htm

जबकि एक पूर्ण विशेषताओं वाला NTP सर्वर या क्लाइंट बहुत अधिक सटीकता तक पहुंचता है और विभिन्न गणितीय और सांख्यिकीय तरीकों और चिकनी घड़ी की गति समायोजन का उपयोग करके यथासंभव समय के कदम से बचा जाता है, एसएनटीपी केवल सरल अनुप्रयोगों के लिए अनुशंसित किया जा सकता है, जहां आवश्यकताओं के लिए सटीकता और विश्वसनीयता बहुत अधिक मांग नहीं है। बहाव मानों की अवहेलना और सिस्टम क्लॉक समायोजन विधियों (अक्सर सरल समय कदम) के सरलीकृत तरीकों का उपयोग करके, एसएनटीपी केवल एक पूर्ण एनटीपी कार्यान्वयन के साथ तुलना में कम गुणवत्ता वाले समय सिंक्रनाइज़ेशन को प्राप्त करता है।

एसएनटीपी बहुत सरल दृष्टिकोण अपनाता है। NTP एल्गोरिथ्म की कई जटिलताएँ दूर की जाती हैं। समय को तिरछा करने के बजाय, कई एसएनटीपी ग्राहक समय को रोकते हैं। यह कई अनुप्रयोगों के लिए ठीक है, जहां एक साधारण समय-टिकट की आवश्यकता होती है। इसके अतिरिक्त, SNTP में कई NTP सर्वरों की निगरानी और फ़िल्टर करने की क्षमता का अभाव है। अक्सर एक साधारण राउंड-रॉबिन दृष्टिकोण का उपयोग किया जाता है, जहां यदि एक सर्वर विफल हो जाता है, तो सूची में अगले एक का उपयोग किया जाता है

से https://www.masterclock.com/company/masterclock-inc-blog/ntp-vs-sntp

NTP, SNTP की तुलना में कहीं अधिक सटीक और सटीक है, और यह इसे अधिकांश एंटरप्राइज़ एप्लिकेशन में वास्तविक विजेता बनाता है। दूसरी ओर, एसएनटीपी की सादगी आईपी कैमरा, डीवीआर और कुछ नेटवर्क स्विच जैसी चीजों के लिए इसे अधिक उपयुक्त बनाती है। इस प्रकार के हार्डवेयर में अधिक जटिल प्रोटोकॉल को संभालने के लिए संसाधन संसाधनों की कमी होती है, लेकिन जैसे-जैसे कनेक्टेड डिवाइस तेजी से शक्तिशाली होते जाते हैं, बदल सकते हैं।

एसएनटीपी का एक प्रमुख कमजोर बिंदु यह है कि आप कई स्रोतों से समय निकालकर इसे अधिक सटीक नहीं बना सकते हैं, जैसे नेटवर्क टाइम प्रोटोकॉल डिफ़ॉल्ट रूप से।

एक अन्य प्रमुख बिंदु मैं एसएनटीपी कार्यान्वयन देख सकता हूं जो एनटी की तुलना में अधिक समस्याएं दे रहा है, वर्चुअलाइजेशन में है, जब आपके पास वीएम समय को बदलने के लिए दोनों हाइपरवाइजर और एनटीपी डेमॉन हैं। विशेष रूप से उनके साथ कुछ गलतफहमी के साथ समय पर सहमत नहीं होने के कारण दोनों सक्रिय हो जाते हैं, इससे बड़ी समस्याएं हो सकती हैं। (जबकि सक्षम प्रणाली प्रशासक केवल समय के साथ तुल्यकालन के लिए सक्रिय एक विधि रखेंगे, ऐसा हो सकता है कि वे दोनों एक विन्यास त्रुटि से सक्रिय हों)।

systemd-timesyncdउपयोग न करने पर PS को एक सलाह दिया गया विकल्प नहीं होना चाहिए systemd


1
यह पूरी तरह स्पष्ट नहीं है। सिद्धांत रूप में कोई systemd-timesyncdअन्य सेवा प्रबंधक के तहत कार्यक्रम चला सकता है । मैंने service-manager2018 से नोश टूलकिट के तहत इसे चलाने के लिए एक सेवा बंडल प्रदान किया है। आपने जो याद किया है वह यह है कि सिस्टमड लोग (प्रति डेबियन बग # 812522) वर्चुअलबॉक्स अतिथि सेवाओं और दूसरों को systemd-timesyncdसेवा के साथ स्पष्ट रूप से इसके उपयोग को रोकने के लिए संघर्ष के लिए प्रोत्साहित करते हैं। आभासी मशीनों में।
जेडबीपीपी

@JdeBP दिलचस्प टिप्पणी systemd। मैं डेबियन का उपयोग किए बिना उपयोग करता हूं। अन्य vmtools timesync को अक्षम करने के VmWare कागजात का पालन करते हैं (जिसका उपयोग केवल तब किया जाना चाहिए जब आप जानते हैं कि आप क्या कर रहे हैं)। यह बग हल करने के लिए रैखिक नहीं है, और यह VmWare timesync का उपयोग न करने की VmWare सिफारिशों का पालन करने वाले लोगों द्वारा आसानी से याद किए गए कॉन्फ़िगरेशन का एक अतिरिक्त बिंदु होगा।
रुई एफ रिबेरो

(अपनी टिप्पणी के प्रकाश में मेरे उत्तर को संपादित करें, उस पाठ पर vmtools बनाम (S) NTP के प्रबंधन के बारे में एक गलती थी, और इसे और अधिक स्पष्ट करें)
रुई एफ रिबेरो

1
@wedi हाइपरविजर के साथ VmWare timesync के मामले में Vcenter, VM छवि कॉन्फ़िगरेशन या लिनक्स पक्ष में दोनों को अक्षम किया जा सकता है। संबंधित unix.stackexchange.com/questions/492487/… देखें, मैं हमेशा vmware-toolbox-cmd timesync disableअपने NTP सर्वरों में करता हूं, चाहे VmWare लोगों ने उन VMs के लिए समय-समय को अक्षम किया हो या नहीं। (मैं भी आमतौर पर एनटी क्लाइंट के रूप में क्रोनी का उपयोग करना पसंद करता हूं)
रुई एफ रिबेरो

1
मुझे खुशी है कि आपने संभावित समय सिंक रेस को इंगित किया! इसे ध्यान में रखना अच्छा है!
वेदी

0

chronyएक कांटा रूप नहीं है, ntpdलेकिन इसे खरोंच से लागू किया जाता है। यह पूर्ण NTPv4 प्रोटोकॉल के क्लाइंट और सर्वर मोड दोनों को लागू करता है ( RFC5905 ) के । एंटरप्राइज़ ग्रेड के उपयोगकर्ताओं पर, हम एक ट्रेंड ntpdको chronyरेड हैट (आरएचईएल 7 आगे) और एसयूएसई (एसएलई 15 से) की तरह बदलते हुए देख रहे हैं ।

systemd-timesyncdकेवल SNTP प्रोटोकॉल ( RFC4330 ) क्लाइंट मोड लागू करें। इसलिए जटिल उपयोग के मामलों को कवर नहीं किया जाता है systemd-timesyncd। उदाहरण के लिए, एसएनटीपी कई स्रोतों से समय को पुनः प्राप्त करके इसे अधिक सटीक नहीं बना सकता है जैसे कि एनटीपी डिफ़ॉल्ट रूप से करता है। परिणामस्वरूप systemd-timesyncdउच्च परिशुद्धता समय प्रदान नहीं किया जा सकता है chrony


1
Mmmh। मैंने ध्यान नहीं दिया है कि किसी व्यक्ति को क्रॉन्पी लगाने का कारण कांटा है और मैंने अपने प्रश्न में उल्लेख किया है कि क्रॉनिक सर्वर और क्लाइंट को लागू करता है जबकि सिस्टमड-टाइमसेंडी केवल क्लाइंट है। संबंधित RFC का उल्लेख करने के लिए धन्यवाद।
वेदी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.