一.時間服務器(NTP)相關解釋
網絡時間協議NTP(Network Time Protocol)是用於互聯網中時間同步的標準互聯網協議。NTP的用途是把計算機的時間同步到某些時間標準。目前採用的時間標準是世界協調時UTC(Universal Time Coordinated)
二.時間服務器的重要性
在互聯網上進行時間同步具備重要意義。隨着互聯網的發展和延伸到社會的各個方面,在其餘的領域對時間同步也提出了多種要求,例如各類實時的網上交易、通訊網絡的時間配置、網絡安全性設計、分佈性的網絡計算和處理、交通航班航路管理以及數據庫文件管理和呼叫記錄等多種涉及時間戳的應用,都須要精確、可靠和公認的時間。若是系統內某個服務器的時間有偏差會形成交互失敗有歧義,嚴重的將致使交易失敗。由此能夠看出NTP服務器的存在是無可置疑的。
三.內外網服務器時間同步方案
說明了時間同步的重要性後,須要根據實際狀況來調整服務器的時間同步策略:
1. 若是每一個服務器均可以有公網IP地址與外界通訊,那簡單的方式就是:每一個服務器均可以配置與互聯網上的時間服務器進行同步,達到每一個內外網服務器系統時間的一致性。前端
2. 可是一般的狀況是:在IDC託管的服務器只有前端WEB服務器對外通訊,數據庫,文件等服務器只是經過私網地址與前端WEB通訊,造成總體的架構。數據庫
這個時候就須要總體系統內部有一臺服務器來擔當中介,具體是:將某臺服務器配置成時間服務器(注:此服務器能直接同步互聯網上的時間服務器),其餘全部服務器都定時與這臺服務器在內部進行時間同步,達到每一個服務器的時間一致性。
四.方案圖示
五.時間服務器配置
1. 安裝NTP軟件centos
由於系統所用系統是CentOS就可使用YUM方便的安裝系統軟件。
#yum install ntp
2. 編輯配置文件安全
備份一下原始配置文件:mv /etc/ntp.conf /etc/ntp.conf-bk服務器
vi /etc/ntp.conf
添加以下內容
容許192.168.100.0 網段服務器進行同步,拒絕其餘服務器的同步網絡
restrict 192.168.100.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap noquery notrust
restrict 127.0.0.1
restrict -6 ::1
外網時間服務器定義
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
server pool.ntp.org
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
3. 啓動NTP服務架構
service ntpd s tart
4. 客戶端配置ide
添加到計劃任務中,每三十分鐘同步一次
crontab –e
30 * * * * /usr/sbin/ntpdate 192.168.100.5spa
開機啓動時的時間同步設置
echo 「/usr/sbin/ntpdate 192.168.100.5;/sbin/hwclock -w 」>> /etc/rc.d/rc.local
5. 手動在其餘服務器上同步時鐘設計
root@xen100 vm_backup_script]# /usr/sbin/ntpdate 192.168.100.5
28 Jul 17:30:59 ntpdate[19081]: adjust time server 192.168.100.5 offset -0.019476 sec
[root@xen100 vm_backup_script]# date
Sat Jul 28 17:31:02 CST 2012
#######################################################
今天同事給了一個關於ntpd和ntpdate 的區別說明鏈接,內容以下:
ntpd不只僅是時間同步服務器,他還能夠作客戶端與標準時間服務器進行同步時間,並且是平滑同步,並不是ntpdate當即同步,在生產環境中應慎用ntpdate。
因爲ntpdate是當即同步,在得到一個時間以後,ntpdate使用settimeofday(2)設置系統時間,就會產生時鐘的躍變。
用ntpdate調整時間的方式,會有幾個很是明顯的問題:
第一,這樣作不安全。ntpdate的設置依賴於ntp服務器的安全性,***者能夠利用一些軟件設計上的缺陷,拿下ntp服務器並令與其同步的服務器執行某些消耗性的任務。因爲ntpdate採用的方式是跳變,跟隨它的服務器沒法知道是否發生了異常(時間不同的時候,惟一的辦法是以服務器爲準)。
第二,這樣作不精確。一旦ntp服務器宕機,跟隨它的服務器也就會沒法同步時間。與此不一樣,ntpd不只可以校準計算機的時間,並且可以校準計算機的時鐘。
第三,這樣作不夠優雅。因爲ntpdate是跳變,而不是使時間變快或變慢,依賴時序的程序會出錯。例如,若是ntpdate發現你的時間快了,則可能會經歷兩個相同的時刻,對某些應用而言,這是致命的。
許多應用程序依賴連續的時鐘,取得的時間是線性的。例如數據庫事務,一般會地依賴這樣的事實:時間不會往回跳躍。
咱們能夠想象如下,假如Oracle服務器的時間是01:00 AM,標準時間是00:30 AM,很明顯Oracle服務器通過他本身的時間00:40 AM。倘若此時直接使用ntpdate將服務器與標準時間同步,那麼意味着Oracle服務器將在同一天通過兩個00:40 AM,這對於某些計劃任務來講多是致命的。
於是,惟一一個能夠令時間發生跳變的點,是計算機剛剛啓動,但尚未啓動不少服務的那個時候。其他的時候,理想的作法是使用ntpd來校準時鐘,而不是調整計算機時鐘上的時間
#######################################################
按照上面的說法,那咱們就能夠改變客戶端的配置取消ntpdate 的計劃任務同步時間
將全部客戶端配置成時間服務器,只是配置文件中的 :
外網時間服務器定義指向與外網同步的時間服務器便可
server 192.168.100.5