蒋建金
(卡斯柯信号有限公司,上海)
目前,轨道交通信号控制领域(国铁和城市轨道交通)采用专用嵌入式硬件和专用嵌入式软件的既有嵌入式安全计算机平台体系架构[1](4 种,如下介绍)来构建组成轨道交通信号控制安全平台,基于此安全平台的轨道交通信号控制系统如联锁、区域控制器等均分散布置于各车站站点控制机房中。安全关键性的轨道交通信号控制系统有很高的可靠性和可用性要求[2],这些系统必须具有长寿命(≥25 年)要求。
随着数字化的不断发展和演变,基于专用嵌入式硬件系统架构受到半导体硬件的短生命周期影响,导致产生既有专用硬件过时但系统却需要具有长期供货能力的矛盾。对于轨道交通信号控制系统而言各种业务功能不断整合演变得越来越复杂,产生了如何在既有专用硬件上实现新功能或者提出了使用新型专用嵌入式硬件的需求问题。并且既有轨道交通信号控制系统均分散分布于各站点内,随着线路的不断开通和拓展,新站点的信号控制系统建设、运行、维护成本不断增加,产生了分散布局的成本累计问题。快速发展的线网带来了系统需要具备高可伸缩性(可重用性、可分配性、可伸缩性)的需求。
本文针对上述的问题,研究设计了一种基于通用硬件(COTS)的云计算架构的安全平台,安全完整度达到SIL4。
如图1 所示,基于编码的安全平台采用反应式故障安全原理,输入输出处理部分和计算部分均进行了编码运算。此类安全平台又可以分为如图1 中的子类型I 和子类型II 两类。子类型I 由独立的校验板进行校验,校验不通过时将导向安全侧。子类型II 由校验码(保证在计算结果出错或有可能导致危险的输出时,相应的编码的校验码部分能检测相应的出错故障,并且将相关故障反映到校验码)传递给解码模块[4]。
图1 基于编码的安全平台
如图2 所示,其基本工作原理是两个模块接收相同的输入数据并进行逻辑运算,其中一个模块为主机,另一个为热备机,只有主机才有对外控制权。每个模块一般为单CPU 处理单元,单个模块构成独立的子系统。主备机都具有故障检测功能,工作过程中,若主机自检发现自身出现故障时,通过切换单元进行切换,备机升为主机运行。若热备机出现故障,则不进行切换[4]。
图2 双机热备的安全平台
如图3 所示,三取二架构的安全平台由三个模块组成,正常工作时,三个模块接收相同的输入数据,并行地对数据进行处理,然后通过表决单元对运算结果进行多数表决,只要有两个模块的运算结果一致,则认为系统处于正常工作状态,产生控制命令并输出。三取二架构在有一个模块故障退出工作时,降级为二取二架构,通过这种降级处理,增强了可用性,使整体系统能够继续工作,实际上起到了热备的作用[4]。
图3 三取二架构的安全平台
如图4 所示,二乘二取二架构的安全平台由两系四个模块组成,两个模块构成一个子系统,形成二取二结构,通过比较器实时比较。两系构成热备冗余结构,和双机热备原理相同,其中一系为主系,另一系为备系,当主系内双机比较不一致或出现故障时,则系统切换到备系工作;若备系内双机比较不一致或出现故障时,则不需要切换。该结构采用二取二比较来保证安全性,采用双机切换来保证可靠性[4]。
图4 二乘二取二架构的安全平台
云计算架构安全平台分为云计算单元和时钟表决通信单元两部分,如图5 所示。
图5 云计算架构安全平台
云计算单元采用容器技术如图6 将云计算单元中的通用服务器操作系统虚拟化,将全部功能分配给多个独立的容器,实现了轨道交通信号控制系统安全应用(平台)与专用嵌入式硬件的分离。容器内部采用编码技术(反应式故障安全,是一种对运算进行编码的技术)对系统进行随机性和系统性失效检测,保证安全可靠性。
图6 云计算单元容器层级
容器(Docker 和Kubernetes 之类)是一种操作系统虚拟化技术,用于打包应用程序及其依赖项,并在隔离环境中运行它们,为系统开发、部署、运行提供轻量级的隔离环境。容器化的核心目标是提供一种更好的方式,以可预测和便于管理的方式在不同的环境中创建、打包以及部署软件。在不同类型的基础架构中,容器以一种标准的方式,提供了轻量级打包和部署应用程序的方法。容器可以在任意支持容器的主机上运行一致,可以确保应用程序的依赖项被放到镜像中,简化了手动操作的部分和发布流程,容器从容器镜像中创建,其中包含了系统、应用程序和容器环境。容器镜像和创建特定容器模板一样,同一镜像可用于生成任意数量的运行中的容器,直接虚拟化操作系统。它作为由主机操作系统内核管理的专用进程运行,但具有受限且严格操作的系统进程、资源和环境视图。容器存在于共享系统上,并且像它们在完全控制的计算机上运行一样。容器具有轻量级虚拟化、环境隔离、标准化打包格式和运行时目标、可扩展性这些独有特性。
通过容器技术把底层专用硬件从系统中分离出来,容器提供了一个隔离环境,轨道交通信号控制系统不用关注底层具体硬件资源,容器隔离环境中采用了编码技术(反应式故障安全,是一种对运算进行编码的技术)对系统进行随机性和系统性失效检测,保证安全可靠性。给轨道交通信号控制系统提供了一种解决过时硬件的方案。
通过云计算创建了集群提高了可用性,如果云计算单元中的某些服务器失效,其他服务器可以通过MooN 故障冗余特性提供可持续的服务。
通过在通用硬件服务器同一个多核节点上并发运行多个容器,并可在多个容器上运行不同业务(如可运行联锁、区域控制器等不同业务)和相同业务的不同控制逻辑(如轨道交通信号控制系统联锁业务的车站甲、乙、丙等的不同逻辑),整合了资源,减少了业务系统的建设、运行、维护成本。
通过容器技术,在轨道交通信号控制系统线路的不断开通和拓展过程中,只需进行容器虚拟计算节点的增加和调整,提供了高可伸缩性(可重用性、可分配性、可伸缩性)的解决方案。
时钟表决通信单元采用传统轨交二乘二取二冗余的安全架构实现,完成安全时钟、注册管理、多核并发仲裁表决、MooN 机制表决解决云计算单元(云服务器硬件)健壮性不足的难题[3]。
(1) 注册:云计算单元容器需在时钟表决通信单元中注册,状态变化(时钟表决通信单元判断或计算单元报告)后将信息虚拟组内广播。
(2) 启动:云计算单元容器启动后主动在时钟表决通信单元上进行注册;将虚拟组内状态信息告知新加入云计算单元各容器;新加入的云计算单元容器开始从健康云计算单元容器获得同步教育信息,从时钟表决通信单元中获得实时时钟同步信息。
(3) 健康:云计算单元容器完成同步教育、时钟同步信息后升级至健康状态,状态发送至表决器,由时钟表决通信单元进行广播。
(4) 表决:时钟表决通信单元收到云计算单元各容器的数据信息后采用MooN(M-out-of-N M 个信息中N 个一致后通过)表决机制进行表决。
(5) 退出:当时钟表决通信单元表决出非健康云计算单元容器,将云计算单元容器踢出虚拟组(按后续策略进行复位等操作)并广播状态信息给虚拟组内所有云计算单元容器。
2.4.1 云计算安全平台-初始化(见图7)
图7 云计算安全平台- 初始化时序
(1) 云计算安全平台进入初始化,云计算单元组、时钟表决通信单元分别进入初始化状态。
(2) 时钟表决通信单元完成初始化进入表决就绪状态。
(3) 云计算单元各节点将注册信息发送至时钟表决通信单元(时钟表决通信单元已在就绪状态)。
(4) 时钟表决通信单元回复注册成功信息,并将注册信息广播至云计算单元组中各节点,并进行安全时钟信息广播。
(5) 云计算单元各节点收到各自注册成功消息后转入云计算单元就绪状态。
(6) 时钟表决通信单元收到边缘计算控制器输入后将消息广播至云计算单元组中各节点。
(7) 云计算单元组各节点进行编码运算(各节点编码运算采用不同的大素数)。
(8) 云计算单元组各节点将编码运算后结果发送至时钟表决通信单元。
(9) 时钟表决通信单元进行多重故障投票表决(MooN)。
(10) 时钟表决通信单元表决成功后发送输出结果至边缘计算控制器。
2.4.2 云计算安全平台-初始化(见图8)(1) 云计算单元节点N 加入进行初始化。
图8 云计算安全平台- 云计算点加入时序
(2) 云计算单元节点N 初始化后发送注册消息至时钟表决通信单元。
(3) 时钟表决通信单元回复注册成功信息至云计算单元节点N,并将注册信息、安全时钟广播至云计算单元组中各节点。
(4) 云计算单元节点N 收到注册成功信息后根据时钟表决通信单元指定的教育者A 申请教育请求。
(5) 云计算单元节点A 回复云计算单元节点N教育消息。
(6) 云计算单元节点N 完成教育后进入就绪状态。
2.4.3 云计算安全平台-MooN 表决时序(见图9)
图9 云计算安全平台- MooN 表决时序
(1) 云计算单元各节点(A…N)均处于就绪状态。
(2) 时钟表决通信单元将边缘计算控制器输入消息广播至云计算单元各节点。
(3) 云计算单元各节点进行编码运算。
(4) 云计算单元各节点将编码运算结果发送至时钟表决通信单元。
(5) 时钟表决通信单元执行多重故障投票表决(MooN)。
(6) 时钟表决通信单元表决成功后发送输出结果至边缘计算控制器。