Linux NTP configure and Hangcheck-time

ygzhou518發表於2011-12-09
RAC01 10.202.73.1 RAC02 10.202.73.2

所有節點的時間必須同步,這通常是通過配置NTP伺服器實現的。如果使用者的網路中已經有一臺時間伺服器,那麼可以所有節點都指向它,否則可以從叢集中挑選一個節點作為時間伺服器,讓其他節點與它同步。

下面分別演示這兩種方法:

1、如果公司網路中已經有一臺時間伺服器,如:192.168.0.1是一臺ntp時間伺服器

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

說明:
127.127.1.0 : 該IP為NTP定義的server自己的IP
prefer :這個參數列示該server是master server
fudge:這個參數列示該IP為NTPserver, 
stratum:表示該系統所在的NTP層級.


    此時NTP伺服器的配置檔案是/etc/ntp.conf,在每個節點編輯這個檔案。

[root@RAC01]# vi /etc/ntp.conf
編輯後的內容如下,首選公司的時間伺服器。
server 192.168.0.1 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

[root@RAC02]# vi /etc/ntp.conf
編輯後的內容如下,首選公司的時間伺服器。
server 192.168.0.1 prefer
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

2、如果沒有外部時間伺服器
     這時公司選擇叢集中某個節點作為時間伺服器,NTP服務只需要很少的系統資源。假設選擇主節點作為時間伺服器(RAC01)從節點(RAC02)向它同步,其配置方法如下。
編輯主節點的/etc/ntp.conf檔案,編輯後的內容如下:

[root@RAC01]# vi /etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 11
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

編輯從節點的/etc/ntp.conf檔案,編輯後的內容如下:

[root@RAC02]# vi /etc/ntp.conf
編輯後的內容如下,首選公司的時間伺服器。
server 10.202.73.1 prefer           #注意10.202.73.1為主節點的IP地址
driftfile /var/lib/ntp/drift
broadcastdelay 0.008

配置完成後,啟動NTP服務。
[root@RAC01]# /etc/init.d/ntpd start
[root@RAC01]# chkconfig –level 345 ntpd on

3、檢視執行情況(主從)
[root@cc-svr-a ~]# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*CC-Node-02 LOCAL(0) 12 u 58 64 17 0.226 -22.698 29.261

4、編輯指令碼自動同步時間

[root@RAC01]chkconfig ntpd on

[root@RAC02]crontab -e

* 12 *** /user/sbin/ntpdate 10.202.73.1 >> /root/ntpdate.exe

【注意】啟用同步ntp; client端的ntpd 服務需stop;

[root@RAC02]#/usr/sbin/ntpdate 10.202.73.1
 8 Dec 23:36:25 ntpdate[7645]: the NTP socket is in use, exiting

[root@RAC02]# service ntpd stop
Shutting down ntpd:                                        [  OK  ]

[root@RAC02]# /usr/sbin/ntpdate 10.202.73.1
 9 Dec 11:48:20 ntpdate[7662]: step time server 10.202.73.1 offset 43900.766507 sec

5、配置hangcheck-timer模組

 

     9.2以前使用一個名為watchdogd的使用者空間監視後臺程式來監視叢集的狀態情況,並在出現故障時重新啟動RAC節點。從Oracle9.2.0.2開始,此監視後臺程式已被名hangcheck-timer的模組所代替,該模組可以更好地解決可用性和可靠性問題。hang-check計時器被載入到Linux核心中並檢查系統是否掛起。它將設定一個計時器,並在特定的時間量之後檢查該計時器。有一個用於檢查掛起情況的可配置閾值,如果超過該閾值,計算機將重新啟動。儘管Oracle CRS並不需要hangcheck-timer模組,但Oracle強烈建議使用它。

     hangcheck-timer模組使用了一個基於核心的計時器,該計時器週期性地檢查系統任務排程程式,以捕獲延遲,從而確定系統的執行狀況。如果系統掛起或暫停,則計時器重置該節點。hangcheck-timer模組使用時間戳計數器(TSC) CPU暫存器,該暫存器在每個時鐘訊號處遞增。由於此暫存器由硬體自動更新,因此TCS提供了更精確的時間度量。

兩個引數,即hangcheck_tick(定義系統檢查頻率,預設60s,oracle建議30s)和hangcheck_margin(定義在重置RAC節點前的最大掛起延時,預設180s,oracle建議180s)來確定節點是否出現故障。hangcheck-timer模組會根據hangcheck_tick的設定,定時檢查核心。只要響應時間小於hangcheck_tick+hangcheck_margin,都會認為核心執行正常。否則,就意味著執行異常,模組會自動重啟系統。

 

【注意】:crs的引數MissCount必須大於hangcheck_tick+hangcheck_margin的和(需考證)

miscount的值用crsctl get css misscount查詢,10gR2 linux平臺,預設60s

 

設定hangcheck核心模組引數:

vi /etc/modprobe.conf

options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180

 

設定hangcheck核心模組開機載入

vi /etc/rc.d/rc.local

/sbin/modprobe hangcheck-timer

 

要立即載入模組,執行:

modprobe -v hangcheck-timer

 

檢查載入情況:

[root@RAC01]# lsmod | grep hangcheck_timer

hangcheck_timer        5593 0

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24867586/viewspace-713025/,如需轉載,請註明出處,否則將追究法律責任。

相關文章