新四季網

軟體架構的可靠性設計

2023-07-04 14:23:43

    在網絡設備軟體功能越來越複雜的今天,軟體架構的可靠性佔有非常重要的地位。沒有一個可靠的軟體架構,設備的可靠性將無從談起。本文以H3CComware V7軟體平臺為例,介紹其採用的軟體架構可靠性設計方法。

    故障隔離和自愈

    軟體和Bug是一對伴生的兄弟。在一個龐大的軟體系統中,即使是經驗再豐富的程式設計師也無法保證沒有任何Bug。硬體設備工作再穩定,如果不幸遇到軟體Bug,也會引起異常,設備將無法正常工作。因此,故障隔離和自愈是軟體設計中必須要考慮的問題。

    故障隔離

    故障隔離指在軟體發生故障的時候,把故障造成的危害限制在最小範圍內。為了達到此目標,Comware V7系統採用了Linux作業系統架構,絕大部分程序都是用戶態程序。在Linux系統中,每個用戶態程序擁有獨立的進程空間,這樣,一旦某個程序崩潰,並不會對其他的程序產生影響。我們稱這種進程空間獨立的架構設計為真正的模塊化設計。

    舉例來說,路由協議中,OSPF是一個獨立的用戶態程序,IS-IS也是一個獨立的用戶態程序。運行期間,在某個極其特殊的情況下,OSPF走入某個代碼異常分支處理流程,而在這裡有一個Bug,運行到這就會引起整個OSPF進程崩潰。但IS-IS作為一個獨立的路由協議,擁有獨立的進程空間,它的運行不受任何影響,還可以正常運行。

    故障自愈

    故障自愈是讓系統從故障中恢復到正常的工作狀態。想要做到自愈,首先要發現錯誤。Comware V7系統有一套完整的進程運行狀態監控機制,可以及時發現某個用戶態程序「異常」。其基本工作原理如下

    1. 所有的用戶態程序都是系統初始化進程SCM(Service Control Manager)的子進程,SCM可以感知所有子進程的狀態,一旦發現某個用戶態程序崩潰,會主動回收它的資源,然後重新啟動一個相同的用戶態程序,接替崩潰的程序繼續工作。

    2. 有時一個用戶態程序出了問題,無法正常工作,但還沒有達到崩潰的地步,這時Comware系統中另外一套主動檢測機制則起作用,過程如圖1所示。
 


圖1 進程故障發現與自愈過程

    這個特殊的監控程序——Monitor,會周期性的檢查各個用戶態程序,主動向其他的用戶態程序發送查詢消息。其他的用戶態程序在收到Monitor發來的這個消息後,會進行自檢,並將自身的情況回應給Monitor,Monitor根據回復的消息得知某個用戶態程序異常。在更為嚴重的異常情況下,用戶態程序無法處理Monitor發來的消息,無法應答,Monitor在一段時間內沒有收到應答,則判斷這個用戶態程序「異常」。

    一旦監控進程發現某個用戶態程序異常,就會通知SCM,SCM重複步驟一:回收它的資源,然後重新啟動一個相同的用戶態程序,接替崩潰的程序繼續工作。

    以上是對故障隔離與自愈機制的簡單描述,Comware V7實際的工作方式要複雜的多。因為作為一個通信系統,各個獨立的用戶態程序之間並不是真正完全「孤立」的,它們之間會進行各種通信,協作完成網絡設備的各種功能。所以,想要讓重新運行的用戶態程序真正的正常工作,還需要記錄大量的程序正常工作時的狀態信息,以便在重啟以後,使其恢復到故障之前的正常狀態。

    同時,Comware V7擁有EEM(Embedded Event Manager)系統,系統管理員可以編寫腳本,在異常發生時通過EEM觸發這個腳本。這樣,除上述所提到的中止異常程序重新運行的動作外,還能夠按照腳本做更為複雜的動作,進行異常的遠程上報、進一步的異常診斷分析,或者其他任何可以通過腳本觸發的動作。這樣,軟體系統的可維護性也大大提升。

    進程級備份
   
    故障隔離與自愈功能,僅僅是單硬體系統上的行為。單硬體系統是指只有一個硬體主板的集中式系統(大部分盒式產品都屬於這種情況),或者是分布式設備上的IO板,沒有另外一塊單板作為備份(如分布式設備的大部分接口板、業務板)。

    在硬體有冗餘備份的情況下,則需要進程級備份功能,也稱為進程級HA。所謂進程級備份,是相對於單板級HA而言的,主要是指參與備份和倒換的實體不再是整個單板,而是單板上的一個個用戶態進程。具體過程如圖2所示。


圖2 進程級HA倒換過程示意

    在主板Master和備板Slave上都有相同的用戶態程序OSPF在運行,一個工作在「主」狀態,一個工作在「備」狀態。初始化時,OSPF的「主」進程運行在Master Board上,「備」進程運行在Slave Board上。一旦「主」狀態的程序異常,Master Board上的Monitor發現以後,就會通知本板的HA,同時也通知本板SCM。SCM關閉本端的異常程序,再重新啟動,並使其工作在「備」狀態;而HA接到通知後,就會通知Slave Board上的HA,Slave Board上的HA在通知本板的OSPF進程由「備」升級為「主」。

    可見,進程級HA是在自愈機制的基礎上,增加了進程級的主備倒換。那麼它能帶來哪些額外的好處呢?

    自愈過程中,系統會中止「舊」程序、重啟「新」程序,而新程序從啟動到正常工作需要一段時間,在某些情況下可能會很長。在這段時間內,由於程序還不能夠正常工作,無法完成同外界設備的交互,會引起網絡上的振蕩,造成流量中斷。而進程級HA,工作在「備」狀態的程序「時刻準備著」接替「主」用程序,一旦發現異常,立即切換工作狀態,可以大大縮短切換時間,讓外界幾乎感覺不到設備曾經「切換過」。

    進程級HA的另一個特點是可以通過人為控制,讓一部分程序的「主」進程工作在Master Board上,另一部分程序的「主」進程工作在Slave Board上,這樣就可以達到負載分擔的效果,避免所有的「主」進程都工作在Master上,減輕Master的壓力。

    當然,進程級HA需要硬體支持冗餘備份,因此適用於堆疊產品,或者分布式產品的主控板,分布式產品的接口板或其他集中式產品都不具備這樣的硬體條件,因此還要依靠自愈來提升可靠性。

    上述兩種設計方法配合使用,極大的提升了Comware V7系統的可靠性,並使得Comware V7系統的可靠性設計變得非常富有「彈性」,可以適應各種不同產品形態的需要。

    結束語

    本文介紹了比較直接的提升軟體可靠性的機制和方法。實際上,在軟體整體架構中,還有其他的提升可靠性的設計原則和方法,目標是設計出真正的高內聚低耦合的軟體系統,減少在維護和功能擴展過程中,軟體開發人員「犯錯誤」的機會。總之,良好的軟體架構是軟體可靠性的基礎,是設備可靠性的最重要的保障。


    Comware V7是H3C下一代的網絡產品軟體平臺。Comware V7系統構建在Linux體系架構之上,對其中網絡協議、通訊接口、分布式和高可靠性的方面進行了徹底的改造和擴展,以適應網絡設備的需要。ComwareV7的絕大部分程序都運行在用戶態,是真正的模塊化系統,最大程度的提升了軟體系統整體的可靠性。同時,它支持多線程並發和搶佔,支持SMP對稱多處理,支持64位CPU,支持設備虛擬化,支持進程級備份以及完整的ISSU。

同类文章

搜狗團購導航 情人節電影攻略

    作為熱門電影檔期,今年情人節檔期依舊延續春節檔火熱氣勢。搜狗團購導航精心為用戶整理2014年情人節上映電影,為大家提供特別準備的情人節電影攻略。   由同名熱播電視劇升級而成的《北京愛情故事》;陳坤、劉嘉玲組成影帝影后陣容的《過界男女》;情人節唯一3D愛情片《江南愛情故事》;「型男組合」杜淳

思科發布2014財年第二季度業績報告

    ·第二季度銷售額:112億美元(與上財年同期相比降低8%)   ·第二季度每股收益:根據GAAP計算為0.27美元;非GAAP每股收益為0.47美元  CTI論壇(ctiforum)2月13日消息(記者 李文杰):全球領先的致力於改進人們聯絡、溝通和協作方式的網絡解決方案提供商思科公司今天發

情人節臨近 1號店巧克力等商品銷量激增

    2月14日情人節馬上就要到了,鮮花、巧克力等應景商品走俏市場,商家們也看準時機,各種促銷精彩紛呈。1號店相關負責人透露,目前1號店最熱銷的情人節產品是巧克力,從10號以來,巧克力的銷量就不斷攀升,「兩種商品的單日銷售額可以達到日常的4倍左右,並且還有上升的趨勢」。     據悉,1號店從2月

當"湯圓"邂逅"玫瑰"樂語通訊邀您盡享雙重約"惠"

    馬年春節在一片「馬上發紅包,馬上有禮錢」的呼聲中熱熱鬧鬧地走到了尾聲。元宵節作為最後的重頭戲,歡樂不減更增妙趣——因為今年元宵節甜蜜偶遇情人節,上演了「湯圓」邂逅「玫瑰」的浪漫一幕。雙節當天,國內領先的電信零售服務企業樂語通訊特意奉上雙重約惠,為消費者傾情打造一份專屬的浪漫。  2月14日,

全品類讓利助陣 1號店火爆開年送好運

    新年新氣象,開年迎好運。2月11日,1號店推出「今年你要火」開年大促,活動期間,除了豐富多彩的促銷活動,1號店還為消費者準備了面值從15—50元不等的抵用券,所有登陸1號店的消費都可以參與抽獎,賺好運。   據悉,1號店「今年你要火」將從2月11日持續到16日。1號店特意為活動挑選了數百款熱

做男神還是做孝子? 1號店214消費支招

    泡泡網資訊頻道2月10日 再過一周,就是2月14日情人節了,正好今年元宵也在這一天。許多人開始好奇,當元宵節擁抱情人節,當溫馨親情遇上浪漫愛情,情侶們會做出哪種選擇:是回家陪伴老人吃元宵,做個孝子呢?還是與愛人相約,度過一個浪漫夜晚?還在犯愁的消費者不如上1號店看看。「雙節」將至,1號店推出

1號店"以舊換新"再升級筆記本平板電腦納入回收範圍

    近日,一項關於「我們淘汰的手機去哪了」的公益調查顯示,70%的網友都把自己淘汰的手機、舊電腦給了父母。春節期間,更是有不少網友在回家過年期間將舊手機送給父母視為貼心之舉。這一話題在網絡上迅速引發熱議,不少人認為舊手機存在安全、健康隱患,雖說棄之可惜,但用「以舊換新」的方式換購一臺新的智能機給

春晚打造"舌頭"新搭檔 地板劇側躺劇掀新潮

    隨著農曆新年假期的結束,馬年春節漸行漸遠,但人們對於春晚的討論依舊不絕於耳。在今年馬年春晚的舞臺上,一對新搭檔吸引了大眾的關注,就是堪稱「毒舌王后」的蔡明與「中國好舌頭」華少,二人的「唇槍舌戰」讓小品《擾民了您》受到觀眾們的一致好評,成為新一年極具潛力的一對歡喜搭檔。   不過,兩大「舌頭」

帝度隨雪龍號共度世界最南端春節

   隨著春節長假結束,各行業工作者經過與親朋好友相聚的短暫休憩,紛紛返回工作崗位,以積極心態應對新一年的工作。而在地球最南端的南極,帝度冰箱與搭乘「雪龍」號的中國第30次南極科學考察隊,分別在中山站、長城站、泰山站,以及「雪龍」號破冰船上度過了整個春節。雖然春節期間無法與親人相聚,但科考隊員們仍然
「不限量」流量只是幌子 流量卡到底哪家最划算?

「不限量」流量只是幌子 流量卡到底哪家最划算?

      為了能使用到更為實惠的移動流量,相信不少人都會有購買流量卡的打算,而如果是流量需求比較大的用戶,則還有不限量流量套餐和日租卡可以選擇。筆者最近正好也有辦流量卡的需求,於是便研究了下目前主要的幾家流量卡、日租卡和不限量流量套餐,一起來看看那家的流量服務最適合你吧!1、米粉卡      小米