当前课程知识点:大数据平台核心技术 >  第二讲 分布式存储 >  分布式存储系统举例 >  分布式存储系统举例(主讲人:姚文辉)

返回《大数据平台核心技术》慕课在线视频课程列表

分布式存储系统举例(主讲人:姚文辉)在线视频

分布式存储系统举例(主讲人:姚文辉)

下一节:分布式存储系统重要功能设计要点剖析(主讲人:姚文辉)

返回《大数据平台核心技术》慕课在线视频列表

分布式存储系统举例(主讲人:姚文辉)课程教案、知识点、字幕

在介绍分布式存储的需求之后

我找了三个分布式存储系统

作为例子

来看系统架构是如何设计的

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具有灵活性强

高扩展性 无端点的特点

是先进的架构设计

大数据平台核心技术课程列表:

第一讲 大数据和ODPS

-主讲人:武永卫

--大数据处理平台概述(主讲人:武永卫)

-主讲人:程永

--大数据平台ODPS(主讲人:程永)

-QUIZ--作业

第二讲 分布式存储

-大纲

--大纲(主讲人:姚文辉)

-初步认识大数据对分布式存储系统的需求

--初步认识大数据对分布式存储系统的需求

-理解大数据对分布式存储系统的需求

--理解大数据对分布式存储系统的需求(主讲人:姚文辉)

-具体说明大数据对分布式存储系统的需求

--具体说明大数据对分布式存储系统的需求(主讲人:姚文辉)

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

--大规模分布式存储的挑战(主讲人:姚文辉)

-小概率事件-Raid卡故障

--小概率事件-Raid卡故障(主讲人:姚文辉)

-分布式存储系统举例

--分布式存储系统举例(主讲人:姚文辉)

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

--分布式存储系统重要功能设计要点剖析(主讲人:姚文辉)

-链式写正常流程

--链式写正常流程(主讲人:姚文辉)

-写流程的另一种常见方式:主从模式

--写流程的另一种常见方式:主从模式(主讲人:姚文辉)

-链式写异常流程

--链式写异常流程(主讲人:姚文辉)

-写异常处理的另一种方法-Seal and New

--写异常处理的另一种方法-Seal and New(主讲人:姚文辉)

-读正常流程

--读正常流程(主讲人:姚文辉)

-读流程优化-BackupRead

--读流程优化-BackupRead(主讲人:姚文辉)

-IO QoS

--IO QoS(主讲人:姚文辉)

-数据正确性:checksum

--数据正确性:checksum(主讲人:姚文辉)

-数据可靠性-Replication

--数据可靠性-Replication(主讲人:姚文辉)

-数据均衡-Rebalance

--数据均衡-Rebalance(主讲人:姚文辉)

-垃圾回收-Garbage collection

--垃圾回收-Garbage collection(主讲人:姚文辉)

-Erasure coding

--Erasure coding(主讲人:姚文辉)

-Erasure coding(3,2)写入和读取过程

--Erasure coding(3,2)写入和读取过程(主讲人:姚文辉)

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

--元数据管理的高可用性和可扩展性(主讲人:姚文辉)

-元数据管理的高可用性

--元数据管理的高可用性(主讲人:姚文辉)

-Paxos概要

--Paxos概要(主讲人:姚文辉)

-Raft

--Raft(主讲人:姚文辉)

-元数据管理的可扩展性

--元数据管理的可扩展性(主讲人:姚文辉)

-不同存储介质的特性

--不同存储介质的特性(主讲人:姚文辉)

-盘古混合存储

--盘古混合存储(主讲人:姚文辉)

-QUIZ--作业

第三讲 资源管理与任务调度

-阿里云飞天分布式调度

--阿里云飞天分布式调度(主讲人:陶阳宇)

-任务调度

--任务调度(主讲人:陶阳宇)

-资源调度

--资源调度(主讲人:陶阳宇)

-容错机制

--容错机制(主讲人:陶阳宇)

-规模挑战

--规模挑战 (主讲人:陶阳宇)

-安全域性能隔离

--安全域性能隔离(主讲人:陶阳宇)

-分布式调度的发展方向

--分布式调度的发展方向(主讲人:陶阳宇)

-QUIZ--作业

第四讲 分布式编程模型的设计与演化

-数据格式和抽象

--数据格式和抽象(主讲人:吴威)

-分布式编程模型

--分布式编程模型(主讲人:吴威)

-MapReuduce编程模型

--MapReuduce编程模型(主讲人:吴威)

-关系型数据编程模型

--关系型数据编程模型(主讲人:吴威)

-分布式图计算模型

--分布式图计算模型(主讲人:吴威)

-分布式编程未来展望

--分布式编程未来展望(主讲人:吴威)

-QUIZ--作业

实践1:通过两阶段提交协议完成数据上传

-分布式事务

--分布式事务 (主讲人:冯骁)

-分布式一致性算法

--分布式一致性算法(主讲人:冯骁)

-两阶段提交与三阶段提交

--两阶段提交与三阶段提交(主讲人:冯骁)

-实践--介绍

--实践--介绍(主讲人:冯骁)

第五讲 离线分布式关系型计算

-关系型计算基本原理_1

--离线分布式关系型计算_1(主讲人:王鹏飞)

-关系型计算基本原理_2

--关系型计算基本原理_2(主讲人:王鹏飞)

-分布式环境中的连接计算和聚合计算

--分布式环境中的连接计算和聚合计算(主讲人:王鹏飞)

-其他计算和物理优化

--其他计算和物理优化(主讲人:王鹏飞)

-QUIZ--作业

第六讲 全局数据管理与调度

-提纲

--提纲(主讲人:罗李)

-课程背景介绍

--课程背景介绍(主讲人:罗李)

-前序知识

--前序知识(主讲人:罗李)

-分布式节点距离计算法则

--分布式节点距离计算法则(主讲人:罗李)

-数据分布策略

--数据分布策略(主讲人:罗李)

-分布式计算调度

--分布式计算调度(主讲人:罗李)

-数据就近原则计算如何容错

--数据就近原则计算如何容错(主讲人:罗李)

-ODPS跨集群数据依赖

--ODPS跨集群数据依赖(主讲人:罗李)

-QUIZ--作业

实践2:编写MR完成Group By+Join操作

-主讲人:谢德军

--实践2:编写MR完成Group By+Join操作(主讲人:谢德军)

第七讲 流式计算的系统设计与实现

-增量计算和流式计算

--流式计算的系统设计与实现(主讲人:强琦)

-与批量计算的区别

--与批量计算的区别(主讲人:强琦)

-业界典型系统技术概要分析

--业界典型系统技术概要分析(主讲人:强琦)

-核心技术

--核心技术(主讲人:强琦)

-消息机制

--消息机制(主讲人:强琦)

-有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制

--有状态计算、并行DAG、抢占式调度和资源隔离、Failover机制(主讲人:强琦)

-StreamSQL

--StreamSQL(主讲人:强琦)

-QUIZ--作业

第八讲 内存计算

-软硬件趋势、分布式计算简史与内存计算

--软硬件趋势、分布式计算简史与内存计算(主讲人:强琦)

-分布式计算

--分布式计算(主讲人:强琦)

-内存计算

--内存计算(主讲人:强琦)

-统一的计算框架

--统一的计算框架(主讲人:强琦)

-业界经典系统技术分析-spark&flink

--业界经典系统技术分析-spark&flink(主讲人:强琦)

-QUIZ--作业

第九讲 大规模数据的分布式机器学习平台

-主讲人:褚葳

--大规模数据的分布式机器学习平台(主讲人:褚葳)

-QUIZ--作业

实践3:实现MapReduce编程运行时库

-分布式环境下的新问题

--分布式环境下的新问题(主讲人:徐冬)

-工程实现范例

--工程实现范例(主讲人:徐冬)

-课程设计相关问题

--课程设计相关问题(主讲人:徐冬)

分布式存储系统举例(主讲人:姚文辉)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。