【QNX】高可用性框架HAM(1):引言

????????????????????????????????????????????第一章 引言

一:本章內(nèi)容

?????哪里出了問題?

?????HA的軟件基礎(chǔ)

二:問題在哪里?

????????理想的高可用性(HA)系統(tǒng)是一種持續(xù)運行的系統(tǒng),可以不間斷地運行一段不確定的時間。在實踐中,HA系統(tǒng)會爭取“5個9”的可用性,即系統(tǒng)在一年內(nèi)能夠維持的正常運行時間的百分比——99.999%的正常運行時間,相當于每年大約5分鐘的停機時間。

????????很明顯, 對于系統(tǒng)失敗是由于這樣或那樣的原因造成的,系統(tǒng)沒有按照用戶和設(shè)計者希望的那樣可用。在所有可能導(dǎo)致系統(tǒng)故障的原因中——斷電、部件故障、操作人員失誤、軟件故障等等——其中軟件故障占了絕大部分。

????????許多HA系統(tǒng)試圖解決系統(tǒng)故障的問題,是通過求助于硬件解決方案,例如:

? ? (1)加固硬件

????(2)冗余系統(tǒng)/組件

? ? (3)熱交換CompactPCI組件

? ? (4)聚類

????????但是,如果這些系統(tǒng)崩潰是由軟件故障引起的,那么在這個問題上即使投入再多的硬件可能也解決不了問題。如果在恢復(fù)系統(tǒng)之后,系統(tǒng)內(nèi)存的狀態(tài)沒有得到正確地恢復(fù),那么該怎么辦? 如果您的系統(tǒng)是一個HA系統(tǒng)(例如,一個消費設(shè)備),而冗余硬件根本不是一個選項,又該怎么辦? 亦或者,如果您的特定HA系統(tǒng)基于自定義機箱,而基于PCI的HA“解決方案”對這種機箱毫無意義,又該怎么辦?

三:HA的軟件基礎(chǔ)

????????大多數(shù)系統(tǒng)設(shè)計人員不會考慮使用“標準”桌面PC作為有效HA系統(tǒng)的基礎(chǔ)。除了由硬件本身引起的可靠性問題外,底層軟件并不適合連續(xù)操作。當桌面操作系統(tǒng)和應(yīng)用程序需要修補或升級時,大多數(shù)用戶都希望重新啟動他們的計算機。不幸的是,作為日常操作的一部分,他們可能已經(jīng)習(xí)慣于重新啟動!

????????但是在HA系統(tǒng)中,可能需要在活動系統(tǒng)上升級各種軟件組件。各個模塊應(yīng)該便于分析和修復(fù),同時不影響系統(tǒng)本身的可用性。

????????我們認為,有效的HA系統(tǒng)必須通過模塊化的系統(tǒng)設(shè)計和實現(xiàn)方法來解決主要問題——軟件故障。基于微內(nèi)核架構(gòu),QNX RTOS不僅有助于隔離整個系統(tǒng)中的問題區(qū)域,而且還確保了系統(tǒng)組件的完全獨立性。每個組件都享有完整的基于MMU的內(nèi)存保護。系統(tǒng)級模塊(如設(shè)備驅(qū)動程序)可以從與任何其他進程相同的隔離和保護中獲益。您可以啟動和停止驅(qū)動程序、網(wǎng)絡(luò)協(xié)議、文件系統(tǒng)等,而不需要觸及內(nèi)核。微內(nèi)核RTOS從本質(zhì)上保持單點故障(SPOF)數(shù)量盡可能低。

????????QNX高可用性框架為構(gòu)建高效的HA系統(tǒng)提供了可靠的軟件基礎(chǔ)設(shè)施。除了支持面向硬件的HA解決方案(例如CompactPCI和自定義硬件)之外,您還擁有在整個系統(tǒng)中出現(xiàn)軟件故障之前隔離甚至修復(fù)軟件故障的工具。

????????例如,假設(shè)一個設(shè)備驅(qū)動程序因為試圖寫入分配給另一個進程的內(nèi)存而崩潰。MMU將向QNX微核發(fā)出警報,后者將向高可用性管理器(HAM)發(fā)出警報。然后,HAM可以重新啟動驅(qū)動程序。此外,還可以生成轉(zhuǎn)儲文件進行事后分析。

????????查看這個轉(zhuǎn)儲文件,您可以立即確定哪行代碼是罪魁禍首,然后準備一個修復(fù)程序,您可以在該字段中的所有其他單元遇到相同的錯誤之前將其下載。使用傳統(tǒng)的操作系統(tǒng),一個流氓驅(qū)動程序可能會運行幾天,然后系統(tǒng)變得腐敗到足以失敗----然后再確定問題就太晚了,更不用說動態(tài)安裝升級的驅(qū)動程序了! ? ?

????????HAM可以執(zhí)行多級恢復(fù),按一定的順序執(zhí)行多個操作。當序列中的各種操作之間存在嚴格的依賴關(guān)系時,這種技術(shù)是有用的,這樣系統(tǒng)就可以將自己恢復(fù)到故障前的狀態(tài)。

????????配備了QNX Neutrino RTOS本身以及高可用性框架中的特殊工具和API,您就能夠預(yù)測可能發(fā)生的各種問題,隔離它們,然后相應(yīng)地進行計劃。換句話說,假設(shè)故障會發(fā)生,您現(xiàn)在就可以針對它進行設(shè)計,并構(gòu)建能夠智能恢復(fù)的系統(tǒng)。


【翻譯自:QNX官方英文文檔 http://www.qnx.com/developers/docs/7.0.0/#com.qnx.doc.ham/topic/about.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容