2012-01-05 8 views
11

मैं क्लाउड (एडब्लूएस, हेरोकू, या शायद स्वयं-मैंगड वीएमएस) में नोड्स का एक बड़ा समूह चलाने के लिए चाहता हूं, जिनके घड़ियों को एक पूर्वनिर्धारित सहिष्णुता के साथ सिंक्रनाइज़ किया जाना चाहिए। मैं 200 एमएस की सहिष्णुता की तलाश में हूं। इसका मतलब है कि अगर मेरे पास 250 नोड्स हैं, तो 250 नोड्स में से किसी के बीच सबसे बड़ा घड़ी अंतर 200 एमएस से अधिक नहीं होना चाहिए। मुझे वास्तव में दुनिया के संबंध में वास्तविक तिथि/समय की परवाह नहीं है। समाधान को गलती सहनशील होना चाहिए, और किसी भी प्रणाली की घड़ी की सटीकता पर भरोसा करने की आवश्यकता नहीं है - असल में, यह संभावना है कि घड़ियों में से कोई भी बहुत सटीक नहीं होगा।मैं कई नोड्स में क्लाउड (एडब्ल्यूएस, हेरोकू, आदि) में घड़ी सिंक्रनाइज़ेशन कैसे स्थापित करूं?

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

मैं एनटीपी की तरह कुछ का उपयोग करने में खुशी होगी, लेकिन एनटीपी known issues twiki के अनुसार:

एनटीपी एक आभासी मशीन के अंदर चलने के लिए डिज़ाइन नहीं किया गया। इसे उच्च रिज़ॉल्यूशन सिस्टम घड़ी की आवश्यकता होती है, घड़ी के अंतराल के प्रतिक्रिया समय जो उच्च स्तर की सटीकता के साथ सर्विस किया जाता है। इन आवश्यकताओं को पूरा करने में सक्षम कोई ज्ञात वर्चुअल मशीन नहीं है।

और हालांकि एक ही Twiki तो स्थिति (जैसे मेजबान ओएस पर NTP चल के रूप में) को संबोधित करने का विभिन्न तरीकों से वर्णन करने के लिए चला जाता है, मुझे नहीं लगता कि मैं काफी एडब्ल्यूएस का उपयोग कर पर्यावरण को संशोधित करने की क्षमता है या कामकाज का अनुपालन करने के लिए horoku पर।

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

सारांश में - मैं एक घड़ी तुल्यकालन जिसका प्राथमिक लक्ष्य है इस प्रकार की जरूरत है:

  • अच्छी तरह से में चलाता है वी एम का जहां परिचालन नियंत्रण सीमित है (यानी: "बादल सेवा प्रदाताओं")
  • समय tolerances सभी प्रतिभागियों के बीच चारों ओर 200 मि.से पर क्लस्टर
  • दोष सहिष्णु (विफलता का कोई एकल बिंदु)
  • स्केलेबल (वें एक सक्रिय रास्ते में है कि करने के लिए बुरा नोड का पता लगाने और प्रतिक्रिया करने के लिए
  • की क्षमता में ई बात से अधिक गिरावट नहीं कर सकते हैं जब आप और अधिक नोड्स जोड़ने - निश्चित रूप से एन से बचने^2)
  • नोड्स के सैकड़ों का समर्थन कर सके
  • नोड्स के
  • कोई भी किसी अन्य नोड पर समय की बेहतर धारणा होने विचार किया जाना चाहिए
  • यह संपूर्ण समूह (कारण के भीतर) बहाव के लिए ठीक है - जब तक यह सामंजस्य

में drifts वर्णन से, यह Berkeley Algorithm की तरह लगता है यहाँ सही विकल्प हो सकता है, लेकिन यह पहले से ही लागू किया गया है?

अमीर अच्छा लगा:

  • मिनिमल विन्यास (नोड ऑटो रजिस्टर भाग लेने के लिए) - नई नोड्स अप कताई के लिए महत्वपूर्ण
  • एचटीएमएल डैशबोर्ड या (बाकी?) एपीआई कि नोड्स में भाग ले रहे रिपोर्ट घड़ी सिंक्रनाइज़ेशन और रिश्तेदार समय ऑफसेट
  • सुंदर ग्राफ हैं?
+1

+1। पिछले साल मुझे विंडोज़ एज़ूर क्लाउड प्लेटफ़ॉर्म के लिए समान प्रश्नों का सामना करना पड़ा। यहां मेरी लेखन-पत्र (एक ब्लॉग पोस्ट) है यदि यह किसी की सहायता करता है: http://blog.codingoutloud.com/2011/08/25/azure-faq-how-frequently-is-the-clock-on-my -विंडोज़-एज़ूर-वीएम-सिंक्रनाइज़/ – codingoutloud

+0

प्रिय भावी पाठक: हेरोकू समर्थन स्वचालित रूप से मेरे द्वारा खोले गए समर्थन टिकट के अनुसार एनटीपी के साथ सभी dyno के यूनिक्स समय को सिंक्रनाइज़ करता है। –

उत्तर

1

चूंकि the FAQ for NTP विशेष रूप से बताता है कि क्यों एनटीपी समय सिंक वर्चुअल मशीनों के तहत 'दाएं' काम नहीं करता है, यह शायद एक दुर्बल समस्या है।

अधिकांश मशीनों में पीसी में आरटीसी (रीयल-टाइम घड़ी) होती है, पीसी पर आप अपना समय कैसे स्टोर करते हैं ताकि आपके पास 'मोटा' अनुमान हो कि एनटीपी अनुपलब्ध होने पर समय क्या होता है, एक बार सिस्टम लोड किया गया एक 'टिक' घड़ी है जो उच्च रिज़ॉल्यूशन है - जो एनटीपी सेट करता है।

वह टिक घड़ी वर्चुअल मशीन के बहाव के अधीन है क्योंकि सही अंतराल पर टिक या हो सकती है - किसी भी समय तंत्र का उपयोग करने का प्रयास करने के लिए आप उस बहाव के अधीन होंगे।

वर्चुअल मशीनों पर एनटीपी सिंक्रनाइज़ेशन को लागू करने की कोशिश करने के लिए शायद यह उप-डिप्टीमाइल डिज़ाइन है, यदि मशीन ए और बी में 200ms का डेल्टा है, और मशीन बी और सी में 200ms का डेल्टा है, तो सी से 400ms दूर हो सकता है। आप ' टी उस पर नियंत्रण नहीं है।

आप एक केंद्रीकृत संदेश प्रणाली का उपयोग करना बेहतर कर रहे हैं जैसे ज़ीरोमक नौकरी कतार के साथ सभी को सिंक में रखने के लिए, यह अधिक ओवरहेड होने जा रहा है, लेकिन सिस्टम टिक टाइम पर भरोसा करना सबसे अच्छा है। ऐसे कई क्लस्टरिंग समाधान हैं जो विश्वसनीय तंत्र के सभी प्रकारों का उपयोग करके क्लस्टर भागीदारी के लिए खाते हैं ताकि यह सुनिश्चित किया जा सके कि हर कोई सिंक हो रहा है, कोरोसिनक या फैल पर नज़र डालें - उन्होंने इसे पहले से ही दो चरण-जैसी चीजों के लिए हल कर लिया है।

संयोग से, जब 'बहाव' के बजाय नए मूल्य के समय को 'स्लैम' करने के निर्देश देने के द्वारा 'छोड़ने' को छोड़कर एनटीपी 'छोड़ना' हो सकता है। डिफ़ॉल्ट रूप से ntp 'वास्तविक समय' से इसके बहाव के लिए सिस्टम समय को बढ़ाएगा। मैं इसे एनटीपीडी में कॉन्फ़िगर करने के बारे में भूल जाता हूं, लेकिन यदि आप ntpdate का उपयोग करते हैं तो ध्वज है- बी

-B  Force the time to always be slewed using the adjtime(2) system call, even if the measured 
offset is greater than +-128 ms. The default is to step the time using settimeofday(2) if the offset 
is greater than +-128 ms. Note that, if the offset is much greater than +-128 ms in this case, it 
can take a long time (hours) to slew the clock to the correct value. During this time, the host 
should not be used to synchronize clients. 
+0

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

+1

यदि आप इसके लिए निम्न स्तर का समाधान चाहते हैं, तो मैं ज़ोरोमक पर एक नज़र डालने के लिए दृढ़ता से आग्रह करता हूं, इसका एलजीपीएल, अच्छी तरह से प्रलेखित और बहु-मंच, यूनी और मल्टीकास्ट का समर्थन करता है। यदि आप वास्तव में डिज़ाइन कर रहे हैं, इसके बारे में थोड़ी अधिक जानकारी में जा सकते हैं तो मैं आपको कुछ बेहतर सुझाव देने में सक्षम हूं। – synthesizerpatel

+0

कोरोसिनक को देखकर, और मुझे नहीं लगता कि यह भविष्य में विघटित घटनाओं की योजना बनाने में मदद कर सकता है, लेकिन ऐसा लगता है कि यह फैल सकता है - हालांकि जब मैं स्प्रेड-उपयोगकर्ता मेलिंग सूची को देखता हूं, तो मुझे एक छोटे से उपयोगकर्ता आधार की चिंता है, और [ बग] (http://lists.spread.org/pipermail/spread-users/2011-November/004483.html) जो डरावना दिखते हैं। –

संबंधित मुद्दे