고대 가상 머신의 미친 시계 드리프트

고대 가상 머신의 미친 시계 드리프트

엄청난 클럭 드리프트를 보이는 Centos 5.3 VM(Proxmox에서 실행)에 멈췄습니다. 5분마다 ntpdate를 실행하도록 구성되어 있지만 시계는 실행 사이에 최대 20초 동안 동기화되지 않은 상태로 유지됩니다. ntpd를 실행하고 cron 작업을 중지하려고 시도했지만 오류가 보고되지 않았습니다. ntp.drift 파일이 어디에도 생성되지 않고 시계가 계속 표류합니다.

클러스터에서 약 30개의 VM과 동일한 수의 컨테이너를 실행하고 있는데 다른 어떤 것도 동일한 문제를 나타내지 않습니다. /etc/ntp.conf에는 서버 주소 외에는 다른 구성이 없습니다.

답변1

커널의 타이밍 조정 아이디어를 수정해야 합니다. 프로세스 ntpd는 일반적으로 이를 제한하므로 시간이 현실에 가까워질수록 변화율은 감소합니다. 이는 수리 시간 단계를 사용하려는 상호작용의 결과일 수 있습니다 ntpdate.

systemd내 제안은 시간 동기화를 사용하고 있는지 ntpd아니면 그 주위에 구축된 bodge와 같은 것을 사용하고 있는지 확인하는 것입니다 ntpdate.

  • 모두 꺼 줘
  • 비켜 가세요 /etc/adjtime(귀하의 질문에 뭐라고 적혀 있는지 보는 것이 흥미로울 것입니다)
  • 지금 다시 시작

동기화가 잘된 컴퓨터에는 다음과 같은 값이 들어있고 /etc/adjtime파일 자체는 2월에 마지막으로 수정되었습니다. 이 값을 복사하지 마십시오

0.001341 1613401384 0.000000
1613401384
UTC

값을 살펴보면 man 5 adjtime시스템의 시스템 드리프트가 0.001341초/일(1초의 드리프트에 2년이 소요됨)이고 마지막으로 조정된 것은 2월임을 알 수 있습니다. 꽤 안정적입니다. 아, 그리고 시스템 시계는 UTC로 올바르게 실행됩니다.

귀하의 상황에 따라 고려해야 할 기타 사항

  • 커널이 VM 하이퍼바이저에서 날짜/시간을 가져오려고 합니까?
  • 그렇다면 가상 머신에서 시간 동기화 도구를 사용하면 시간 유지가 중단됩니다.
  • 비활성 기간 동안 가상 머신이 절전 모드로 전환되거나 속도가 느려지나요? VM 하이퍼바이저에서 동기화되지 않으면 벽시계가 중단될 수 있습니다.

kvm-clock커널 모듈이 없는 CentOS 5.3을 설명하는 몇 가지 유용한 참고 자료가 있습니다 .

이 모듈이 없으면 하이퍼바이저가 일시적으로(그리고 부정확하게) VM의 CPU 리소스가 부족할 때 VM의 시계가 느려지거나 심지어 중지될 수도 있습니다. 이 모듈은 VM 커널 시간의 정확성을 유지합니다.

다음 명령을 사용하여 자신의 상황을 확인할 수 있습니다 kvm-clock.

cat /sys/devices/system/clocksource/clocksource0/current_clocksource

이것첫 번째두 참조 모두 타이밍 문제를 해결하기 위해 최신 CentOS 5.3(당시 관련)으로 업데이트할 것을 권장했습니다. 그러나 2021년에는 그것이 현실적이지 않을 수도 있다.

다른 소스divider=10 clocksource=acpi_pm커널 부팅 라인에 추가하는 것이 권장되지만 이는 VMware에 적용되며 kvm이 있는 Proxmox에는 적용되지 않을 수 있습니다.

관련 정보