在數(shù)據(jù)中心和工作環(huán)境、監(jiān)控系統(tǒng)等場(chǎng)景中,除了時(shí)間統(tǒng)一非常重要,預(yù)防時(shí)間的跳變也很重要。比如數(shù)據(jù)庫(kù)的數(shù)據(jù)主從復(fù)制、定時(shí)調(diào)度和心跳機(jī)制,不單單對(duì)時(shí)間的統(tǒng)一要求嚴(yán)格,大的時(shí)間跳變更會(huì)給數(shù)據(jù)庫(kù)帶來(lái)嚴(yán)重的事故;監(jiān)控系統(tǒng)中時(shí)間的統(tǒng)一可以清晰的還原事情發(fā)展的走向,但是意外的時(shí)間跳變可能給過(guò)程帶來(lái)誤差和錯(cuò)覺(jué)。以前未使用過(guò)NTP時(shí)間服務(wù)器的工作環(huán)境新上架設(shè)備,意外的斷網(wǎng)斷電等未知的意外都可能造成時(shí)間的跳變,對(duì)這方面較為敏感的場(chǎng)景,我們可以將客戶時(shí)間設(shè)置為微調(diào)模式,來(lái)避免時(shí)間跳變?cè)斐傻穆闊┖筒槐匾獡p失。
Window微調(diào)模式配置:運(yùn)行regedit 打開注冊(cè)表
例1:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
MaxPosPhaseCorrection and MaxNegPhaseCorrection 最大校準(zhǔn)時(shí)間范圍,即當(dāng)電腦時(shí)間快于或慢于該值時(shí),不進(jìn)行校準(zhǔn),而記錄事件。(MaxPosPhaseCorrection :該項(xiàng)指定服務(wù)可進(jìn)行的最大正時(shí)間校準(zhǔn)量(以秒為單位)。如果服務(wù)確定某個(gè)更改幅度大于所需的幅度,它將記錄一個(gè)事件。(0xFFFFFFFF 是一種特殊情況,它表示總是校準(zhǔn)時(shí)間。)域成員的默認(rèn)值是 0xFFFFFFFF。獨(dú)立客戶端和服務(wù)器的默認(rèn)值是 54,000,即 15 小時(shí)。)
例2:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeConfig
MaxAllowedPhaseOffset 嘗試校準(zhǔn)最大偏移量,即當(dāng)電腦時(shí)差大于該值時(shí),直接同步,當(dāng)時(shí)差小于該值時(shí),時(shí)間以0.05秒漸進(jìn)方式緩慢同步。
單位:秒,默認(rèn):1,現(xiàn)修改為60秒
配置完后需要重啟,w32tm服務(wù),管理員運(yùn)行cmd:net stop w32time && net start w32time
Linux微調(diào)模式配置:
微調(diào)方式在啟動(dòng)NTP服務(wù)時(shí)加了個(gè)“-x”的參數(shù),而默認(rèn)的是不加“-x”參數(shù)。
首先要指定時(shí)間服務(wù)器地址:
請(qǐng)編輯各個(gè)節(jié)點(diǎn)的ntp.conf文件
[root@nascds10 ~]# vi /etc/ntp.conf
#基于網(wǎng)段的限制(限制在網(wǎng)段192.168.7.0) 默認(rèn) 127.0.0.1 無(wú)限制,這里可以不進(jìn)行操作
# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
#restrict 192.168.7.0 mask 255.255.255.255 nomodify notrap
#指定時(shí)間服務(wù)器地址
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 192.168.1.128 prefer #這里是時(shí)鐘服務(wù)器
broadcastdelay 0.008
配置ntpd的參數(shù),我們主要強(qiáng)調(diào)的是要配置成"微調(diào)的模式" 也就是在options中要加入 -x的選項(xiàng):
[root@nascds10 ~]# vi /etc/sysconfig/ntpd
SYNC_HWCLOCK=yes
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
重啟ntpd服務(wù):server ntpd restart
當(dāng)出現(xiàn)unsynchronised時(shí),請(qǐng)檢查配置,如無(wú)誤,那就需要等待,ntpd服務(wù)開啟之后需要等待一段時(shí)間才能同步上。
ntpd命令有一個(gè)自我保護(hù)的機(jī)制:如果本機(jī)與上源時(shí)間相差太大,ntpd 不會(huì)運(yùn)行時(shí)間同步操作,所以新設(shè)置的時(shí)間服務(wù)器一定要先 ntpdate 從上源取得時(shí)間初值, 然后啟動(dòng) ntpd服務(wù)。ntpd服務(wù)運(yùn)行后,先是每64秒與上源NTP服務(wù)器同步一次,根據(jù)每次同步時(shí)測(cè)得的誤差值經(jīng)復(fù)雜計(jì)算逐步調(diào)整自己的時(shí)間,隨著誤差減小,逐步增加同步的間隔。每次跳動(dòng),都會(huì)重復(fù)這個(gè)調(diào)整的過(guò)程。
注:
1. linux系統(tǒng)不同版本直接配置方式可能存在稍許不同,有些linux系統(tǒng)甚至可能并不使用ntpd服務(wù)來(lái)校時(shí)。
2.部分應(yīng)用有提供web管理,有的web管理中提供了ntp相關(guān)配置,可直接通過(guò)web來(lái)配置。