大数据对分布式的需求:
对1PB数据进行排序,需要什么样的存储系统?
要求存储容量大:盘古系统单机200PB
高吞吐量:1PB<2H
提高数据可靠性:8个9 999999.99%
服务高可用:99.95% 每年大概4-5H不可用
高效运维:将日常硬件处理常态,流程化,报警机制
低成本:核心竞争力
大规模分布式存储的挑战:
小概率事件一定发生——处理的原因
- 磁盘错误:在磁盘数量众多的时候,发生错误是一定的,然后就会宕机
把程序平滑的移到其他机器上?
怎么把慢节点绕开?
client端,智能检测,发现慢节点就自动规避,发现机器宕机就自动绕过Raid卡故障
image.png
突然停电时,cache写到raid卡(raid自带电池),然后后台raid写到磁盘,如果raid卡没电,直接写到磁盘会很慢
把他作为从节点,让其他可用设备去写数据- 网络故障
网络架构是树形结构
如果一个交换机出问题,还有其他路径- 电源故障
断电保证数据丢失,即使丢失,该怎么修复;- 数据错误
磁盘、网络、内存(比如ECC错误)
CRC校验:解决磁盘存储,网络传输错误系统异常
linux有独立的时钟源,为保证时间一致,需要NTPserver进行同步
image.png
设备抽象成文件,导致出错的时候影响范围广,网络文件系统都会受影响
- 热点问题
一个机器被用到极致,其他机器空闲;软件缺陷
image.png
挤满meta server或者服务队列
- 误操作
误删数据,
常见分布式系统
HDFS、Ceph、Pangu
其他:GPFS,Lustre,MooseFS
Ceph系统 :块存储优势
HDFS系统:
image.png
Pangu:基于HDFS进行改善
image.png
Pangu技术特点:
Checksum,数据多备份,异常回复机制,回收站,数据聚簇,流控和优先级,热点和慢盘规避,混合存储,安全访问认证,配额管理和审计,磁盘自动上下线,热升级,动态扩容/縮容,在线监控和离线分析。
分布式存储设计要点
读写流程
image.png
链式写入流程:
首先cient发起请求,然后写到cs1->cs2->cs3,然后再返回来cs3->cs2->cs1;
优点:有利于从集群外部导入数据到集群内部,网络流量充分利用;
弊端:会产生三段网络的延迟;不适合低延迟
异常情况:
image.png
绕过出错的CS2
image.png
再要一个CS4就可以有三份数据了。
Seal and New 模式:解决链式的缺点
image.png
在向master要主机的时候,直接规避掉出错的CS2,只写给出的正确的节点
主从模式:
先让主机写,然后让主机传给备机,主机等备机全部存好,再返回
适合低延迟
读:
image.png
首先从master获取数据位置,得到CS1,CS2,CS3,然后从中选取一个进行读,读取成功就返回然后结束
异常:
image.png
CS1错误,换一个正常的节点重新读
image.png
发起多个读请求,如果有一个读取成功,返回之后,将其余的取消;
这种情况,发起多个请求可以把慢节点完全规避掉,在平均延迟都增大的情况,会出现问题,而且对节点的多路读取,造成一定的的资源浪费,毕竟只要一份数据。
读流程优化:
首先client先选择master可以提供的节点中,预计返回时长最短的CS1
image.png
然后先从CS1节点读取数据,如果长时间不返回,再向第二快的CS3节点读取数据,CS3节点很快返回,则取消CS1的读流程,然后更新预估的读取时间,以便下次选择时选择最快的节点;
image.png
隔一段时间就统计一次读取时间,进行更新;
Qos
image.png
区分优先级,区分用户组,尽量公平
Checksum
image.png
需要做到全链路,分包组包都要验证,CRC值要一直存在
定期扫描,校验CRC值,如果出错则重新复制。
image.png
这个需要做取舍
Replication(复制)
image.png
为了防止机器损坏或者磁盘损坏导致数据丢失。
在磁盘出现问题是时,快速进行复制。
多个磁盘同时给目的源提供数据
同时给数据分优先级,按易丢失程度;
流量控制,防止复制风暴,防止恢复数据造成整个集群不可用。
Rebalance 数据均衡
image.png
当新增加数据机器时,让数据的分布尽量均衡;当用户造成的数据分布不均衡时,也要控制一下数据尽量分布均衡,
要求:
充分利用多台机器的带宽;
复制要有优先级,比如Replication的优先级高于Rebalance ;
流量控制要严格。
Garbage Collection(GC 垃圾回收)
image.png
应用场景:
数据删除的时候,异步进行删除,保证系统更稳定;
数据写入失败,脏数据留在磁盘上,利用数据版本进行控制;
由于机器宕机造成,发现数据拷贝不够,需要进行复制,等机器恢复后,要把多余的数据备份删除;
关键点:
异步删除和基于版本的删除
Erasure Coding 数据压缩技术
image.png
元数据管理的高可用性方案
高可用:多个备份(互为热备),要保证多个备份在故障时快速切换,保证状态一致;
image.png
主从方式:一个主服务器,其他为备(通过锁互斥技术进行选举),当主节点宕机时,其他从节点抢锁,谁抢到谁编程主节点;
数据一致性通过共享存储(做到多个备份和切换)
image.png
1)分布式协议:Paxos/Raft协议进行切换和同步(可依赖的分布式协商协议)
image.png
2)主从同步方式简单,分布式协议独立自包含,不依赖其他模块;
HDFS系统
image.png
Pangu 系统
Propose.png
Publish.png
image.png
主机宕机.png
重选举.png
image.png
前一个主节点恢复.png
拒绝Propose并Publish新主节点.png
Ceph系统
image.png
天然存在共享存储池。心跳方式切换主备节点
可扩展性:线性扩展能力,元数据容量和元数据服务能力均可线性扩展;
HDFS系统.png
Ceph系统.png
数据混合存储
image.png image.png
连续存储,对内存建立索引,异步写入磁盘。
网友评论