Linux系統下oprocd和hangcheck-timer的作用

聽海★藍心夢發表於2013-12-30

一、hangcheck-timer

從oracle9.2.0.2.0開始到最近的11.1,Oracle,在linux下建立RAC時推薦使用一個I/O fencing模組,叫做hangcheck-timer,此模組作用是用來監測節點Linux kernel是否hang住,如果長時間hang住的話Oracle認為對RAC節點穩定性存在影響,就會重啟此節點. 此模組有三個引數hangcheck_tick和hangcheck_margin、hangcheck_reboot,如果kernel在hangcheck-tick和hangcheck-margin時間總和內無響應的話,hangcheck-timer根據hangcheck_reboot的值確定是否重啟系統.hangcheck_reboot大於等於1,重啟;0,不重啟。在2.6的核心中,預設值是0。那麼"Hangcheck: hangcheck value past margin!"告警資訊,表示由於hangcheck-reboot值為1。系統應該重啟但沒有重啟。

二、oprocd

linux平臺上的Oracle Clusterware 10.2.0.4和以後版本引入了一個新的Oracle Clusterware Process Monitor Daemon (OPROCD)程式來監控系統狀態和叢集中的每個節點的健康狀態,就象已經在不使用第三方的cluster軟體的UNIX系統中提供的那樣,下面來看看OPROCD到底是何方神聖。

OPROCD在linux平臺上的10.2.0.4版本中和hangcheck-timer一起執行,它和hangcheck-timer模組沒有聯絡和依賴關係,它由init.ccsd程式產生出來並用root使用者執行。OPROCD程式被鎖定在記憶體中來監控叢集中的每個它自己執行的節點,來檢測機器上的硬體或者驅動的freezes,並且提供I/O的fencing功能(這和SCSI提供的中斷的fencing功能不同)。如果一個機器被凍結了足夠長的時間後,它被會叢集驅逐出節點,它自己需要強制重啟自己來阻止叢集從失敗的節點上的鎖資源被重新組織後,失敗的節點仍然訪問共享的資料檔案上的有疑問的I/O操作。為了提供這樣的功能,OPROCD執行檢查,然後停止執行(休眠),然後如果在期望的時間內不能被喚醒,OPROCD將重啟本機的節點。

注意:OPROCD在第三方實現的叢集環境中是不存在的,因為在LINUX平臺下沒有透過驗證的第三方的叢集解決方案,所以linux平臺下的0.2.0.4版本中OPROCD將總是會存在的。

OPROCD啟動的時候有兩個引數:
-t : 超時時間,預設1000,單位毫秒 (OPROCD_DEFAULT_TIMEOUT=1000) 
-m : 重啟前可接受的延遲,單位毫秒,預設500 (OPROCD_DEFAULT_MARGIN=500)

推薦設定DIAGWAIT為13來增加重啟前可接受的時間來把更多的日誌資訊寫入磁碟。
預設的話,-m的間隔為500: 
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 500 -f

設定了DIAGWAIT為13會預設增加-m的時間,下面顯示設定DIAGWAIT為13後,-m引數值為10000
$ ps -efl | grep oprocd
0 S root 6444 3080 0 78 0 - 636 - Apr15 ? 00:00:00 /bin/sh /etc/init.d/init.cssd oprocd
4 S root 7255 6444 0 -40 - - 516 - Apr15 ? 00:00:00 /u01/app/crs11g/bin/oprocd run -t 1000 -m 10000 -f

三、兩者之間的聯絡

OPROCD和hangcheck-timer在linux平臺下是同時執行並提供不同的檢測機制的,當他們導致節點重啟的話,在系統日誌中記錄的資訊是不同的:
oprocd導致的重啟會記錄"SysRq: resetting"
Hangcheck-timer導致的重啟會記錄"Hangcheck: hangcheck is restarting the machine"

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

相關文章