百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

分布式数据库授时服务选择 - 从NTP到Chrony

nanshan 2024-11-13 11:32 23 浏览 0 评论

当前很多数据库并不像之前的Oracle、MySQL一样只通过单独的一台机器对外提供服务,很多数据库是分布式数据库产品,是一个集群软件,通过横向扩展机器来提高整体性能,实现企业去O的需求。

分布式数据库对各个节点之间的时间同步性有要求。比如OceanBase在技术上要求所有节点之间的时间误差需控制在 50ms 以内。实际生产环境中为了稳定性和性能考虑,建议时间误差控制在 10ms 以内;Greenplum的集群也要求时间误差不能太大,否则并行入库gpfdist到表中时,产生的时间戳会有时间错乱感。

授时服务通常只要节点配置时间同步服务器跟公网时间保持同步即可。实际上在企业机房里,企业会有统一的时间服务器跟机房提供的时间服务器或者直接跟公网时间服务器同步。

1. Chrony是什么?

Chrony是网络时间协议(NTP)的另一种实现,与ntpd相比,它能够更快地同步系统时钟并具有更好的准确性。Chrony还可以对时钟频率的快速变化提供更好的响应,这对于时钟不稳定或无法保持时钟频率恒定的节能技术的虚拟机很有用。

除NTP改进外,Red Hat Enterprise Linux 7还包括对IEEE 1588版本2规范精确时间协议(PTP)的支持。尽管与网络时间协议(NTP)相似,但PTP的主要优点是各种网络接口卡(NIC)和网络交换机中的硬件支持。与硬件支持一起使用时,PTP的精度可达到亚微秒,这比NTP通常可获得的精度要好得多。而且,通过使用基于GPS的时间源,PTP甚至可以用于高度精确地同步不同的网络。

2. 选择使用Chrony而不是NTP

由于在RHEL 7中,ntpd被chronyd替换为默认网络时间协议守护程序,所以我们不必再次安装ntpd,采用Chrony即可,同步时间和日期的基本配置存储在文件 /etc/chrony.conf中 ;对于需要运行NTP服务的客户,ntpd仍包含在yum存储库中,可以自行按需安装;Chrony是与网络时间协议守护程序(ntpd)不同的网络时间协议(NTP)的实现,与ntpd相比,它可以更快地同步系统时钟,并且精度更高。

2.1 Chrony的好处包括:

  • 更快的同步仅需数分钟而不是数小时,以最大程度地减少时间和频率误差,这对于一天24小时不停运行的台式机或系统很有用。
  • 更好地响应时钟频率的快速变化,这对于时钟不稳定的虚拟机或无法使时钟频率保持恒定的节能技术很有用。
  • 初始同步后,它将不再计时,以免影响需要系统时间单调的应用程序。
  • 处理临时的非对称延迟时,例如当链接被大量下载饱和时,它具有更好的稳定性。
  • 不需要定期轮询服务器,因此具有间歇性网络连接的系统仍可以快速同步时钟。

3.如何从NTP切换到Chrony

3.1 判断是否使用 ntpd 同步时间

systemctl status ntpd
Unit ntpd.service could not be found.

如果出现上述提示信息,表示没有使用 ntpd,您可继续进行后续步骤。

如果提示有 ntpd 服务,则需卸载 ntpd 软件。

3.2 安装 chrony 服务

这里采用 YUM 安装方法。您也可以下载相应的 RPM 包安装。

yum -y install chrony

如果系统已经默认安装chrony,yum会直接提示,或者您可以提前使用ps命令查询后台是否启动chrony服务:

ps -ef | grep chronyd

3.3 chrony 配置说明

chrony 服务守护进程名为 chronyd,chronyc 是用来监控 chronyd 性能和配置参数的命令行工具。 chrony 的主配置文件为 /etc/chrony.conf 。配置方法如下:

vi /etc/chrony.conf
# server 后面跟时间同步服务器
# 使用 pool.ntp.org 项目中的公共服务器。按 server 配置,理论上您想添加多少时间服务器都可以。
# 或者使用 阿里云的 ntp 服务器
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

# 如果是测试环境,没有时间同步服务器,那就选取一台配置为时间同步服务器。
# 如果选中的是本机,则取消下面 server 注释
#server 127.127.1.0

# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift

# chronyd 根据需求减慢或加速时间调整,
# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
# 该指令强制 chronyd 调整时期,大于某个阀值时步进调整系统时钟。
# 只有在因 chronyd 启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
makestep 1.0 3

# 将启用一个内核模式,在该模式中,系统时间每 11 分钟会拷贝到实时时钟(RTC)。
rtcsync

# Enable hardware timestamping on all interfaces that support it.
# 通过使用 hwtimestamp 指令启用硬件时间戳
#hwtimestamp eth0
#hwtimestamp eth1
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# 指定一台主机、子网,或者网络以允许或拒绝 NTP 连接到扮演时钟服务器的机器
#allow 192.168.0.0/16
#deny 192.168/16

# 即使没有同步到时间源,也要服务时间
local stratum 10

# 指定包含 NTP 验证密钥的文件。
#keyfile /etc/chrony.keys

# 指定日志文件的目录。
logdir /var/log/chrony



# Select which information is logged.
#log measurements statistics tracking

最简单的配置文件如下:

server 127.127.1.0
allow 172.20.0.0/16
local stratum 10

常用命令:

使用 chrony 时间服务是为了保证分布式数据库集群各个节点时间尽可能同步,下面这些命令供参考。具体使用请查看 chrony 官方使用说明:

查看时间同步活动
chronyc activity

查看时间服务器
chronyc sources

查看同步状态
chronyc sources -v

校准时间服务器:
chronyc tracking

您可以使用 clockdiff 命令检查本机跟目标机器的时间同步误差,以该命令结果为准。机器之间的误差主要关注delta=部分即可。

4.写在最后

至此为止,本次分享结束,欢迎大家添加博主交流。

最后,如果觉得文章对您有帮助,请给博主点赞、收藏、关注,博主会不断推出更多优质的文章。

相关推荐

F5负载均衡器如何通过irules实现应用的灵活转发?

F5是非常强大的商业负载均衡器。除了处理性能强劲,以及高稳定性之外,F5还可以通过irules编写强大灵活的转发规则,实现web业务的灵活应用。irules是基于TCL语法的,每个iRules必须包含...

映射域名到NAS

前面介绍已经将域名映射到家庭路由器上,现在只需要在路由器上设置一下端口转发即可。假设NAS在内网的IP是192.168.1.100,NAS管理端口2000.你的域名是www.xxx.com,配置外部端...

转发(Forward)和重定向(Redirect)的区别

转发是服务器行为,重定向是客户端行为。转发(Forward)通过RequestDispatcher对象的forward(HttpServletRequestrequest,HttpServletRe...

SpringBoot应用中使用拦截器实现路由转发

1、背景项目中有一个SpringBoot开发的微服务,经过业务多年的演进,代码已经累积到令人恐怖的规模,亟需重构,将之拆解成多个微服务。该微服务的接口庞大,调用关系非常复杂,且实施重构的人员大部分不是...

公司想搭建个网站,网站如何进行域名解析?

域名解析是将域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转...

域名和IP地址什么关系?如何通过域名解析IP?

一般情况下,访客通过域名和IP地址都能访问到网站,那么两者之间有什么关系吗?本文中科三方针对域名和IP地址的关系和区别,以及如何实现域名与IP的绑定做下介绍。域名与IP地址之间的关系IP地址是计算机的...

分享网站域名301重定向的知识

网站域名做301重定向操作时,一般需要由专业的技术来协助完成,如果用户自己在维护,可以按照相应的说明进行操作。好了,下面说说重点,域名301重定向的操作步骤。首先,根据HTTP协议,在客户端向服务器发...

NAS外网到底安全吗?一文看懂HTTP/HTTPS和SSL证书

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry搭好了NAS,但是不懂做好网络加密,那么隐私泄露也会随时发生!大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数...

ForwardEmail免费、开源、加密的邮件转发服务

ForwardEmail是一款免费、加密和开源的邮件转发服务,设置简单只需4步即可正常使用,通过测试来看也要比ImprovMX好得多,转发近乎秒到且未进入垃圾箱(仅以Mailbox.org发送、Out...

使用CloudFlare进行域名重定向

当网站变更域名的时候,经常会使用域名重定向的方式,将老域名指向到新域名,这通常叫做:URL转发(URLFORWARDING),善于使用URL转发,对SEO来说非常有用,因为用这种方式能明确告知搜索引...

要将端口5002和5003通过Nginx代理到一个域名上的操作笔记

要将端口5002和5003通过Nginx代理到域名www.4rvi.cn的不同路径下,请按照以下步骤配置Nginx:步骤说明创建或编辑Nginx配置文件通常配置文件位于/etc/nginx/sites...

SEO浅谈:网站域名重定向的三种方式

在大多数情况下,我们输入网站访问网站的时候,很难发现www.***.com和***.com的区别,因为一般的网站主,都会把这两个域名指向到同一网站。但是对于网站运营和优化来说,www.***.com和...

花生壳出现诊断域名与转发服务器ip不一致的解决办法

出现诊断域名与转发服务器ip不一致您可以:1、更改客户端所处主机的drs为223.5.5.5备用dns为119.29.29.29;2、在windows上进入命令提示符输入ipconfig/flush...

涨知识了!带你认识什么是域名

1、什么是域名从技术角度来看,域名是在Internet上解决IP地址对应的一种方法。一个完整的域名由两个或两个以上部分组成,各部分之间用英文的句号“.”来分隔。如“abc.com”。其中“com”称...

域名被跳转到其他网站是怎么回事

当你输入域名时被跳转到另一个网站,这可能是由几种原因造成的:一、域名可能配置了域名转发服务。无论何时有人访问域名,比如.com、.top等,都会自动重定向到另一个指定的URL,这通常是在域名注册商设...

取消回复欢迎 发表评论: