সমস্যাটি
আমি একই সমস্যা পেয়েছি এবং আমি ভাল সমাধান খুঁজে পাইনি। আমি যা পেয়েছি তা এখানে:
সমস্যাটি হ'ল পুনরায় শুরু হওয়ার পরে, অতিথির সিস্টেম এবং হার্ডওয়্যার ঘড়ির সময়গুলি আলাদা হয়:
রুট @ অতিথি: ~ # তারিখ; hwclock
শনিবার অক্টোবর 11 13:09:38 ইউটিসি 2014
শনিবার 11 অক্টোবর 13:10:42 2014 -0.454380 সেকেন্ড
হোস্টে, তারা সম্মত:
মূল @ চার: ~ # তারিখ; hwclock
শনিবার অক্টোবর 11 13:11:35 ইউটিসি 2014
শনিবার অক্টোবর 11 13:11:36 2014 -1.000372 সেকেন্ড
সমাধানটি hwclock --hctosys
আবার শুরু হওয়ার পরে অতিথির উপর চালানো হবে। তবে, অতিথি সিস্টেমে পরিবর্তনগুলির সাথে এটি করার কোনও উপায় আমি খুঁজে পাইনি, কারণ অতিথির নজরে নেই যে এটি স্থগিত করা হয়েছে এবং পুনরায় শুরু হয়েছে।
কিউমু গেস্ট এজেন্ট
অতিথির জন্য কিউমু গেস্ট এজেন্ট নামে একটি সফ্টওয়্যার চালানোর এবং অতিথির হার্ডওয়ার ক্লক থেকে অতিথি সিস্টেমের ঘড়িটি আপডেট করার জন্য হোস্টের পক্ষ থেকে অবহিত করার সম্ভাবনা রয়েছে । তবে পৃষ্ঠায় উল্লেখ করা হয়েছে যে অতিথি এজেন্ট একটি জেএসএন পার্সার সম্পর্কিত সমস্যার কারণে হোস্ট এবং অতিথিকে একে অপরের আক্রমণে ঝুঁকিপূর্ণ করে তোলে (কমপক্ষে আমি বিশ্বাস করি যে আক্রান্ত কোডটি হোস্টেও চালিত হয়েছে, আমি সে সম্পর্কে নিশ্চিত নই )। যাইহোক, এটি সেট আপ করার পদ্ধতি এখানে রয়েছে:
Libvirt উইকিতে উল্লিখিত হিসাবে এজেন্টটির জন্য একটি ভিরিও সিরিয়াল চ্যানেল সেট আপ করুন ( ডোমেন ফর্ম্যাট ডকুমেন্টেশনও libvirt দেখুন )।
সিরিয়াল চ্যানেল উপলভ্য হওয়ার পরে, অতিথির উপর কিউমু গেস্ট এজেন্ট ইনস্টল করুন এবং শুরু করুন। (দেবিয়ান:। 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
স্থগিতাদেশ থেকে পুনরায় শুরু করার জন্য কলটি লিবারভার্টের মধ্যে স্বয়ংক্রিয়করণ নিয়ে দুটি আলোচনা পেয়েছি :
তবে যতদূর আমি দেখতে পেলাম কিছুই কার্যকর করা হয়নি।
স্টোনি-ক্লাউড . org এর উইকিতে অতিথি এজেন্টের কাছে কীভাবে কমান্ড জমা দিতে হবে তার তথ্য আমি পেয়েছি ।
আমিও সেটিং চেষ্টা করেছি tickpolicy="catchup"
এ জন্য libvirt দ্বারা টাইমার কনফিগারেশন কিন্তু এই সমস্যার সমাধান হয়নি।
এনটিপি
এজেন্ট ব্যবহারের বিকল্প হ'ল এনটিপি ডিমন ব্যবহার করা বা ক্রোন জব থেকে পর্যায়ক্রমে এনটিপিডেট কল করা। আমি পরেরটির সুপারিশ করব না, কারণ এটি সময়কে পিছনের দিকে যেতে পারে, যা প্রোগ্রামগুলিকে বিভ্রান্ত করতে পারে (উদাহরণস্বরূপ, ডোভকোট আইএমএপি সার্ভার পিছনের দিকে যাওয়ার সময় হ্যান্ডেল করার চেষ্টা করে না এবং শেষ হতে পারে)।
আমি নিম্নলিখিত এনটিপি ডিমন চেষ্টা করেছি:
ওপেনটিপিডি : আমার পরীক্ষায় 60 মিনিট প্রতি 2 সেকেন্ডের হারে খুব ধীরে ধীরে সময় সংশোধন করে। অফসেটের সময়টি ছিল 120 সেকেন্ড। এছাড়াও, ওপেনটিপিডি একটি ত্রুটি ছুঁড়ে দেয় যদি টাইম অফসেটটি খুব বেশি হয় এবং আমার পরীক্ষায়, সেই ক্ষেত্রে সময় ঠিক করতে পুরোপুরি ব্যর্থ হয়। ওপেনটিপিডির সুবিধা: ক্রুটে নিয়মিত ব্যবহারকারী হিসাবে চালানো যেতে পারে।
chrony : কারেক্টস একটা সময় আমার পরীক্ষা 30 মিনিটের মধ্যে 120 সেকেন্ডের অফসেট। ক্রোনিকে নিয়মিত ব্যবহারকারী হিসাবে চালানোর জন্য কনফিগার করা যায়। chroot সমর্থন কার্যকর করা হয় না। প্রতিটি এনটিপি সার্ভারের জন্য এনটিপি সার্ভারের পোলিং বিরতি কনফিগার করা যায়।
systemd-timesyncd : আমার পরীক্ষায় 30 সেকেন্ডে 120 সেকেন্ডের অফসেট সংশোধন করে। ডিফল্ট হিসাবে নিয়মিত ব্যবহারকারী হিসাবে চালায়। তবে এনটিপি সার্ভারের পোলিংয়ের ব্যবধান 2048 সেকেন্ড পর্যন্ত বেড়ে যায়, যাতে সবচেয়ে খারাপ অবস্থায় পুনরারম্ভের 34 মিনিটের পরে কোনও স্থগিত / পুনরারম্ভ সনাক্ত করা যায় না। এটি কনফিগারযোগ্য বলে মনে হয় না। এছাড়াও, আমি টাইমসিএনসিডিটিকে সময়টি পিছনে পিছনে পর্যবেক্ষণ করেছি, যা ক্রোন-এ এনটিপিডেট কল করার মতো একই সমস্যার কারণ হতে পারে (উপরে দেখুন)।
ক্রনি সমস্যা সমাধান করে। ওপেনটিপিডি উপযুক্ত নয় কারণ এর সংশোধন হার খুব কম এবং কনফিগারযোগ্য বলে মনে হচ্ছে না। systemd-timesyncd সমস্যাটি পুরোপুরি পুরোপুরি সমাধান করে না, কারণ এটির ভোটদানের ব্যবধানটি কনফিগারযোগ্য নয়।
আমি এনটিপি ডেমনের নিম্নলিখিত ডিবিয়ান সংস্করণগুলি পরীক্ষা করেছি: ওপেনটিপিডি 20080406p-10, ক্রোনি 1.30-1 এবং সিস্টেমড 215-5 + বি 1।