CentOS KVM 호스트의 Debian 게스트에서 시간 드리프트를 방지하는 방법은 무엇입니까?

CentOS KVM 호스트의 Debian 게스트에서 시간 드리프트를 방지하는 방법은 무엇입니까?

ntp게스트에 설치할 수 있다는 것을 알고 있지만 지금까지 검색한 내용을 혼란스럽게 이해하면 이것이 필요하지 않다는 것을 알 수 있습니다.

호스트는 CentOS 6.3이고 게스트는 Debian Wheezy이며 kvm 시계를 시간 소스로 사용하는 것으로 보입니다.

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

게스트가 호스트 시계를 사용할 수 있도록 하려면 특별한 조치를 취해야 합니까?

답변1

손님 없음직접호스트 시계에 액세스합니다. 대신 호스트 시계를 기반으로 호스트의 업데이트된 메모리 영역을 가리키는 kvm-clock을 사용합니다. 바로 그거예요 손님호스트 시계를 사용하십시오. 문제는 이 메모리 영역이 지속적으로 업데이트되지 않고 가상 머신 "이벤트"가 발생할 때만 업데이트되므로 게스트가 표류했다가 올바른 시간으로 돌아갈 수 있다는 것입니다.

내가 아는 한, 일반적인 조언은 가상 머신이 주기적으로 작업을 수행하여 호스트 시계를 주기적으로 다시 읽도록 하는 것입니다.

일부 소스,

답변2

앞서 언급했듯이 호스트는 게스트가 읽을 수 있는 메모리 페이지에 시간을 씁니다. 이는 일반적으로 호스트가 중요한 이벤트(예: CPU 속도 조정) 시 해당 페이지에 오류를 기록하지 않는 한 가상 머신의 하드웨어 시계가 호스트의 하드웨어 시계와 일치한다는 것을 의미합니다. 문제는 일반적으로 운영 체제가 하드웨어 시계가 변경/조정되고 있음을 인식하지 못한다는 것입니다. 일반적인 "hwclock --hctosys"는 현재 하드웨어 시계를 기반으로 OS를 업데이트하며 (제 생각에는) NTP 데몬을 실행하는 것보다 더 깔끔합니다.

kvm-clock guest에서 유사한 명령을 실행하여 이를 실제로 확인할 수 있습니다.

date && hwclock --hctosys && date
Sun Jan  5 23:40:44 MST 2014
Sun Jan  5 23:40:06 MST 2014

답변3

kvm-clock에 대해 설명한 내용 외에도 표준 모범 사례를 시도해 볼 수 있습니다. 틱 없는 커널을 피하고, 커널 틱을 약 10으로 낮추고, 활성화하고 ntpclient, 호스트가 과부하되지 않았는지 확인하세요. 시간 드리프트가 많이 발생합니다. CPU가 심하게 과도하게 사용되었습니다. 가상 머신에 많은 가상 CPU가 할당된 경우 이 숫자도 몇 수준 줄이세요.

관련 정보