分布式存储技术

分布式存储技术

分布式存储概念

与目前常见的集中式存储技术不同,分布式存储技术并不是将数据存储在某个或多个特定的节点上,而是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。结构化数据的存储及应用所谓结构化数据是一种用户定义的数据类型,它包含了一系列的属性,每一个属性都有一个数据类型,存储在关系数据库里,可以用二维表结构来表达实现的数据。大多数系统都有大量的结构化数据,一般存储在 Oracle MySQL 的等的关系型数据库中,当系统规模大到单一节点的数据库无法支撑时,一般有两种方法:垂直扩展与水平扩展。

垂直扩展:垂直扩展比较好理解,简单来说就是按照功能切分数据库将不同功能的数据,存储在不同的数据库中,这样一个大数据库就被切分成多个小数据库,从而达到了数据库的扩展。一个架构设计良好的应用系统,其总体功能一般肯定是由很多个松耦合的功能模块所组成的,而每一个功能模块所需要的数据对应到数据库中就是一张或多张表。各个功能模块之间交互越少,越统一,系统的耦合度越低,这样的系统就越容易实现垂直切分。

 水平扩展:简单来说,可以将数据的水平切分理解为按照数据行来切分,就是将表中的某些行切分到一个数据库中,而另外的某些行又切分到其他的数据库中。为了能够比较容易地判断各行数据切分到了哪个数据库中,切分总是需要按照某种特定的规则来进行的,如按照某个数字字段的范围,某个时间类型字段的范围,或者某个字段的 hash 值。

垂直扩展与水平扩展各有优缺点,一般一个大型系统会将水平与垂直扩展结合使用。

 

非结构化数据的存储及应用

相对于结构化数据而言,不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XMLHTML、各类报表、图像和音频/视频信息等等。分布式文件系统是实现非结构化数据存储的主要技术,说到分布式文件系统就不得不提GFS(全称为"Google File System"),GFS 的系统架构图如下图所示。

GFS 将整个系统分为三类角色:Client(客户端)、Master(主服务器)、Chunk Server(数据块服务器)。

Client(客户端):是 GFS提供给应用程序的访问接口,它是一组专用接口,不遵守 POSIX 规范,以库文件的形式提供。应用程序直接调用这些库函数,并与该库链接在一起。

Master(主服务器):是 GFS管理节点,主要存储与数据文件相关的元数据,而不是 Chunk(数据块)。元数据包括:命名空间(Name Space),也就是整个文件系统的目录结构,一个能将 64 位标签映射到数据块的位置及其组成文件的表格,Chunk 副本位置信息和哪个进程正在读写特定的数据块等。还有Master 节点会周期性地接收从每个Chunk节点来的更新("Heart- beat")来让元数据保持最新状态。

Chunk Server(数据块服务器):负责具体的存储工作,用来存储 ChunkGFS将文件按照固定大小进行分块,默认是 64MB,每一块称为一个 Chunk(数据块),每一个 Chunk Block 为单位进行划分,大小为 64KB,每个 Chunk有一个唯一的64位标签。GFS采用副本的方式实现容错,每一个Chunk有多个存储副本(默认为三个)。Chunk Server 的个数可有有多个,它的数目直接决定了 GFS 的规模。

 

半结构化数据的存储及应用

就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,半结构化数据模型具有一定的结构性,但较之传统的关系和面向对象的模型更为灵活。半结构数据模型完全不基于传统数据库模式的严格概念,这些模型中的数据都是自描述的。

由于半结构化数据没有严格的schema定义,所以不适合用传统的关系型数据库进行存储,适合存储这类数据的数据库被称作“NoSQL”数据库。

NoSQL 的定义:

被称作下一代的数据库,具有非关系型,分布式,轻量级,支持水平扩展且一般不保证遵循ACID原则的数据储存系统。NoSQL”其实是具有误导性的别名,称作Non Relational Database(非关系型数据库)更为恰当。所谓“非关系型数据库”指的是:

使用松耦合类型、可扩展的数据模式来对数据进行逻辑建模(Map,列,文档,图表等),而不是使用固定的关系模式元组来构建数据模型。

以遵循于CAP定理(能保证在一致性,可用性和分区容忍性三者中中达到任意两个)跨多节点数据分布模型而设计,支持水平伸缩。这意味着对于多数据中心和动态供应(在生产集群中透明地加入/删除节点)的必要支持,也即弹性(Elasticity)

拥有在磁盘或内存中,或者在这两者中都有的,对数据持久化的能力,有时候还可以使用可热插拔的定制存储。

支持多种的‘Non-SQL’接口(通常多于一种)来进行数据访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值