分布式存储系统简介

时间:2022-12-11 21:49:04

为了简化用户端的使用,提供了一个分布式缓存系统来提供对此分布式存储系统的访问接口以及本地数据缓冲以降低网络压力。

 

一、概念:

分布式存储系统,是将数据分散存储在多*立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

 

无论是云计算、大数据还是互联网公司的各种应用,其后台基础设施的主要目标都是构建低成本、高性能、可扩展、易用的分布式存储系统。

 

二、分布式存储系统具有如下几个特性:

可扩展:

分布式存储系统可以扩展到几百台甚至几千台的集群规模,而且,随着集群规模的增长,系统整体性能表现为线性增长。

低成本:

分布式存储系统的自动容错、自动负载均衡机制使其可以构建在普通PC机之上。另外,线性扩展能力也使得增加、减少机器非常方便,可以实现自动运维。

高性能:

无沦是针对整个集群还是单台服务器,都要求分布式存储系统具备高性能。

易用:

分布式存储系统需要能够提供易用的对外接口,另外,也要求具备完善的监控、运维工具,并能够方便地与其他系统集成,例如,从hadoop云计算系统导人数据。

 

分布式存储系统的挑战主要在于数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。

 

分布式存储涉及的技术主要来自两个领域:分布式系统以及数据库

 

三、分布式存储系统设计面临的问题:

数据分布:

如何将数据分布到多台服务器才能够保证数据分布均匀?数据分布到多台服务器后如何实现跨服务器读写操作?

一致性:

如何将数据的多个副本复制到多台服务器,即使在异常情况下,也能够保证不同副本之间的数据一致性?

容错:

如何检测到服务器故障?如何自动将出现故障的服务器上的数据和服务迁移到集群中其他服务器?

负载均衡:

新增服务器和集群正常运行过程中如何实现自动负载均衡?数据迁移的过程中如何保证不影响已有服务?

事务与并发控制:

如何实现分布式事务?如何实现多版本并发控制?

 

四、分布式存储数据需求

分布式存储面临的数据需求比较复杂,大致可以分为三类:

非结构化数据:

包括所有格式的办公文档、文本、图片、图像、音频和视频信息等。

结构化数据:

一般存储在关系数据库中,可以用二维关系表结构来表示。结构化数据的模式和内容是分开的,数据的模式需要预先定义。

半结构化数据:

介于非结构化数据和结构化数据之间,HTML文档就属于半结构化数据。它一般是白描述的,与结构化数据最大的区别在于,半结构化数据的模

 

 

五、分布式文件系统

互联网应用需要存储大量的图片、照片、视频等非结构化数据对象,这类数据以对象的形式组织,对象之间没有关联,这样的数据一般称为Blob ( Binary Large Qbject, 二进制大对象)数据。

 

分布式文件系统用于存储Blob对象

 

分布式文件系统也常作为分布式表格系统以及分布式数据库的底层存储。

 

分布式文件系统存储三种类型的数据:Blob对象定长块大文件

分布式存储系统简介

 分布式存储系统简介

 

六、分布式键值系统

分布式键值系统用于存储关系简单的半结构化数据,它只提供基于主键的CRUD(create/read/update/delete)功能

 

分布式键值系统支持将数据分布到集群中的多个存储节点。

 

分布式键值系统是分布式表格系统的一种简化实现,一般用作缓存

 

分布式键值系统中常用的数据分布技术一致性哈希

 

 

七、分布式表格系统

分布式表格系统用于存储关系较为复杂的半结构化数据

支持简单的CRUD操作,而且支持扫描某个主键范围

以表格为单位组织数据,每个表格包括很多行,通过主键标识一行。

 

分布式表格系统是一种很好的权衡

 

可以做到超大规模,而且支持较多的功能,但实现往往比较复杂,而且有一定的使用门槛。

 

 

八、分布式数据库

分布式数据库一般是从单机关系数据库扩展而来,用于存储结构化数据

 

分布式数据库采用二维表格组织数据,提供SQL关系查询语言,支持多表关联,嵌套子查询等复杂操作,并提供数据库事务以及并发控制。

 

分布式数据库支持的功能最为丰富,符合用户使用习惯,但可扩展性差

 

关系数据库是目前为止最为成熟的存储技术,它的功能极其丰富