상태:
- 컴퓨팅 작업을 실행하는 일부 Linux 가상 머신이 있습니다.
- VM이 인터넷(NTP 포함)에 액세스할 수 없습니다.
- 하이퍼바이저는 정확한 시간을 알고 있습니다.
- 하이퍼바이저의 시간은 하드웨어 시계를 통해 가상 머신에 노출됩니다.
- 하이퍼바이저는 QEMU/KVM 기반인 것으로 보입니다. 우리는 하이퍼바이저를 제어하지 않습니다(클라우드 VPS 제품입니다).
질문:
- VM의 시스템 시계가 올바른 시간/하드웨어 시계와 다릅니다.
질문:
시스템 시계를 하드웨어 시계와 항상 동기화하는 것이 가능합니까?
또는 시스템 시계 드리프트를 설명하기 위해 하드웨어 시계를 참조로 사용하도록 ntpd에 지시할 수 있습니까?
내가 시도한 것:
- 그러나 cronjob을 사용하면
0 * * * * hwclock --hctosys
드리프트가 너무 커서 시간별 동기화만으로는 충분하지 않으며 이 시점에서 cronjob 빈도를 늘리는 것이 해결 방법인 것 같습니다.
답변1
[여기서는 기억을 토대로 작업 중이므로 나중에 확인해 보도록 하겠습니다. ]
QEMU/KVM 가상 머신은 가상화 계층을 통해 시계를 호스트와 동기화할 수 있습니다.
게스트가 호스트를 사용하고 있는지 확인하는 방법은 다음과 같습니다.
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock
해당 값을 반환하지 않으면 커널 모듈의 일부인 kvm-clock
게스트에 반가상화 시계 모듈을 로드해야 합니다 .virtio
ntpd
VM이 호스트와 동기화 중인 경우 VM(또는 다른 외부 동기화)을 실행하지 마세요.