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

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

作者: 陈星空 | 来源:发表于2020-03-16 16:09 被阅读0次

    大数据对分布式的需求:

    对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

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/uttgehtx.html