简介
对于存储用户而言,存储系统的可靠性、性能、成本,是用户非常关注的几个方面。在传统的存储中,大多是采用RAID的方式,来保证数据的高可靠性;而在分布式存储系统中,HDFS(Hadoop Distributed File System)为了保证数据的可靠性默认数据存储策略是3副本,即在写入数据的时候,会占用该数据大小3倍的空间,这样就造成了大量的空间浪费。对此,HDFS引入在RAID磁盘阵列中已应用成熟的技术:EC(Erasure Coding,纠删码)。
EC
EC是一种技术。是指将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。如果把n+m份数据分布在存储系统的不同节点上,那么任意小于等于m个节点故障(m份数据失效),都可以通过其他剩余的数据还原出原始数据,从而达到不影响业务的目的。
[如将1个文件打散成很小的数据块(如128k、256k、1M等),然后将这些数据块打散存储于多个DN中,然后在另外的若干个DN中存储EC编解码算法生成的校验块。如果某个存储文件块的DN不可用后,将可以通过其他DN中存储的数据块和校验块反向计算出来这个丢失的数据块]
EC算法可以灵活配置,比如系统要满足支持2个节点同时故障,则m=2即可。从空间利用率上,EC是优于多副本的,以4+2为例,空间利用率为4/(4+2)=67%。这个利用率相当于三副本的2倍。而可靠性上,与三副本一样可以满足支持2个节点同时故障。
多副本
简单说,多副本就是一份数据以副本的方式写到多个分布式系统中的存储节点中。这种多副本的数据保护方式,一来实现简单,而来可靠性高。除非所有副本所在的存储节点都故障,才会影响业务;除此之外,可以从未故障的其他副本读取数据以保证业务。但是多副本的空间利用率偏低,以三副本为例,存储空间利用率为33%,这也增加了企业级用户的存储成本。
对比分析
在满足同等可靠性要求的前提下,从以下方面对EC和多副本进行对比分析,如下:
空间利用率 | 硬件成本 | |
---|---|---|
多副本 | 低 | 高 |
EC | 高 | 低 |
适用性
在可用容量上,EC的优势是较大的,比如4+2纠删码的利用率是66%,但3副本只有33%,两者差了2倍,8+2纠删码更可以做到80%!
在读写性能上,多副本往往会更高,因为纠删码在写入时涉及数据校验,而且可能会产生写惩罚,在读取时更会横跨多个节点。比如4+2纠删码在读取1个数据时,需要从4个节点分别读取4个分片再进行拼接,任何1个节点时延过高,都会对性能造成很大影响。而多副本只需要读取1个完整的分片即可,不涉及节点的数据拼接。这两者的性能差异在小块IO时会较为明显,但如果IO块比较大的话,比如1MB,那么两者的性能差距就会逐渐缩小,因为这时候写惩罚较少,纠删码也能很好发挥多个节点并发的优势.
综上所述, 在冷数据存储上, EC对比多副本有绝对性优势.
猜你喜欢
- 3小时前073:vue+mapbox 加载here地图(影像瓦片图 v3版)
- 3小时前【深度学习目标检测】十六、基于深度学习的麦穗头系统-含GUI和源码(python,yolov8)
- 3小时前HDFS 原理 详解
- 3小时前若依框架详细使用
- 3小时前【论文阅读笔记】4篇Disentangled representation learning用于图像分割的论文
- 3小时前科技助力养老变享老,内蒙古乌兰美康养院与清雷科技达成合作
- 3小时前iptables使用
- 3小时前TDengine Kafka Connector将 Kafka 中指定 topic 的数据(批量或实时)同步到 TDengine
- 2小时前手机游戏键盘怎么使用(手机游戏键盘如何使用)
- 32分钟前柠檬英语(柠檬英语复数怎么读)
网友评论
- 搜索
- 最新文章
- 热门文章