概述
1. 概念
大规模分布式存储系统的定义:分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供存储服务。
分布式存储系统具有如下特性:可扩展;低成本;高性能;易用。
分布式存储系统是基础,云存储和大数据是构建在分布式存储之上的应用。
分布式存储涉及到的技术有:分布式系统以及数据库。
2. 分布式存储面对的数据
分为三类:非结构化数据——所有格式的办公文档、文本、图片、图像、音频和视频信息等
结构化数据——一般存储在关系数据库中,可用二维关系表结构来表示
半结构化数据
3. 分布式存储系统分类
分为四类: 分布式文件系统——存储非结构化数据对象,例如图片、视频等数据,这些数据一般以对象的形式组织,对象之间没有关联,一般称为Blob(二进制大对象)数据,
分布式文件系统存储三种类型的数据:Blob对象、定长块以及大文件。系统内部按照数据块(chunk)来组织数据。
分布式键值系统——存储关系简单的半结构化数据,只提供基于主键的CRUD(Create/Read/Update/Delete)功能,即根据主键创建、读取、更新或者删除一条键值记录。它是分布式表格系统的一种简化实现,一般用作缓存。常用数据分布技术是一致性哈希。
分布式表格系统——存储关系较为复杂的半结构化数据,不仅支持CRUD操作,而且支持扫描某个主键范围。该系统以表格未单位组织数据,主要支持针对单张表格的操作,不支持多表连接以及嵌套子查询。在分布式表格系统中,同一个表格的多个数据也不要求包含相同类型的列,这类系统可以做到超大规模,而且支持较多的功能,但是实现往往比较复杂。
分布式数据库——存储结构化数据,采用二维表格组织数据,提供SQL关系查询语言,支持多表关联以及嵌套子查询,并提供数据库事务以及并发控制。典型的系统包括MySQL数据库分片(MySQL Sharding)集群,Amazon RDS以及Microsoft SQL Azure。
此外,非关系数据库也称NoSQL数据库,即“Not Only SQL”系统。