大数据存算分离研究和实践——存算分离架构与存算一体架构之比较
11
星期一
2021年1月
验“金”室
企业的数字化转型离不开大数据的加持,近年来,随着大数据应用的广泛普及,传统的存算一体架构弊端逐步显现。例如,随着时间推移,数据量逐渐增加,导致经常出现扩容的需求,而计算存储合一方案要求扩容磁盘必须带上计算节点,计算需求没有明显增长,导致计算资源浪费越来越严重。再比如,存储容量缓慢线性增加,但业务高峰期与低峰期计算资源变化很大,计算资源无法随业务量增长和降低进行独立扩缩容。所有这些都会造成硬件成本陡增,带来机房、功耗、制冷等运维成本增加。从业务需求和大数据技术发展趋势看,大数据计算与存储分离已势在必行。
一、存算一体化架构
1.集群运维
单集群租户隔离不完全,资源调度存在互相影响性;集群故障风险随着集群规模增大而剧增,节点版本升级迫使全量业务升级,影响范围大;集群扩容缩容需人工确认集群状况,无法达到灵活高效;存储采用预留水位模式,容易浪费,不同集群数据无法共享,存在大量重复保存情况。
图1 传统存算一体化架构
2.数据运用
传统协议模式下,HDFS无法提供多种协议支持,多应用场景数据流动较乱,数据难以共享;数据割裂造成管理成本增加,需要通过不同软件管理多套存储。
图2 传统协议模式
3.资源调度
传统调度依赖于Yarn,没有集群自动扩缩容能力,且集群扩缩容以设定的vcore和指定特定的内存与存储配比为单位,计算资源与存储资源耦合,扩容容易造成资源的浪费。
图3 传统Yarn调度
4.副本机制
传统存算一体架构采用三副本直接存储至本地盘,通过数据过度冗余方式达到数据可靠性,自建集群规模受制于成本、总吞吐量有限,受制于元数据存储性能,单Block一般为64M,单Block完整存于3块硬盘,读写受硬盘物理吞吐量限制。
图4 标准Hadoop存储架构
二、存算分离架构
存算分离方案针对存算一体架构的弊端做出改进,具有以下优点:
1.集群运维
存算分离方案提供了集群隔离和物理多租的能力,有效降低故障域;支持多版本共存,避免了大规模升级的人力物力浪费;计算集群和存储集群支持独立自动弹性伸缩,极大提升灵活性;多集群可以使用一份共享数据,解决数据重复存储的问题。
图5 集群运维
2.数据使用
集群内部提供一份数据支持多种协议的能力,数据只保存一份,避免数据多次拷贝,提高分析效率,且节约数据保存成本,简化接入和使用流程。
图6 一份数据支持多种协议
3.资源调度
在存算分离方案中,资源调度依赖于K8s,去除单独Yarn开销,提升资源利用,可以同时支撑多业务集群调度(大数据、AI、云原生微服务),深度集成了计算集群节点自动扩缩容能力,充分发挥出云计算的优势。
图7 基于K8s调度
4.存储层
存储层采用条带化数据存储,数据分条(256K~512K)相比于原生64-128MB BlockSize,数据分散到更多的存储磁盘上,存储池可供给TPS响应能力更强,条带化单文件切分更细,使数据访问能够使用更多磁盘的性能条带化数据优势,实现超过本地盘的性价比能力。
图8 条带化数据存储
存储池和计算算力资源解耦,存储池动态按需扩容,并对业务无感知;存储池所在的存储集群有着规模效应,成本优势逐步显现。
存算分离方案采用纠删码(Erasure Coding,EC)代替三副本,保障数据可靠性。纠删码是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的位置,比如磁盘、存储节点或者其他地理位置。纠删码在故障恢复时会消耗大量的网络带宽和CPU处理能力,但在容错能力和存储效率上占有很大优势,能够以比较小的数据冗余度获得更高数据可靠性。
图9 纠删码代替三副本
三、总结
全新的存算分离架构可实现计算、存储资源在线分配与回收,快速响应资源灵活使用的需求,实现资源随时申请,随时使用;一份数据支持多集群共享、支持多协议访问,同时能够确保很好的数据可靠性。存算分离架构相比存算一体架构,具有性能与成本最优、兼具灵活性等特点,能够有效支撑企业大数据智慧化转型。
往期推荐
FCC30+
长按左边二维码
关注我们不迷路