当前课程知识点:大数据平台核心技术 > 第二讲 分布式存储 > 分布式存储系统举例 > 分布式存储系统举例(主讲人:姚文辉)
在介绍分布式存储的需求之后
我找了三个分布式存储系统
作为例子
来看系统架构是如何设计的
HDFS是hadoop开源项目中的
分布式文件存储系统
提供文件操作接口
它是目前商用的
规模最大的分布式文件系统
很多互联网公司都在使用
Ceph也是一个
开源的分布式存储系统
除了提供posix
文件接口外
还提供对象和块儿存储接口
目前 虽然没有大规模商用
但架构设计具有领先性
盘古系统是阿里云
自主研发的分布式文件系统
提供类似posix
文件操作接口
对公司内部提供在线
和离线存储服务
对外提供公有云服务
和企业存储方案
特点是文件类型丰富
高可用 大规模
支持多种存储介质
可以支持众多业务类型
提供文件系统优先级
和流量控制
单独Meta Server
可以支持6千台左右的规模
数据容量可以达到
150PB以上
除了以上三个系统
其他还有很多优秀的
分布式存储系统
比如 GPFS
Lustre MooseFS等
下面 我们以三个系统为例
对比来介绍各个
分布式存储系统的
框架设计以及优缺点
HDFS采用了集中式
Meta管理的架构
对外提供文件接口
每个文件在系统中
会按等长度分为多个块
被称为chunk
每个chunk可以有多个副本
被称为Replica
文件操作采用
Append-only的方式
数据一旦被写入系统中
不会被删除
否则不允许再进行修改
在整个集群中
可以有一到多组
Meta管理服务器
在HDFS中称为Namenode
如果用来管理Meta信息
例如文件Meta
ChunkMeta
数据位置 用户
集群中的机器状态等信息
集群中每台机器上
都部署一个用来存储
Chunk Replica的数据节点
被称为Datanode
Datanode用来接收
数据读写请求
并将数据存储到
本地文件系统中
每个Chunk replica
被存储到本地文件系统上的
独立文件中
集群中 每个机器上
可以启动若干个用户程序
来操作HDFS上的文件
被称为HDFS系统的
client端
读取数据时client端
先从Namenode取得文件的Meta
Chunk meta
和数据位置信息
并携带chunk meta信息
到Datanode上读取数据
写入数据时client端
会先在namenode上
打开文件的同时
获取文件Meta和写入版本
获取数据位置
然后向datanode上写入数据
datanode会定期向
namenode汇报自己拥有的
replica信息
Namenode根据自己
管理的信息
对数据进行复制
和存储空间回收等操作
在这张架构图中
还表现了Namenode
在选取数据位置的时候
考虑到了机架分布
将一个chunk的
多份replica
放置在多个Rack下
来应对机架网络和供电异常
从文件的操作接口来看
append-only的操作形式
极大地简化了设计
和实现难度
给数据一致性奠定了基础
但是 Append-only
给很多业务提出了挑战
必须进行二次开发
才能实现随机读写能力
在最新的HDFS系统中
增加了Truncate的功能
可以将文件长度缩短后
用于新数据进行覆盖写入
是当前写入方式的一点改进
Meta集中管理的架构
从工程时间上看
设计简单高效
但Namenode可能成为整个
分布式存储系统的
单点和瓶颈
带来了可用性和扩展性问题
为了应对单点问题
HDFS采用HA方式
来防止单点失效
而带来的服务不可用
利用Namenode的
Federation功能
来实现扩展性
盘古分布式存储系统
对外提供文件接口
架构上也采用
集中式Meta存储
盘古系统对外提供
三种文件类型
通用文件类型
类似于HDFS中的
文件组织形式
采用定长分块
Append-only写入方式
另外一种是日志文件
相对于通用文件
在文件组织方式上
分块长度不固定
在数据读写时
采用日志操作接口
保证读取和写入的原子性
应用程序用这种文件
记录日志保存状态
可以有效应对单点异常
缩短写入操作的时间 响应
最后一种文件类型是
随机读写文件
提供同步和异步的
posix文件接口
文件组织形式
和通用文件一样
但写入方式提供在任何
offset随机写入
和读取能力
实现了数据可擦写
主要应用于虚拟机云盘上
在系统中
Meta管理模块
称为盘古master
类似于HDFS中的Namenode
数据存储模块
称为Chunkserver
类似于HDFS中的Datanode
同HDFS的主要不同点
在于以下几点
在数据方面采用
Paxos协议
实现盘古多Meta
Meta的强一致性和高可用
Chunkserver自动检测磁盘状态
在磁盘异常情况下
主动通知盘古master
进行有目的的备份
提高数据可靠性
采用嵌入式数据检验方式
保证数据和checksum
同时写入和同时读取
提高数据一致性的同时
提高了数据吞吐率
另外 回收站和多数据备份
等功能 是大多数
分布式存储系统都采用的方法
在高可用方面
对于每个文件可以设置
分布属性
实现数据聚簇
计算节点提供
数据locality特性
进行调度来达到高性能
盘古client端
实现基于数据位置的时间统计
可以有效绕过热点机器和磁盘
主动判断慢盘
降低数据的平均响应延迟
在整个盘古系统中
各个模块使用同一套
流控优先级控制策略
可以支持多个
不同优先级业务并行使用
采用对用户透明的
混合存储技术
让用户使用SATA盘的成本
来享受SSD磁盘的高性能
同时做到
不使用操作系统的memory cache
将掉电丢失率的概念降低为零
Chunkserver不定期汇报
Replica信息
而由盘古master
定期获取replica信息
防止由于盘古master
被动接受block汇报
产生的性能影响
盘古master在内存组织方式上
采用更紧凑的方式
提高了端口盘古master
可以承载的数据量
在管理运维方面
有统一的权限访问机制
提供配额管理和审计日志
供用户完善审计功能
对异常磁盘进行自动检测
黑名单和下线处理
减少异常磁盘
对系统的影响和运维成本
提供无感知热承集服务
提高系统可用性
支持动态扩容 缩容
自动完成数据均衡
在可扩展性方面
则同HDFS使用了相同的方法
盘古master的Federation功能
Ceph分布式存储系统
对外不但提供posix
文件操作接口
还提供了对象
块存储接口
提高了系统的适应能力
整个系统建立在OSD和
Ceph monitor组成的
可靠自制分布式
对象存储基础上
在上层提供了文件抽象
每个OSD管理本地的文件系统
接收外部的对象存取请求
OSD间建立心跳
相互监控状态
并汇报给Ceph monitor
统一进行维护
Ceph monitor接受配置
将OSD划分到不同的存储池中
在每个存储池上
应用不同的数据分布策略
当OSD出现异常时
Ceph monitor
会根据异常类型
发起OSD间的数据复制
调整存储池中的
OSD的分配
所以Ceph monitor和OSD
可以自主完成对象的
存储和故障恢复工作
由于存储池数量
相对于对象数量来说非常少
所以 Meta管理的成本很低
系统中不会存在
瓶颈点和可扩展性问题
OSD和Ceph monitor
组成的可靠自制的
分布式对象存储上
MDS将文件的Meta
以对象存储的形式进行划分
构成目录数
对外提供文件接口
Ceph client则在
linux系统的VFS下层
提供驱动
让linux用户
向操作本地文件一样
操作存储在Ceph系统上的文件
在架构设计上
Ceph具有灵活性强
高扩展性 无端点的特点
是先进的架构设计
-主讲人:武永卫
-主讲人:程永
-QUIZ--作业
-大纲
-初步认识大数据对分布式存储系统的需求
-理解大数据对分布式存储系统的需求
-具体说明大数据对分布式存储系统的需求
-大规模分布式存储的挑战
-小概率事件-Raid卡故障
-分布式存储系统举例
-分布式存储系统重要功能设计要点剖析
-链式写正常流程
-写流程的另一种常见方式:主从模式
-链式写异常流程
-写异常处理的另一种方法-Seal and New
--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)
-读正常流程
-读流程优化-BackupRead
-IO QoS
-数据正确性:checksum
-数据可靠性-Replication
-数据均衡-Rebalance
-垃圾回收-Garbage collection
--垃圾回收-Garbage collection(主讲人:姚文辉)
-Erasure coding
-Erasure coding(3,2)写入和读取过程
--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)
-元数据管理的高可用性和可扩展性
-元数据管理的高可用性
-Paxos概要
-Raft
-元数据管理的可扩展性
-不同存储介质的特性
-盘古混合存储
-QUIZ--作业
-阿里云飞天分布式调度
-任务调度
-资源调度
-容错机制
-规模挑战
-安全域性能隔离
-分布式调度的发展方向
-QUIZ--作业
-数据格式和抽象
-分布式编程模型
-MapReuduce编程模型
-关系型数据编程模型
-分布式图计算模型
-分布式编程未来展望
-QUIZ--作业
-分布式事务
-分布式一致性算法
-两阶段提交与三阶段提交
-实践--介绍
-关系型计算基本原理_1
-关系型计算基本原理_2
-分布式环境中的连接计算和聚合计算
-其他计算和物理优化
-QUIZ--作业
-提纲
-课程背景介绍
-前序知识
-分布式节点距离计算法则
-数据分布策略
-分布式计算调度
-数据就近原则计算如何容错
-ODPS跨集群数据依赖
-QUIZ--作业
-主讲人:谢德军
--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)
-增量计算和流式计算
-与批量计算的区别
-业界典型系统技术概要分析
-核心技术
-消息机制
-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制
--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)
-StreamSQL
-QUIZ--作业
-软硬件趋势、分布式计算简史与内存计算
-分布式计算
-内存计算
-统一的计算框架
-业界经典系统技术分析-spark&flink
--业界经典系统技术分析-spark&flink(主讲人:强琦)
-QUIZ--作业
-主讲人:褚葳
-QUIZ--作业
-分布式环境下的新问题
-工程实现范例
-课程设计相关问题