铁路综合视频监控系统云存储技术应用研究

2021-10-19 05:38张天宇张利飞
铁道通信信号 2021年9期
关键词:存储设备存储系统磁盘

张天宇,宋 明,张 强,张利飞

随着大数据、云计算、物联网等技术的快速发展,铁路综合视频监控系统规模迅速扩大,现有视频图像系统的规模、架构、系统应用已不能满足新形势的要求,铁路综合视频云存储系统的搭建势在必行。

1 技术概述

云存储技术是云计算技术在概念上的扩展和延伸。云计算是一种基于Internet 的计算,以分布式计算、网格计算为基础,融合负载均衡、并行计算、虚拟化、网络存储等技术。而云存储则是一种云状结构的存储系统,通过集群应用、分布式文件等技术,将网络中不同类型的存储设备集合进行协同工作,并通过协议接口对外提供业务访问和数据存储备份等工作[1]。云存储技术能够很好地处理数据冗余和复制,具有良好的可扩展性,可以有效节约成本,提高部署效率。当云计算系统处理的计算和业务是对大量数据进行存储和管理时,云计算系统即可看成为云存储系统。云存储系统功能结构见图1。

图1 云存储系统功能结构

相比于仅含有硬件资源的传统存储,云存储系统集合了网络设备、存储设备、服务器、公网访问接口和用户客户端程序等多个部分,其功能结构可分为4 层:第1 层为存储层,可以由多种不同类型的存储设备构成,由一个统一的管理平台进行管理,用于实现设备虚拟化、多链路冗余优化和设备状态监控及维护;第2 层为基础管理层,是最核心的部分,通过集群、网格计算和分布式文件系统,实现存储设备的协同工作,提供良好的设备访问性能,并通过内容分发系统、数据加密技术和多种备份容灾措施,保证数据的安全性、完整性和稳定性;第3 层为应用接口层,对外提供各种应用服务;第4层为访问层,提供用户不同的访问权限。

2 系统结构

目前,云存储系统已在京张和京雄2 条新建线路进行部署,满足《铁路综合视频监控系统技术规范》[2](Q/CR 575-2017)的相关技术要求。现有铁路视频监控用云存储系统结构见图2。

图2 现有铁路视频监控用云存储系统结构

系统采用的是分布式存储Ceph 框架。Ceph 是一个高度集成的框架,将云存储需要的各个层级进行整合,主要由基础管理层的监视器设备、元数据存储设备和存储层的对象存储设备构成。其中,对象存储设备负责对数据进行存储、复制、转发和恢复,并定时上报给监视器设备;监视器设备负责对集群进行检测维护,对集群中的成员进行管理,并对成员属性相关的信息进行分发,当有新的数据需要进行存储时,会根据对象身份信息和当前存储状态分配存储地址;元数据存储设备主要针对于文件存储,一般情况下不使用。

除了直接访问外,Ceph 对外提供以下存储接口[3]。

1)Radosgw(对象存储接口):提供Restful(表述性状态转移)接口,可以绑定多种编程语言,兼容S3(AWS 内的对象存储) 和Swift(openstack内的对象存储)接口。

2)Rbd(Rados 块存储):物理主机和虚拟机可直接作为磁盘挂载,内置了容灾机制。

3)CephFS(文件系统):提供POSIX 兼容的网络文件系统CephFS,专注于高性能、大容量存储。

3 系统算法

Ceph采用Crush算法(基于伪随机控制数据分布、复制的算法)替代分布表,最大化地分离数据与元数据管理,数据存储位置都是通过计算获得,而不是查询专门的元数据服务器,缓解了Hash 算法处理存储设备增删时带来的数据迁移问题[4]。此外,Ceph 采用了动态子树区分的元数据集群架构,其智能分配职责可在几十个甚至上百个元数据集上管理文件系统目录结构,将一个动态的分区保留在每个元数据集工作负载中,有效促进了更新和预取,提高了工作负载性能[5]。

3.1 数据冗余

Crush 算法支持多副本和纠删码(EC)2 种数据冗余技术。

多副本技术采用对数据进行切片[6]的方法进行划分,再将每个切片生成多个副本存储于不同的节点中。在高并发访问时,系统能够从最近的节点获得数据,从而在保证数据可靠性的基础上有效提高系统性能;但是会占用过多的磁盘资源,能耗较高,有效利用率较低。以三副本为例,存储空间利用率仅为33%。

纠删码技术是通过数据计算的方式来实现高可用性[7]。当前铁路视频监控系统云存储就是采用该技术进行数据冗余存储。假设,源数据总数为n,冗余级别为n+m,表示该系统中有m个校验块。m个校验块由n个源数据块计算出,然后将n+m个数据块分别存放在n+m个节点上。当系统中任意一个或多个节点发生故障时,可任意选取n个正常的数据块就可恢复源数据。当系统中2 个节点同时故障时,则m=2即可。从空间利用率上来看,EC优于多副本技术。以4+2 为例,空间利用率为4/(4+2)=67%,这个利用率相当于三副本的2 倍。从可靠性上来看,4+2 与三副本一样,系统可以允许2个节点同时故障[8]。

3.2 纠删码技术

目前,主要应用的纠删码有RAID(阵列纠删码)、RS(里德-所罗门类纠删码)和LDPC(低密度奇偶校验纠删码)。其中,LDPC 码在处理高错误率的输入数据时表现优异,而处理常用的低错误输入数据时会进行频繁修正,加大系统开销,因此LDPC码只在特定的场景使用[9]。

3.2.1 RS纠删码

RS 纠删码是最常用,也是云存储最具代表性的一种码。RS 是通过(n×m)编码矩阵,利用n个源数据块生成m个校验块。RS(5,3)编码过程见图3,其中B 为编码矩阵,向量D 为源数据,C1、C2、C3为生成的校验数据块[10]。

图3 RS编码过程

当系统或磁盘故障造成数据块丢失时,通过等式两侧同乘矩阵B的逆矩阵来进行恢复。例如,当数据块D2、D3和校验块C1丢失时,删除编码矩阵B 中丢失的数据块和编码块所对应的行,形成新的编码矩阵B1,见图4。

图4 数据块D2、D3和校验块C1丢失时的编码矩阵

等式两侧同乘矩阵B1的逆矩阵B1-1,可以恢复数据块D2、D3,如图5所示。最后再对恢复的数据块重新进行RS编码得到校验块C1。

3.2.2 RAID纠删码

RAID 是由多个磁盘驱动器构成的存储空间[11]。虽然由多个磁盘构成,但是对于计算机系统可看作是一个存储空间。RAID 可以将相同数据镜像存储于多个磁盘,因此读取和写入都需要同时调用多个盘。传统铁路视频数据存储一直采用RAID 来保证数据的可靠性。当单个磁盘损坏需要重构时,RAID 根据剩下的磁盘中的校验数据恢复损坏磁盘中的数据。虽然RAID 这种牺牲存储空间来换取可靠性的方式保证了数据的完整性,但同时也使磁盘的空间利用率降低,因此在应用中要结合实际需求进行设计。

3.2.3 RS与RAID对比

RS 和 RAID 技术[12]的实现方法类似,一段完整的数据由n个数据块和m个校验块构成。二者的对比如下。

1)RS 的校验块和数据块的比例按n+m可调整。比如,RAID6 最多2 个检验块,而RS 可以是3个、4个甚至更多。

2)RS采用多对多的重构技术,重构时间可缩短至分钟级。而RAID 的磁盘重构时间则需要花费数小时。

3)相对于RAID,RS 不需要准备单独的热备盘,当磁盘有足够的剩余空间时,剩余空间均可作为热备盘直接参与读写。

RS 码很大程度上减少了存储开销,在进行数据重构时虽然缩短了大量时间,但是会占用大量的网络传输资源。通过纠删码原理可知,对于采用n+m的纠删码,当出现磁盘故障需要进行重构时,修复一个数据块需要进行n倍的数据读写,这样会占用磁盘大量的I/O 资源,使磁盘瞬时读写压力增大,破坏磁盘集群的稳定性。

4 改进建议

在实际应用中可尝试对磁盘进行划分,采用局部修复码(LRC)技术,在RS 的基础上进行优化,从而降低修复带宽和磁盘I/O。

LRC 是一种双层结构码,由全局校验码和局部校验码构成[13]。LRC(n,m,l)表示源数据块数为n,全局校验码块数为m,局部校验码块数为l。全局校验码的生成同纠删码类似,通过n个源数据块生成。局部校验码则由各个分组中的源数据块生成。LRC(12,2,2)码原理图见图6。

图6 LRC(12,2,2)码原理图

首先12份源数据块D1,D2,…,D12通过RS编码生成2份全局校验数据E1和E2。然后将12份源数据块分成2组,分别通过RS编码生成各自分组的局部校验块C1和C2。相比于采用RS 编码的RS(12,4),当1 个磁盘发生故障时,RS(12,4)需要12块数据才能恢复数据,而LRC(12,2,2)只需要6个数据块,磁盘I/O和带宽占用量减少了一倍。

因此对于原有采用n+m的RS 纠删码,当多个磁盘发生故障时,采用LRC 编码方式的平均磁盘I/O 缩小为原来的其中k为局部校验块个数,即源数据的分组数。因此,相应的带宽占用量也远小于RS编码。但采用LRC 码的弊端在于,过多的引入局部校验块不仅增加磁盘占用空间,而且会提高数据损坏的风险,因而在实际应用中需要合理设置。

5 总结

本文对当前铁路视频监控用云存储技术进行了分析,对北京—张家口、北京—雄安2 条铁路的云存储中所采用的Ceph 框架进行了介绍,并对在Ceph框架中应用算法的EC纠删码技术的实现进行了详细分析,并提出了采用LRC 技术对现有的云存储系统进行优化,从而降低修复带宽和磁盘I/O,有效地提高视频监控系统中云存储性能。

猜你喜欢
存储设备存储系统磁盘
分层式大数据存储系统缓存调度策略与性能优化
它的好 它的坏 详解动态磁盘
创建虚拟机磁盘方式的选择
解决Windows磁盘签名冲突
天河超算存储系统在美创佳绩
Windows系统下动态磁盘卷的分析与研究
基于Hadoop 的海量医药电商数据存储系统设计与开发
浅析计算机硬件发展史
浅析铁路视频监控存储设备设计
基于电池管理系统的数据存储系统设计