專利背景
截至2012年5月,隨著計算機技術的快速發展,在航空、航天、軍事和工業控制等領域,以及一些有著“7×24”不間斷運營需求的關鍵領域,大量使用計算機作為系統控制設備。隨著工程系統的規模和複雜性日益增加,這類系統一旦發生不可信、不可靠問題就有可能造成人員和財產的巨大損失。例如,2011年伊朗不斷發生的核安全事故,以及美國無人機地面控制系統被惡意代碼入侵事件。
安全可信、持久可靠是用戶對計算機控制系統的要求。由於可信計算技術的引入,使得系統在可靠性方面的要求也變得更為迫切,尤其是對一些重要的存儲設備。為此,《一種可信冗餘容錯計算機系統》將可信計算技術與容錯技術相結合,可以在一定程式上提高複雜計算機控制系統的可靠性和安全性。
發明內容
專利目的
《一種可信冗餘容錯計算機系統》的目的在於提供一種可信冗餘容錯計算機系統,通過在每套子系統中加入TCM信任根模組,提供計算機的軟硬體保護功能,確保計算機的安全可信;通過冗餘熱備技術進行系統容錯,提高整機系統的任務可靠性。
技術方案
《一種可信冗餘容錯計算機系統》在每一套子系統的硬體平台中植入TCM模組構建信任根,並通過信任鏈機制從物理硬體底層開始將信任延伸到用戶套用層面,為用戶提供可信的執行環境保障;在計算機開機啟動時採用插卡開機方式建立系統開機前強制身份認證機制,以防止系統遭外人冒用;利用TCM提供的密碼服務功能,對處理和存儲的敏感數據加以硬體級的保護,防止惡意用戶對涉密數據的破壞和竊取。
在可靠性方面,通過在一個機箱中配置兩套可信計算機子系統組成熱備份系統,實現冗餘容錯。機箱中的兩套可信計算機子系統,組成A、B機系統,兩套系統之間具有心跳檢測和數據同步機制。平時只有一機線上參與業務,在一機故障時由另一機接替工作。由心跳伺服器負責發現故障並執行失效切換。失效切換後,服務和套用將在另一機繼續運行,應用程式可以根據資料庫中保存的檢查點信息恢復到最近的運行狀態。由失效切換模組完成接口電路切換。
附圖說明
圖1為《一種可信冗餘容錯計算機系統》的可信冗餘容錯計算機系統的連線示意圖;
圖2為《一種可信冗餘容錯計算機系統》的可信計算機主模組與TCM模組之間的適配圖;
圖3為《一種可信冗餘容錯計算機系統》的可信冗餘容錯計算機系統的工作原理圖;
圖4為《一種可信冗餘容錯計算機系統》的切換控制電路原理圖;
圖5為《一種可信冗餘容錯計算機系統》的可信冗餘容錯計算機系統的失效切換流程示意圖;
圖6為《一種可信冗餘容錯計算機系統》的失效切換模組工作原理圖。
技術領域
《一種可信冗餘容錯計算機系統》涉及一種高可信、高可靠計算機系統,屬於安全控制技術領域。
權利要求
1.一種可信冗餘容錯計算機,其特徵在於:它包括互為冗餘熱備份的兩套完全相同的計算機子系統、心跳伺服器、失效切換模組、可信密碼模組TCM;
所述可信密碼模組TCM植入每一套計算機子系統硬體平台中,通過信任鏈機制從計算機子系統物理硬體底層開始將信任延伸到用戶套用層面;通過建立插卡方式,建立系統開機前強制身份認證機制;通過可信密碼模組TCM提供的密碼服務功能,對處理和存儲的敏感數據加以硬體級的保護;通過SPI與FPGA連線,經FPGA轉換為LPC後,與BIOS、CPU連線,實現主動度量;通過PSRAM與FPGA連線,經FPGA轉換為PCI後,與CPU連線,CPU可通過PCI匯流排實現對可信密碼模組TCM的可信服務的訪問與調用;
所述可信密碼模組TCM啟動後,首先對BIOS進行度量,度量通過後,FPGA內部的LPC匯流排開關閉合,CPU讀取BIOS的啟動配置信息,系統正常啟動;
所述失效切換模組接收來自所述心跳伺服器的切換指令或外部開關信號,實現對兩套完全相同的計算機子系統的切換;當收到來自所述心跳伺服器的切換指令,所述失效切換模組發出使能控制信號,使處於連線狀態的切換電路處於懸空狀態或使處於懸空狀態的切換電路處於連線狀態;當收到來自切換開關的信號,所述失效切換模組發出使能控制信號,使當前處於連線狀態的切換電路處於懸空狀態或使當前處於懸空狀態的切換電路處於連線狀態,同時,所述失效切換模組向心跳伺服器發出切換通知訊息,由心跳伺服器完成上層套用和服務的切換;
所述兩套完全相同的計算機子系統之間通過資料庫鏡像引擎保證彼此之間能夠互相了解雙方的工作狀態,主控子系統周期性地將系統各種重要的硬體狀態數據和軟體運行數據寫入本地資料庫,資料庫鏡像引擎周期性地將數據同步到備份子系統中,備份子系統隨時通過訪問本地資料庫來獲得來自主控子系統的各種數據信息,以便在主控子系統故障時順利實現失效切換;
所述失效切換髮生後,服務和套用將在另一機繼續運行,應用程式可以根據資料庫中保存的檢查點信息恢復到最近的運行狀態。
實施方式
參看圖1,《一種可信冗餘容錯計算機系統》採用了雙冗餘/雙Active/高可用集群方式,採用CPCI架構,電源採用1+1冗餘模式。
參看圖2,在每套可信計算機子系統中,TCM與主機板BIOS、CPU之間通過擴展一個中等規模的FPGA,實現TCM、BIOS和處理器系統之間的匯流排接口轉換和匯流排開關控制。具體如下:
1)TCM通過SPI與FPGA連線,經FPGA轉換為LPC後,與BIOS、CPU連線,實現主動度量。
2)TCM自定義匯流排接口PSRAM通過FPGA轉換為PCI。CPU可以通過PCI匯流排實現對TCM的可信服務的訪問與調用。
3)CPU復位信號接入到FPGA,受TCM的控制。上電時TCM先啟動,並使CPU處於復位狀態。
4)BIOS通過LPC掛接到FPGA上,FPGA通過LPC與CPU雙向連線。FPGA內部的LPC匯流排開關將BIOS與CPU隔離。
5)TCM啟動後,首先對BIOS進行度量,度量通過後,FPGA內部的LPC匯流排開關閉合。CPU讀取BIOS的啟動配置信息,系統正常啟動。
可信計算機子系統A和可信計算機子系統B同時工作,但同時只有一個子系統參與業務運行。參與業務運行的子系統稱為主控子系統,另一套處於開機狀態但不運行業務的子系統稱為備份子系統。主、備子系統之間的切換可以通過外部切換開關進行手動觸發,或通過心跳技術在認為主控子系統運行異常之後自動觸發。
參看圖3,手動觸發方式為操作人員根據實際情況需要手動按動外部切換開關實現失效切換。當外部切換開關斷開時(默認狀態),繼電器控制端為低電平,繼電器將內部控制信號連線到GND端,此時切換控制信號輸出為低電平;當外部切換開關閉合時,繼電器控制端為高電平,繼電器將內部控制信號連線到+5伏,此時切換控制信號輸出為高電平。失效切換模組根據收到的外部切換控制信號對接口電路進行切換。
參看圖4,在每套可信計算機子系統中配置有心跳伺服器。心跳伺服器以系統級進程的形式運行在核心空間,實時探測本端套用和服務的運行狀態(工作態或僵死狀態),並偵聽對端子系統上心跳伺服器發出的心跳,同時向對端傳送已方的心跳。根據本端心跳和對端心跳的檢測結果,心跳伺服器可以對相關套用或服務進行喚醒或休眠處理。為了提高心跳路徑的可靠性,系統採用了網口UDP+COM口的雙重心跳檢測路徑。
進一步地,為了增加心跳檢測的準確率,避免因為網路擁塞或系統過忙導致的心跳逾時,引起系統無問題切換,心跳伺服器採用PUSH與PULL相結合的心跳檢測方式:通常情況下採用PUSH方式互相檢測心跳,當偵聽不到對端發出的心跳時則自動轉為PULL方式,通過主動詢問來對心跳做進一步的檢測。
為了保證在主控子系統出現故障時能夠由備份子系統順利接管控制權,子系統之間通過資料庫鏡像引擎保證彼此之間能夠互相了解雙方的工作狀態。主控子系統周期性地將系統各種重要的硬體狀態數據和軟體運行數據寫入本地資料庫,資料庫鏡像引擎周期性地將數據同步到備份子系統中,備份子系統可以隨時通過訪問本地資料庫來獲得來自主控子系統的各種數據信息,以便在主控子系統故障時順利實現失效切換。
主、備子系統在系統中的控制權是不對等的,主控子系統運行業務時,備份子系統不輸出控制,此時主控子系統能夠完全掌控系統運行。只有發生失效切換時,備份子系統才迅速利用已存儲的系統狀態數據進行現場恢復,接管系統的控制權,從而保障業務持續穩定運行。
參看圖5,在主控子系統故障時,心跳伺服器負責將主控子系統中正在運行的服務和套用恢復到備份子系統,恢復過程如下:
1)備份子系統根據故障前記錄的主控子系統中運行的服務的列表,在備份子系統中啟動或喚醒相應的服務,從而實現服務的順利恢復。
2)備份子系統根據故障前記錄的主控子系統中運行的套用的列表,在備份子系統中啟動或喚醒相應的套用。套用可以根據故障前資料庫中保存的檢查點信息恢復到最近的運行狀態。
3)失效切換模組負責將備份子系統與外部接口連線。
4)備份子系統成為主控子系統。
5)發生故障的子系統在故障被修復後,將作為備份子系統重新加入,執行備份機功能。
參看圖6,失效切換模組實現對可信計算機子系統A和子系統B對外接口的切換功能,主要由控制模組、接口信號切換電路A、接口信號切換電路B組成。切換電路採用冗餘設計,具有兩套相同的切換電路,其中子系統A的對外接口連線至切換電路A,子系統B的對外接口連線至切換電路B。切換電路A由子系統A的電源供電,切換電路B由子系統B的電源供電。控制模組接收來自心跳伺服器的切換指令或外部開關信號,實現接口切換。具體如下:
1)當收到來自伺服器的切換指令,控制模組發出使能控制信號,使當前處於連線狀態的切換電路處於懸空狀態,使當前處於懸空狀態的切換電路處於連線狀態
2)當收到來自切換開關的信號,控制模組發出使能控制信號,使當前處於連線狀態的切換電路處於懸空狀態,使當前處於懸空狀態的切換電路處於連線狀態。同時,控制模組向心跳伺服器發出切換通知訊息,由心跳伺服器完成上層套用和服務的切換。
專利榮譽
2021年6月24日,《一種可信冗餘容錯計算機系統》獲得第二十二屆中國專利優秀獎。