APP下载

应用SpaceWire网络的航天器分布式存储系统设计

2019-05-10穆强牛跃华于俊慧李欣袁珺高何

航天器工程 2019年2期
关键词:存储系统路由分布式

穆强 牛跃华 于俊慧 李欣 袁珺 高何

(北京空间飞行器总体设计部,北京 100094)

大容量固态存储器自20世纪90年代开始已逐渐应用于国际航天领域,随着半导体技术的发展,以Flash器件为存储单元的大容量固态存储器目前已经成为航天器的关键配置之一[1-5]。特别是对以获取地面遥感图像为目标的对地观测卫星而言,存储容量配置需求成倍增长,主存储器容量已超过10 Tbit。为了提高图像质量,有效载荷配置也呈现多样化趋势,除了主载荷还会配置各类辅助载荷,辅助载荷数据存储需求有着多样性的特点,如短时、突发性、中低速率输出、在轨长期工作等不同需求。主存储器受限于功耗等因素制约,在适应多样化辅助载荷数据存储的灵活性需求上并非强项,因此在主存储器之外增加较小容量辅助存储器的配置成为一种较为常见的解决方案。如国内某对地观测卫星,配置辅助存储器,该设备在轨长期开机,连续存储卫星工程遥测数据及长期载荷的部分应用数据,而主存储器在随着卫星主载荷共同开机工作,存储主载荷高速数据。

在配置双固态存储系统(即主存储器加辅助存储器)的航天器中,由于硬件接口设计的差异性,经常会对部分设备的接口进行改动,再应用于其他航天器时又要进行反复的适应性修改,从而带来不必要的产品研制开销,并对产品成熟度造成影响。由于应用数据的使用需求,部分数据会同时在不同位置进行存储,涉及的接口交叉设计繁琐,同时还增加了系统容错设计的成本和难度。数据的分散存储对数据的分配、传输、管理提出了新的要求,使与之相关的航天器数据通信协议、星地操控接口的复杂性提高,个别航天器出于数据存储方便考虑,甚至配备多个辅助存储器,各种传输接口、协议设计及系统容错设计的复杂性更是成倍增加。

为了解决上述问题,本文提出应用SpaceWire网络的分布式存储系统设计。SpaceWire网络是ESA的数据通信标准,已成功应用于十余项国际空间任务中[6-7]。其接口简单、采用路由式通信等特点,对支持分布式存储系统的接口标准化、系统重构能够起到基础性作用,使分布式存储系统对外提供统一的硬件接口和通信协议,屏蔽内部的具体网络连接方式,从而简化航天器系统设计。

1 分布式存储系统设计

分布式存储系统由控制模块及若干个Flash存储模块构成,每个存储模块均可独立工作,实现数据的分布式存储。根据实际应用环境的需求,控制模块和存储模块可置于同一台设备中,也可置于不同设备中,各模块由SpaceWire网络互联。控制模块负责SpaceWire网络配置及分布式存储系统的管理,控制各个存储模块完成数据文件的创建、删除,数据的记录及回放等。整个分布式存储系统对外呈现统一的SpaceWire数据接口,以模块逻辑地址作为提供数据存取服务的入口,数据源端不需要关注存储模块的物理位置。当发生单存储模块故障时,只要修改路由配置就能将数据无缝迁移至其他存储模块,而数据源端可不做任何修改。当需要增加存储容量时,在适合的设备中增配存储模块数量即可,对外接口及协议设计不会发生变动。目前,分布式存储系统可应用于航天器中低速率数据的存储,后续随着航天器高速通信技术的发展成熟,可无缝接入高速数据传输,整体实现航天器数据存储的统一管理。

1.1 网络结构设计

分布式存储系统网络构成如图1所示,各模块均连接于SpaceWire网络中,对载荷设备提供统一的SpaceWire输入输出接口。在实际设计中,控制模块可不独立配备,其控制功能与其他接入SpaceWire网络的计算机进行集成,多个存储模块可形成冗余备份,为系统容错设计带来便利。

图1 分布式存储系统网络构成Fig.1 Network structure of distributed storage system

1.2 网络配置及协议设计

分布式存储系统的传输协议分为网络控制和应用数据传输两类,分别利用SpaceWire网络的2种寻址方式。

(1)路径寻址。通过物理端口指定数据传输目的地,各级路由节点具有包头删除功能,将通过的数据包首字节删除,把第2个字节作为数据包的新包头首字节地址送出。路径寻址示意如图2所示。

(2)逻辑寻址。将路由器的物理端口通过路由表映射到某一个逻辑地址上,通过查找路由表确定逻辑地址对应的输出端口,目标地址只需要由一个数据字符长度的逻辑地址来表示。利用逻辑寻址方式不需要关注具体网络结构,因此可屏蔽网络连接细节。逻辑寻址示意如图3所示。

航天器网络物理连接一旦确定,就具有不可更改的特性,因此网络配置基于路径寻址进行,以确保能够正确访问对应的节点。控制模块集中进行整个网络的配置,包括各个节点的端口状态、通信速率、路由表配置等,配置成功即可为各载荷设备提供数据传输服务。网络配置会产生短包、小数据量通信,控制模块通过SpaceWire网络采用远程存储器访问协议(RMAP)对各节点工作寄存器进行配置,并读出内容以确认配置正确。写入操作命令包见图4,读出操作命令包见图5。

图2 路径寻址示意Fig.2 Schematic diagram of path addressing

图3 逻辑寻址示意Fig.3 Schematic diagram of logical addressing

图4 RMAP写入操作命令包Fig.4 RMAP write command package

图5 RMAP读出操作命令包Fig.5 RMAP read command package

应用数据传输在网络层完成路由,对外屏蔽网络连接方式,采用逻辑寻址方式基于路由表查找目的地。应用数据传输量较大,为提高传输效率,便于存储模块纠错编码及回放后地面处理,采用串行传输通用协议(STUP)定长传输方式。STUP协议数据包为基本传输格式,其内部装载用户应用数据结构,由数据文件标志和符合国际空间数据系统咨询委员会(CCSDS)建议的虚拟信道帧(VCF)[8]构成,见图6。

图6 STUP数据包Fig.6 STUP data package

不同的载荷设备按照协议要求,将各自的应用数据组成数据包送出,数据包通过各级路由器时,在路由表控制下逐级传输至指定逻辑地址对应的存储模块。各类应用数据的生成速率、时机、频度存在差异,因此可根据其存取特点分配不同的存储模块,例如,可分为长期数据和短期数据,或者分为平台遥测数据和载荷数据。通常,将需要长期记录的数据集中存储,将仅在观测时产生的载荷数据及其辅助数据集中存储,每个存储模块内部数据通过文件形式进行管理,对于短期数据的存储模块可短期加电工作,降低系统功耗。

SpaceWire总线采用流控制机制[9],当接收端中的缓冲器有足够容纳8 byte数据字符的空间时,发送1个流控制字符(FCT)到链路发送端的链路接口,发送端链路接口接收到FCT控制字符后,可以发送8 byte数据字符。只要接收端的缓冲器有足够空间,就可向发送端发送FCT控制字符。在一个完整数据包通信结束前,其传输路径被占用,不能传输其他数据包,因此数据发送端需要对发送数据进行缓存,避免链路传输路径的占用导致数据丢失,当某端口传输数据总量达到总带宽的80%时,要进一步对各节点的发送时序关系进行规划,降低路径冲突。

1.3 系统重构

分布式存储系统具备系统重构能力,当部分模块故障时可对系统进行重构,实现系统控制和数据存储功能的迁移,提高系统容错能力。系统重构会对数据传输路径进行重新组织,重新分配各模块的功能,因此通常会带来路由表配置的变化,将逻辑地址映射至新的物理端口,从而实现存储功能的迁移。系统重构一般通过软件配置信息注入或程序在轨维护的方式进行,使系统在重构后的网络结构中工作,逻辑寻址方式能够很好地对外屏蔽网络结构的变化,载荷设备不需要了解网络组成细节,因此不必进行任何修改即可适应,能够最大化地将故障带来的更改限制在最小范围内。

控制模块的控制功能通常由软件实现,可集成在连接于SpaceWire网络中的任意一台计算机中,控制功能的迁移即将该功能转移至另外一台计算机的软件中,且对应的逻辑地址需要映射到连接后者的物理端口。存储模块可通过模块数量、存储容量两方面进行冗余,即配置多于实际需求的存储模块,或者每个模块分配的存储数据量小于其容量,为数据存储、迁移预留。例如,某系统中配置4个存储模块,每个128 Gbit容量,实际使用3个模块,第4个作为备份预留。

2 实例验证

以某卫星分布式存储系统的设计及应用为例,验证本文提出设计的可行性和优势。

2.1 网络组成

某卫星分布式存储系统的具体实现如图7所示。卫星上配置4种辅助载荷,对辅助存储器数据存储要求为:在卫星成像期间,通过SpaceWire总线接收4台辅助载荷传输的应用数据、系统管理计算机生成的环境监测辅助数据;在整个寿命期内,不间断地记录卫星工程遥测数据。卫星存储功能由综合电子系统实现,分布式存储系统也依托于综合电子系统设备建立,系统共配置4个存储模块,分别安装于系统管理单元、载荷接口单元中,控制模块的控制功能集成在CPU模块1、2(位于系统管理单元)中。该分布式存储系统为4个辅助载荷设备提供数据存储服务,辅助载荷设备A、B机分别占用1个SpaceWire端口。存储模块1、2长期开机,用于不间断地记录卫星工程遥测数据;存储模块3、4用于记录成像期间的载荷应用数据及环境监测辅助数据,非成像期间可关机。

整个SpaceWire网络以路由单元为核心,路由单元内部由3片爱特梅尔(Atmel)公司8端口路由芯片AT7910E构成,3个路由芯片间通过双路互联组成环形网络,对外提供18个标准SpaceWire端口,通过3级路由表配置,实现所有节点的互联互通。存储模块1~4也应用AT7910E作为协议芯片,CPU模块1、2和CPU模块3、4分别与存储模块1、2和存储模块3、4内部互联,共享协议芯片接入网络。路由单元、存储模块均为冷备份设计,因此常态下整个网络中5个路由芯片同时工作。

系统默认CPU模块1、2作为控制模块,在故障情况下可通过软件在轨维护的方式将CPU模块3、4(位于载荷接口单元)配置为控制模块。

图7 某卫星分布式存储系统网络结构Fig.7 Network structure of distributed storage system in a satellite

2.2 地址分配及路由配置

在图7的网络中,所有节点工作模式均为冷备份,因此A、B机分配相同的逻辑地址,如果需要设计为同时工作,可修改路由表,分配不同的逻辑地址实现。各节点逻辑地址分配如表1所示,其中测试节点用于系统测试。控制模块(CPU模块1、2)通过路径地址访问所有路由芯片,集中进行路由表配置,表2为控制模块1、2使用的路径地址。路由芯片的路由表配置如表3所示。

表1 SpaceWire逻辑地址分配Table 1 Allocation of SpaceWire logical address

表2 控制模块1、2使用的路径地址Table 2 Path address of control module 1,2

续 表

表3 路由芯片路由表配置Table 3 Router table configuration of routing chips

在路由表配置中,路由单元内部的双路互联中,默认配置为使用端口1~8就近环路方向互联,另一环路方向路径及端口9~10路径作为预留,由于节点为冷备份设计,因此使用组适应路由方式,切机后路由表不需要修改。

该卫星分布式存储系统选用的路由芯片为AT7910E,最高可支持200 Mbit/s传输速率。对其数据传输路径进行分析,最大数据量通信端口为存储模块3、4的接收端口,峰值速率要求约为60 Mbit/s,因此将该卫星SpaceWire带宽设置为100 Mbit/s,最大传输峰值约为总带宽的60%,能够满足使用要求。

2.3 冗余设计

分布式存储系统配置多个控制模块和多个存储模块,相互之间可形成备份关系。控制模块功能集成在CPU模块1、2中,由CPU软件实现。CPU模块1、2为冷备份设计,控制模块功能迁移随其切换同时完成。CPU模块3、4也可作为控制模块使用,必要时可在轨修改其软件,增加相应功能。更改后,路由表不需要更改,控制模块进行网络配置时使用的路径地址如表4所示。

表4 控制模块3、4使用的路径地址Table 4 Path address of control module 3,4

当某个存储模块故障时,可将向该模块传输的数据迁移至其他存储模块,即修改每个路由芯片的路由表,将该地址的数据路由到其他存储模块进行处理。例如,将逻辑地址40(存储模块3)对应的路由设置改为与逻辑地址34(存储模块1)相同即可,数据传输路径对载荷设备透明。

2.4 应用效果

在图7所示的某卫星分布式存储系统中,共配置4个存储模块,2个CPU系统作为控制模块,另外还有2个CPU系统可作为备用控制模块使用,系统对外呈现一致的SpaceWire物理接口。任意模块间的切换、系统的重构、传输路径的更改均对外屏蔽。与配置双固态存储系统的B卫星进行对比,如表5所示。可见,在载荷设备数量基本相当的情况下,本文设计实例在物理接口种类和协议设计的复杂性上显著优于B卫星,且使用操作更简化,在适应存储需求变化及系统重构方面优势更为突出。

表5 应用效果对比Table 5 Comparison of application effects

3 结束语

配置多种载荷可提高服务质量和应用效率,扩大用户服务范围,已逐渐成为航天器研制的常态,随之而来的在轨数据存储需求也更加灵活。本文提出的应用SpaceWire网络的分布式存储系统,可辅助主存储器适应中低速数据存储、在轨长期工作等需求,扩展性良好,在轨具有灵活的重构手段,在故障情况下能最大程度实现系统功能不降级,空间应用的优势较为突出,目前已经过航天器的在轨验证,工作状态良好。随着SpaceWire-D、Spacw Fibre等技术的后续推广应用,在数据传输时序确定性、通信速率方面还有更大的发展空间[10],未来可将主存储器纳入分布式存储系统进行统一管理,为航天器提供统一、面向逻辑接口、在轨可重构的高可靠数据存储服务。

猜你喜欢

存储系统路由分布式
新一代分布式母线保护装置
分层式大数据存储系统缓存调度策略与性能优化
分布式空战仿真系统设计
数据通信中路由策略的匹配模式
基于深度学习的分布式安全日志分析方法
OSPF外部路由引起的环路问题
家用太阳能分布式光伏并网发电系统研究
天河超算存储系统在美创佳绩
路由重分发时需要考虑的问题
面向4K/8K的到来 存储该怎么办?