समस्या
मैं एक ही समस्या है और मैं एक अच्छा समाधान नहीं मिला है। यहाँ मैं क्या पाया:
समस्या यह है कि फिर से शुरू होने के बाद, अतिथि पर सिस्टम और हार्डवेयर घड़ी बार अलग हैं:
जड़ @ अतिथि: ~ # तारीख; hwclock
Sat Oct 11 13:09:38 UTC 2014
Sat Oct 11 13:10:42 2014 -0.454380 सेकंड
मेजबान पर, वे सहमत हैं:
रूट @ चार: ~ # तारीख; hwclock
Sat Oct 11 13:11:35 UTC 2014
Sat Oct 11 13:11:36 2014 -1.000372 सेकंड
समाधान hwclock --hctosys
फिर से शुरू होने के बाद अतिथि पर चलना होगा । हालाँकि, मुझे गेस्ट सिस्टम में बदलाव के साथ ऐसा करने का कोई तरीका नहीं मिला है, क्योंकि गेस्ट को यह ध्यान नहीं है कि उसे निलंबित और फिर से शुरू किया गया है।
QEmu अतिथि एजेंट
अतिथि पर QEmu Guest Agent नाम से एक सॉफ़्टवेयर चलाने की संभावना है और अतिथि हार्डवेयर घड़ी से अतिथि सिस्टम घड़ी को अपडेट करने के लिए होस्ट से सूचित करें। हालांकि, पृष्ठ में उल्लेख किया गया है कि अतिथि एजेंट मेजबान और अतिथि को एक दूसरे से हमलों के लिए असुरक्षित बनाता है क्योंकि JSON पार्सर के साथ मुद्दों (कम से कम मेरा मानना है कि प्रभावित कोड भी मेजबान पर चलाया जाता है, मुझे इस बारे में निश्चित नहीं है) )। वैसे भी, यहाँ है कि कैसे स्थापित करने के लिए:
एजेंट के लिए एक गुण धारावाहिक चैनल सेट करें जैसा कि libvirt विकी में वर्णित है ( libvirt डोमेन प्रारूप प्रलेखन भी देखें )।
धारावाहिक चैनल उपलब्ध होने के बाद, अतिथि पर QEmu Guest Agent स्थापित करें और शुरू करें। (डेबियन: apt-get install --no-install-recommends qemu-guest-agent
।)
निलंबित, प्रतीक्षा और फिर से शुरू करके घड़ी की गति को ट्रिगर करें। : तो फिर इसे सही करने के मेजबान पर निम्न आदेश चला virsh qemu-agent-command backup '{"execute":"guest-set-time"}'
विकि पृष्ठ का उपयोग virsh qemu-agent-command
है असमर्थित है, लेकिन मैं किसी भी अन्य आदेश है कि काम करता है नहीं मिली है।
मुझे संदेह guest-set-time
से फिर से शुरू करने के लिए कॉल को libvirt के भीतर स्वचालित करने पर दो चर्चाएँ मिलीं :
हालाँकि, अभी तक कुछ भी लागू नहीं किया गया है जहाँ तक मैं देख सकता हूँ।
मुझे अतिथि एजेंट को stoney-cloud.org की विकि पर कमांड कैसे जमा करें, इस बारे में जानकारी मिली ।
मैंने भी libvirt टाइमर कॉन्फ़िगरेशनtickpolicy="catchup"
में सेटिंग की कोशिश की है, लेकिन इससे समस्या हल नहीं हुई।
एनटीपी
एजेंट का उपयोग करने का एक विकल्प एक एनटीपी डेमॉन का उपयोग करना या एक क्रॉन नौकरी से समय-समय पर एनटीपीपीड को कॉल करना होगा। मैं बाद की सिफारिश नहीं करूंगा, क्योंकि यह समय पीछे जाने का कारण बन सकता है, जो कि कार्यक्रमों को भ्रमित कर सकता है (उदाहरण के लिए, डॉवॉट आईएमएपी सर्वर पीछे जाने वाले समय को संभालने की कोशिश नहीं करता है और समाप्त कर सकता है)।
मैंने निम्नलिखित ntp डेमॉन की कोशिश की:
openntpd : मेरे परीक्षण में लगभग 2 सेकंड प्रति 60 मिनट की दर से समय को बहुत धीरे-धीरे सही करता है। समय ऑफसेट 120 सेकंड था। इसके अलावा, अगर ओपनसेट बहुत बड़ी है , तो एक त्रुटि फेंकता है और मेरे परीक्षण में, उस मामले में सही समय पर पूरी तरह विफल हो जाता है। Openntpd के लाभ: चेरोट में नियमित उपयोगकर्ता के रूप में चला सकते हैं।
chrony : मेरे टेस्ट में 30 मिनट में 120 सेकंड का समय ऑफसेट ठीक करता है। नियमित उपयोगकर्ता के रूप में चलाने के लिए क्रोनी को कॉन्फ़िगर किया जा सकता है। चेरोट समर्थन लागू नहीं किया गया है। NTP सर्वर मतदान अंतराल को प्रत्येक NTP सर्वर के लिए कॉन्फ़िगर किया जा सकता है।
systemd-timesyncd : मेरे परीक्षण में 30 सेकंड में 120 सेकंड का समय ऑफसेट ठीक करता है। डिफ़ॉल्ट रूप से नियमित उपयोगकर्ता के रूप में चलाता है। हालाँकि, NTP सर्वरों का मतदान अंतराल 2048 सेकंड तक बढ़ जाता है, जिससे कि सबसे खराब स्थिति में फिर से शुरू होने के 34 मिनट बाद तक एक सस्पेंड / रिज्यूम का पता नहीं चल पाएगा। यह कॉन्फ़िगर करने योग्य नहीं लगता है। इसके अलावा, मैंने टाइमसैंडी कदम को समय पीछे की ओर देखा है, जो क्रोन में ntpdate को कॉल करने के समान समस्याओं का कारण बनता है (ऊपर देखें)।
क्रॉनी समस्या को हल करता है। Openntpd उपयुक्त नहीं है क्योंकि इसकी सुधार दर बहुत कम है और यह विन्यास योग्य नहीं लगती है। systemd-timesyncd पूरी तरह से समस्या का समाधान नहीं करता है, क्योंकि इसका मतदान अंतराल विन्यास योग्य नहीं है।
मैंने NTP डेमन के निम्नलिखित डेबियन संस्करणों का परीक्षण किया: Openntpd 20080406p-10, chrony 1.30-1 और systemd 215-5 + b1।