当今社会是一个数据社会,从2010 年开始,全球数据总量已经进入ZB 时代,随着视频监控向高清化、智能化的发展,随着移动互联网和物联网的兴起,由各类传感器产生的数据量和数据种类正在加速增长,根据IDC 监测,全球数据量大约每18 个月就会翻一番(这大概也可以称之为数据摩尔定律吧),预计到2020 年,全球数据量将达到或超过40ZB,人类社会正处于一个数据爆炸的时代,或者大数据时代,对这些海量数据的存储、管理和利用,促进了云计算技术的发展,而云存储作为云计算概念的一种具体表现形式,也得到了极大的发展。
相对传统存储而言,云存储改变了数据垂直存储在某一台物理设备的存放模式,通过宽带网络(比如万兆以太网或Infiniband技术)集合大量的存储设备,通过存储虚拟化、分布式文件系统等技术将位于各单一存储设备上的物理存储资源统一管理,构成逻辑上统一的存储资源池对外提供服务,从而在存储容量上得以从单设备PB 级扩展至数十PB乃至数百PB,并且,由于云存储系统中的各节点能够并行提供读写访问服务,系统性能随着业务节点的增加而获得显著提升。同时,通过数据冗余编码技术、业务快速接管技术,提供相对传统存储设备更高的系统可用性。容量和性能的可扩展性、系统高可用性,是云存储系统最核心的技术特征。
通常,从云存储的技术实现层次上看,从底层向上,可以分为存储层、管理调度层、访问接口层、业务应用层等四个层次,如上图所示:
云存储技术实现层次
其中存储层是云存储的基础,存储设备可以是FC 光纤通道设备,也可以是基于IP的ISCSI 存储设备或者NAS 系统,在一个云存储系统中,底层物理存储设备数量庞大,而且设备形态理论上也允许异构,在物理存储设备之上是一个统一的存储设备管理层,实现对物理存储设备的逻辑虚拟化管理、状态监控和维护等功能。
管理调度层是云存储最核心的部分,这一层次协调各底层存储设备实现对数据的多副本或冗余编码计算、分散存储、负载均衡等功能,在常见的云存储系统中,通常采用分布式文件系统或者对象存储来实现。不过,在具体实现时,该层的功能也可能上移,位于访问接口层和应用服务层之间,甚至直接嵌入到业务应用层中,和业务应用紧密结合,形成业务专用云存储。
访问接口层是业务应用和云存储平台之间的一个桥梁,提供应用服务所需要调用的函数接口,由于云存储系统往往需要支持多种不同的业务系统,往往需要提供多种访问接口,例如ISCSI、NFS、CIFT、FTP、REST 等。
业务应用层通过云存储系统提供的各种访问接口,对用户提供丰富的业务类型,例如公有云存储提供的网盘服务、数据归档服务、高清视频监控服务等。部分云存储系统也会在这一层实现管理调度层的功能,将业务数据的冗余编码、分散存储、负载均衡、故障保护等功能和各种业务的实现紧密结合,提供非常极具特色的业务应用,和云存储系统的核心功能在管理调度层实现的通用云存储相对应,此类云存储系统的核心功能在应用层实现,可以归类为应用云存储,例如宇视公司的视频监控云存储CDS(Cloud DirectStorage)解决方案,可以为用户提供极其丰富的视频监控业务。
CDS 解决方案继承了宇视科技视频ISCSI块直存高性能的优点,采用宇视最先进的裸数据存储技术,可极大程度发挥存储设备读写性能,实现云存储中的秒级检索和回放,通过采用标准的IPSAN 设备,通过CDV 存储虚拟化组件,构成全局统一的虚拟存储空间,系统支持海量的云存储节点管理能力,可管理高达2048 个存储节点,支持动态扩容和缩容,通过云存储管理服务器对物理存储资源进行实时动态监控,支持节点间负载均衡和故障业务重新调度,提供不间断的视频和图片存储服务。同时也能提供视频实况、视频点播回放、报警管理、布防撤防、地图应用等多种视频业务。
应用云存储和业务深度结合,针对业务特点选择适合的存储模式,往往能提供非常优异的业务访问性能,但通常各厂家实现方式各有不同,难以互通或者供第三方开发新的数据处理业务,因此,应用云存储系统比较适合业务种类较少,业务模型相对固定的应用场合。而一个云存储系统中,不仅会存储海量的数据,而且需要对这些数据进行分析和利用,这往往需要集合多个专业厂商来进行各自擅长领域的业务开发,因此,系统的开放性、接口的标准化,则成为云存储系统建设的重要需求,在这种云存储系统中,由管理调度层实现的云存储的核心功能则直接在存储层之上实现,再通过访问接口层为业务平台提供通用的访问接口,如ISCSI块存储访问接口、POSIX 文件访问接口、RESTFUL 接口等,而业务应用开发则无需再考虑数据冗余、分散存储、负载均衡等存储专属特性,而集中在业务应用本身的功能特性方面,例如视频监控系统中的智能识别、卡口计数等,这种云存储系统与具体的应用耦合程度较低,具有更好的通用性,可以认为是一种通用云存储。目前通用云存储的应用主要以分布式文件系统和对象存储的方式出现,由于人类发展过程中产生的数据绝大部分都是以文件形式存在,因此云存储系统以分布式集群文件系统的方式出现是一个必然的选择,而随着宽带移动互联网、WEB 技术的发展,对象存储系统也越来越多地出现在网盘、数据归档等应用中。
在一个通用云存储系统中,都需要通过横向扩展存储节点来解决大量数据的存储容量和读写访问性能问题,而其中最关键的问题,是解决记录数据逻辑位置和物理位置之间的映像关系的可靠性存储和高性能访问问题,也就是元数据的存储与访问问题,当然,元数据还记录着文件或者对象的访问权限、属性、访问时间等其他信息。元数据的处理好坏,将极大地影响系统的整体性能和可扩展性。一般而言,根据对元数据的管理模型,可以将通用云存储系统分为三种类型,即集中式元数据、分布式元数据和无元数据三种类型的系统。
集中式元数据云存储系统是一种典型的非对称式系统,在系统中,通常具有一个中央元数据管理服务器,负责元数据的存储和处理查询与修改请求,例如,在HDFS 系统中,该元数据管理服务器即为名字节点Namenode,同时,存在大量的数据存储节点提供客户I/O数据的并行存储与访问。这种架构中,客户端每次对数据流的I/O 操作,都需要先向元数据管理服务器进行元数据查询,客户端在获得需要读写的数据块物理位置等信息后,对于数据的I/O 操作则直接在客户端和数据存储节点之间进行。相对传统存储系统,集中元数据云存储系统将控制流和数据流进行了分离,系统在扩展性和处理性能方面获得了较大的提升,同时,由于元数据集中在一台服务器上进行管理,整个系统架构比较简单,降低了系统设计的复杂性,目前业界采用这种架构的系统主要有GFS、HDFS、Lustre 等。
不难看出,虽然集中元数据云存储系统架构简单,但会存在两个主要的问题:
性能瓶颈问题。元数据的基本特性要求任何时候对用户数据的访问,都需要同步地修改元数据,例如,即使是对文件进行读操作或者列出目录操作,都需要更新元数据中的文件访问时间属性。由于每次I/O 访问都需要首先访问元数据服务器,以便实现对系统命名空间进行解析、数据定位和访问对象权限控制等,然后才能够对用户数据进行I/O 操作,随着系统规模不断扩大,需要管理的存储节点、文件数量、I/O 操作数量等都会急剧增加,而对元数据进行管理的物理服务器性能有限,从而形成性能瓶颈,这种性能瓶颈在大量小文件访问时会更为突出。为解决这一问题,人们通常会采用更高性能的CPU,并且采用SSD 来加速对元数据的访问,虽然能够在一定程度上提升元数据访问性能,但往往成本高昂,且提升效果有限,系统性能随存储节点数量增加只能呈现对数方式提升而无法线性提升。
元数据服务器单点故障问题。在集中元数据云存储系统中,整个系统的性能和可靠性完全依赖于元数据服务器,一旦元数据服务器故障,系统将无法提供任何服务,因此,元数据服务器就是整个系统中的潜在单点故障点。为解决这一问题,通常对元数据服务器采用备机形成HA 解决方案来提供更高的系统可用性,一旦主用元数据服务器故障,备用元数据服务器可以替代主用服务器提供对元数据的访问操作,主用服务器和备用服务器之间的元数据必须随时同步,否则一旦主用服务器故障,则可能导致数据不一致问题,但元数据同步操作会进一步加重了元数据服务器的性能负担,导致整个系统的访问性能受到拖累。
为了解决集中元数据系统中的性能瓶颈和单点故障问题,一种改进后的分布式元数据云存储系统得以出现,这种系统采用多台元数据服务器形成集群工作的方式提供元数据访问服务,集群中的每一台设备都可以提供元数据访问,从而提高整体访问性能,并且解决了元数据服务器单点故障问题。在实际设计中,分布式元数据服务器通常和数据存储节点集成到一起,形成全对称分布式架构,EMC 公司的Isilon OneFS 是这一架构的典型代表。
分布式云存储系统需要在所有元数据存储节点之间进行元数据同步操作,这大大增加了系统设计的复杂性,如果元数据没有及时得到同步,或者遭到意外破坏,则会出现同一文件或者对象的元数据不一致,进一步导致上层应用在通过不同物理服务器访问文件或对象数据时出现数据不一致或者读写错误的问题,这种风险随着云存储系统规模的扩大而大幅增加。
此外,由于分布式元数据系统需要在大量节点之间进行元数据同步,同步过程需要采用各种加锁机制,以确保数据的一致性,加锁机制的存在导致很多任务处理无法并行进行,元数据同步也会对后端带宽带来开销,二者都会带来系统性能上的额外开销,部分抵消由于采用分布式元数据存取带来的性能提升,且系统规模越大,性能开销越显著。为了降低性能开销,通常需要为节点配置高性能CPU、SSD或者高性能SAS 或FC 硬盘阵列来提供元数据访问,并且采用分布式共享内存和高性能后端网络(如Infiniband 或万兆以太网)来加速元数据同步速度,不过这样就显著提升了系统的硬件成本。
既然元数据总会带来性能开销和可靠性问题,第三种云存储系统则彻底抛弃元数据,而是采用算法来对文件或对象进行定位,并将该算法集成在每一个存储节点上,客户端从任何一个存储节点进行数据访问都会获得同样的结果,云存储系统中的每一个存储节点都可以独立、并行地对外提供服务,从而真正实现性能随节点数增加而线性扩展,由于无需在节点间进行元数据的同步操作,极大地提高了系统的稳定性和可靠性。
宇视科技的UCS(Unified Cloud Storage)统一云存储系统是在视频应用云存储CDS 解决方案之外提供的更为通用的云存储解决方案,它是一种采用无元数据设计的全对称分布式存储系统,通过UVFS 分布式文件系统实现对存储资源的虚拟化统一管理,对外提供各种标准软件接口,无需集成特殊软件客户端到前端设备(例如IPC),也无需前端应用设备在数据保护方面做额外的开发工作,对于数据的保护功能完全在存储卷层面实现,具有架构简单、高性能、高扩展性、高可用性、开放性等特点,如下图所示:
宇视全对称分布式UCS 通用云存储
具有以下显著特征:
■全局统一的命名空间
■无元数据全对称分布式设计,智能哈希算法数据定位,并行任务处理,系统性能随节点数增加而线性提升
■灵活、高效的系统扩展能力,最大可横向扩展256 个存储节点,管理数十PB 存储空间
■支持节点间故障保护、负载均衡,任一节点故障,剩余节点均可继续提供客户端无感知的数据读写服务
■基于卷提供多种数据分布和保护策略,如N+M 纠删码、多副本、高性能分布式存储等
■继承宇视在传统存储上的长期积累,支持多种RAID 类型,提供更高性能的块级底层数据保护
■存储节点支持掉电数据保护功能,已写入文件系统buffer 的数据在掉电时能得到妥善保存
■支持ISCSI、NFS、CIFS、FTP、HTTP、REST 等多种标准访问接口
UCS 统一云存储解决方案可广泛用于高清视频监控系统、警用执法仪在线存储、警情视频库归档系统等,为智慧城市、平安城市建设提供大数据、云存储解决方案。