云存储技术解析:无存储 不智能

随着无人驾驶、机器人送餐等人工智能(AI)应用逐渐进入大众生活,再加上资本热潮的助推,AI的发展备受瞩目。不过,要真正实现AI从概念到落地,还必须具备足够的数据、足够的计算能力和足够的行业应用三个条件,而云计算恰好能满足这些要求。

当下,AI正与云计算进行深度融合,未来会变得更加智能,但在智能化的背后是对海量数据存储的刚性需求。据不完全统计,单是一辆无人驾驶汽车每秒产生的数据容量就在1G左右,相当于每秒发送20万封纯文本电子邮件或上传100张高清数码照片。因此,没有大容量和超稳定的存储系统,这一切都将无从谈起。无存储,不智能。为了更加清晰的了解云存储技术的实现过程,UCloud存储研发部将对云存储——对象存储(UFile)技术进行深度解析。

云存储技术解析:无存储 不智能1

对象存储UFile概念

对象存储(UFile)是为互联网应用提供非结构化文件存储的服务;相对于传统硬盘存储,UFile具有存储无上限、支持高并发访问、成本更低等优势;解决业务架构的文件存储问题,有效降低海量文件的存储成本,支持热点数据的高并发访问,提升终端用户访问体验。

单地域UFile存储架构六大集群

云存储技术解析:无存储 不智能2

ULB(UCloud Load Balancer) 实现外网的对接及接入层的负载均衡与容灾处理,该模块通过定期向接入层模块端口发送心跳以检测接入层模块的可用性,发现异常模块及时进行剔除;

接入层提供文件访问服务,该模块为无状态设计,因此可以平行扩容及缩容;

索引层保存文件对象的元数据信息,包括对象名称、对象大小、创建时间、存储位置等;

存储层是实际存储文件数据的模块集群,主要实现文件数据的多份分布及高可靠存储;

数据处理层主要实现UFile图片及数据处理,包括图片的实时裁剪、缩放、旋转、水印、格式转换、信息获取等操作,客户还可以使用自己的通用计算镜像对数据进行处理;

名字服务主要实现索引层及数据处理层模块的容灾剔除,以上3个集群的模块会定期在名字服务注册自身服务,当其中有部分模块因机器异常或者网络中断导致无法提供服务时,名字服务会将该机器从名字中剔除,并且通知接入层,从而实现后台模块的容灾剔除。

重点设计解析

云存储技术解析:无存储 不智能3

UFile索引层设计

UFile索引层为一套分布式KV存储系统,其主要目标是保证UFile对象元数据的高性能、高可靠、高可用及可扩展的存储,其主要分成两层架构:

索引接入集群解决索引存储集群的管理及元数据的分布,这一层模块为无状态设计,通过名字服务实现异常状态的容灾剔除;

索引存储集群实现对象元数据的分布式存储,每个对象元数据将存储3份,保证数据的可靠性及高可用性,同时对象存储采用SSD(固态硬盘)作为存储介质,也保证了元数据存储的高并发低延时访问特性。另外,该模块采用固定集群规模的方式进行管理,每个集群支撑的存储量、访问量固定,存储可实现以集群为单位的水平扩容,保障业务不断增长情况下的高性能稳定访问支持。

云存储技术解析:无存储 不智能4

UFile存储层设计

存储层包括三种类型模块集群:

· 存储节点,该模块按照固定大小的集群(称为“Set”)进行组织和管理,每个集群支撑的存储量及访问量规格固定,同时该模块可根据存储量需求横向进行无限扩展,从而满足客户无存储量上限的数据存储需求。每个对象数据在存储层存储三份数据,通过对异常情况的及时处理和坏盘的及时修复,保证数据极高的可靠性(99.99999999%);

· SetMaster,该模块进行Set状态的管理,接入集群通过SetMaster决定上传对象数据的存储集群,并执行数据的存储操作;