
과거에는 로컬 네트워크에 있는 대부분의 컴퓨터가 최대 1초 이내에 동일한 시간을 갖지 않는 것을 보았습니다.
그래서 저는 서버 스택(예: 48개의 1U 컴퓨터)이 모두 정확히 동일한 시계를 가질 수 있는지 확인하고 싶었습니다. 나는 문제에 대해 NTP를 사용할 수 있다는 것을 알고 있으며 한 서버가 원자 시계에서 시간을 얻고 다른 서버는 해당 서버에 동기화되도록 할 수 있다는 것을 알고 있습니다.
하지만 이 기술에 대해 한 가지 주요 우려 사항이 있습니다. 해당 서버 중 하나가 중단되면 시간 동기화가 중지됩니다. 전혀 좋지 않습니다.
48대의 컴퓨터 모두 시계가 약 0.5μs의 정확도로 동기화되도록 하는 적절한 방법이 있습니까? 0.5μs가 아니라면 무엇을 바랄 수 있겠습니까? (즉, 0.5ms?)
답변1
NTP는 서버 풀을 사용할 수 있습니다(예:http://www.pool.ntp.org/en/그러나 서버 하나가 다운되는 상황을 피하기 위해 직접 구축할 수도 있으며, 어떤 이유로든 모든 상위 서버를 사용할 수 없는 경우 서버는 로컬 시계를 유지할 수도 있습니다.
답변2
나는 실제로블로그 게시물내가 찾던 정보로. 그들은 클러스터에 NTP를 사용하여 1ms에 적절하게 동기화된 컴퓨터가 있다고 언급합니다.
그것은 다음과 같습니다PTP는 Michael Hampton이 제안한 대로 다음과 같은 전략을 따릅니다. 하나의 컴퓨터를 사용합니다.그랜드 마스터, 시간 동기화의 소스로서 모든 컴퓨터에서 정확한 절대 시간을 얻으려고 시도하는 것과 반대됩니다(결과적으로그랜드 마스터세상이 생각하는 것보다 10ms 차이가 난다절대적인 실시간, 모든 노드는 10ms만큼 꺼집니다).
해당 문서에서 제안된 솔루션은 다음과 같습니다.
1)NTP로 절대 시간을 검색하도록 한 대의 컴퓨터를 설정하십시오. 그 컴퓨터 한 대가 다운되면 시계가 표류하기 시작할 수 있지만 서로 간에 부정확해지지는 않을 것입니다.절대적인 실시간오직.
이 경우 정의 server
(그랜드 마스터):
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
...
또한 이 컴퓨터를 NTP 서버로 설정하십시오.local.ntp
2)다른 컴퓨터를 피어로 설정
server local.ntp # only on a few other (3 to 5) computers
peer c0 iburst
peer c1 iburst
peer c2 iburst
48대의 컴퓨터를 모두 서로 연결할 필요는 없습니다. 대신 각 컴퓨터마다 약간 다른 설정(c1, c2, c3, c2, c3, c4 등)을 사용하여 3~5대가 있어야 합니다. (1)에 정의된 노드에 연결된 몇 대의 컴퓨터(3~5대)를 사용하여 가능한 한 가깝게 서로 동기화하는 피어 투 피어 네트워크를 얻습니다. 즉, local.ntp
실시간에 최대한 가까운 시간을 얻습니다.
참조 local.ntp
자체는 피어로 볼 수 있습니다. (심지어 피어로 만들 수도 있습니까?)
PS 다른 사람이 귀하의 NTP 네트워크에 액세스하는 것을 방지하기 위해 준공용 네트워크에서 사용할 때는 을 사용하는 것이 restrict
좋습니다 .peer