阿里云ECS集群服务器时间同步解决方案

阿里云ECS集群服务器时间同步解决方案,第1张

阿里云ECS实例已经提供了NTP服务器支持,直接启动已配置好的NTP服务即可。
《阿里云NTP服务器》
《配置Linux实例NTP服务》

在开启服务前,先确保环境配置:

文档 《配置Linux实例NTP服务》 中介绍了CentOS环境下开启NTP服务。
由于本人购买的Ubuntu服务器,下面总结Ubuntu环境下的配置。
执行命令查询所有服务,看ntp服务是否已开启(+号:已开启;-号:未开启):

发现香港地区的服务默认都没有开启ntp服务;但深圳地区的服务器默认已经开启了ntp服务。
执行命令查询ntp进程,发现深圳服务器默认已经开启了ntp服务:

如果未开启ntp服务,执行命令开启ntp服务:

开启成功后,如图:

或者查询ntp相关的进程:

重启后通过如下命令观察NTP的运行状态:

这个命令可以列出目前我们的 NTP 与相关的上层 NTP 的状态,上头的几个字段的意义为:

driftfile /etc/ntp/drift

语法为: restrict IP地址 mask 子网掩码 参数
其中IP地址也可以是default ,default 就是指所有的IP

参考 《ubuntu安装和使用NTP》

首先来了解下面几个知识点:
1 date命令:
#date
显示系统时间
2hwclock命令 (即hardwareclock系统硬件时间)
#hwclock
显示硬件时间
#hwclock -w
将系统时间写入到系统硬件当中
3ntpdate
ntpdate 是一个linux时间同步服务软件,具体的详细资料请参考下百度,有很多详细的资料
第二、查看本机是否安装ntpdate服务,如果没有安装,请 yum install -y ntpdate
第三、同步时间
1 输入ntpdate timenistgov同步网络时间
结果:3 Jun 15:42:39 ntpdate[4721]: adjust time server 21111519421 offset -0005885 sec
出现上述结果代表时间同步成功,上面的大致意思为调整时间为服务器21111519421的时间,相差-0005885秒的时间
如果上面timenistgov服务器同步不了,可以换下面几个时间服务器试试:
timenistgov
timenurinet
0asiapoolntporg
1asiapoolntporg
2asiapoolntporg
3asiapoolntporg
2同步时间成功后调整硬件时间
#hwclock -w
执行成功后, 查看系统硬件时间(不出意外的话,现在date和hwclock现实的时间均为internet时间)
#date
#hwclock
执行上述命令,显示的时间应该一样的
四、定时执行时间同步任务,所以我们利用crontab -e 来添加定时任务
# 1/ root ntpdatetimenurinet;hwclock -w
即:每隔一个小时同步一下internet时间。

服务器时间与网络时间不符:
一、手动修改
1 date命令:查看当前时间
2 date -s 时分秒 :修改时间
还需要把日期改过来
3 date -s 完整日期时间(YYYY-MM-DD hh:mm[:ss]):修改日期、时间
时间要用双引号括起来,否则报错
手动修改会存在一定的时间误差
4 hwclock -w
将时间写入bios避免重启失效。
当我们进行完 Linux 时间的校时后,还需要以 hwclock 来更新 BIOS 的时间,因为每次重新启动的时候,系统会重新由 BIOS 将时间读出来,所以, BIOS 才是重要的时间依据呐。
二、同步网络时间
1 检查系统是否安装ntp服务
安装ntp服务命令:
apt-get install ntp 或者 yum install ntp
2 service --status-all:检查ntp服务是否启动
[+]表示服务已启动
3 ntpdate 服务器IP:同步服务器时间
ntp常用服务器:
中国国家授时中心:2107214544
NTP服务器(上海) :ntpapibz
美国:timenistgov
复旦:ntpfudaneducn
微软公司授时主机(美国) :timewindowscom
台警大授时中心(台湾):asiapoolntporg
服务器换成上海的
时间还是差一分钟,手动把时间与当前时间间隔改大一些,再同步发现有问题,服务器时间根本就不对,差了半天时间,/(ㄒoㄒ)/~~
用微软公司授时主机(美国),发现和上海的服务器时间差不多,那是不是时区设置有问题??
4 修改服务器时区
41 date -R : 查看当前时区
另一台服务器(时间正常)时区:
so,现在要来改时区了
42 tzselect

环境准备:

要做到服务器集群的时间同步,集群中各台机器的时区必须相同的,我们在国内就使用中国时区,如果你的机器的时区不是"Asia/Shanghai",需要修改时区

CentOS 中时区是以文件形式存在,当前正在使用的时区文件位于
/etc/localtime ,其他时区文件则位于 /usr/share/zoneinfo 下,中国时区的文件全路径是 /usr/share/zoneinfo/Asia/Shanghai

要更改时区,直接使用如下命令就OK

需要使用 tzselect 命令去生成时区文件,生成好的时区文件就在/usr/share/zoneinfo 目录下,具体步骤去下:

使用 date -s 命令来修改系统时间

让集群所有的服务器的时间同步,就用远程连接工具连接所有服务器,然后在所有的服务器中同时执行 date -s 命令设置时间,然后在所有的服务器中执行 hwclock -w 命令即可

美国标准技术院时间服务器:timenistgov(1924324418)
上海交通大学网络中心NTP服务器地址:ntpsjtueducn(2021202101)
中国国家授时中心服务器地址:cnpoolntporg(2107214544)

若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器

<1> 使用命令: crontab -e

<2> 然后往里加入一行内容

上面的配置表示,每隔十分钟从 2021202101 该时间服务器同步一次时间。

<3> 保存退出

以上两步 *** 作可以让node01这个服务器每隔10分钟去指定的服务器同步时间,如果需要让集群中的所有服务器(hadoop01-hadoop04)时间同步,那么每台服务器都要做以上两步 *** 作。

node01的IP为19216821101,让它作为时间服务器,192168210局域网内的所有服务器都向它同步时间,而node01这台时间服务器本身,向外网时间服务器同步时间(比如中国国家授时中心服务器)

我用node01

我去掉了所有的默认注释,对其中的修改写了自己的注释,没有写注释的是默认配置

因为ntpd服务开启之后,就不能手动同步时间了,那么为什么要先手动同步时间呢?
当server(中国国家授时中心服务器)与client(node01)之间的时间误差过大时(可能是1000秒),node01去同步时间可能对系统和应用带来不可预知的问题,node01将停止时间同步!所以如果发现node01启动之后时间并不进行同步时,应该考虑到可能是时间差过大引起的,此时需要先手动进行时间同步!

看到红色框中的内容,表示连接和监听已正确

这里的前4行就是我们配置的4个中国国家授时中心的服务器的信息

最后一行就是本地时间服务的信息

下面对每个列的意义进行说明:

同样,服务启动后需要等待5-10分钟才能看到这个正常的信息
到这里,我们局域网内的时间服务器node01就已经配置完毕了

文件内容如下:
同样,没有写注释的都是默认的配置

原因同(5)

到这里,利用局域网内一台时间服务器来同步整个集群时间的全部配置就已经完成

说明:若以上提供的网络时间服务器不可用,请自行上网寻找可用的网络时间服务器,另外需要关闭各服务器的防火墙,才能进行时间同步

参考文章:
内网环境NTP服务及时间同步(CentOS6x)配置和部署
配置NTP服务ntpd/ntpconf(搭建Hadoop集群可参考)

一 域环境,默认情况下,所有计算机都会和域控制器同步时间的,无需特别设置。
二 工作组环境
1)如果所有机器都可以访问internet,可以直接使用timewindowscom(默认的配置)
2)如果机器不能访问internet,或者有防火墙导致无法同步,可以在2003服务器上创建时间服务器,客户端XP系统设置时间服务器地址为2003服务器。
三 客户端设置
双击托盘区显示时间的地方,出现对话框之后选择Internet时间设置时间服务器的地址。默认为timewindowscom,设置为2003服务器地址,然后单击“立即更新”按钮实现“时间同步”。
四 服务器端设置
1 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
2 找到并单击下面的注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
3 在右窗格中,右键单击“AnnounceFlags”,然后单击“修改”。
4 在“编辑 DWORD 值”的“数值数据”框中键入 A,然后单击“确定”。
5 退出注册表编辑器。
6 在命令提示符处,键入以下命令以重新启动 Windows 时间服务,然后按 Enter:
net stop w32time && net start w32time
参见>Linux 下 时间同步命令: ntpdate
linux系统下默认安装了ntp服务,手动进行ntp同步如下$ntpdate ntp1nlnet
当然,也可以指定其它的ntp服务器公网上的NTP服务器列表: >

Linux查看系统时间命令:

1、系统硬件时间:

hwclock  -r

2、系统时间

date

硬件时钟可以理解为主板时钟,系统时间会在重启时去同步主板时间


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/10375835.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-08
下一篇2023-05-08

发表评论

登录后才能评论

评论列表(0条)

    保存