如何进行VMware ESXi网络时间同步

如何进行VMware ESXi网络时间同步,第1张

在虚拟架构中,由于服务依赖服务器,所以网络时间同步对于服务器保持一致非常重要。对于VMware ESXi主机,可用vSphere Client实施网络时间协议NTP同步。
需要同步ESXi主机的理由有很多。例如,如果主机与Active Directory集成,需要时间实现同步。在创建和重新获得快照的时候也需要时间保持一致,因为快照保存的是服务器状态的实时镜像。幸好,使用vSphere Client设置网络时间同步非常简单。
VMware网络时间同步过程要配置NTP同步,选择主机,在Configuration列表上选择Time Configuration under Software就可以看见主机上现有的时间同步。接下来点击属性,跳出Time Configuration窗口,能看到主机目前的时间。确保不要与实际时间相差太大,如果主机时间比实际时间多出1000秒的话,就太“疯狂”啦,同步就很难。
在为主机设置本地时间后,选择NTP Client Enabled为主机激活NTP时间同步。重启服务器,查看Options确保已启用NTP然后可以访问NTP Startup Policy,选择Start and stop with host。
但是时间同步的工作还未完成。现在,需要选择与VMware ESXi主机应该同步的NTP服务器。点击NTP Settings可看见目前的NTP服务器列表。默认下是空的。点击Add添加你要使用的NTP服务器的名称或地址。界面会提示你地址,但你也能输入一个能通过DNS的名称。
如果你不知道使用哪一台NTP服务器用于VMware网络时间同步的话,在。ntporg池中的互联网NTP服务器也同样可用。只需要从该组中选择一台服务器添加到NTP服务器列表中。当然,如果你想同步内部的或专有的NTP服务器的话,应该至少制定两台NTP服务器。
这时,确保重启NTP服务器的选择已选。点击三次OK保存和适用更改。在ESXi主机的配置屏幕上,现在能看到NTP Client在运行,也能显示主机目前所使用的NTP服务器列表。
随着ESXi主机同步到正确的时间,所有依赖于时间的服务与事件都能正常运行。最重要的是,不会浪费时间精力去修改配置错误的网络时间。

要想确定客户端和存储是否是一个时间同步服务器,可以通过执行“date”命令来检查客户端和存储的时间是否一致,如果时间一致,则表明客户端和存储是一个时间同步服务器。另外,还可以通过查看客户端和存储的日志文件,查看是否有时间同步服务器的相关记录,以确定客户端和存储是否是一个时间同步服务器。

我点那个立即更新就可以了啊。你试试看!当您单击“立即更新”按钮时,时钟应立即同步。如果该 *** 作失败,可能出于以下几个原因:
没有连接到
Internet。在试图同步时钟前创建
Internet
连接。

方法一 采用Windows、linux等 *** 作系统自带的时间同步功能 对于Windows *** 作系统,自身已经集成了自动对时功能,在此仅以windows *** 作系统为例介绍一下。 双击系统托盘下方的时间在服务器地址栏输入NTP服务器的IP地址(1cnpoolntporg),然后点

一,用ntpdate从时间服务器更新时间
如果你的linux系统根本没有ntpdate这个命令
yum install ntp
安装完了之后,你不要做什么配置,也不需要,直接测试一下
[root@localhost ~]# ntpdate timenistgov
22 Oct 21:11:43 ntpdate[5014]: adjust time server 20720081113 offset -0018788 sec
如果出去上面的内容说明,同步成功了。然后在crontab里面加上以下内容。
/10 ntpdate timenistgov #域名或IP
每隔十分钟同步一次。推荐几个时间服务器。
timenistgov
timenurinet
asiapoolntporg
asiapoolntporg
asiapoolntporg
asiapoolntporg
二,用ntp搭建自己的时间服务器
上面我们是利用别人的时间服务器来同步时间,这些时间服务器都是比较权威的。当我们自己搭建时间服务器就不用crontab来定时去跑。
1,安装时间服务器ntp
yum install ntp
2,配置ntp
查看复制打印
[root@localhost ~]# cat /etc/ntpconf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'
restrict default ignore //默认不允许修改或者查询ntp,并且不接收特殊封包
restrict 127001 //给于本机所有权限
restrict 19216810 mask 2552552550 notrap nomodify //给于局域网机的机器有同步时间的权限
server timenistgov prefer //设置时间服务器,加prefer表示优先
server 0asiapoolntporg
server 1asiapoolntporg
server 2asiapoolntporg
server 12712710 # local clock
fudge 12712710 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys
3,启动 ntp
[root@localhost ~]# /etc/initd/ntpd start
4,查看并测试
[root@localhost ~]# netstat -upnl |grep ntpd //查看时程
[root@localhost ~]# ntpq -pn //查看同步的服务器IP
remote refid st t when poll reach delay offset jitter
==============================================================================
5077217185 INIT 16 u - 64 0 0000 0000 0000
202901584 INIT 16 u - 64 0 0000 0000 0000
2027110089 INIT 16 u - 64 0 0000 0000 0000
202134110 INIT 16 u - 64 0 0000 0000 0000
12712710 LOCL 10 l 18 64 377 0000 0000 0001
[root@localhost ~]# ntpstat //同步的结果
synchronised to local net at stratum 11
time correct to within 12 ms
polling server every 512 s
remote:即NTP主机的IP或主机名称。注意最左边的符号,如果由“+”则代表目前正在作用钟的上层NTP,如果是“”则表示也有连上线,不过是作为次要联机的NTP主机。
refid:参考的上一层NTP主机的地址
st:即stratum阶层
when:几秒前曾做过时间同步更新的 *** 作
poll:下次更新在几秒之后
reach:已经向上层NTP服务器要求更新的次数
delay:网络传输过程钟延迟的时间
offset:时间补偿的结果
jitter:Linux系统时间与BIOS硬件时间的差异时间

这道面试题是开放的。熟悉的情境,很容易给出一个回答。但随着被面试者思维方式、知识领域及深度的不同,回答可能大相径庭。

在接着往下阅读时,你可以先想想自己的答案。

没理解题目的回答:

还算正常的回答:

电子工程师的回答:

网络工程师的回答:

……

你可能有更精彩的回答……

本实验室将采用可 *** 作的、尽可能精确的实验作为回答。

题目并没有说两台电脑是和时间服务器同步的,所以目的只是测量两台电脑之间的系统时间是否一致。

用date命令(高精度选项)直接看一下两台主机的系统时间。本地的;远程的;本地的;远程的:

显然,host2的时间读数更大一些。但这究竟是host2的时钟快了,还是ssh调用所花的时间导致的呢?现在还不好说。

假设这个时间差异是T1:

T1 = Diff + RTT12

其中,Diff 是两台电脑真实的时间差异,RTT12是host1到host2数据往返所花的时间(严格来说是ssh调用所花的时间)。

反方向做同样的测试:

host1与host2的时间差异设为T2,则:

T2 = -Diff + RTT21

简单地认为两个方向的往返时间是相等的,于是有:

Diff = (T1 – T2)/2
RTT = (T1 + T2)/2

估算一下:

上面的单位都是ns 也就是说时间差异是163~171ms, ssh路途往返耗费728ms

这个结果可信吗?于是写了一段脚本,把这个测试过程自动化,观察一段时间的结果。

下图是每秒测量一次,1个小时的测量数据。为了在对数坐标下显示,时间差异用绝对值。

说明:

在没有时间同步的情况下,观察2组/3台主机:A, B, S的时间差异。

A, B, S实际上是在ESXi上的3台虚拟机。虚拟机的时钟可能和硬件实钟会有某种同步策略,所以看到的并不是单方向的变化。

在A,B,S上都开启NTP服务,时间服务器使用Debian Linux默认的NTP server (xdebianpoolntporg)。

因为幅度悬殊的原因,实际上使用中位数更有意义。可以看到A-S或B-S的时钟差异在30~50ms

在A,B,S上都开启NTP服务,其中A,B与本地的S同步,但S还是与远程NTP server同步。

可以看到A-S或B-S的时钟差异在3ms左右,一致性比远程NTP同步高了一个数量级。

在A,B,S上都开启NTP服务,其中A,B与S同步,但S直接使用本地时钟,配置为:

server 12712710 prefer

结果有点出乎意料,时间不一致接近60ms。

由于通常的 *** 作系统是非实时 *** 作系统,同样的指令占用的执行时间并不是固定的。做一个简单的实验,看看这个因素对测量会有多大影响。

下图给出了在两台机器上,读取系统时间(gettimeofday)这一调用所花的时间(各运行500000次)

可以看出9997%的执行都在1us及以下。这说明分时执行对统计结果的影响很小。

当然,整个ssh调用耗时的波动范围更大一些(RTT的统计值上可以反映出来)。

用ssh调用读取另一台机器上的系统时间,和本地时间比较,并利用双向ssh调用抵消调用所花的时间,从而可以较准确计算出两台主机上的系统时间差。

虽然在分时 *** 作系统上不能保证执行时间的固定,但通过统计可以逼近结果。由于ssh调用所花的时间在06ms以下,所以测量的精度至少是1ms级的。

另外,如果用非加密的web调用,或者自己实现远程调用,应该会有更高的效率,可能会对测量精度略有提高。

利用这一测量,可以观察NTP的同步效果。如果和远程NTP服务器同步,时钟的一致性实测在50ms以内;如果和本地NTP服务器同步,时钟的一致性在3ms左右;但如果本地NTP服务器使用本地时钟,一致性会下降很多(60ms左右)。

由于硬件/虚拟机时钟的波动、网络的波动、NTP的精度,都导致这种一致性总是处于波动之中。总体上,在局域网内,使用NTP同步,能达到毫秒级的一致性就不错了。


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

原文地址: http://outofmemory.cn/zz/12908409.html

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

发表评论

登录后才能评论

评论列表(0条)

保存