it-swarm-ko.tech

Hyper-V 머신은 NTP

해결됨 문제는 해당 컴퓨터의 Hyper-V였습니다. Hyper-V를 제거하고 VMware Server를 설치하고 동일한 VM을 실행했습니다. 시간 동기화 문제가 사라졌습니다 (하루 후 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 초로 변경되었습니다. Linux VM 내부 S2는 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

이벤트 로그를 살펴본 결과 동기화에 대한 경고 (동기화되지 않은 후)를 제외하고는 다른 경고가 없습니다.

이 문제를 해결하려면 어떻게해야합니까? 이 문제가있는 유일한 기계입니다. 다른 모든 머신 (물리적 및 가상)은 정상적으로 작동합니다.

Edit : 명확히하기 위해 : VM (AD1)은 통합이 꺼져 있고 time.nist.gov에 동기화됩니다. AD1은 괜찮습니다. 할 수있는 것은 물리적 머신 S1입니다. AD1과 동기화되지 않고 모든 곳에서 드리프트됩니다. 다른 모든 물리적 서버는 AD1과 잘 동기화 할 수 있습니다.

업데이트 따라서 VM 실행 문제로 보입니다. 시계는 VM 꺼진 상태에서 느리게 미끄러집니다. 켜면 즉시 초를 잃기 시작합니다. 나는 VM)를 돌려서 리소스의 절반 만 사용하고 지금은 약간 완화했습니다. 감사합니다!

10
MichaelGG

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

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

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

-숀

5
Sean Earp

문제는 다양한 클럭 소스 (tsc, jiffies, acpi_pm, cmos_trc)의 가상 구현에 있습니다. HyperV에서이 문제를 해결하는 가장 좋은 방법은 게스트 컴퓨터에 대해 HyperV에서 제공 한 클럭 동기화를 해제 한 다음 adjtimex를 사용하여 시각. Ubuntu 게스트 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는 더 이상 너무 많이 드리프트하지 않기 때문에 동기화 상태를 유지할 수 있습니다.

3
Matt Keenan

이것은 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

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

도움이 되었기를 바랍니다.

2
rmwetmore

우리는 한동안 Core에서 Hyper-v를 실행했습니다. 처음에 우리는 시간 동기화 문제가있었습니다 ..... 저는 이전 Windows NT 시절의 모범 사례로 되돌 렸습니다.

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

당신은 지금 Novell을 가지고 있지 않을 수도 있지만 저를 참아주세요.

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

  • Linux에서 라우터로, 그다음에 Novell로
  • Novell에서 라우터로, 그런 다음 Windows로
  • Windows에서 라우터로, 그런 다음 Linux로
  • 라우터에서 Stratum으로, 그런 다음 코어 스위치로
  • Stratum으로의 코어 스위치, 그런 다음 라우터로

이 계층의 마지막 부분은 ... 모든 것에는 시간 서버가 있습니다. 시간 서버가 없으면 네트워크에 연결되지 않습니다. 토스터에서 전화로 전환 PBX 서버로.

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

2
Thomas Denton

이상하게 들릴지 모르지만 다중 프로세서 설정을 실행하고 있습니까? 특정 제조업체에는 알려진 클럭 드리프트 문제가 있습니다 cough AMD cough 멀티 코어/멀티 소켓 마더 보드에서 발생합니다. 가상 머신을 한두 개 실행하는 것과 같은 과도한 인터럽트 활동은 드리프트를 더욱 악화시킵니다. 당신이 경험하고있는 드리프트는 다음과 같이 매우 의심스럽게 들립니다 .

그만한 가치는 Intel보다 AMD의 제품을 선호하므로이를 노크라고 생각하지 마십시오.

1
Avery Payne

시간은 VM의 모든 곳에서 이동합니다. 당신은 정말로 NTP 서버가 '서버'문에서 로컬 시계를 사용하고 있지 않은지 확인하고 싶을 것입니다. 로컬 시계가 너무 신뢰할 수 없기 때문입니다. 제가 도와 준 한 가지는 다음과 같습니다. VM 된 컴퓨터의 서버에 대해 "maxpoll"속성을 설정합니다. 이렇게하면 ntp 서비스가 구성된 기본값보다 훨씬 더 자주 업스트림 시계를 확인하도록하여이를 참으로 유지하는 데 도움이됩니다.

server [timeserver] maxpoll 12

몇 가지 설정을 시도하여 시간을 상대적으로 안정적으로 유지하기 위해 필요한 정도를 확인하십시오. 12는 나에게 적합하지만 환경마다 다릅니다.

1
sysadmin1138

AD1이 도메인 컨트롤러라고 가정하면 여기서 문제는 Hyper-V 서버가 자체 게스트 VM 중 하나에서 시간을 설정하는 것과 관련이있을 수 있습니다. 이것이 바로 VMware로 전환했을 때 문제가 해결 된 이유입니다. VMware 서버는 시계를 Windows 도메인 컨트롤러와 동기화하지 않아도됩니다.

1
Skyhawk