系统可靠性的技术设计
系統故障模型
邏輯級的故障模型,數據結構級的故障,軟件故障和軟件差錯,系統級的故障
可靠性技術設計
防錯技術
(1)降低復雜度設計
保證實現軟件功能的基礎上,簡化軟件結構
(2)冗余設計
(3)日志定期定量清理
(4)備份恢復設計
(5)日志云端保存
(6)監控報警
查錯技術
采用“查出故障,停止軟件運行,報警”的實現方式,根據故障的不同情況,采用不停止或部分停止軟件系統運行。
檢錯技術實現的代價低于容錯技術,但缺點是不能自動解決故障,需要人工干預。一般公司都會把差錯和容錯一起進行。
實現方式
判斷返回結果;計算運行時間;自檢法(置狀態標志位)
處理方式
(1)僅發送日志
(2)發送日志和告警,停止運行,需人工干預
(3)發送日志和告警,自動恢復到某一狀態,繼續運行,不需人工干預
容錯技術
處理故障的步驟:故障檢測,故障屏蔽,故障限制,復執,故障診斷,系統重配置,系統恢復,系統重新啟動,修復,系統重組合
前向恢復:使當前的計算繼續下去,把系統恢復成連貫的繼續狀態,彌補當前狀態的不連貫情況。將對一些變量的狀態進行修改和處理,且這個恢復過程將由程序設計者設計,適用于可預見的易定義的錯誤。
后向恢復:系統恢復到前一個正確狀態,繼續執行。簡單的把變量恢復到檢查點的取值,適用于可屏蔽的不可預見的錯誤。
1.結構冗余
(1)靜態冗余
N版本程序設計 - 通過設計出多個模塊或不同版本,對于相同初始條件和相同輸入的操作結果進行多數表決。
其中N版本的程序由不同的人獨立設計,使用不同的方法,設計語言,開發環境和工具來實現。
(2)動態冗余 (主動冗余)
恢復快設計方法 - 選擇一組操作作為容錯設計單元,從而把普通的程序塊變為恢復塊。一個恢復塊包含若干功能相同,設計差異的程序塊,每一時刻有一個程序塊處于運行狀態,一旦某程序塊出現故障,則用備份程序塊予以替換。
設計時應保證主備間的獨立性,避免相關錯誤的產生,使主備間的共性錯誤降到最低
按照備用模塊在待機時是否與主模塊一起工作分為熱備份系統(雙重系統),冷備份系統(雙工系統,雙份系統)。
2.冗余設計
采用多種不同路徑,不同算法,不同實現方法的模塊或系統作為備份,在出現故障時進行替換,維持系統的正常運行。
3.防衛式程序設計
通過程序中包含錯誤檢查代碼和錯誤恢復代碼,使得一旦錯誤發生,程序能撤銷錯誤狀態,恢復到一個已知的正確狀態中去。
4. 雙機容錯
雙機熱備模式:主系統,備系統
雙機互備模式:同時提供不同的服務,主故障,則接管
雙機雙工模式:同時提供相同的服務,集群的一種
5. 信息冗余 (校驗碼)
6. 時間冗余 (重復多次相同的計算)
總結
以上是生活随笔為你收集整理的系统可靠性的技术设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Angular应用页面里appId的生成
- 下一篇: Angular数据绑定的学习笔记