가상 머신에서 NTP 서버 실행의 한계는 무엇입니까?


15

로컬 네트워크에 여러 Stratum 2 시간 서버를 설정하고 싶습니다. 가상 머신은 3 개의 1U 서버를 구입하는 것보다 훨씬 저렴한 방법입니다. 그렇게 할 때 어떤 제한이 있습니까? 즉, 정확도가 어느 정도까지 악영향을 받습니까?

또한, 본능은 하드웨어 불규칙성을 완화하기 위해 이러한 로컬 시간 서버가 다른 물리적 시스템에 상주해야한다는 것입니다. 이 직감이 맞습니까?

편집 "가상 머신" 이란 구체적으로 VMware를 의미 하지는 않았습니다 . 오히려 가상화 된 인스턴스의 일반적인 개념을 의미했습니다.

답변:


19

간단한 사실은 VM 내의 클럭 정확도가 여전히 나쁘다는 것입니다. 이것은 몇 지점에서 나왔지만 가장 중요한 것은 시간 드리프트가 일정하지 않다는 것입니다. 드리프트 팩터는 순간마다 변합니다. NTP는 클럭 보상 기능이 내장 된 프로토콜이지만 내장 된 정적 드리프트 팩터로 설계되었습니다. 예를 들어, 물리적 시스템이 30 일마다 12 초를 잃는 경우 NTP는이를 보상하여 매우 잘 수행 할 수 있습니다. 그러나 해당 시스템이 30 일마다 4 초에서 70 초 사이를 잃을 수 있다면 NTP는 그러한 변화 수준을 추적하는 데 능숙하지 않습니다.

NTP가 VM 환경에서 유지하기 어려운 이유는 로컬 시계가 1 분 동안 드리프트 팩터를 변경할 수 있다는 것입니다. 주파수에 따라 부모 시간 소스를 확인하면 주요 드리프트 팩터가 변경되어 훨씬 자주 동기화되지 않을 수 있습니다. 조직 전체의 비동기 시간 캐스케이드.

로컬 네트워크 용 NTP는 메모리 공간이 매우 작은 비교적 낮은 영향을 미치는 프로토콜이며 DNS 및 DHCP 서버와 같은 다른 네트워크 인프라 서버에서 행복하게 피기 백 할 수 있습니다. 일부 라우터는 NTP 기능도 제공 할 수 있으므로 살펴볼 수 있습니다.

이상적으로는 서로 다른 상위 계층 서버와 동기화되는 별도의 위치에 두 개의 개별 서버가 필요합니다. 또한 두 시간 서버가 다른 서버를 '피어'로 사용하도록 구성되어있어 상류 시간 소스 중 하나가 잘못 될 경우 시간 서비스에 미치는 영향을 최소화하는 것이 좋습니다. 지층 변화가있을 것입니다. 그러나 적어도 동기화되지 않은 것으로보고하지는 않습니다. 마지막으로 업스트림 시간 공급자에게 친절하고 시간이 정해지면 폴링 간격이 매우 길도록 서버를 구성하십시오. 이것은 '서버'라인의 'maxpoll'매개 변수이며 동기화 시도 사이에 2 초의 제곱입니다.

이를 위해 VM을 반드시 사용해야한다면, 그러한 NTP 서버를 3 개 이상 설정해야합니다. 이들 각각은 다른 호스트에 있어야하며 가능하면 다른 데이터 센터에 있어야합니다. 방금 제안한 것과 같이 서로 다른 시간 소스가 필요하며 서로 피어링해야합니다. 그런 다음 모든 NTP 클라이언트를 구성하여 세 가지를 모두 상위 소스로 사용하십시오. maxpoll 값이 네트워크 외부의 동기화 패킷과 네트워크의 30 분 사이에 1 시간 반을 넘지 않도록 충분히 낮아야합니다. 세 가지 중 하나 이상이 항상 동기화되어있을 가능성이 높습니다. 하나의 타임 호스트와 만 대화 할 수있는 클라이언트의 경우 가끔 동기화되지 않은 이벤트를 처리해야합니다. 전반적으로이 시나리오의 시간 품질은 실제 서버에 비해 정확하지 않습니다.

볼 파크를해야한다면 순수한 VM 환경에서의 컨센서스 시간은 아마도 30 ~ 100ms 이내 일 것입니다. 순전히 물리적 인 환경에서 서버가 시간을 충분히 확보 한 후 합의 시간은 아마도 10ms 이내에있을 것입니다.


1
나는 단지 두 개의 로컬 NTP 서버가 아니라 적어도 세 개를 원한다고 확신 합니다. 고객이 두 가지를 어떻게 명확하게 구분할 수 있습니까?
James A. Rosen

어떤 까다로운 이유로 최소 4 개가 필요합니다. 즉, 우리는 24 개의 외부 서버 (및 로컬 시계를 백업으로 동기화)에 동기화 된 2 개의 내부 서버 만 있습니다. 우리에게 잘 작동합니다.
James

James A Rosen-그것은 피어 그룹 구성의 기쁨입니다. 피어 그룹의 구성원 중 하나 이상이 외부 연결을 가지고 있고 동기화되어있는 한 전체 피어 그룹은 동기화되어 있습니다. 클라이언트는 지층을 저하시킬 수 있지만 적어도 동기화되지 않습니다. 동료 그룹에 3 명 있습니까? 문제 없어요.
sysadmin1138

1
필요한 서버 수와 ​​관련하여 모든 것이 여기 있습니다 : support.ntp.org . 하나만 나열하면 "올바른"또는 "잘못된"것으로 간주 될 의문은 없습니다. [...] 두 개를 사용하면 어느 것이 더 나은지 말할 수 없습니다 [...]. 이것은 실제로 최악의 구성입니다 [...]. 세 대의 서버를 사용하면 최소 시간 원본이 있습니다 ...]이 구성은 중복성을 제공하지 않습니다. 적어도 4 개의 업스트림 서버를 사용하면 [...] ntpd에 선택할 수있는 충분한 수의 소스가 있습니다.
Mathieu

11

vmware 시간 기록 문서를 참조하십시오 . 특히 안정적인 시간이 필요한 경우 VM에서 NTP 데몬을 실행하는 것은 좋지 않습니다.


2
하하- "특히 믿을만한 시간이 필요한 경우"
squillman

1
나는 당신에게 더 이상 동의 할 수 없었습니다. 사실 VM에서 실행하기에 적합하지 않은 단일 서버는 생각할 수 없습니다. :)
Chopper3

6

불행히도 ntp와 가상화는 잘 어울리지 않습니다. 대부분의 경우 클라이언트는 정상이지만 ntp 서버 (esp str2 이상)는 일반적으로 가상 서버에서 안정적으로 작동하지 않습니다.

xen 및 xen enterprise 관점에서 언급하고 있지만 vmware / kvm은 동일 할 것이라고 생각합니다.

다른 서버를 다시 사용하십시오. 예, 맞습니다. 이상적으로는 다른 환경에도 있어야하므로 온도 / 습도가 정확도에 영향을 미치지 않지만 적어도 나는 그것에 신경 쓰지 않습니다. 또한 당신이 무엇을 하든지 여전히 적절한 원자 시계만큼 정확하지는 않으므로 잊지 마십시오.


1

가상화 된 환경에서 NTP를 실행하면 20ms의 정확도 (VMware를 사용하여 수행 한 것)를 얻을 수 있습니다. 가상화 된 클럭 스큐는 특히 리소스 경합이있는 가상화 된 환경에서 나쁩니다.

얼마나 정확한지에 달려 있습니다. 두 번째 (웹 서버의 경우 EG)에만 관심이 있다면 리소스 경합이없는 한 괜찮을 것입니다. 바쁜 데이터베이스, 로그 서버, 리서치 프로젝트와 같은 밀리 초 정확도를 원한다면 가상화 된 타임 서버를 잊어 버리십시오.

NTP 서버는 항상 물리적 호스트에 있어야합니다. 당신은 그들 중 3 명 이상이 풀에서 피어링을해야합니다. 가능하면 인터넷을 통하지 않고 GPS 또는 다른 로컬 Tier-0 소스에서 시간을 확보하십시오.

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