20210228
大数据 | 大数据基础--系统之大数据存储
亲爱的读者朋友大家晚上好,前两篇文章简单介绍了大图计算框架的一些知识,这篇文章是关于大数据的存储的,主要从存储系统的设计需求、设计举例、设计要点以及高可用性和高可扩展性的介绍。
大数据对分布式存储的需求
- 大存储容量 (>100PB)
- 高吞吐处理 (1PB sort < 2小时)
- 数据高可靠 (>99.999999%)
- 服务高可用 (>99.95%)
- 高效运维
- 低成本
大规模分布式存储的挑战
单机硬件/系统的不完美(小概率出错),大规模下需要水平扩展(管理大量的机器)。在大规模下小概率事件将成为常态,正确高效处理这些小概率事件是分布式存储的工程挑战。那么都有哪些小概率事件呢?
- 磁盘机器损坏
- RAID卡故障
- 网络故障
- 电源故障
- 数据错误
- 系统异常
- 出现热点
- 软件缺陷
- 误操作
分布式存储系统举例
HDFS
Ceph
分布式存储系统重要功能设计要点
- 读写流程
- 写流程
- 链式写
- 主从写
- 写异常处理
- 读流程
- 可以选取任意一个有效副本读取
- 如果出现异常,尝试其它副本
- Backup read可以有效减少读取延迟
- 根据局部性原理选取当前最优的副本访问
- 写流程
- QoS
- 问题:当多个用户共同访问存储系统,如何保证优先级和公平性
- 设计方案
- 将IO请求按优先级分成多个类别,每个类有相应的权重表示该类请求占用IO带宽的比例
- IO请求根据分类放入相应的队列,队列内根据队列限制和任务做调度和丢弃
- 调度器根据相应权重从队列取出请求进行调度
- 数据校验
- IO全路径Checksum检查
- 存储和网络传输中验证
- Checksum和数据持久存储
- 定期后台扫描磁盘数据进行checksum检查
- IO全路径Checksum检查
- 数据备份
- 当机器/磁盘出现异常,通过其它副本快速恢复
- 充分利用多台机器的复制带宽
- 复制优先级和流量控制
- 数据平衡
- 当新的机器/磁盘上线,迁移数据保证负载均衡
- 充分利用多台机器的复制带宽
- 复制优先级和流量控制
- 垃圾搜集
- 异步完成,系统稳定平滑
- 基于版本回收,避免脏数据存在
- Erasure coding
- 复制
- 多个数据拷贝
- 恢复代价低,存储代价高
- 纠删码 (Erasure coding)
- 多个数据块+编码块
- 恢复代价高,存储代价低
- 复制
元数据管理的高可用性和可扩展性
- 高可用:不成为故障单点(Single Point of Failure)
- 多个备份,并在故障时快速切换
- 保证状态一致性
- 可扩展:不成为系统瓶颈,能随数据服务器数量的 增多而线性扩展
- 元数据的容量不成为系统瓶颈
- 服务请求能力不成为系统瓶颈
总结
以上就是大数据存储的一些知识,下次就开始大数据管理系统的介绍啦,敬请期待~