云存储技术的原理与架构解析
2016年07月12日 10:14 发布者:designapp
目前利用科技手段辅助城市管理的建设模式已经由以前的以视频监控为主的平安城市建设转向以多传感技术为主的智慧城市建设,在这一过程中,虽然当前主要的数据量仍然来自视频监控摄像头产生的图像数据,但由各类传感器产生的数据量和数据种类正在加速增长,例如各城市道路的交通流量信息、特种车辆的运行轨迹和车况状态信息、移动终端的身份采集信息等,对这些海量信息的存储、分析和利用,除了提供传统的安全防范、事后查证功能外,更为城市建设科学规划、科学管理提供了充分的数据基础,同时,在这样一个海量大数据的时代,对于数据的安全存储和应用也需要与之相适应的新的技术手段,而以分布式和并行处理为基础的云计算和云存储技术,在此过程中也得到了极大地发展。相对传统存储而言,云存储改变了数据垂直存储在某一台物理设备的存放模式,通过宽带网络(比如万兆以太网或Infiniband技术)集合大量的存储设备,通过存储虚拟化、分布式文件系统、底层对象化等技术将位于各单一存储设备上的物理存储资源进行整合,构成逻辑上统一的存储资源池对外提供服务,从而在存储容量上得以从单设备PB级横向扩展至数十、数百PB,由于云存储系统中的各节点能够并行提供读写访问服务,系统整体性能随着业务节点的增加而获得同步提升。同时,通过冗余编码技术、远程复制技术,进一步为系统提供节点级甚至数据中心级的故障保护能力。容量和性能的按需扩展、极高的系统可用性,是云存储系统最核心的技术特征。
通常,从云存储的技术实现层次上看,从底层向上,可以分为存储层、管理调度层、访问接口层、应用服务层等四个层次,如下图所示:
图1 云存储技术实现层次
其中存储层是云存储的基础,一台云存储节点设备通常能安装24个以上的硬盘,通常通过IP接口将大量的存储设备互连在一起形成存储设备资源池,在一个云存储系统中,底层物理存储设备数量庞大,而且设备形态理论上也允许异构(这样也可以接入传统的IP SAN或FC SAN),在物理存储设备之上是一个统一的存储设备管理层,实现对物理存储设备的逻辑虚拟化管理、状态监控和维护等功能。
管理调度层是云存储最核心的部分,这一层的主要功能是在存储层提供的存储资源上部署分布式文件系统或者建立和组织存储资源对象,并将用户数据进行分片处理,按照设定的保护策略将分片后的数据以多副本或者冗余纠删码的方式分散存储到具体的存储资源上去。同时,在本层还会在节点间进行读写负载均衡调度以及节点或存储资源失效后的业务调度与数据重建恢复等任务,以便始终提供高性能、高可用的访问服务。不过,在具体实现时,该层的功能也可能上移,位于访问接口层和应用服务层之间,甚至直接嵌入到应用服务层中,和业务应用紧密结合,形成业务专用云存储。
访问接口层是业务应用和云存储平台之间的一个桥梁,提供应用服务所需要调用的函数接口,通常云存储系统会提供一套专用的API或客户端软件,业务应用软件直接调用API或者使用云存储系统客户端软件对云存储系统进行读写访问,往往会获得更优的访问效率,但由于一个云存储系统往往需要支持多种不同的业务系统,而很多业务系统只能采用特定的访问接口,例如块接口或者POSIX接口,因此一个优秀的云存储系统,应该同时提供多种访问接口,例如ISCSI、NFS、CIFS、FTP、REST等,以便在业务适配方面具有更好灵活性。
业务应用层通过云存储系统提供的各种访问接口,对用户提供丰富的业务类型,例如高清视频监控、视频图片智能分析、大数据查找等。部分云存储系统也会在这一层的应用业务平台上实现管理调度层的功能,将业务数据的冗余编码、分散存储、负载均衡、故障保护等功能和各种业务的实现紧密结合,形成具有丰富业务特色的应用云存储系统,而在存储节点的选择方面,则可以采用标准的IPSAN、FC SAN或者NAS设备,例如宇视科技的视频监控云存储CDS(Cloud Direct Storage)解决方案就是这种应用云存储的典型代表。
图2 宇视CDS视频监控云存储架构
CDS解决方案继承了宇视科技视频ISCSI块直存高性能的优点,采用宇视最先进的裸数据存储技术,可极大程度发挥存储设备读写性能,实现云存储中的秒级检索和回放,通过采用标准的IPSAN设备,通过CDV存储虚拟化组件,并通过CDM云存储管理服务器集中统一管理底层的存储资源,构成全局统一的虚拟存储空间,当前端应用设备要进行读写时,首先向CDM请求可以访问的存储空间,并将数据离散存储到各底层标准的存储节点上去,当某一存储节点发生故障时,CDM会自动重新分配一个新的空间给前端设备进行访问,从而实现业务不停顿的读写。CDS系统支持海量的云存储节点管理能力,可管理高达2048个存储节点,支持动态扩容和缩容,提供不间断的视频和图片存储服务。同时也能提供视频实况、视频点播回放、报警管理、布防撤防、地图应用等多种视频业务。
应用云存储和业务深度结合,针对业务特点选择适合的存储模式,往往能提供非常优异的业务访问性能,但通常各厂家实现方式各有不同,难以互通或者供第三方开发新的数据处理业务,因此,应用云存储系统比较适合业务种类较少,业务模型相对固定的应用场合。而在智慧城市的建设中,一个云存不仅会存储海量的数据,而且需要对这些数据进行分析和利用,这往往需要集合多个专业厂商来进行各自擅长领域的业务开发,因此,系统的开放性、接口的标准化,则成为云存储系统建设的重要需求,云存储的核心功能应直接在存储之上实现,再通过访问接口层为业务平台提供多种通用的访问接口,如ISCSI块存储访问接口、POSIX文件访问接口、REST对象访问接口等,而业务应用开发则无需再考虑数据冗余、分散存储、负载均衡等存储专属特性,而集中在业务应用本身的功能特性方面,例如视频监控系统中的车型识别、卡口计数、图像浓缩等,这种云存储系统与具体的应用耦合程度较低,具有更好的通用性,可以认为是一种通用云存储。
在现在比较流行的云存储架构中,根据对元数据的管理模型,可以将通用云存储系统分为三种类型,即集中式元数据、分布式元数据和无元数据三种类型的系统。
集中式元数据云存储系统是一种典型的非对称式系统,在系统中,通常具有一个中央元数据管理服务器,负责元数据的存储和处理查询与修改请求,例如,在HDFS系统中,该元数据管理服务器即为名字节点Namenode,同时,存在大量的数据存储节点提供客户I/O数据的并行存储与访问。这种架构中,客户端每次对数据流的I/O操作,都需要先向元数据管理服务器进行元数据查询,客户端在获得需要读写的数据块物理位置等信息后,对于数据的I/O操作则直接在客户端和数据存储节点之间进行。相对传统存储系统,集中元数据云存储系统将控制流和数据流进行了分离,系统在扩展性和处理性能方面获得了较大的提升,同时,由于元数据集中在一台服务器上进行管理,整个系统架构比较简单,降低了系统设计的复杂性,目前业界采用这种架构的系统主要有GFS、HDFS、Lustre等。
图3 具有集中元数据管理的HDFS系统架构
不难看出,虽然集中元数据云存储系统架构简单,但会存在两个主要的问题:
性能瓶颈问题。元数据的基本特性要求任何时候对用户数据的访问,都需要同步地修改元数据,由于每次I/O访问都需要首先访问元数据服务器,随着系统规模不断扩大,需要管理的存储节点、文件数量、I/O操作数量等都会急剧增加,而对元数据进行管理的物理服务器性能有限,从而形成性能瓶颈,这种性能瓶颈在大量小文件访问时会更为突出。为解决这一问题,人们通常会采用更高性能的CPU,更大的内存,并且采用SSD来加速对元数据的访问,虽然能够在一定程度上提升元数据访问性能,但成本极其高昂,且提升效果有限。
元数据服务器单点故障问题。在集中元数据云存储系统中,整个系统的性能和可靠性完全依赖于元数据服务器,一旦元数据服务器故障,系统将无法提供任何服务,因此,元数据服务器就是整个系统中的潜在单点故障点。为解决这一问题,通常对元数据服务器采用备机形成HA解决方案来提供更高的系统可用性,主用服务器和备用服务器之间的元数据必须随时同步,否则一旦主用服务器故障,则可能导致数据不一致问题,但元数据同步操作会进一步加重了元数据服务器的性能负担,导致整个系统的访问性能受到拖累,而且也无法彻底解决脑裂问题。
为了解决集中元数据系统中的性能瓶颈和单点故障问题,一种改进后的分布式元数据云存储系统得以出现,这种系统采用多台元数据服务器形成集群工作的方式提供元数据访问服务,集群中的每一台设备都可以提供元数据访问,从而提高整体访问性能,并且解决了元数据服务器单点故障问题。分布式云存储系统需要在所有元数据存储节点之间进行元数据同步操作,这大大增加了系统设计的复杂性,在同步期间往往需要进行各种加锁,而加锁机制的存在导致部分任务难以并行运行,从而拖慢了整个系统的性能,此外,如果元数据没有及时得到同步,或者遭到意外破坏,则会出现同一文件或者对象的元数据不一致,进一步导致上层应用在通过不同物理服务器访问文件或对象数据时出现数据不一致或者读写错误的问题,这种风险随着云存储系统规模的扩大而大幅增加,同样,为了保证元数据同步的速度,需要采用高性能、大内存并且配备SSD的服务器,硬件成本非常昂贵。
第三种云存储系统则彻底抛弃元数据,而是采用算法来对文件或对象进行定位,并将该算法集成在每一个存储节点上,客户端从任何一个存储节点进行数据访问都会获得同样的结果,云存储系统中的每一个存储节点都可以独立、并行地对外提供服务,从而真正实现性能随节点数增加而线性扩展,由于无需在节点间进行元数据的同步操作,极大地提高了系统的稳定性和可靠性,在硬件成本方面,也相对低廉,可以用较低的建设成本获得较高的读写性能。
宇视科技的UCS(Unified Cloud Storage)统一云存储系统是在视频应用云存储CDS解决方案之外提供的更为通用的云存储解决方案,它是一种采用无元数据设计的全对称分布式存储系统,其存储节点可以提供16到60个3.5英寸硬盘槽位,无需额外添加服务器,底层采用对象存储机制,自动实现数据分片、冗余校验计算存储、节点失效业务接管、存储资源失效数据高速重建等功能,并且通过部署UniFS分布式文件系统对供标准的POSIX读写访问,对外提供各种标准软件接口,例如ISCSI、NAS、REST等,现有业务系统可以不经改造即可使用宇视科技UCS云存储系统。而如果全套业务系统均采用宇视设备,则可以在前端摄像机、管理服务器、智能分析服务器和UCS存储系统之间直接采用更为优化的CBI(Cloud Block Interface)接口,该接口继承了宇视科技上一代ISCSI视频监控直存解决方案的有点,根据云存储资源池的配置,直接在前端摄像机和访问服务器自动实现数据切片和离散存储,将大量的计算工作分布到数量众多的前端设备上,实现分布式计算,从而大大降低了存储系统本身的工作负载,显着提升了整个系统的能够承载的视频监控摄像机数量。同时,针对智慧城市建设需要的业务处理分析系统,也可以集成宇视提供的API或者客户端软件,实现对数据的并行读写,或者极高的性能体验。UCS统一云存储解决方案可广泛用于高清视频监控系统、公安案件视图库、警用执法仪在线存储、交通管理分析系统等,为智慧城市、平安城市建设提供大数据、云存储解决方案。
图4 宇视全对称分布式UCS通用云存储解决方案