NFS가 시스템 시계를 동기화해야 하는 이유는 무엇입니까?

NFS가 시스템 시계를 동기화해야 하는 이유는 무엇입니까?

NFS 설정에 대한 여러 자습서에서는 서로 다른 시스템의 시계 간 차이를 피하기 위해 NTP 설정에 대한 조언도 제공합니다.

  • 시계 드리프트가 파일 타임스탬프에 충돌하는 방식으로 영향을 미칠 수 있나요?
  • 프로토콜 자체에 영향을 줍니까(속도 저하? 캐시 누락?)
  • 동기화되지 않은 것으로 간주되는 오프셋은 몇 개입니까?

답변1

시차는 NFS 프로토콜 자체에는 영향을 미치지 않고 오히려 타임스탬프에 의존하는 동작에 영향을 미칩니다. NFSv3 이전에는 NFS 서버가 타임스탬프 유지 관리만 담당했습니다. NFSv3에서는 클라이언트 제어 타임스탬프를 도입했지만 모든 상황에서 사용되지는 않으며 모든 문제를 해결하지도 않습니다.

전통적인 문제는 클라이언트가 파일을 업데이트할 때 타임스탬프가 서버에 의해 설정된다는 것입니다. 서버의 시간이 클라이언트의 시간과 다른 경우 클라이언트는 예상하지 못한 타임스탬프를 보게 됩니다. 이로 인해 타임스탬프에 의존하는 프로그램(예: Make, 많은 메일 클라이언트, 심지어 프로그램 다운로드)에 문제가 발생할 수 있습니다. Make를 예로 들면, 서버가 클라이언트의 미래에 있는 경우 빌드된 아티팩트는 실제보다 최신이 되며 필요한 경우 다시 빌드되지 않을 수 있습니다.

클라이언트 제어 타임스탬프는 이러한 문제 중 일부를 해결하지만 모든 경우는 아닙니다. 특히 여러 클라이언트가 공유 파일에 대해 작업 중이고 자체가 동기화되지 않은 경우 더욱 그렇습니다.

관련 정보