云计算——分布式存储
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.1.3 分布式存储的发展历史
4.21世纪的代表:Cassandra、HBase、MongoDB、DynamoDB (3) MongoDB:文档型数据库同键值(Key-Value)型的数 据库类似,是键值型数据库的升级版,允许嵌套键值,Value 值是结构化数据,数据库可以理解Value的内容,提供复杂的 查询,类似于RDBMS的查询条件。 (4) DynamoDB:Amazon公司的一个分布式存储引擎,是 一个经典的分布式Key-Value存储系统,具备去中心化、高可 用性、高扩展性的特点。
5.2.3 并行文件系统
• 早期的并行文件系统有BFS(Bridge File System)和CFS(Concurrent File System)等。它们运行在MPP(Massively Parallel Processing, MPP)结构的超级计算机上。。 • 20世纪90年代中期,开源的Linux操作系统逐渐成熟并得到广泛使用, 为了能在越来越多的Linux集群上运行,出现了以PVFS和Lustr为代表 的Linux集群上的并行文件系统。它们吸收了MPP并行文件系统的很 多思想,包括采用一个专门的元数据服务器来维护和管理文件系统的 命名空间,以及将文件数据条带化并分散存储在所有的存储服务器上 等。
阶段
表5.1 文件系统 的发展脉络
单机文件系统
产生的技术 背景
负载特征
典型代表
主要的创新技术
性能评价 标准
树型目录结构 Unix FS 分时操作系统 多用户共享 磁盘 FFS 多用户并发访问 多进程并发访问 LFS JFS WAFL XFS ZFS 索引节点(i-node) 流式访问接口 柱面组 元数据修改日志 B+树组织 写时复制 存储池 局域网 网络文件系统 TCPP/IP 协议 RAID FC 网络 多客户端共享访问 多用户共享访问 NFS AFS NAS SAN 文件系统 XDR RPC VFS 无状态服务器 多服务器结构 文件的条带化存储 并行 I/O 接口 元数据管理与数据存储 分离 并行 I/O 带宽 聚合 I/O 带宽 I/O 请求响应时间 聚合 I/O 带宽
Mathematics
Data engineering
5.1 分布式存储的基础
5.1.1 基本概念 5.1.2 分布式存储分类 5.1.3 分布式存储的发展历史
5.1.1 基本概念
• 分布式存储系统的定义:分布式存储系统是将为数众多的普通 计算机或服务器通过网络进行连接,同时对外提供一个整体的 存储服务。 • 分布式存储系统包括以下几个特性:
5.2.2 网络文件系统
• NFS(Network File System,网络文件系统)由Sun公司在1984年开发, 被认为是第一个广泛应用的现代网络文件系统。NFS的设计目标是提 供跨平台的文件共享系统。由于NFS的实现和设计思想都相对简单, 该协议很快被纳入到RFC标准,并开始大量应用。然而,NFS单一服 务器的结构也决定了它的扩展性有限。 • AFS(Andrew File System)是美国卡耐基· 梅隆大学1982年开发的分布 式文件系统。其设计目标是支持5000~10000个节点的集群,扩展性 是首要考虑的因素。与NFS等系统不同的是,AFS中有多个服务器, 整个命名空间被静态地划分到各个服务器上,因此,AFS具有更好的 扩展性。
• GPFS是IBM公司开发的共享文件系统,起源于IBM SP系统上 使用的虚拟共享磁盘技术。
• GPFS是一个并行的磁盘文件系统,它保证在资源组内的所 有节点可以并行访问整个文件系统。
• GPFS允许客户共享文件,而这些文件可能分布在不同节点 的不同硬盘上。它同时还提供了许多标准的UNIX文件系统 接口,允许应用不需修改或者重新编辑就可以在其上运行。
云计算原理与实践
Principles and Practice of Cloud Computing
Outline
• 5.1 分布式存储的基础
• 5.2 文件存储
• 5.3 从单机存储系统到分布式存储系统
Domain expertise
• 5.4 实践:分布式存储系统Ceph
Machine Learning
• 随着大数据时代的到来,为了解决关系数据库面临的可扩展性、 高并发以及性能方面的问题,各种各样的非关系数据库不断涌现, 这类被称为NoSQL的系统,可以理解为“Not Only SQL”的含义。
5.1.3 分布式存储的发展历史
图5.2 分布式文件系统的发展
5.1.3 分布式存储的发展历史
1.20世纪80年代的代表:AFS、NFS、Coda (1) AFS:1983年CMU和IBM共同合作开发了Andrew文件系 统(Andrew File System,AFS) (2) NFS:1985年,Sun公司基于UDP开发了网络共享文件 系统(Network File System, NFS) (3) Coda:1987年,CMU在基于AFS的基础上开发了Coda 文件系统
(1)SAN(Storage Area Network)
• 通过将磁盘存储系统和服 务器直接相连的方式提供 一个易扩展、高可靠的存 储环境,高可靠的光纤通 道交换机和光纤通道网络 协议保证各个设备间链接 的可靠性和高效性。设备 间的连接接口主要是采用 FC或者SCSI。
图5.3 SAN网络结构
(2) NAS(Network Attached Storage)
1. 分布式文件系统
• 分布式文件系统存储三种类型的数据:Blob对象、定长块以及大文件。
图5.1 数据块与Blob对象、定长块、大文件之间的关系
2 分布式键值(Key-Value)系统
• 分布式键值系统用于存储关系简单的半结构化数据,它提供 基于主键的CRUD(Create/Read/ Update/Delete)功能,即根 据主键创建、读取、更新或者删除一条键值记录。典型的系 统有Amazon Dynamo。 • 分布式键值系统是分布式表系统的一种简化,一般用作缓存, 比如Memcache。 • 从数据结构的角度看,分布式键值系统支持将数据分布到集 群中的多个存储节点。 • 一致性散列是分布式键值系统中常用的数据分布技术,由于 在众多系统中被采用而变得非常有名。
5.2 文件存储
5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 单机文件系统 网络文件系统 并行文件系统 分布式文件系统 高通量文件系统
5.2.1 单机文件系统
• 现代文件系统的起源要追溯到分时操作系统时期。1965年,在 Multics操作系统中首次提出使用树型结构来组织文件、目录以及访问 控制的思想。这些思想被后来的UNIX文件系统(1973年)所借鉴。 从结构上看,它包括四个模块:引导块、超级块、索引节点和数据块。 • 为解决UNIX文件系统I/O性能低的问题,先后出现了1984年的快速文 件系统(Fast File System,FFS)和1992年的日志结构文件系统(LogStructured File,LFS)。 • 20世纪90年代至今,出现了很多单机文件系统。包括SGI公司于1994 年发布的XFS,以及Sun公司于2004年发布的ZFS。
• 通过基于TCP/IP的各种上 层应用在各工作站和服 务器之间进行文件访问, 直接在工作站客户端和 NAS文件共享设备之间建 立连接,NAS隐藏了文件 系统的底层实现,注重 上层的文件服务实现, 具有良好的扩展性
图5.4 NAS存储网络结构
(3) GPFS (General Parallel File System)
5.1.3 分布式存储的发展历史
3.20世纪末的代表: (1) SAN(Storage Area Network) (2) NAS(Network Attached Storage) (3) GPFS (General Parallel File System) (4) GFS (Google File System) (5) HDFS (Hadoop Distributed File System)
(4) GFS (Google File System)
图5.5百度文库GFS架构图
(5) HDFS (Hadoop Distributed File System)
图5.6 HDFS总体结构示意图
5.1.3 分布式存储的发展历史
4.21世纪的代表:Cassandra、HBase、MongoDB、DynamoDB (1) Cassandra:是一套开源分布式NoSQL数据库系统,最 初由Facebook开发,用于储存收件箱等简单格式数据,集 GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的 架构于一身。 (2) HBase:列存储数据库,擅长以列为单位读取数据,面 向列存储的数据库具有高扩展性,即使数据大量增加也不会 降低相应的处理速度,特别是写入速度。
– – – – 高性能 可扩展 低成本 易用性
• 分布式存储系统的技术挑战包括:数据和状态信息的持久化、 数据的自动迁移、系统的自动容错、并发读写的数据的一致性 等方面。
5.1.2 分布式存储分类
• 分布式存储面临的应用场景和数据需求都比较复杂,根据数据类型, 可以将其分为非结构化数据、结构化数据、半结构化数据三类。 • 正因为数据类型的多样性,不同的分布式存储系统适合处理不同类 型的数据,因此可以将分布式存储系统分为四类: 1. 分布式文件系统 2. 分布式键值(Key-Value)系统 3. 分布式表系统 4. 分布式数据库
5.2.5 高通量文件系统
• 高通量文件系统是为大型数据中心设计的文件系统,它将数据中心中 大量低成本的存储资源有效地组织起来,服务于上层多种应用的数据 存储需求和数据访问需求。 • 随着云计算技术的发展,数据中心的数据存储需求逐渐成为数据存储 技术和文件系统发展的主要驱动力,高通量文件系统将成为一种重要 的文件系统。 • 大型数据中心在数据存储和数据访问方面有着与先前的应用非常不同 的需求特征,主要包括:数据量庞大、访问的并发度高、文件数量巨 大、数据访问语义和访问接口不同于传统的文件系统、数据共享与数 据安全的保障越来越重要等。
5.2.4 分布式文件系统
• 20世纪90年代后期,随着互联网的发展,出现了搜索引擎这样的海 量文本数据检索工具。搜索引擎需要高吞吐率、低成本、高可靠的系 统,而非高峰值处理性能的系统。于是产生了以谷歌的Google File System(GFS)、MapReduce 为代表的新型数据处理架构。 • GFS的底层平台是大规模(数千台到数万台)的、廉价的、可靠性较 低的PC集群,存储设备是集群中每个节点上的多块IDE磁盘 • 谷歌架构被互联网企业广泛采用,现在流行的Hadoop就是GFS和 MapReduce的一种开源实现,被很多企业采用。
5.1.3 分布式存储的发展历史
2.20世纪90年代的代表:XFS、Tiger Shark、SFS
XFS:加州大学伯克利分校(UC Berkeley)开发了XFS文件系统,克服了 以往分布式文件系统只适用于局域网而不适用于广域网和大数据存储的 问题,提出了广域网进行缓存较少网络流量设计思想,采用层次命名结 构,减少Cache一致性状态和无效写回Cache一致性协议,从而减少了网 络负载,在当时获得了一定的成功。
4 分布式数据库
• 分布式数据库是从传统的基于单机的关系型数据库扩展而来,用 于存储大规模的结构化数据。 • 分布式数据库采用二维表格组织数据,提供经典的SQL关系查询语 言,支持嵌套子查询、多表关联等复杂操作,并提供数据库事务 以及并发控制。
• 关系数据库是目前为止最为成熟的存储技术,功能丰富,有完善 的商业关系数据库软件的支持。
3 分布式表系统
• 分布式表系统主要用于存储半结构化数据。 • 与分布式键值系统相比,分布式表系统不仅仅支持简单的 CRUD操作,而且支持扫描某个主键范围。 • 分布式表系统以表格为单位组织数据,每个表格包括很多行, 通过主键标识一行,支持根据主键的CRUD功能以及范围查 找功能。 • 典型的分布式表系统包括Google Bigtable、Microsoft Azure Table Storage、Amazon DynamoDB等。