20210228

大数据 | 大数据基础--系统之大数据存储

亲爱的读者朋友大家晚上好,前两篇文章简单介绍了大图计算框架的一些知识,这篇文章是关于大数据的存储的,主要从存储系统的设计需求、设计举例、设计要点以及高可用性和高可扩展性的介绍。

大数据对分布式存储的需求

  • 大存储容量 (>100PB)
  • 高吞吐处理 (1PB sort < 2小时)
  • 数据高可靠 (>99.999999%)
  • 服务高可用 (>99.95%)
  • 高效运维
  • 低成本

大规模分布式存储的挑战

单机硬件/系统的不完美(小概率出错),大规模下需要水平扩展(管理大量的机器)。在大规模下小概率事件将成为常态,正确高效处理这些小概率事件是分布式存储的工程挑战。那么都有哪些小概率事件呢?

  • 磁盘机器损坏
  • RAID卡故障
  • 网络故障
  • 电源故障
  • 数据错误
  • 系统异常
  • 出现热点
  • 软件缺陷
  • 误操作

分布式存储系统举例

HDFS

1614573302992

Ceph

1614573326887

分布式存储系统重要功能设计要点

  • 读写流程
    • 写流程1614573645478
      • 链式写1614573580135
      • 主从写1614573596794
    • 写异常处理1614573677380
    • 读流程
      • 可以选取任意一个有效副本读取
      • 如果出现异常,尝试其它副本
      • Backup read可以有效减少读取延迟
      • 根据局部性原理选取当前最优的副本访问
  • QoS
    • 问题:当多个用户共同访问存储系统,如何保证优先级和公平性
    • 设计方案
      • 将IO请求按优先级分成多个类别,每个类有相应的权重表示该类请求占用IO带宽的比例
      • IO请求根据分类放入相应的队列,队列内根据队列限制和任务做调度和丢弃
      • 调度器根据相应权重从队列取出请求进行调度
  • 数据校验
    • IO全路径Checksum检查
      • 存储和网络传输中验证
      • Checksum和数据持久存储
      • 定期后台扫描磁盘数据进行checksum检查
  • 数据备份
    • 当机器/磁盘出现异常,通过其它副本快速恢复
    • 充分利用多台机器的复制带宽
    • 复制优先级和流量控制
  • 数据平衡
    • 当新的机器/磁盘上线,迁移数据保证负载均衡
    • 充分利用多台机器的复制带宽
    • 复制优先级和流量控制
  • 垃圾搜集
    • 异步完成,系统稳定平滑
    • 基于版本回收,避免脏数据存在
  • Erasure coding
    • 复制
      • 多个数据拷贝
      • 恢复代价低,存储代价高
    • 纠删码 (Erasure coding)
      • 多个数据块+编码块
      • 恢复代价高,存储代价低

元数据管理的高可用性和可扩展性

  • 高可用:不成为故障单点(Single Point of Failure)
    • 多个备份,并在故障时快速切换
    • 保证状态一致性
  • 可扩展:不成为系统瓶颈,能随数据服务器数量的 增多而线性扩展
    • 元数据的容量不成为系统瓶颈
    • 服务请求能力不成为系统瓶颈

总结

以上就是大数据存储的一些知识,下次就开始大数据管理系统的介绍啦,敬请期待~