分布式存储在运营商中的应用与研究
2023-03-09孙淳晔庞亚南邓芳
[孙淳晔 庞亚南 邓芳]
1 引言
随着IT 技术的不断发展,企业的IT 基础架构向云化与资源池方向演进,易部署、管理、维护的云化架构将成为主流的应用架构,其中尤以存储技术的变化最为巨大,随着SDS 存储技术的成熟,其承载的关键业务负载渗透率持续提升,越来越多的企业数据将会存储到弹性分布式存储。
2 分布式存储发展趋势
纵览运营商近几年的存储发展趋势,传统集中存储逐渐萎缩,分布式存储快速推广,存储设备已经从专有设备向简单管理,支持大规模线性扩展的通用设备过渡,并且大视频、大数据、数字化业务等新兴业务的全面云化部署,存储的数据量级也在呈指数倍趋势增长,为未来分布式云存储的普及提供了环境。
对于运营商,经过近些年去IOE 思路下的发展建设,IT 基础设施走向全面云化,同时随着降本增效诉求的提出,具备弹性扩展,大容量的分布式成为存储产品的首选。
3 分布式与传统存储对比
如图1 所示,分布式存储是将数据分散存储在网络上的多台独立设备上,一般采用标准X86 服务器和网络互联,并在其上运行相关存储软件,以多副本或纠删码策略提供安全保障,系统对外作为一个整体提供存储服务[1]。传统集中式存储主要以FC-SAN 存储为代表,该类存储主要由控制器和多个硬盘框组成。
图1 传统存储与分布式存储架构对比
从技术特点的角度考虑,如表1 所示,从扩展性,经济性,管理性三方面对分布式存储系统和传统存储系统进行了对比。
表1 技术特点对比
(1)扩展性
传统集中式存储典型特点为采用双冗余控制器。在数据量较小并且增长量很小时,性价比相对比较突出,当数据量显著增大时由于控制器瓶颈造成性能受限。设备处理能力上限在购买时已经确定,如果需求超过上限,需重新购买更高性能的设备,浪费已有投资。
分布式存储是面向大数据时代而设计的产品,此类产品打破了传统存储架构,由大量的存储节点组成存储集群系统,每个节点既是控制器又是磁盘笼,存储节点可以从几个节点到上千节点,存储性能、前后端口IO 性能都随着存储空间的增长而成比例地增加,适合数据量快速膨胀的场景[2]。
(2)经济性
传统集中式存储初期采购成本价格高昂,一次性采购未来一至二年的预估容量和性能。当设备维保到期后,由于集中式存储采用厂商独有磁盘等部件,后期续保费用高昂。
分布式存储由于采用商用标准X86 服务器,采购成本低廉,闲置的服务器同样可以进行利旧使用。X86 服务器采用标准的硬件平台,后期更换部件成本低廉。
(3)管理性
传统存储发生业务迁移时需要专门的迁移方案,甚至发生软硬件采购费用,割接时业务发生中断,影响业务,而分布式存储则自动在线完成数据重分布,并提供QoS流控制,不中断业务。
4 分布式存储分类
(1)按服务类型分类
分布式块主要是通过RAID,卷管理等技术将物理裸空间映射为逻辑空间,以磁盘块为单位进行操作[3],操作系统层无感知,由于整合了较多的硬盘,提升了数据读写的并发性能,保证了IO 性能。主要适用于Docker 容器、虚拟机磁盘存储分配、日志存储等。
移动集团针对分布式块的分类如表2所示,用户根据适用场景进行性能、容量的均衡选择。图2 展示了分布式块存储场景分类。
表2 分布式块典配模型分类
图2 分布式块存储场景分类
为主机分配存储资源后进行文件系统挂载,造成存储映射的唯一性,分配给主机A 的存储一般情况不能共享给主机B,共享性较差。基于上述缺点,分布式对象、分布式文件存储得以推广应用。分布式文件存储如表3 所示分为容量型、性能型两类,类似于早期的NAS 存储,它主要用于文件共享,以文件为单位进行操作,采用NFS 或CIFS 命令集访问数据,通过TCP/IP 实现网络化存储,存储协议主要包括传统文件系统如Ext3、Ext4的POSIX接口,GlusterFS、HDFS 等非传统文件存储的接口类型,适合日志存储、有目录结构的文件存储等。
表3 分布式文件典配模型分类
分布式对象同时兼具块存储的高IO 性能及文件存储的共享优势,得以广泛的应用,目前业界流行的协议标准主要有AWS S3、OpenStack Swift 接口协议等,适合更新变动较少的数据如图片、视频存储等。
(2)按技术流派分类
随着分布式存储的普及,各厂商依托自身优势在SDS市场发力,梳理了当前的存储流派,主要分为三大阵营。
自主研发阵营,一般情况可提供纯软件的分布式存储解决方案,硬件为通用的集采设备,但厂商会有硬件推荐,以便得到更好的性能及可靠性;进一步可提供软硬一体的解决方案,厂商提供所有的软硬件一体机,由于软、硬件资源均由厂家自研提供,参数方面调优较佳,会比纯软产品具备更优越的性能。
基于开源社区的二次开发,此类厂家基于原生态存储社区进行二次开发,或提供纯软存储方案或提供软硬一体存储方案,主要解决了原生态用于实际场景的易用性及兼容性问题。目前业界使用较为广泛的主要有Ceph、OpenStack、Gluster-FS 等开源架构。
厂商软件服务商绑定模式,由厂商提供专有定制硬件,由Linux 厂商提供软件服务并负责后期问题解决,厂商将二者进行打包售卖,主要以软硬一体方式为主。
5 可靠性保障机制
分布式存储的高可靠性主要是将文件切成对象并分布到不同节点的不同磁盘上,实现技术上主要通过多副本、纠删码方式。
(1)多副本
如图3 所示,多副本存储机制是指将一份数据拷贝多份完全一样的副本,分别存放在多个随机选择的不同节点上[4]。在部分节点发生故障时,通过存活节点复原原始数据。
图3 多副本存储机制
(2)纠删码
纠删码(Erasure Code)简称EC,是一种纠正数据丢失的校验码[5]。如图4 所示,其原理是将原始数据与编码数据共同随机分配到不同节点,在部分节点发生故障时反推得到原始数据。
图4 纠删码机制
N 表示原始数据的份数,M 表示校验数据的份数,这(N+M)份数据中,最多允许同时故障M 份数据。除了常见的M+N 纠删码之外,我们还经常见到一种N+M:b 的纠删码,称之为亚节点纠删码,其表示存储系统允许任意故障的最大磁盘数是M,或者允许任意故障的最大节点数是b,这两个任意性无法同时满足;同一节点上多于M 块磁盘甚至所有磁盘发生故障,相当于节点故障,与任意故障的磁盘数无关联。
(3)纠删码vs 多副本对比
如表4 所示,本文通过存储节点数量及空间利用率这两个性能指标对多副本和纠删码这两种容错机制进行了对比。
表4 容错机制对比
多副本:M 副本,M=2~4,空间利用率为1/M,任意允许故障的磁盘数或节点数为(M-1)。
纠删码:N+M∶b,空间利用率为N/(N+M),允许任意同时故障的磁盘数为M,或允许任意同时故障的节点数为b,推荐的最小节点数为[b(N+M)/M]+b。
无论多副本还是纠删码在设备选型时每个节点的硬盘数量和单盘容量建议相同,因为如果不同的话,就会出现水桶的短板效应,两个节点,一个节点配置8TB 硬盘,一个节点配置6TB 硬盘,8TB 硬盘只能当6TB 硬盘用。
应用中,如何选择还要结合具体的业务场景。性能要求高的关键业务,一般采用副本。如视频,影像存储等海量存储场景可以采用纠删码,提高存储系统利用率,对象存储系统中,索引池可以使用副本策略,而数据池可以采用纠删码,达到降低成本目的。
6 分布式存储发展定位
分布式存储应用越来越广泛,对标传统集中存储在生态方面仍存在一些不足,但随着SDS 技术的发展,相信在不远的将来,分布式将确立在存储界的统治地位。表5从可靠性,性能、效率、生态四方面展示了传统集中存储和分布式存储的现状,以及未来分布式存储的发展趋势。
表5 指标对比及未来发展定位
7 结束语
随着企业IT 架构的云化发展,分布式将取代现行中心式的架构,分布式计算、网络以及存储以及新的运维管理架构将成为未来技术的首选,同时我们也应该适时的考虑应用侧的改造。本文抛砖引玉对分布式存储的分类、技术及保障机制进行了分析说明,如何真正意义上实现向分布式架构的改造,充分发挥分布式的优势及性能才是运营商的最终目的。