잘못된 방법: 인터넷 클라이언트

잘못된 방법: 인터넷 클라이언트

가상 머신에서 가상 머신을 일시 중지하고 시스템을 다시 시작하지 않고 인터넷 연결을 끊었습니다. 재부팅하지 않고 절전 모드에서 시스템을 부팅하면 시스템 시계가 중단된 부분부터 계속 작동하여 정확한 시간을 표시하지 못합니다. 이 상황에서는 어떻게 해야 합니까?

  • 1시간 동안의 나의 시간 데이터앞으로VM을 일시 중지했습니다(호스트에 대해서도 라이브임).

% chronyc sourcestats
---------------------
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
131.153.171.22              6   4   139 -46792.738  67288.219   -326ms   890ms
108.175.15.67               6   3   140 -44764.793  61909.766   -188ms   961ms
gopher.fart.website         6   3   140 -49022.652  84747.266   -217ms  1224ms
edge-iad.txryan.com         6   3   139 -45642.164  67798.562   -230ms  1032ms


% chronyc tracking
------------------
Reference ID    : 8399AB16 (131.153.171.22)
Stratum         : 3
Ref time (UTC)  : Mon Dec 25 09:55:11 2023
System time     : 0.000000000 seconds slow of NTP time
Last offset     : -5.681410313 seconds
RMS offset      : 1.796643019 seconds
Frequency       : 5.307 ppm fast
Residual freq   : -46792.738 ppm
Skew            : 8.997 ppm
Root delay      : 0.147369087 seconds
Root dispersion : 0.769112766 seconds
Update interval : 7.0 seconds
Leap status     : Normal

% date
-----------------
Mon Dec 25 12:55:18 PM +03 2023

% hwclock
-----------------
2023-12-25 12:55:13.078474+03:00
  • 인터넷 연결을 끊은 후 잠시 기다렸다가 가상 머신을 켰을 때 시계가 정확한 시간을 표시하지 않았습니다. 또한 이 출력을 받으면 실제 마스터 날짜가 표시됩니다.(2023년 12월 25일 월요일 오후 1:28:58)

(어쨌든 네트워크 연결을 끊고 시스템을 다시 부팅하면 호스트 시간과 동기화되어 부팅되지 않습니다.)

% chronyc sourcestats
---------------------
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
131.153.171.22              6   4   139 -46792.738  67288.219  -5592ms   890ms
108.175.15.67               6   3   140 -44764.793  61909.766  -5226ms   961ms
gopher.fart.website         6   3   140 -49022.652  84747.266  -5734ms  1224ms
edge-iad.txryan.com         6   3   139 -45642.164  67798.562  -5367ms  1032ms

% chronyc tracking
------------------
Reference ID    : 8399AB16 (131.153.171.22)
Stratum         : 3
Ref time (UTC)  : Mon Dec 25 09:55:11 2023
System time     : 0.000000000 seconds fast of NTP time
Last offset     : -5.681410313 seconds
RMS offset      : 1.796643019 seconds
Frequency       : 5.307 ppm fast
Residual freq   : -46792.738 ppm
Skew            : 8.997 ppm
Root delay      : 0.147369087 seconds
Root dispersion : 6.036798477 seconds
Update interval : 7.0 seconds
Leap status     : Normal

% date
-----------------
Mon Dec 25 12:57:11 PM +03 2023

% hwclock
-----------------
2023-12-25 12:57:05.629692+03:00
  • 인터넷에 접속한 후

Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
131.153.171.22              6   4   343   -5616574     341926   -1958s   15.7s
108.175.15.67               6   4   343   -5631052     251508   -1960s   12.1s
gopher.fart.website         6   4   343   -5618134     301975   -1963s   14.2s
edge-iad.txryan.com         6   4   343   -5635317     275298   -1964s   13.2s

Reference ID    : 8399AB16 (131.153.171.22)
Stratum         : 3
Ref time (UTC)  : Mon Dec 25 09:55:11 2023
System time     : 0.000000001 seconds fast of NTP time
Last offset     : -5.681410313 seconds
RMS offset      : 1.796643019 seconds
Frequency       : 5.307 ppm fast
Residual freq   : -46792.738 ppm
Skew            : 8.997 ppm
Root delay      : 0.147369087 seconds
Root dispersion : 16.738962173 seconds
Update interval : 7.0 seconds
Leap status     : Normal

Mon Dec 25 01:01:00 PM +03 2023
2023-12-25 13:01:00.293480+03:00

또한 Chrony를 통해 시스템 시간이 얼마나 자주 새로 고쳐지나요? 시스템은 언제 켜지거나 인터넷에 연결될 때마다 켜지나요? 어떻게 설정하나요?

답변1

요약: VM 게스트 시계가 시간을 유지하는 데 적합하지 않아 안타깝습니다. 사용을 중단하세요.

게스트 운영 체제에는 시간을 유지하는 두 가지 방법이 있습니다.

  • 인터넷
  • 호스트 운영 체제

잘못된 방법: 인터넷 클라이언트

가상 머신 게스트할 수 있다server1b.meinberg.de 및 기타 인터넷 서버용 NTP 클라이언트입니다. 이렇게 하지 마십시오.

가상 머신이 오랫동안 일시 중지되어 게스트가 다시 시작될 때마다 외부 서버가 빠르게 미래로 시간 왜곡되는 것처럼 보입니다. 너가지다편향 수정을 "10% 더 빠르게 실행"하는 대신 복구 시 "단계" 수정을 수행합니다. 일반적으로 시작 스크립트는 유사한 명령을 사용 하거나 일부 NTP 서버에서 시계 단계를 hwclock -s --utc요청하여 이를 수행합니다.ntpdate

만성 문서섹션 3.4makestep 1 -1이는 종종 몇 분 또는 몇 시간 동안 정지되는 비정상적인 상황에 처한 고객에게 필요하다는 점을 지적하십시오 .

좋은 방법: 호스트 OS 시계

게스트가 시간을 알고 싶다면 실행 중인 호스트의 시간을 물어봐야 합니다.

호스트 운영 체제에는 적절한 시계가 있을 것으로 추정되며, 네트워크를 사용할 수 있을 때 때때로 인터넷 NTP 서버에서 {오프셋, 주파수} 추정이 이루어질 수 있습니다.

가상 기기제안그건

종종 규율되지 않은 지역 시계라고 불리는 지역 시계를 시간 소스로 사용하지 않는 것이 중요합니다.

하이퍼바이저에 대해 알려주지 않았기 때문에 조정해야 할 손잡이가 무엇인지 명확하지 않습니다. 벤저민 브라이언(Benjamin Bryan)의 글을 읽어보실 수도 있습니다. 경험.


편집하다

Chrony(또는 다른 NTP 데몬)가 {오프셋, 주파수}를 측정하려고 합니다. 예를 들어, 4초 더 느리지만 1% 더 빠르게 실행할 수 있습니다. 몇 가지 관찰을 한 후에 이를 추정하고 수정할 수 있습니다.

이제 손님이 30분 동안 잠시 멈춰 있다고 가정해 보겠습니다. 우리를가능한"1804초 느리지만 여전히 1% 빠릅니다"라고 보고하는 기능. 그러나 총 오프셋은 주파수 오류 측정을 방해합니다. 데몬이 실제로 알아야 할 모든 것은 t_0에서 t_1까지 "4초 뒤, 1% 빠름"과 일치하는 여러 NTP 응답을 들었다가 t_2까지 우리는 죽었고(일시 중지) t_3 이후의 관찰은 " 1804초 뒤쳐지고, 1% 빨라진다". 이 시점에서 우리는 확실히 1804초씩 단계적으로 이동해야 합니다.

OP는 chronyd가 syslog가 아니며 "일시 중지" 및 "재개" 이벤트에 대해 알고 있음을 매우 명확하게 밝혔습니다. 따라서 로컬 불규칙 시계는 시간 기반으로 사용하기에 적합하지 않습니다.

또는 동기화를 위해 한 시간 동안 인터넷 NTP 응답을 수신하는 경우 30분 동안 일시 중지하고 인터넷 연결을 끊고 복원된 게스트가 현재 시간을 알 것으로 기대하며 해당 정보는 본질적으로 마스터의 시계에 전달됩니다. . OP는 호스트 시계가 hwclockUDP 포트 123을 통해 액세스되지 않기 때문에 게스트가 29분 또는 31분 일시 중지 간격을 구별할 수 있다는 증거를 제공하지 않습니다.

복구 후 시간을 알고 싶다면 하이퍼바이저 + 게스트 구성에서 수정해야 하는 구성 세부 정보입니다.

ATM, 복원하는 동안 손님이 시간을 확실하게 알 수 있는 유일한 방법은 인터넷 연결을 유지하고 복원 스크립트가 chronyd를 다시 시작하여 점진적인 업데이트를 장려하는 것인 것 같습니다. (그런데 iburst구성의 초기 버스트가 완벽하게 일치합니다.)

관련 정보