趙夢瑤,劉逸明,王龍生*
(1.中國鐵道科學研究院通信信號研究所,北京 100000;2.國家鐵路智能運輸系統(tǒng)工程技術研究中心,北京 100000)
鐵路行車安全始終是鐵路運輸?shù)牡谝灰亍hF路有史以來發(fā)生的重大行車安全事故都導致巨大災難性的后果,并造成具有廣泛破壞性的社會影響[1]。鐵路信號控制系統(tǒng)是保障行車安全的關鍵設備,是典型的實現(xiàn)重大生命攸關功能的安全苛求系統(tǒng)。其中鐵路信號安全計算機平臺作為鐵路信號控制系統(tǒng)最基礎、最重要的組成部分,是實現(xiàn)不同系統(tǒng)的應用所需要的硬件平臺和軟件底層平臺的設備。
為了提高鐵路信號安全平臺的安全性和可靠性,安全平臺的結(jié)構從最初的單套系統(tǒng)升級為雙機熱備系統(tǒng),又再次升級為2 取2 冗余結(jié)構或基于3 取2 冗余結(jié)構,以達到一個性能和成本的平衡;同時“故障-安全”軟件設計和功能測試方面技術的提升,使得目前的鐵路信號安全計算機平臺技術相對穩(wěn)定。但是,目前鐵路安全平臺都是集中放置、單站放置的形式,存在造價高、建設周期長等缺點,特別是隨著鐵路網(wǎng)的高覆蓋率,對運輸效率和行車安全提出了更高的要求。
因此,本文設計了一種基于RAFT 共識算法的鐵路信號安全計算機云平臺實現(xiàn)方法[2],對于鐵路沿線上的多個車站,將每個站分立的安全計算機平臺替換為中心服務器的方式,再通過光纖與每個站的操作表示界面以及室外控制設備相連,在保障高安全性、高可靠性的前提下,可以有效降低維護量、提高性能和擴展性、縮短施工時間和資源消耗。
鐵路信號安全計算機平臺是鐵路信號安全相關應用系統(tǒng)所使用的專用安全計算機平臺,是適用于實現(xiàn)車站進路控制、行車間隔控制以及超速防護等鐵路信號重大安全功能的專用安全計算機平臺[3],例如鐵路列控系統(tǒng)的聯(lián)鎖系統(tǒng)、列控中心和無線閉塞中心等。
鐵路信號安全計算機平臺的核心關鍵在于:具有較高的實時性要求,具有極高的可靠性和安全性之外,還必須滿足“失效-安全”的相關設計原則,同時滿足于SIL4 級安全完整性要求[4]。現(xiàn)計算機聯(lián)鎖系統(tǒng)使用較多的為基于2 取2 乘2 冗余結(jié)構如圖1 所示,或基于3 取2 冗余結(jié)構如圖2 所示的聯(lián)鎖安全計算機平臺。

圖1 2 取2 乘2 冗余結(jié)構原理

圖2 3 取2 冗余結(jié)構原理
設計、實現(xiàn)一個鐵路信號安全平臺,需要重點進行2 個方面的設計和研究。首先是實現(xiàn)該平臺基礎應用功能的技術方案及其特點,更重要的是針對如何支撐這些技術方案、確保信號系統(tǒng)安全應用的技術措施的研究。
“故障-安全”顧名思義就是系統(tǒng)故障后導向安全的一種設計理念,是鐵路信號中最根本的設計原則。隨著工業(yè)控制技術的發(fā)展,一些國內(nèi)外的電工標準、鐵路行業(yè)設計標準、可靠性設計方法等技術也被廣泛地知曉和應用,特別是IEC61508 中定義、規(guī)定的安全完整性要求和EN50129 中“失效-安全”理念和技術,從根本上保障安全平臺的可靠性和安全性[5]。IEC61508 研究了安全平臺的硬件和軟件安全相關功能的安全性必須滿足安全完整性要求,能夠為平臺所承載的安全相關應用軟件完成其應用功能提供安全保障;以及進行平臺的可靠性、安全性,“失效-安全”的技術措施的相關研究[6]。EN50129 從理念和技術這2 個不同層面構建了完整的“失效-安全”體系,并確立了相當完備的“失效-安全”基本原則;系統(tǒng)地解決了提高信號可編程安全相關系統(tǒng)的“失效-安全”應該怎么樣做、應該做到什么程度以及如何衡量的原則性和技術性問題。這些將成為這個安全平臺能否成功應用的關鍵[7]。
安全冗余結(jié)構的邏輯平臺中,同步表決是保障安全性的首要條件。但是,在云平臺架構下,服務器各個節(jié)點的運算及數(shù)據(jù)交互模式將發(fā)生巨大變化,單平臺的同步和表決機制不再適用,所以引入共識機制算法以實現(xiàn)云平臺系統(tǒng)的同步表決。
共識機制是使得各服務器節(jié)點在某種協(xié)議的保障下對計算結(jié)果達成一致。針對于不同的應用場景,共識機制在保證安全性和一致性的基礎上,也需要平衡系統(tǒng)的性能效率、擴展性和資源消耗等因素。目前常見的分布式系統(tǒng)一致性算法包括PoW、PoS、DPoS、RPCA、Paxos、RAFT、PBFT 等[8],各種算法都有優(yōu)缺點,在某一種應用中可以使用一種算法計算核心部分,并與其他算法相結(jié)合。
RAFT 算法因其具有復雜度低,易于理解,易于工程應用實現(xiàn)的特點,更適合本文提出的鐵路信號安全計算機云平臺的工程應用。
在現(xiàn)有鐵路安全計算機平臺的基礎上,分布式安全平臺主要側(cè)重分布式邏輯運算架構,由現(xiàn)有本地、集中的邏輯運算單元提升為基于共識機制的多個、分布式的邏輯運算平臺,實現(xiàn)了更高的可靠性、可用性和可擴展性,具體架構設計如下。
分布式安全平臺主要包含操作表示層、邏輯處理層和執(zhí)行層3 部分,如圖3 所示。其中,操作表示層可以為一個車站、多個車站或調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)中的人機交互計算機,操作人員通過人機交互界面進行指揮車站作業(yè)、控制車站信號設備和監(jiān)控信號設備工作狀態(tài)等操作。

圖3 分布式安全平臺架構圖
邏輯處理層由多個分布式設置的服務器組成,每個服務器均可作為一個節(jié)點加入共識機制算法之中。邏輯處理層接收來自操作表示層的操作指令,通過RAFT 算法計算后多個服務器將產(chǎn)生一條安全命令發(fā)出,并且每一個服務器均會同步保存這一次指令的計算過程和結(jié)果,最終實現(xiàn)區(qū)域內(nèi)多個車站控制邏輯的分布式計算和控制。
執(zhí)行層由各個車站的執(zhí)行電路或系統(tǒng)以及最終被控的室外軌旁信號設備組成,在接收到來自邏輯處理層的動作命令后進行相應動作,同時將本站信號設備的工作狀態(tài)、報警信息等數(shù)據(jù)上傳至邏輯處理層,實現(xiàn)對站場信號設備最終的安全控制。
基于共識機制的安全平臺中的邏輯處理層是進行邏輯運算、采集驅(qū)動處理以及通信數(shù)據(jù)轉(zhuǎn)換等功能的核心層,主要完成的功能如下。
(1)安全通信以及采集驅(qū)動功能。接收來自各個車站或TDCS/CTC 的站場作業(yè)操作和控制信號設備操作等信息,同時接收執(zhí)行層上傳的站場內(nèi)信號設備的工作狀態(tài)等采集信息;將這些信息進行轉(zhuǎn)義和整合,用于各服務器節(jié)點之間的同步和通信以及聯(lián)鎖邏輯的運算;最后將最終生成的安全命令發(fā)送至執(zhí)行層進行驅(qū)動輸出。
(2)以RAFT 算法為核心的同步機制及自身調(diào)度功能。運用RAFT 算法進行各服務器節(jié)點之間的同步與運算結(jié)果比較,替代了現(xiàn)有安全計算機平臺中主從交互采集信息和主從交互運算結(jié)果等環(huán)節(jié),是本安全平臺的主要特點和核心功能。
(3)運行聯(lián)鎖邏輯處理軟件。將現(xiàn)有的聯(lián)鎖軟件運行于共識機制的安全平臺中,根據(jù)平臺處理后的操作命令以及站場設備的采集狀態(tài)進行聯(lián)鎖邏輯運算。
鐵路信號安全平臺采用分布式結(jié)構后,最關鍵的問題仍然還是如何保證系統(tǒng)的“故障-安全”特性,即要保持如圖4 所示中邏輯處理層中的各節(jié)點的一致性,無論哪部分發(fā)生故障,只要該層中的大部分節(jié)點可以正常工作,則這些節(jié)點就具有相同的狀態(tài),保持一致,實現(xiàn)安全性冗余的功能。

圖4 現(xiàn)有計算機平臺和共識機制平臺工作流程比較
鐵路信號安全平臺基于RAFT 算法的平臺軟件計算過程如下。
3.1.1 系統(tǒng)初始化
完成系統(tǒng)硬件功能初始化,邏輯層各服務器選取Leader,其他服務器自動變成Follower[9]。
3.1.2 周期邏輯處理
完成通信后,Leader 完成命令分發(fā)給Follower,進行IO 采集、邏輯計算后,F(xiàn)ollower 將形成的結(jié)果傳回Leader,Leader 進行安全比較,形成驅(qū)動輸出等過程。
3.1.3 邏輯服務器異常處理
(1)Leader 異常處理:邏輯層某服務器成為Leader后,會周期發(fā)送心跳包給其他的Follower,如果Follower 超過一定時間沒收到心跳包,會觸發(fā)重新選舉Leader 的邏輯;
(2)Follower 異常處理:Leader 發(fā)現(xiàn)有Follower 不能正常接收下發(fā)的命令或者不能回復狀態(tài)后,F(xiàn)ollower會重啟恢復。
以鐵路信號列控系統(tǒng)中的聯(lián)鎖系統(tǒng)為例,詳細描述基于RAFT 的平臺層軟件的實現(xiàn)。如圖5 所示,5 個車站配置了5 套操作表示機,對于5 個車站各自的執(zhí)行層設備,邏輯處理層中有4 個服務器。

圖5 RAFT 共識算法流程
(1)4 個服務器分別命名為S1、S2、S3、S4,上電完成硬件功能初始化,4 個服務器都成為Candidate。
(2)服務器角色初始化,4 個服務器互相投票,選舉Leader,假設S1 成為Leader,那么剩下的S2、S3、S4自動成為Follower,完成初始化。
(3)周期執(zhí)行開始,車站1 要排列進路,發(fā)出進路命令給S1(Leader)。
(4)S1 收到命令后轉(zhuǎn)發(fā)給其他所有的Follower(S2、S3、S4)。
(5)每個Follower 收到轉(zhuǎn)發(fā)的命令,調(diào)用自身的邏輯處理功能模塊檢查進路開放的條件,采集室外設備的狀態(tài),計算進路開放需要操作的道岔。
(6)Follower 計算和采集完成后發(fā)回給Leader(S1)。
(7)Leader(S1)一致性檢查,Leader(S1)接收到2個服務器發(fā)回來的計算結(jié)果及采集狀態(tài)一致時則認為該結(jié)果及狀態(tài)有效,形成最終執(zhí)行命令。
(8)Leader(S1)將命令發(fā)送給執(zhí)行層的相關設備執(zhí)行命令操作,將狀態(tài)返回車站1 顯示車站設備和進路的狀態(tài)。
(9)各服務器無異常時,周期執(zhí)行(3)-(7)的過程,實現(xiàn)系統(tǒng)的正常運行。
(10)Leader(S1)異常后,進入過程(2),剩下的S2、S3、S4 重新選舉新的Leader。
安全平臺軟件流程描述了平臺軟件實現(xiàn)的主要流程,但是為了保障算法實現(xiàn)的安全性,還需要設計以下功能確保安全性。
3.3.1 網(wǎng)絡和通信保障
RAFT 在非拜占庭錯誤情況下,包括網(wǎng)絡延遲、分區(qū)、丟包、冗余和亂序等錯誤都可以保證正確,不會返回錯誤結(jié)果,這就是安全性保證。實際上就是保證所有成員狀態(tài)機都以同樣的順序,執(zhí)行同樣的命令。
3.3.2 服務器節(jié)點數(shù)量和功能
服務器節(jié)點數(shù)量的增加可以提高系統(tǒng)的容錯能力,常規(guī)的如果有5 個服務器節(jié)點,那么可以允許2 個服務器故障,如果如圖5 所示的4 個服務器結(jié)構,就只能允許1 個服務器故障;同時,每個服務器應有一個自檢程序,用于檢查自身故障后保障系統(tǒng)宕機,而非異常計算和輸出。
3.3.3 命令時效性
服務器的Leader 只接收當圈周期的命令,避免使用歷史命令造成的風險。
3.3.4 同步處理
邏輯服務層中各服務器只有Leader 接收車站的命令,并由Leader 轉(zhuǎn)發(fā)給所有的Follower,如果Follower 在計算過程中收到Leader 發(fā)送的新命令,會舍棄原來的計算按照最新的命令重新計算,Leader 來調(diào)度這些并發(fā)請求的順序,并且保證Leader 與Followers 狀態(tài)的一致性,這種機制保障了邏輯處理的同步[10]。
對于基于RAFT 的分布式信號安全平臺而言,其邏輯處理層執(zhí)行邏輯運算、采集驅(qū)動處理以及通信數(shù)據(jù)轉(zhuǎn)換等功能,也是應用分布式算法提升系統(tǒng)可靠性與安全性的關鍵。因此,本文著重對平臺邏輯處理層的可靠性與安全性進行分析。
對于簡單的單系統(tǒng),其平均故障間隔時間(MTBF)可由下式推出[11]:

式中,RS為系統(tǒng)可靠度,λ 為系統(tǒng)故障率。
由RAFT 算法特性可知,在不考慮共因失效和車站數(shù)量造成的業(yè)務數(shù)據(jù)量的情況下,系統(tǒng)內(nèi)有3 臺或以上服務器可以正常工作時,系統(tǒng)處于正常工作狀態(tài)。假設各服務器的可靠度相同且失效率均服從指數(shù)分布,不考慮系統(tǒng)的可維修性,則系統(tǒng)的可靠度與MTBF可以由下式表述:

以前文中的控制5 個車站情況舉例,基于RAFT的分布式信號安全平臺的平均故障間隔時間為:

而雙機熱備、3 取2、2 乘2 取2 等冗余結(jié)構的平均故障間隔時間分別為:

精確分析系統(tǒng)的可靠性其工作量非常巨大,但是,將各冗余結(jié)構框定在一些限定條件下進行比較,亦可做出定性判斷。經(jīng)過比較,本文提出的基于RAFT 的分布式信號安全平臺在可靠性方面勝于當前應用的各種冗余結(jié)構,能夠保障各類信號控制業(yè)務的穩(wěn)定運行。
本文設計了一種分布式鐵路信號安全計算機云平臺架構,并研究了其基于RAFT 算法的共識機制實現(xiàn)方法。對于鐵路沿線多車站場景,本文提出的安全計算機云平臺能夠有效減少系統(tǒng)設備的數(shù)量,降低施工的周期,方便擴展,不同車站的相同列控系統(tǒng)或者同一車站的不同功能列控系統(tǒng)都能以軟件的形式運行在這一個服務器群中。同時,研究了鐵路信號安全平臺在RAFT 算法下如何完成同步表決和安全功能的實現(xiàn),以鐵路信號聯(lián)鎖系統(tǒng)為模型,設計了詳細的平臺軟件流程步驟,最后又單獨分析了算法和實現(xiàn)中的安全性設計。