自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件架構(gòu)的可靠性設(shè)計

企業(yè)動態(tài)
在網(wǎng)絡(luò)設(shè)備軟件功能越來越復(fù)雜的今天,軟件架構(gòu)的可靠性占有非常重要的地位。

在網(wǎng)絡(luò)設(shè)備軟件功能越來越復(fù)雜的今天,軟件架構(gòu)的可靠性占有非常重要的地位。沒有一個可靠的軟件架構(gòu),設(shè)備的可靠性將無從談起。本文以H3CComware V7軟件平臺為例,介紹其采用的軟件架構(gòu)可靠性設(shè)計方法。

故障隔離和自愈

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

故障隔離

故障隔離指在軟件發(fā)生故障的時候,把故障造成的危害限制在最小范圍內(nèi)。為了達(dá)到此目標(biāo),Comware V7系統(tǒng)采用了Linux操作系統(tǒng)架構(gòu),絕大部分程序都是用戶態(tài)程序。在Linux系統(tǒng)中,每個用戶態(tài)程序擁有獨立的進(jìn)程空間,這樣,一旦某個程序崩潰,并不會對其他的程序產(chǎn)生影響。我們稱這種進(jìn)程空間獨立的架構(gòu)設(shè)計為真正的模塊化設(shè)計。

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

故障自愈

故障自愈是讓系統(tǒng)從故障中恢復(fù)到正常的工作狀態(tài)。想要做到自愈,首先要發(fā)現(xiàn)錯誤。Comware V7系統(tǒng)有一套完整的進(jìn)程運行狀態(tài)監(jiān)控機(jī)制,可以及時發(fā)現(xiàn)某個用戶態(tài)程序"異常"。其基本工作原理如下

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

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

圖1 進(jìn)程故障發(fā)現(xiàn)與自愈過程

圖1 進(jìn)程故障發(fā)現(xiàn)與自愈過程

這個特殊的監(jiān)控程序--Monitor,會周期性的檢查各個用戶態(tài)程序,主動向其他的用戶態(tài)程序發(fā)送查詢消息。其他的用戶態(tài)程序在收到Monitor發(fā)來的這個消息后,會進(jìn)行自檢,并將自身的情況回應(yīng)給Monitor,Monitor根據(jù)回復(fù)的消息得知某個用戶態(tài)程序異常。在更為嚴(yán)重的異常情況下,用戶態(tài)程序無法處理Monitor發(fā)來的消息,無法應(yīng)答,Monitor在一段時間內(nèi)沒有收到應(yīng)答,則判斷這個用戶態(tài)程序"異常"。

一旦監(jiān)控進(jìn)程發(fā)現(xiàn)某個用戶態(tài)程序異常,就會通知SCM,SCM重復(fù)步驟一:回收它的資源,然后重新啟動一個相同的用戶態(tài)程序,接替崩潰的程序繼續(xù)工作。

以上是對故障隔離與自愈機(jī)制的簡單描述,Comware V7實際的工作方式要復(fù)雜的多。因為作為一個通信系統(tǒng),各個獨立的用戶態(tài)程序之間并不是真正完全"孤立"的,它們之間會進(jìn)行各種通信,協(xié)作完成網(wǎng)絡(luò)設(shè)備的各種功能。所以,想要讓重新運行的用戶態(tài)程序真正的正常工作,還需要記錄大量的程序正常工作時的狀態(tài)信息,以便在重啟以后,使其恢復(fù)到故障之前的正常狀態(tài)。

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

進(jìn)程級備份

故障隔離與自愈功能,僅僅是單硬件系統(tǒng)上的行為。單硬件系統(tǒng)是指只有一個硬件主板的集中式系統(tǒng)(大部分盒式產(chǎn)品都屬于這種情況),或者是分布式設(shè)備上的IO板,沒有另外一塊單板作為備份(如分布式設(shè)備的大部分接口板、業(yè)務(wù)板)。

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

圖2 進(jìn)程級HA倒換過程示意

圖2 進(jìn)程級HA倒換過程示意

在主板Master和備板Slave上都有相同的用戶態(tài)程序OSPF在運行,一個工作在"主"狀態(tài),一個工作在"備"狀態(tài)。初始化時,OSPF的"主"進(jìn)程運行在Master Board上,"備"進(jìn)程運行在Slave Board上。一旦"主"狀態(tài)的程序異常,Master Board上的Monitor發(fā)現(xiàn)以后,就會通知本板的HA,同時也通知本板SCM。SCM關(guān)閉本端的異常程序,再重新啟動,并使其工作在"備"狀態(tài);而HA接到通知后,就會通知Slave Board上的HA,Slave Board上的HA在通知本板的OSPF進(jìn)程由"備"升級為"主"。

可見,進(jìn)程級HA是在自愈機(jī)制的基礎(chǔ)上,增加了進(jìn)程級的主備倒換。那么它能帶來哪些額外的好處呢?

自愈過程中,系統(tǒng)會中止"舊"程序、重啟"新"程序,而新程序從啟動到正常工作需要一段時間,在某些情況下可能會很長。在這段時間內(nèi),由于程序還不能夠正常工作,無法完成同外界設(shè)備的交互,會引起網(wǎng)絡(luò)上的振蕩,造成流量中斷。而進(jìn)程級HA,工作在"備"狀態(tài)的程序"時刻準(zhǔn)備著"接替"主"用程序,一旦發(fā)現(xiàn)異常,立即切換工作狀態(tài),可以大大縮短切換時間,讓外界幾乎感覺不到設(shè)備曾經(jīng)"切換過"。

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

當(dāng)然,進(jìn)程級HA需要硬件支持冗余備份,因此適用于堆疊產(chǎn)品,或者分布式產(chǎn)品的主控板,分布式產(chǎn)品的接口板或其他集中式產(chǎn)品都不具備這樣的硬件條件,因此還要依靠自愈來提升可靠性。

上述兩種設(shè)計方法配合使用,極大的提升了Comware V7系統(tǒng)的可靠性,并使得Comware V7系統(tǒng)的可靠性設(shè)計變得非常富有"彈性",可以適應(yīng)各種不同產(chǎn)品形態(tài)的需要。

結(jié)束語

本文介紹了比較直接的提升軟件可靠性的機(jī)制和方法。實際上,在軟件整體架構(gòu)中,還有其他的提升可靠性的設(shè)計原則和方法,目標(biāo)是設(shè)計出真正的高內(nèi)聚低耦合的軟件系統(tǒng),減少在維護(hù)和功能擴(kuò)展過程中,軟件開發(fā)人員"犯錯誤"的機(jī)會??傊?,良好的軟件架構(gòu)是軟件可靠性的基礎(chǔ),是設(shè)備可靠性的最重要的保障。

Comware V7是H3C下一代的網(wǎng)絡(luò)產(chǎn)品軟件平臺。Comware V7系統(tǒng)構(gòu)建在Linux體系架構(gòu)之上,對其中網(wǎng)絡(luò)協(xié)議、通訊接口、分布式和高可靠性的方面進(jìn)行了徹底的改造和擴(kuò)展,以適應(yīng)網(wǎng)絡(luò)設(shè)備的需要。ComwareV7的絕大部分程序都運行在用戶態(tài),是真正的模塊化系統(tǒng),***程度的提升了軟件系統(tǒng)整體的可靠性。同時,它支持多線程并發(fā)和搶占,支持SMP對稱多處理,支持64位CPU,支持設(shè)備虛擬化,支持進(jìn)程級備份以及完整的ISSU。

責(zé)任編輯:佚名 來源: 51CTO.com
相關(guān)推薦

2010-12-28 20:16:24

2023-11-17 09:00:00

Kafka開發(fā)

2010-12-28 20:04:10

網(wǎng)絡(luò)的可靠性網(wǎng)絡(luò)解決方案可靠性

2010-12-28 19:50:21

可靠性產(chǎn)品可靠性

2010-12-28 20:14:53

2019-08-30 12:10:05

磁盤數(shù)據(jù)可靠性RAID

2020-12-06 14:51:23

物聯(lián)網(wǎng)可靠性IOT

2011-05-25 19:31:07

Stratus信息化

2024-03-13 13:09:14

性能智能座艙軟件

2013-11-04 17:05:37

銀行容錯

2011-05-04 19:17:36

VPLSVPN技術(shù)

2021-02-02 11:01:31

RocketMQ消息分布式

2024-02-28 10:26:04

物聯(lián)網(wǎng)數(shù)據(jù)存儲

2018-09-27 14:13:27

云服務(wù)可靠故障

2018-05-07 10:20:38

Kafka存儲機(jī)制

2009-04-08 10:23:00

軟交換網(wǎng)絡(luò)可靠

2012-06-28 10:00:07

硬件可靠性

2013-11-04 17:04:22

容錯可靠

2017-06-23 18:25:51

kafka數(shù)據(jù)可靠性

2024-05-09 08:04:23

RabbitMQ消息可靠性
點贊
收藏

51CTO技術(shù)棧公眾號