一种基于磁盘管理模式的分布式存储方法技术

技术编号:27398850 阅读:20 留言:0更新日期:2021-02-21 14:10
本发明专利技术公开了一种基于磁盘管理模式的分布式存储方法,该方法旨在解决有效存储海量数据的问题,其特征在于存储的文件都被分割成固定大小的组件。在组件创建的时候,主件服务器会给每个组件分配一个不变的、全球唯一的64位的标识。组件服务器把组件以linux文件的形式保存在本地硬盘上,并且根据指定的标识和字节范围来读写块数据。每个块都会复制到多个块服务器上。缺省情况下,使用3个存储复制节点,用户可以为不同的文件命名空间设定不同的复制级别。从而可以有效存储海量数据,提高计算机的存储容量。的存储容量。的存储容量。

【技术实现步骤摘要】
一种基于磁盘管理模式的分布式存储方法


[0001]本专利技术涉及一种基于磁盘管理模式的分布式存储方法,属于计算机数据处理领域。

技术介绍

[0002]计算机技术在飞速的发展,计算机的处理器速度在不断地提高,计算机存储器的容量和传输速度在非常规地发展,计算机网络的吞吐量更是在跳跃式地增加。各种新的存储技术和分布式文件技术都被不断地设计和实现出来,以满足用户日益增长的需求。
[0003]分布式存储技术是通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落。
[0004]早期的基于磁盘管理模式的分布式存储技术一般以提供标准接口的远程文件访问为目的,在受网络环境、本地磁盘、处理器速度等方面限制的情况下,更多地关注访问的性能和数据的可靠性。如:NFS是利用Unix系统中的虚拟磁盘管理模式(VFSVirtualFile System)机制,将客户机对磁盘管理模式的请求,通过规范的文件访问协议和远程过程调用,转发到服务器端进行处理;服务器端在VFS之上,通过本地磁盘管理模式完成文件的处理,实现了全局的分布式磁盘管理模式。后来AFS在系统结构方面进行了有意义的探索,AFS利用本地存储作为分布式文件的缓存,在远程文件无法访问时,依然可以部分工作,提高了系统可用性。
[0005]面对广域网和大容量存储应用的需求,基于光纤通道(FiberChannel)的SAN(Storage Area Storage,存储区域网),NAS(Network Attached Storage,网络附连储存)得到了广泛的应用。借鉴当时先进的高性能对称多处理器的设计思想,逐渐设计开发了xFS、SFS、GFS、GPFS、DiFFS、BWFS等系统。

技术实现思路

[0006]本专利技术是针对各个网站公司所存储的海量数据,以解决有效存储海量数据的问题。
[0007]按照传统的标准,文件都非常大。当经常要处理快速增长的、包含数以万计对象的数据集时,即使底层磁盘管理模式提供支持,我们也很难管理成千上万的KB规模的文件块;大部分文件的更新是通过添加新数据完成的,而不是改变已存在的数据。在一个文件中随机的操作在实践中几乎不存在。一旦写完,文件就只可读,很多数据都有这些特性。传统的磁盘管理模式有着以上问题,基于以上问题提出本专利技术。
[0008]本专利技术提出基于文件式分布存储包括以下方面:
[0009]1、系统由许多廉价的普通组件组成,组件失效是一种常态。系统必须持续监控自身的状态,它必须将组件失效作为一种常态,能够迅速地侦测、冗余并恢复失效的组件。
[0010]2、系统存储一定数量的大文件。我们预期会有几百万文件,文件的大小通常在100MB或者以上。数个GB大小的文件也是普遍存在,并且要能够被有效的管理。系统也必须
支持小文件,但是不需要针对小文件做专门的优化。
[0011]3、系统必须高效的、行为定义明确的实现多客户端并行追加数据到同一个文件里的语意。我们的文件通常被用于”生产者-消费者“队列,或者其它多路文件合并操作。通常会有数百个生产者,每个生产者进程运行在一台机器上,同时对一个文件进行追加操作。使用最小的同步开销来实现的原子的多路追加数据操作是必不可少的。文件可以在稍后读取,或者是消费者在追加的操作的同时读取文件。
[0012]4、系统的工作负载主要由两种读操作组成:大规模的流式读取和小规模的随机读取。大规模的流式读取通常一次读取数百KB的数据,更常见的是一次读取1MB甚至更多的数据。来自同一个客户机的连续操作通常是读取同一个文件中连续的一个区域。小规模的随机读取通常是在文件某个随机的位置读取几个KB数据。如果应用程序对性能非常关注,通常的做法是把小规模的随机读取操作合并并排序,之后按顺序批量读取,这样就避免了在文件中前后来回的移动读取位置。
[0013]本专利技术通常是为了有效存储海量数据,提高计算机的存储容量。
附图说明
[0014]图1是一种分布式存储流程图
[0015]图2是一种写入操作的控制流程图
具体实施方式
[0016]本专利技术是提出一种基于磁盘管理模式的分布式存储方法,具体流程如图1,一个集群包含一个单独的主件,多台组件服务器,并且同时被多个客户端访问。所有的这些机器通常都是普通的Linux机器,运行着用户级别的服务进程。我们可以很容易的把组件服务器和客户端都放在同一台机器上,前提是机器资源允许,并且我们能够接受不可靠的应用程序代码带来的稳定性降低的风险。
[0017]上述架构具体情况如下:
[0018](1)存储的文件都被分割成固定大小的组件。在组件创建的时候,主件服务器会给每个组件分配一个不变的、全球唯一的64位的标识。组件服务器把组件以linux文件的形式保存在本地硬盘上,并且根据指定的标识和字节范围来读写块数据。出于可靠性的考虑,每个块都会复制到多个块服务器上。缺省情况下,我们使用3个存储复制节点,不过用户可以为不同的文件命名空间设定不同的复制级别。
[0019](2)主件节点管理所有的磁盘管理模式元数据。这些元数据包括名字空间、访问控制信息、文件和组件的映射信息、以及当前组件的位置信息。主件节点还管理着系统范围内的活动,比如,组件租用管理的回收、以及组件在组件服务器之间的迁移。主件节点使用心跳信息周期地和每个组件服务器通讯,发送指令到各个组件服务器并接收组件服务器的状态信息。
[0020](3)客户端代码以库的形式被链接到客户程序里。客户端代码实现了磁盘管理模式的API接口函数、应用程序与主件节点和组件服务器通讯、以及对数据进行读写操作。客户端和主件节点的通信只获取元数据,所有的数据操作都是由客户端直接和组件服务器进行交互的。
[0021]无论是客户端还是组件服务器都不需要缓存文件数据。客户端缓存数据几乎没有什么用处,因为大部分程序要么以流的方式读取一个巨大文件,要么工作集太大根本无法被缓存。无需考虑缓存相关的问题也简化了客户端和整个系统的设计和实现。
[0022]图2是一种写入操作的控制流程图
[0023]本专利技术使用租约机制来保持多个副本间变更顺序的一致性。主件节点为组件的一个副本建立一个租约,我们把这个副本叫做主组件。主组件对组件的所有更改操作进行序列化。所有的副本都遵从这个序列进行修改操作。因此,修改操作全局的顺序首先由主件节点选择的租约的顺序决定,然后由租约中主组件分配的序列号决定。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于磁盘管理模式的分布式存储方法,其特征在于:(1)存储的文件都被分割成固定大小的组件,主件服务器会给每个组件分配一个不变的、全球唯一的64位的标识;(2)主件节点管理所有的文件系统元数据。这些元数据包括名字空间、访问控制信息、文件和组件的映射信息、以及当前组件的位置信息;(3)客户端和主件节点的通信只获取元数据,...

【专利技术属性】
技术研发人员:邬玉良
申请(专利权)人:中科热备北京云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1