內(nèi)網(wǎng)環(huán)境集群主機(jī)的時(shí)間同步

應(yīng)用場(chǎng)景

在解決內(nèi)網(wǎng)環(huán)境集群主機(jī)的時(shí)間同步問(wèn)題時(shí)题诵,遇到了ntp的錯(cuò)誤no server suitable for synchronization found,之前在生產(chǎn)環(huán)境也遇到過(guò)這個(gè)錯(cuò)誤,為徹底解決這個(gè)小問(wèn)題滓窍,查閱了鳥(niǎo)哥的NTP服務(wù)器一篇碍庵,對(duì)比了網(wǎng)上的一些解決方案,按作為服務(wù)端和用戶端的應(yīng)用場(chǎng)景分別進(jìn)行了梳理割按。

在實(shí)際生產(chǎn)環(huán)境中走哺,我們的集群主機(jī)通常都是部署在內(nèi)網(wǎng)環(huán)境中,這又分兩種情況哲虾,一種是在整個(gè)生產(chǎn)環(huán)境中丙躏,有一臺(tái)或少數(shù)主機(jī)可以和公網(wǎng)連通,一種是整個(gè)集群主機(jī)都在內(nèi)網(wǎng)束凑。有些分布式的應(yīng)用對(duì)主機(jī)的時(shí)間同步要求比較高晒旅,那么,我們?nèi)绾巫龅郊褐鳈C(jī)間的時(shí)間同步呢汪诉?

本文約定废恋,上級(jí)NTP服務(wù)器為xxx.ntp.server,集群中提供NTP服務(wù)的主機(jī)為192.168.169.100扒寄。進(jìn)行NTP同步的用戶端主機(jī)為(192.168.169.101鱼鼓、192.168.169.102)。

集群主機(jī)時(shí)間同步思路

首先明確兩個(gè)時(shí)間的概念:軟體時(shí)間(Linux系統(tǒng)時(shí)間)是Linux操作系統(tǒng)根據(jù)1970/01/01 00:00:00開(kāi)始計(jì)算的總秒數(shù)该编,可用date +%s查看迄本,硬體時(shí)間(BIOS時(shí)間)是硬件系統(tǒng)上面的時(shí)間,例如BIOS記錄的時(shí)間课竣,可用hwclock -r查看嘉赎。由于BIOS內(nèi)部芯片的問(wèn)題,導(dǎo)致BIOS與標(biāo)準(zhǔn)時(shí)間(UTC)有一點(diǎn)點(diǎn)的差異存在于樟,長(zhǎng)時(shí)間運(yùn)行后公条,累積的時(shí)間偏差會(huì)很大,所以時(shí)間同步的工作就很重要了迂曲。

那么怎么讓我們集群內(nèi)所有的主機(jī)時(shí)間同步呢靶橱?

  • 選擇一部主機(jī)作為服務(wù)端,這部主機(jī)可與公網(wǎng)連通路捧,讓這個(gè)服務(wù)端主機(jī)的時(shí)間與它的上級(jí)時(shí)間同步服務(wù)器的時(shí)間同步关霸,這個(gè)上級(jí)也是向上一層一層傳遞的,我們選擇國(guó)內(nèi)主流的NTP Server進(jìn)行同步即可鬓长,假設(shè)公網(wǎng)的NTP Server為xxx.ntp.server谒拴。
  • 一種可能的情況是,它的上級(jí)不存在涉波,即集群內(nèi)所有主機(jī)都在內(nèi)網(wǎng)英上,那么可以選擇其中一臺(tái)主機(jī)作為服務(wù)端部署NTP服務(wù)炭序,其他主機(jī)與這臺(tái)NTP服務(wù)器同步即可,實(shí)現(xiàn)集群主機(jī)的時(shí)間同步苍日。
  • 開(kāi)放網(wǎng)絡(luò)服務(wù)讓客戶端連接惭聂,讓客戶端根據(jù)服務(wù)端時(shí)間調(diào)整自己的時(shí)間,使集群內(nèi)的客戶端的時(shí)間都與服務(wù)端一致相恃,這樣就達(dá)到集群的主機(jī)時(shí)間同步辜纲。

NTP服務(wù)的部署

所需軟件安裝yum install -y ntp ntpdate。服務(wù)主要的配置文件在/etc/ntp.conf拦耐。

應(yīng)用場(chǎng)景1耕腾,集群環(huán)境有公網(wǎng)主機(jī),可與上級(jí)NTP服務(wù)器xxx.ntp.server連通杀糯,

  • 有上層NTP服務(wù)器扫俺,xxx.ntp.server。
  • 不對(duì)公網(wǎng)提供服務(wù)固翰,僅允許內(nèi)部網(wǎng)192.168.169.0/24查詢狼纬。
  • 檢測(cè)BIOS時(shí)間與Linux系統(tǒng)的時(shí)間差異并寫入/var/lib/ntp/drift

服務(wù)端主機(jī)(192.168.169.100)設(shè)置如下骂际,

vi /etc/ntp.conf

# 放行上級(jí)NTP服務(wù)器
restrict xxx.ntp.server # 放行xxx.ntp.server進(jìn)入本NTP服務(wù)器

# 放行局域網(wǎng)來(lái)源
restrict 192.168.169.0 mask 255.255.255.0 nomodify # 用戶端不能使用ntpc和ntpq 這兩個(gè)命令來(lái)修改服務(wù)器的時(shí)間參數(shù)疗琉, 但用戶端仍可通過(guò)這部主機(jī)進(jìn)行網(wǎng)絡(luò)較時(shí)。

# 設(shè)定上級(jí)NTP服務(wù)器來(lái)源歉铝,將配置文件原來(lái)的[0|1|2|3].centos.pool.ntp.org注釋掉
server xxx.ntp.server prefer # 以這部主機(jī)優(yōu)先

driftfile /var/lib/ntp/drift # 預(yù)設(shè)時(shí)間差異分析盈简,不需修改
# NTP啟動(dòng)與開(kāi)機(jī)啟動(dòng)
service ntpd start
chkconfig ntpd on

NTP的啟動(dòng)與觀察

# 觀察ntpd服務(wù)狀態(tài)
[hadoop@hadoopmaster ~]$ service ntpd status
ntpd is stopped
[hadoop@hadoopmaster ~]$ chkconfig --list | grep ntp
ntpd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
ntpdate         0:off   1:off   2:off   3:off   4:off   5:off   6:off
# 啟動(dòng)與設(shè)置開(kāi)機(jī)啟動(dòng)
service ntpd start/stop/restart # 啟動(dòng)/停止/重啟
chkconfig ntpd on/off # 開(kāi)機(jī)啟動(dòng)開(kāi)啟/關(guān)閉
# 觀察服務(wù)啟動(dòng)端口
netstat -tlunp | grep ntp
# 觀察指令
ntpstat
ntpq -p

注意犯戏,上述的ntpstatntpq -p的輸出結(jié)果中送火。ntp服務(wù)器要能夠連上上層ntp服務(wù)器,否則下層服務(wù)端無(wú)法對(duì)我們的ntp服務(wù)器進(jìn)行同步更新先匪。

用戶端主機(jī)(192.168.169.101、192.168.169.102弃衍、……)設(shè)置如下:

vi /etc/ntp.conf

restrict 192.168.169.100
server 192.168.169.100

service ntpd start
chkconfig ntpd on

重點(diǎn)呀非,應(yīng)用場(chǎng)景2,集群所有主機(jī)都在內(nèi)網(wǎng)镜盯,沒(méi)有主機(jī)可與公網(wǎng)連通岸裙,

首先可以想到,讓其中一臺(tái)主機(jī)作為服務(wù)端速缆,其他主機(jī)作為用戶端降允,在服務(wù)端主機(jī)按如上所述放行局域網(wǎng)來(lái)源,

# 放行局域網(wǎng)來(lái)源
restrict 192.168.169.0 mask 255.255.255.0 nomodify # 用戶端不能使用ntpc和ntpq 這兩個(gè)命令來(lái)修改服務(wù)器的時(shí)間參數(shù)艺糜, 但用戶端仍可通過(guò)這部主機(jī)進(jìn)行網(wǎng)絡(luò)較時(shí)剧董。

用戶端主機(jī)(192.168.169.101幢尚、192.168.169.102)同樣設(shè)置如下:

vi /etc/ntp.conf

restrict 192.168.169.100
server 192.168.169.100

service ntpd start
chkconfig ntpd on

這就會(huì)出現(xiàn)錯(cuò)誤no server suitable for synchronization found,這是因?yàn)镹TP Server還沒(méi)有和它自身或者它的上級(jí)Server同步上翅楼。進(jìn)行如下配置尉剩,讓NTP Server和其自身保持同步,如果在/etc/ntp.conf中定義的Server都不可用時(shí)毅臊,將使用local時(shí)間作為ntp服務(wù)提供給ntp客戶端理茎。

server 127.127.1.0
fudge 127.127.1.0 stratum 8

在NTP Server上重新啟動(dòng)ntp服務(wù)后,NTP Server自身或者與其上級(jí)Server的同步的需要一個(gè)時(shí)間段管嬉,這個(gè)過(guò)程可能是5分鐘皂林,在這個(gè)時(shí)間之內(nèi)在客戶端運(yùn)行ntpdate命令時(shí)會(huì)產(chǎn)生no server suitable for synchronization found的錯(cuò)誤。

可用如下命令查看NTP Server何時(shí)完成和自身的同步蚯撩。在NTP Server上使用命令watch ntpq -p础倍。ntpq -p可以列出目前我們的NTP與相關(guān)的上層NTP的狀態(tài)。出現(xiàn)的LOCAL的這個(gè)就是與自身同步的NTP Server求厕。注意reach這個(gè)值著隆,在啟動(dòng)NTP Server服務(wù)后,這個(gè)值就從0開(kāi)始不斷增加呀癣,當(dāng)增加到17的時(shí)候美浦,從0到17是5次的變更,每一次是poll的值的秒數(shù)项栏,是64秒*5=320秒的時(shí)間浦辨。如果之后從ntp客戶端同步ntp server還失敗的話,用ntpdate –d來(lái)查詢?cè)敿?xì)錯(cuò)誤信息沼沈,再做判斷流酬。

用戶端時(shí)間更新

應(yīng)用場(chǎng)景1,用戶端手動(dòng)校時(shí)

# 軟體時(shí)間修改
date -s "YYYYMMDD hh:mm:ss"
# 修改BIOD記錄的時(shí)間
date;hwclock -r # 查閱軟體時(shí)間和硬體時(shí)間
hwclock -w;hwclock -r;date # 寫入硬體時(shí)間列另,這樣軟體時(shí)間與硬體時(shí)間就同步了

注意芽腾,用date -s更新完Linux系統(tǒng)的時(shí)間后,需要用hwclock -w更新BIOS時(shí)間页衙。因?yàn)槊看沃匦麻_(kāi)機(jī)時(shí)摊滔,系統(tǒng)會(huì)重新由BIOS時(shí)間讀出來(lái)。

應(yīng)用場(chǎng)景2店乐,用戶端網(wǎng)絡(luò)較時(shí)艰躺,

可用ntpdate進(jìn)行網(wǎng)絡(luò)較時(shí),但要注意眨八,因?yàn)镹TP服務(wù)器本身會(huì)與它的上級(jí)服務(wù)器進(jìn)行時(shí)間同步腺兴,所以在NTP服務(wù)器不可以使用ntpdate,即ntpntpdate不能同時(shí)啟用廉侧。

ntpdate -dv [NTP IP/hostname] # -d為debug模式页响,-v顯示詳細(xì)信息

用戶端進(jìn)行網(wǎng)絡(luò)較時(shí)方法一篓足,利用ntpdate,寫入crontab拘泞,每天5:10主機(jī)會(huì)自動(dòng)進(jìn)行網(wǎng)絡(luò)較時(shí)纷纫,這個(gè)方式適合不啟動(dòng)ntpd服務(wù)的情況。

vi /etc/crontab

10 5 * * * root (/usr/sbin/ntpdate xxx.ntp.server && /sbin/hwclock -w) &> /dev/null

用戶端進(jìn)行網(wǎng)絡(luò)較時(shí)方法二陪腌,如果ntpd的server/client時(shí)間誤差超過(guò)1000秒辱魁,得先進(jìn)行手工同步。然后利用NTP诗鸭,加入我們要的NTP服務(wù)器染簇,啟動(dòng)ntpd并設(shè)置開(kāi)機(jī)啟動(dòng),并取消crontab更新程序强岸。

vi /etc/ntp.conf

restrict 192.168.169.100
server 192.168.169.100

service ntpd start
chkconfig ntpd on

注意锻弓,提供ntp服務(wù)的主機(jī)要能夠連上上層ntp服務(wù)器,否則下層用戶端無(wú)法對(duì)我們的ntp服務(wù)器進(jìn)行同步更新蝌箍,即192.168.169.100需要與公網(wǎng)的上級(jí)NTP服務(wù)器連通青灼。


微信公眾號(hào)「數(shù)據(jù)分析」,分享數(shù)據(jù)科學(xué)家的自我修養(yǎng)妓盲,既然遇見(jiàn)杂拨,不如一起成長(zhǎng)。

數(shù)據(jù)分析

讀者交流電報(bào)群

https://t.me/sspadluo


知識(shí)星球交流群

知識(shí)星球讀者交流群
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悯衬,一起剝皮案震驚了整個(gè)濱河市弹沽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筋粗,老刑警劉巖策橘,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異娜亿,居然都是意外死亡丽已,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門买决,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)促脉,“玉大人,你說(shuō)我怎么就攤上這事策州。” “怎么了宫仗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵够挂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我藕夫,道長(zhǎng)孽糖,這世上最難降的妖魔是什么枯冈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任混弥,我火速辦了婚禮实辑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掷酗。我一直安慰自己病蛉,他們只是感情好炫加,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著铺然,像睡著了一般俗孝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上魄健,一...
    開(kāi)封第一講書(shū)人閱讀 52,328評(píng)論 1 310
  • 那天赋铝,我揣著相機(jī)與錄音,去河邊找鬼沽瘦。 笑死革骨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的析恋。 我是一名探鬼主播良哲,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绿满!你這毒婦竟也來(lái)了臂外?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤喇颁,失蹤者是張志新(化名)和其女友劉穎漏健,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體橘霎,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蔫浆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姐叁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓦盛。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖外潜,靈堂內(nèi)的尸體忽然破棺而出原环,到底是詐尸還是另有隱情,我是刑警寧澤处窥,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布嘱吗,位于F島的核電站,受9級(jí)特大地震影響滔驾,放射性物質(zhì)發(fā)生泄漏谒麦。R本人自食惡果不足惜俄讹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绕德。 院中可真熱鬧患膛,春花似錦、人聲如沸耻蛇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)城丧。三九已至延曙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亡哄,已是汗流浹背枝缔。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚊惯,地道東北人愿卸。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像截型,于是被迫代替她去往敵國(guó)和親趴荸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容