根据有关统计,我们平均每天发送了5亿条推文、3000亿封电子邮件,每天在Facebook上创建了4 PB的数据,每个连接的汽车都会创建4 TB的数据,进行了50亿次搜索 。此外,一些相对落后的国家及地区还没有接入互联网,所以互联网的用户仍然会呈爆发式增长,互联网下产生的数据也毫无疑问会呈几何倍数增长 。预计到2025年,全球每天将创建463EB的数据 。
![分布式存储技术:数据分布与数据复制](http://img.yunnanlong.com/220624/0559154237-0.jpg)
面对海量的数据,传统的存储缺点也越来越明显,如扩展性差、单点故障等 。为了克服上述缺点,满足海量数据的存储需求,市场上出现了分布式存储技术 。
本篇文章主要和读者朋友们聊一聊数据分布与数据复制,数据分布是确定数据位置,数据复制是实现数据备份的关键方法 。
数据分布
数据分布,主要就是数据分片,它解决了确定数据位置的问题 。
1.数据分布的设计
在设计分布式存储算法时,我们主要考虑数据均匀、数据稳定、节点异构性、隔离故障域和性能稳定性等几个方面 。数据均匀:
分布式存储一般都是多台设备并行运作,这就要求在存储数据的时候尽量保证数据分配合理,例如说:有100G的存储数据,5个存储节点,就要尽量让每台设备存储20G的数据,而不是让1台设备存储100G,其它4台闲置;同时,当访问的数据量过大时,要保证每个节点的访问量均衡 。举个例子,如果在双十一当天,用户同时访问同一台服务器,阿里的服务器可能会崩坏,所以必须要让服务器分摊用户的访问,而不是让一台服务器执行这些操作 。
数据稳定:
数据的稳定性也是非常重要的一点,关于数据的稳定性,我们同样举例子,当有100G的存储数据,合理的存储在5个节点上,如果有一个存储节点发生了故障,那么这100G的数据是要重新分配到这4个节点上吗?如果这100G的数据重新分配到这4个节点上,可能会让存储的数据不稳定;为了保证数据的稳定性,最好的方法是,保持正常节点存储的数据不改变,而故障节点存储的数据重新分配到正常的节点上 。
节点异构:
不同的硬件设备,性能可能天差地别,如果每台设备分到的数据量、用户访问量都差不多,本质就是一种不均衡 。
隔离故障:
当数据进行备份时,不能让数据及备份数据分布到同一个节点上 。
性能稳定:
数据的存储、查询的效率要有保证,不能因为节点的添加和节点的删除造成性能的下降 。
2.数据分布的方式
我们最常见的数据分布方式有三种:顺序分布、哈希分布和一致性哈希分布 。顺序分布利用顺序分布我们能很容易的将大量的数据分成N片,只需要知道每一片的StartKey和EndKey 。根据分片表我们可以很容易的定位任何一个Key 。分片对于分布式系统来说是一个非常重要的功能,它意味着我们能不能将大量的数据分而治之 。同时我们查找数据时也非常方便,顺序分布是从开始点一条一条往下读,直到结束点 。但是这也让顺序分布存在一些问题,由于它是按照顺序写入和读取,所以实际上只有最后一片在增加或查找,其它的并没有参与工作(例如我们平时的log写入),这时候分布式系统退化成了单节点的系统,再也没什么优势可言 。
推荐阅读
- 存储的未来:分布式存储、原子存储、DNA存储
- 浅谈分布式存储架构:IPFS和HDFS
- 分布式存储:边缘计算应用落地的催化剂
- 5g核心技术,有哪些关键技术
- 首发屏下指纹解锁技术,vivo新指纹解锁技术
- 如何让科技更好的服务于人类,医学技术如何更好的服务人类
- 从技术角度解析电容式指纹解锁过程,电容指纹解锁系统
- 华为5g技术会有优势吗
- 服务器如何正确关机,存储服务器如何关机
- 爬虫技术是什么,详解4种类型的爬虫技术