阿里云《分布式文件存储系统技术及实现 》笔记

大数据对分布式的需求:

对1PB数据进行排序,需要什么样的存储系统?
要求存储容量大:盘古系统单机200PB
高吞吐量:1PB<2H
提高数据可靠性:8个9 999999.99%
服务高可用:99.95% 每年大概4-5H不可用
高效运维:将日常硬件处理常态,流程化,报警机制
低成本:核心竞争力

大规模分布式存储的挑战:

小概率事件一定发生——处理的原因

  1. 磁盘错误:在磁盘数量众多的时候,发生错误是一定的,然后就会宕机
    把程序平滑的移到其他机器上?
    怎么把慢节点绕开?
    client端,智能检测,发现慢节点就自动规避,发现机器宕机就自动绕过
  2. Raid卡故障


    image.png

    突然停电时,cache写到raid卡(raid自带电池),然后后台raid写到磁盘,如果raid卡没电,直接写到磁盘会很慢
    把他作为从节点,让其他可用设备去写数据

  3. 网络故障
    网络架构是树形结构
    如果一个交换机出问题,还有其他路径
  4. 电源故障
    断电保证数据丢失,即使丢失,该怎么修复;
  5. 数据错误
    磁盘、网络、内存(比如ECC错误)
    CRC校验:解决磁盘存储,网络传输错误
  6. 系统异常
    linux有独立的时钟源,为保证时间一致,需要NTPserver进行同步


    image.png

    设备抽象成文件,导致出错的时候影响范围广,网络文件系统都会受影响

  7. 热点问题
    一个机器被用到极致,其他机器空闲;
  8. 软件缺陷


    image.png

    挤满meta server或者服务队列

  9. 误操作
    误删数据,
常见分布式系统

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

连续存储,对内存建立索引,异步写入磁盘。

你可能感兴趣的:(阿里云《分布式文件存储系统技术及实现 》笔记)