文档介绍:云计算原理与实践Principles and Practice of Cloud Computing
云计算——分布式存储
Outline
分布式存储的基础
文件存储
从单机存储系统到分布式存储系统
实践:分布式存储系统Ceph
Machine Learning
Domain expertise
Mathematics
Data engineering
云计算——分布式存储
分布式存储的基础
基本概念
分布式存储分类
分布式存储的发展历史
云计算——分布式存储
基本概念
分布式存储系统的定义:分布式存储系统是将为数众多的普通计算机或服务器通过网络进行连接,同时对外提供一个整体的存储服务。
分布式存储系统包括以下几个特性:
高性能
可扩展
低成本
易用性
分布式存储系统的技术挑战包括:数据和状态信息的持久化、数据的自动迁移、系统的自动容错、并发读写的数据的一致性等方面。
云计算——分布式存储
分布式存储分类
分布式存储面临的应用场景和数据需求都比较复杂,根据数据类型,可以将其分为非结构化数据、结构化数据、半结构化数据三类。
正因为数据类型的多样性,不同的分布式存储系统适合处理不同类型的数据,因此可以将分布式存储系统分为四类:
分布式文件系统
分布式键值(Key-Value)系统
分布式表系统
分布式数据库
云计算——分布式存储
1. 分布式文件系统
分布式文件系统存储三种类型的数据:Blob对象、定长块以及大文件。
数据块与Blob对象、定长块、大文件之间的关系
云计算——分布式存储
2 分布式键值(Key-Value)系统
分布式键值系统用于存储关系简单的半结构化数据,它提供基于主键的CRUD(Create/Read/ Update/Delete)功能,即根据主键创建、读取、更新或者删除一条键值记录。典型的系统有Amazon Dynamo。
分布式键值系统是分布式表系统的一种简化,一般用作缓存,比如Memcache。
从数据结构的角度看,分布式键值系统支持将数据分布到集群中的多个存储节点。
一致性散列是分布式键值系统中常用的数据分布技术,由于在众多系统中被采用而变得非常有名。
云计算——分布式存储
3 分布式表系统
分布式表系统主要用于存储半结构化数据。
与分布式键值系统相比,分布式表系统不仅仅支持简单的CRUD操作,而且支持扫描某个主键范围。
分布式表系统以表格为单位组织数据,每个表格包括很多行,通过主键标识一行,支持根据主键的CRUD功能以及范围查找功能。
典型的分布式表系统包括Google Bigtable、Microsoft Azure Table Storage、Amazon DynamoDB等。
云计算——分布式存储
4 分布式数据库
分布式数据库是从传统的基于单机的关系型数据库扩展而来,用于存储大规模的结构化数据。
分布式数据库采用二维表格组织数据,提供经典的SQL关系查询语言,支持嵌套子查询、多表关联等复杂操作,并提供数据库事务以及并发控制。
关系数据库是目前为止最为成熟的存储技术,功能丰富,有完善的商业关系数据库软件的支持。
随着大数据时代的到来,为了解决关系数据库面临的可扩展性、高并发以及性能方面的问题,各种各样的非关系数据库不断涌现,这类被称为NoSQL的系统,可以理解为“Not Only SQL”的含义。
云计算——分布式存储
分布式文件系统的发展
分布式存储的发展历史
云计算——分布式存储