大数据对分布式的需求:
对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系统 :块存储优势
image.png
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
需要做到全链路,分包组包都要验证,CRC值要一直存在
image.png
定期扫描,校验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
连续存储,对内存建立索引,异步写入磁盘。

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
Propose.png
Publish.png
image.png
主机宕机.png
重选举.png
image.png
前一个主节点恢复.png
拒绝Propose并Publish新主节点.png
image.png











网友评论