分布式系统中要部署几台 NTP 服务器才够用?
.
本作品采用“Creative Commons 署名-非商业性使用-禁止演绎 3.0 Unported 许可协议(cc by-nc-nd)”进行许可。
http://creativecommons.org/licenses/by-nc-nd/3.0/
分布式系统中各节点的时钟同步是必备的,虽然做不到完全同步(毕竟不是一个时钟域),但是借助 NTP 服务可以把同一个数据中心(同一个 LAN 上)内的机器的时钟同步到相互误差 1 毫秒上下,这通常已经够用了。(这里的机器指的是运行 Linux 或 FreeBSD 的机器,Windows 的时钟精度要差得多,不堪一用。)
那么要部署多少台 NTP 服务器才能达到比较高的可用性(availability)呢?
1 台肯定不够,因为是 single point of failure,它一旦坏了各台机器的时钟就会漂移。
2 台呢?似乎可以满足高可用的需求,坏一台也没关系。但是,一个人戴一块手表的时候知道时间,当他戴两块手表的时候就不知道哪个是准的了。如果数据中心里有两台 NTP 服务器,stratum 数又是一样(它们之间不相互同步,因此有时间差),在两台都正常工作的情况下,各台机器怎么知道应该跟哪台 NTP 服务器同步时钟呢?更糟糕的是,万一有一半的机器跟 NTP1 同步,另外一半跟 NTP2 同步,分属两个时钟阵营,岂不是比不同步好不了多少?(NTP 的算法规定只能和一台服务器同步时钟,不能取两台服务器的平均数来同步。)
3 台呢?似乎能打破僵局 (break the tie),有了三个候选者,但愿机器们能从中选出一台来与之同步时钟。但是,即便有 3 台服务器,仍然不能满足高可用的需求,只要有任何一台坏掉,就会退回到第 2 种情况,机器们又戴上了两个表。
4 台?根据以上分析,似乎要 4 台 NTP 服务器才能满足高可用的需求,您同意吗?在平时,有四个候选时钟,机器们可以自己选一个来同步,如果坏掉一个,仍然有三个以供选择,不会出现平局。在部署 4 台 NTP 的时候,可以考虑放两台在本数据中心,另外两台放在临近的数据中心,两个数据中心的机器可以共享这 4 台 NTP 服务器,以进一步提高可靠性。
更多?根据以上分析,如果容忍坏两台 NTP 服务器,那么要部署 5 台才够用,以此类推。
其实,在部署多台 stratum 相同的 NTP 服务器的情况下,似乎没有什么办法能让所有的机器都跟其中一台 NTP 服务器同步时间,各台机器有自己的选择,会造成 systematical 的时钟误差,在设计分布式系统的时候必须要充分考虑机器之间的时钟误差(以及可能的时钟跳变)。
NTP 服务器不同于一般的服务器,它有独特的部署要求,见:Brad Knowles 写的 Building scalable NTP server infrastructures 和 It's about time ...。
数据中心应该有自己的 stratum 1 NTP 服务器
Stratum 1 是最高等级的 NTP 服务器,它直接连到参考时钟(refclock),能够独立报时。
受益于 GPS 模块的普及(淘宝上一百块以内),stratum 1 NTP 服务器可以低成本 DIY,只要设法把 GPS 模块的 pulse per second 信号接到 ntpd 就行。传统做法是通过串口的 DCD 信号(不过可能抖动 jitter 比较大),如果主板上有 GPIO ,可以有更精确的手段,见 A home-built NTP appliance。我准备在家装个 stratum 1 NTP 来玩。
另外,为了提高精度与稳定度,可以用 GPS 驯服钟(简单的可以用恒温晶振+锁相环 DIY),这比直接使用廉价 GPS 模块更好(当然,在其他各项条件足够好的情况下才能看出区别)。
数据中心部署 stratum 1 NTP 的难点恐怕不在 NTP 服务器本身,而是找能看见足够的天空的地方装 GPS 天线,再专门为之布线,让 GPS 模块能正常工作。在家玩就简单得多,把 GPS 模块的天线贴到窗台上就行。
思考:如何监控 stratum 1 NTP 服务器是否工作正常呢?看一个表准不准,得用比它更准的时钟源,那么如何判断 stratum 1 的 NTP 服务器的时钟是否精确呢?有没有比它更准的时钟?在数据中心放原子钟吗?其实民用原子钟也不贵,几千块钱(二手 FE-5680A 铷钟在淘宝卖 100 块左右),体积跟移动硬盘差不多大。
分享到:
相关推荐
本文档将详细介绍如何利用Windows 7系统搭建局域网内的NTP服务器,以及在搭建过程中可能遇到的问题及解决方案。 #### 二、基础知识 1. **NTP协议**:NTP协议的主要功能是使计算机时间同步化,它可以使计算机对其...
标题中的“一键搭建NTP服务器小软件”指的是一个简化了NTP服务器配置过程的应用程序,它可以帮助用户快速、简便地设置自己的NTP服务器。NTP(Network Time Protocol,网络时间协议)是互联网上用于同步各个计算机...
总结以上,部署分布式NTP校时方案的目的是为了解决大型网络环境中系统间时间不一致的问题,通过分布式部署减少核心服务器负载、降低网络流量、增强系统可靠性及安全性,并通过适当的配置和安全措施保证网络时间的...
阿里云NTP服务器的部署涉及到Linux系统的硬件时钟和系统时钟管理,以及NTP服务的配置与测试。本指南将详细讲解这一过程。 一、Linux的硬件时钟和系统时钟 硬件时钟是计算机BIOS中的时钟系统,它在电源关闭时仍然...
在 Windows 服务器中搭建 NTP 服务器是一个非常重要的任务,因为 NTP(Network Time Protocol)协议能够为计算机提供精准的时间同步服务。下面是详细的搭建步骤和相关知识点: 一、了解 NTP 协议 NTP 协议是一种...
在 Windows XP/2003 操作系统中,NTP 服务器的配置可以通过在注册表中设置 NTP 服务器的配置参数来实现。例如,我们可以在注册表中设置 NTP 服务器的 IP 地址、端口号、时区等。 Cisco 3662 中 NTP 服务器配置 在 ...
NTP协议是一种分布式时间同步协议,设计目的是使计算机系统间的时钟保持同步。它通过交换时间戳信息来估算和调整本地时钟与远程服务器时钟之间的偏差。NTP支持多种同步模式,包括服务器/客户端模式、对等模式等。 ...
多台ntp服务器时间校验同步工具 1、多台ntp服务器时间获取 2、可设置ntp同步间隔时间 3、获取的多个ntp时间进行判断有效性 4、与本机的时间误差大于设置值进行同步 5、可设置将本机作为ntp授时服务器 6、可设置程序...
Linux 部署 NTP 服务器进行时间同步 Linux 部署 NTP 服务器进行时间同步是保证服务器时间准确性的重要步骤。 NTP(Network Time Protocol)是一种用于 synchronization 计算机时间的协议,它可以确保服务器时间与...
NTP(Network Time Protocol,网络时间协议)是一种用于在计算机网络上同步时间的协议,它确保了分布式系统中的时钟保持一致。NTP服务器是实现NTP协议的实体,其主要任务是提供精确的时间源,使得连接到该服务器的...
分布式系统是一种由多台计算机通过网络互相连接,协同工作来完成单一任务或多个相关任务的系统。在这种架构中,每台计算机(称为节点)都可以独立处理数据并与其他节点通信,从而实现系统的高可用性、可扩展性和容错...
基本语法为 `f1 f2 f3 f4 f5 program`,其中 `f1` 表示分钟,`f2` 表示小时,`f3` 表示一个月份中的第几日,`f4` 表示月份,`f5` 表示一个星期中的第几天,`program` 表示要执行的命令。例如,可以使用 `* * * * * ...
在Linux系统中,设置NTP服务器可以帮助确保系统时钟的精确性,这对于多台设备之间的协调工作至关重要,比如日志记录、数据分析、交易处理等场景。下面将详细介绍如何在Linux内网环境中搭建NTP服务器。 首先,我们...
NTP是互联网上广泛使用的标准,它允许计算机通过网络校准时间,这对于多台设备之间的协调操作至关重要,如分布式系统、日志记录、审计跟踪以及安全事件的分析。 以下是在Windows Server 2008R2上设置NTP服务器的...
NTP(Network Time Protocol)服务器是计算机网络中一种同步时间的协议,用于使计算机的时钟保持同步。NTP服务器的搭建对保证网络安全和稳定性非常重要。本文将详细介绍NTP服务器的搭建步骤和相关配置文件的修改。 ...
通过以上步骤,你可以成功地在服务器上部署一个既能作为NTP服务器,又能作为客户端同步时间的系统。这将有助于保持网络环境中的时间一致性,对于多台服务器的集群环境尤其重要,因为许多应用和服务依赖于精确的时间...
- **定义**:分布式系统是由多台通过网络互联的计算机组成的系统,这些计算机可以相互协作完成特定任务。 - **并发性**:分布式系统中多个进程并发执行,需要解决资源共享问题。 - **无全局时钟**:每个节点有自己的...
1. **选择可靠的NTP服务器**:在实际部署中,应当选择稳定且可靠的NTP服务器。通常建议使用由官方机构提供的公共NTP服务器。 2. **安全考虑**:虽然NTP本身提供了基本的安全机制,但在敏感环境下仍需采取额外的安全...
威纶通NTP服务器搭建流程主要涉及将一台运行Windows系统的计算机配置为NTP服务器,以便与支持NTP的触摸屏设备进行时间同步。NTP(Network Time Protocol)是一种用于在Internet上同步网络设备时间的协议,它允许设备...