NTP에서도 Hyper-V Machine의 시간이 줄어 듭니다.


10

해결 된 문제는 해당 시스템의 Hyper-V입니다. VMware 서버를 설치하고 동일한 VM을 실행 한 Hyper-V를 제거했습니다. 시간 동기화 문제가 사라졌습니다 (하루 후 <100ms 차이).


내 설정은 다음과 같습니다

HYV1 - HyperV machine (non domain) - sync irrelevant
AD1  - VM AD server on HYV1, sync'd to time.nist.gov. HyperV time sync off.
S1   - Physical machine, sync'd to domain. 
S2   - Physical machine running HyperV, sync'd to domain.
V1   - Linux VM machine on S2, sync'd to AD1. No HyperV integration.

AD1과 S1은 동기화가 잘되어 있습니다. 스트립 차트는 100ms 미만의 차이를 보여줍니다.

S2는 미친 듯이 표류합니다. AD1에 대한 약간의 스트립 차트는 다음과 같습니다.

18:33:22 d:+00.0010138s o:+05.4101899s 
18:33:24 d:+00.0010138s o:+05.4319765s 
18:33:26 d:+00.0000000s o:+05.4788429s 
18:33:28 d:+00.0000000s o:+05.6089942s 
18:33:30 d:+00.0010138s o:+05.7240269s 
18:33:32 d:+00.0000000s o:+06.0421911s 
18:33:34 d:+00.0081104s o:+06.5613708s 
18:33:37 d:+00.0000000s o:+06.9096594s 
18:33:39 d:+00.0000000s o:+06.8867838s 
18:33:41 d:+00.0010127s o:+06.8936401s 

20 초 만에 1 초에 걸쳐 표류했습니다. 수동으로 1 초 이내에 재설정하면 몇 분 안에 약 2 초 후에 표류합니다. 밤새 ~ 2에서 ~ 5로 갔다. S2의 Linux VM은 AD1과 완벽하게 동기화됩니다.

구성은 다음과 같습니다.

C:\Users\mgg>w32tm /dumpreg /subkey:Parameters

Value Name                 Value Type          Value Data
------------------------------------------------------------

ServiceDll                 REG_EXPAND_SZ       %systemroot%\system32\w32time.dll
ServiceMain                REG_SZ              SvchostEntry_W32Time
ServiceDllUnloadOnStop     REG_DWORD           1
Type                       REG_SZ              NT5DS
NtpServer                  REG_SZ              ad01.mydomain ad02.mydomain


C:\Users\mgg>w32tm /dumpreg /subkey:Config

Value Name                Value Type          Value Data
-----------------------------------------------------------

FrequencyCorrectRate      REG_DWORD           4
PollAdjustFactor          REG_DWORD           5
LargePhaseOffset          REG_DWORD           50000000
SpikeWatchPeriod          REG_DWORD           900
LocalClockDispersion      REG_DWORD           9
HoldPeriod                REG_DWORD           5
PhaseCorrectRate          REG_DWORD           1
UpdateInterval            REG_DWORD           30000
EventLogFlags             REG_DWORD           2
AnnounceFlags             REG_DWORD           5
TimeJumpAuditOffset       REG_DWORD           28800
MinPollInterval           REG_DWORD           2
MaxPollInterval           REG_DWORD           8
MaxNegPhaseCorrection     REG_DWORD           -1
MaxPosPhaseCorrection     REG_DWORD           -1
MaxAllowedPhaseOffset     REG_DWORD           300

이벤트 로그를보고 동기화에 대한 경고 (동기화가 끝난 후) 외에 다른 경고는 없습니다.

이 문제를 해결하려면 어떻게해야합니까? 이 문제가 발생하는 유일한 시스템입니다. 다른 모든 머신 (실제 및 가상)이 제대로 작동합니다.

편집 : 명확히하기 위해 : VM (AD1) 통합이 해제되어 time.nist.gov에 동기화됩니다. AD1은 괜찮습니다. AD1과 동기화 할 수없고 전체적으로 드리프트하는 것은 실제 머신 S1입니다. 다른 모든 물리적 서버는 AD1과 잘 동기화 할 수 있습니다.

업데이트 따라서 VM을 실행하는 데 문제가있는 것 같습니다. VM을 끄면 시계가 천천히 미끄러집니다. 켜면 즉시 초가 빠지기 시작합니다. 나는 절반의 리소스 만 사용하도록 VM을 swt했으며 현재로서는 약간 완화 된 것으로 보입니다. 감사!

답변:


5

설명 에 따르면 서버 S2의 마더 보드에 RTC ( http://en.wikipedia.org/wiki/Real-time_clock )에 실제 하드웨어 문제가있는 것 같습니다 .

Hyper-V 게스트는 처음에 호스트 (HYV1)에서 시계를 가져 오지만 Hyper-V 시간 동기화를 사용하지 않도록 설정하면 NIST (제대로 작동)에서 모든 추가 시계 업데이트를 가져옵니다. Linux VM은 Hyper-V와 통합되어 있지 않으므로 도메인에서 시간이 지날수록 제대로 작동합니다. 다른 물리적 시스템은 정상적으로 작동합니다. 매 20 초마다 1 초의 드리프트가 발생하는 단일 물리적 서버입니다 (이는 엄청난 드리프트입니다). 네트워크 시간 동기화가 시계를 올바른 시간으로 재설정 할 수있는 것보다 시간이 훨씬 빠르게 표류하고 있습니다 (제대로 호출하면 8 시간마다 발생 함).

S2에서 오류의 원인으로 Hyper-V를 배제하려면 "하이퍼 바이저 없음"부팅 항목을 생성하고 Hyper-V없이 재부팅 한 다음 시간 편차가 지속되는지 확인하십시오. 여기 지침 : http://blogs.msdn.com/virtual_pc_guy/archive/2008/04/14/creating-a-no-hypervisor-boot-entry.aspx

바다


좋아, 나는 그것을 시도 할 것이다.
MichaelGG 2016 년

OK, VM을 종료했습니다 (HyperV를 비활성화하지 않았습니다). 시계가 훨씬 나아졌습니다. 약 3 분 후 약 100ms 만 손실됩니다. 여전히지고 있지만 이전보다 훨씬 적습니다. VM을 켜 자마자 견딜 수 있습니다. 몇 초 만에 1 초씩 치십시오. VM에 통합 서비스가 없을 수 있습니까?
MichaelGG

Michael- 이것은 왼쪽 필드에서 보이지 않을 수도 있지만 S2의 상위 파티션에서 모든 종류의 멀티미디어 응용 프로그램을 실행하고 있습니까? -Sean
Sean Earp

아니. Hyper-V 문제가 발생했습니다. Hyper-V를 제거하고 Vmware Server를 설치 한 후 동일한 VM을 문제없이 실행했습니다. 시간 동기화는 100ms 미만입니다.
MichaelGG 2016 년

3

문제는 다양한 클럭 소스 (tsc, jiffies, acpi_pm, cmos_trc)의 가상 구현에 있습니다. 내가 하이퍼이 문제를 해결하기 위해 찾은 가장 좋은 방법은 설정하는 것입니다 오프 후, 게스트 머신의 하이퍼 제공 클럭 동기화 시간을 조정하는 adjtimex를 사용합니다. 우분투 게스트 OS 에서이 작업을 수행하십시오 ...

# rm /var/log/clocks.log
# /etc/init.d/ntp-server stop
# ntpdate ntp.ubuntu.com
# hwclock -u --systohc
# adjtimex -l -u -h ntp.ubuntu.com

두 질문에 모두 아니요

# while [ /bin/true ] ; do yes | adjtimex -l -u -h ntp.ubuntu.com ; sleep 60 ; done

교정을 위해 몇 시간 동안 실행되도록두고 Ctrl-C를 눌러 종료하십시오.

# adjtimex -r -a -u -h ntp.ubuntu.com

이것은 시계의 최소 제곱 분석을 수행하고 올바른 조정을 찾을 것입니다

# ntpdate ntp.ubuntu.com
# hwclock -u --systohc
# /etc/init.d/ntp-server start

이렇게하면 컴퓨터의 시간이 다시 동기화되고 더 이상 너무 많이 표류하지 않아야하므로 ntp가 동기화 상태를 유지할 수 있어야합니다.


2

이것은 VM에서 매우 일반적인 문제인 것 같습니다. 다음 웹 사이트를 참조하십시오.

http://www.vmwareinfo.com/2008/04/enabling-ntp-on-esx-servers.html

http://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/6fff3eef-1b5b-4059-8618-22ab3f5c293c

내 제안은 외부 시간 서버와 동기화하고 통합 시간 동기화를 비활성화하는 것입니다.

잘하면 이것이 도움이됩니다.


바로 내가 한 일입니다. VM (AD1)의 통합 기능이 해제되었으며 time.nist.gov와 동기화됩니다. AD1은 괜찮습니다. AD1과의 동기화를 잃는 것은 실제 머신 S1입니다.
MichaelGG 2016 년

이 녀석은 말한다처럼 - 1로 MaxAllowedPhaseOffset을 설정 jaylee.org/post/2009/10/14/...
gbjbaanb

2

우리는 Hyper-v를 Core에서 한동안 실행했습니다. 처음에 우리는 시간 동기화 문제를 겪었습니다.…

OS별로 서버를 봅니다. Linux, 라우터, Windows, Novell 마스터를 만듭니다.

지금은 Novell이 없을 수도 있지만 나와 함께 견뎌야 할 것입니다.

각 "마스터"서버는 라우터와 동기화됩니다. 지층에 라우터. 그런 다음 각 구성원 서버에는 마스터 OS 서버와 다른 마스터 중 하나의 보조 서버가 있습니다.

  • 리눅스에서 라우터로, 그리고 나서 Novell으로
  • Novell에서 라우터로, Windows로
  • Windows에서 라우터로, Linux에서
  • 라우터에서 Stratum으로, 그런 다음 코어 스위치로
  • 코어 스위치를 계층으로, 라우터로

이 전략의 마지막 부분은 ... 모든 것이 타임 서버를 가지고 있다는 것입니다. 시간 서버가 없으면 네트워크에 연결되지 않습니다. 토스터에서 전화 PBX로 전환하기 위해 서버로.

이것은 내가 새 직장에 도착했을 때 가장 먼저해야 할 일 중 하나는 네트워크를 매핑하고 시간을 설정하는 데 시간을 보내는 것입니다. 그런 다음 여기저기서 확인하고 그 시점에서 문제로 시간 동기화를 제거 할 수 있습니다.


흠, 나는 수동 보조를 추가하려고 노력하고 그것이 도움이되는지 확인합니다. 그러나 다른 모든 것이 잘 작동합니다.이 물리적 기계 하나만 표류합니다.
MichaelGG

어떤 기계입니까? Dell / HP / IBM-기타? 항상 조정해야하는 Dell 상자가 있습니다.
토마스 덴튼

Pentium D920이 내장 된 Dell PowerEdge 850 (또는 Intel VT는 2.8GHz 정도)
MichaelGG

PE 350은 매우 표류 할 것입니다. 그러나 그것은 몇 년 전이었습니다. 나는 850을 사용하지 않았지만 850과 저렴한 아날로그 SC1435 서버는 괜찮습니다. 어쩌면 환경을 보아도 서버가 진동하고 cmos 배터리가 느슨합니까?
토마스 덴튼

1

VM의 모든 곳에서 시간이 흐릅니다. 로컬 시계가 너무 신뢰할 수 없으므로 NTP 서버가 '서버'문에서 로컬 시계를 사용하고 있지 않은지 확인하려고합니다. 내가 돕기 위해 한 가지 작업은 VM 컴퓨터의 서버에 대한 "maxpoll"속성을 설정하는 것입니다. 이로 인해 ntp 서비스는 구성된 기본값보다 훨씬 더 자주 업스트림 클럭을 확인하므로이를 유지하는 데 도움이됩니다.

server [timeserver] maxpoll 12

몇 가지 설정을 시도하여 상대적으로 안정적인 시간을 유지하는 데 필요한 거리를 확인하십시오. 12는 나를 위해 일하지만 각 환경은 다릅니다.


2 또는 4와 같은 폴링 시간 (16 초)으로 시도했습니다. 아직도 미친 듯이 표류합니다.
MichaelGG

1

재미있을 것 같지만 다중 프로세서 설정을 실행하고 있을까요? 특정 제조업체의 기침 AMD 기침 에는 멀티 코어 / 멀티 소켓 마더 보드에서 발생하는 알려진 클록 드리프트 문제가 있습니다. 예를 들어 가상 머신을 실행하는 것과 같은 과도한 인터럽트 활동은 드리프트를 악화시킵니다. 당신이 겪고있는 드리프트는 매우 수상한 소리 입니다.

가치가있는 것은 인텔보다 AMD의 제품을 선호하기 때문에 이에 대한 노크로 여기지 마십시오.


머신에서 Pentium D930을 실행 중이므로 멀티 코어 설정입니다. VM을 비활성화하고 어떻게되는지 보겠습니다.
MichaelGG

2
VM에서 코어를 종료하면 호스트의 동기화에 도움이됩니다.
MichaelGG

1

AD1이 도메인 컨트롤러라고 가정하면 여기서 문제는 Hyper-V 서버가 자체 게스트 VM 중 하나에서 시간을 설정하는 것과 관련이 있다고 생각합니다. 그렇기 때문에 VMware로 전환했을 때 문제가 사라졌습니다. VMware 서버는 Windows 도메인 컨트롤러와 시계를 동기화해야한다는 느낌이 들지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.