应用云存储和业务深度结合,针对业务特点选择适合的存储模式,往往能提供非常优异的业务访问性能,但通常各厂家实现方式各有不同,难以互通或者供第三方开发新的数据处理业务,因此,应用云存储系统比较适合业务种类较少,业务模型相对固定的应用场合。而在智慧城市的建设中,一个云存不仅会存储海量的数据,而且需要对这些数据进行分析和利用,这往往需要集合多个专业厂商来进行各自擅长领域的业务开发,因此,系统的开放性、接口的标准化,则成为云存储系统建设的重要需求,云存储的核心功能应直接在存储之上实现,再通过访问接口层为业务平台提供多种通用的访问接口,如ISCSI块存储访问接口、POSIX文件访问接口、REST对象访问接口等,而业务应用开发则无需再考虑数据冗余、分散存储、负载均衡等存储专属特性,而集中在业务应用本身的功能特性方面,例如视频监控系统中的车型识别、卡口计数、图像浓缩等,这种云存储系统与具体的应用耦合程度较低,具有更好的通用性,可以认为是一种通用云存储。
在现在比较流行的云存储架构中,根据对元数据的管理模型,可以将通用云存储系统分为三种类型,即集中式元数据、分布式元数据和无元数据三种类型的系统。
集中式元数据云存储系统是一种典型的非对称式系统,在系统中,通常具有一个中央元数据管理服务器,负责元数据的存储和处理查询与修改请求,例如,在HDFS系统中,该元数据管理服务器即为名字节点Namenode,同时,存在大量的数据存储节点提供客户I/O数据的并行存储与访问。这种架构中,客户端每次对数据流的I/O操作,都需要先向元数据管理服务器进行元数据查询,客户端在获得需要读写的数据块物理位置等信息后,对于数据的I/O操作则直接在客户端和数据存储节点之间进行。相对传统存储系统,集中元数据云存储系统将控制流和数据流进行了分离,系统在扩展性和处理性能方面获得了较大的提升,同时,由于元数据集中在一台服务器上进行管理,整个系统架构比较简单,降低了系统设计的复杂性,目前业界采用这种架构的系统主要有GFS、HDFS、Lustre等。
不难看出,虽然集中元数据云存储系统架构简单,但会存在两个主要的问题:
性能瓶颈问题。元数据的基本特性要求任何时候对用户数据的访问,都需要同步地修改元数据,由于每次I/O访问都需要首先访问元数据服务器,随着系统规模不断扩大,需要管理的存储节点、文件数量、I/O操作数量等都会急剧增加,而对元数据进行管理的物理服务器性能有限,从而形成性能瓶颈,这种性能瓶颈在大量小文件访问时会更为突出。为解决这一问题,人们通常会采用更高性能的CPU,更大的内存,并且采用SSD来加速对元数据的访问,虽然能够在一定程度上提升元数据访问性能,但成本极其高昂,且提升效果有限。
元数据服务器单点故障问题。在集中元数据云存储系统中,整个系统的性能和可靠性完全依赖于元数据服务器,一旦元数据服务器故障,系统将无法提供任何服务,因此,元数据服务器就是整个系统中的潜在单点故障点。为解决这一问题,通常对元数据服务器采用备机形成HA解决方案来提供更高的系统可用性,主用服务器和备用服务器之间的元数据必须随时同步,否则一旦主用服务器故障,则可能导致数据不一致问题,但元数据同步操作会进一步加重了元数据服务器的性能负担,导致整个系统的访问性能受到拖累,而且也无法彻底解决脑裂问题。