CN105335441B - 基于局域网的分布式文件系统 - Google Patents
基于局域网的分布式文件系统 Download PDFInfo
- Publication number
- CN105335441B CN105335441B CN201410394194.8A CN201410394194A CN105335441B CN 105335441 B CN105335441 B CN 105335441B CN 201410394194 A CN201410394194 A CN 201410394194A CN 105335441 B CN105335441 B CN 105335441B
- Authority
- CN
- China
- Prior art keywords
- local area
- data
- area network
- file system
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于局域网的分布式文件系统。由三大部分:虚拟磁盘、DFAT文件系统、后台服务端程序组成。通过虚拟出一个磁盘分区,写入该分区的数据会被系统自动分块,并分散存储到局域网内任一共享空间中,不限所属计算机、不限所属磁盘分区,且从应用程序角度出发,数据只是被存放到了某一个磁盘分区空间中,从而充分利用单一计算机剩余磁盘空间和充分利用局域网内剩余磁盘空间,提高存储资源利用率,大大降低存储成本。
Description
技术领域
本发明涉及一种解决计算机文件实现分布式存储的文件系统,尤其是一种没有Master节点、所有计算机处于平等地位的分布式文件系统,该系统基于局域网组播、TCP技术实现通信,基于虚拟磁盘技术实现对单一电脑跨分区文件存储功能。
背景技术
目前,常见的分布式存储技术均采用Master-Slaves结构来解决分布式存储的数据同步问题,由Master节点统一管理数据索引信息。但是,一旦Master节点出现问题,整个分布式系统就会瘫痪,造成重大损失。
再者,随着计算机技术飞速发展,计算机面临大数据存储问题,直接的解决方法就是购买更大容量的磁盘,但这不能根本性解决大数据问题,存储容量很快就会达到新的瓶颈。而在一个局域网范围内,绝大部分计算机仍余留存储空间,虽然总的剩余空间足够存储某一大小的文件,但单一计算机无法实现,这就造成存储资源的浪费。
在单一计算机上,各分区剩余空间不尽相同,当总剩余空间足以存放某一大小的文件,但单一分区无法实现,这也造成存储资源的浪费。
发明内容
为了克服现有文件系统无法实现跨分区存储数据,局域网内计算机不能方便的共享磁盘空间,造成存储资源浪费的不足,本发明提供了一种文件系统,该文件系统不仅能将各分区剩余空间统一进行管理,还能对局域网内计算机剩余存储空间进行统一管理。
本发明解决其技术问题采用的技术方案是:在操作系统驱动层,通过虚拟出一个磁盘分区,用户层程序发往虚拟磁盘分区的数据,被自动分流到各个真实物理磁盘分区,用户层无需知道数据被存放的具体物理磁盘位置,从而实现对单一计算机剩余磁盘空间的统一管理。在一个局域网内,在安装有该文件系统的计算机之间,当某一台计算机上的程序往虚拟磁盘以数据流的方式写入数据时,数据被自动分块并随机发往任一计算机进行存储。其中,采用了组播技术发起询问各计算机剩余磁盘空间请求,其它计算机将会收到该请求,并分别检索各自虚拟磁盘中是否有所请求的文件的分块,并用TCP技术反馈消息,因此各台计算机处于平等地位,而不是传统的Master-Slaves结构。同时,用户可以自定义分块的备份数,相同的分块数据存放在不同计算机上,当存放有某一分块数据的计算机因故停止运行,用户仍然能从其它计算机获取到同一分块的数据备份,从而大大提高系统稳定性。
本发明的效果是,用户层程序对虚拟磁盘的数据操作可以被自动重定向到局域网内任意可用磁盘空间中,而在用户层程序看来,只是对某一磁盘分区的数据读写操作,从而给用户层程序带来极大便利,无需文件系统提供额外操作接口,即可实现对整个局域网内剩余磁盘空间的充分利用,从而提高资源利用率,大大降低存储成本,还能提高数据存储安全稳定性。
附图说明
下面附图对整个文件系统的架构作进一步说明。
图1是本发明的单机架构图。
图2是本发明的局域网架构图。
图3是本发明的一个数据读写结构图。
图4是本发明的一个数据流分块模型。
具体实施方式
在图1中,展示了本发明的单机架构图。操作系统上程序可以分为两类,一类是内核模式下运行的程序,如:驱动程序,另一类是用户模式下运行的程序,如:浏览器。本发明的程序既有运行在用户模式下的程序,又有内核模式下运行的程序。内核模式下的程序其一是虚拟磁盘,它负责统一管理各个分区的共享空间,大小可以由用户设定。内核模式下的程序其二是DFAT(Distributed File Allocation Table)文件系统,它负责维护虚拟磁盘上的数据结构,为用户层程序提供访问接口。用户模式下的程序其一是配置器,负责配置虚拟磁盘的相关运行参数,查看和控制系统的运行状态。用户模式下的程序其二是后台服务端程序,负责处理DFAT发来的数据请求,并将该请求发往局域网内其它计算机,最后将处理结果反馈给DFAT文件系统。
当用户层某一应用程序向虚拟磁盘发起数据读写请求,该请求先经过DFAT进行处理,DFAT再对虚拟磁盘进行读写操作,虚拟磁盘将读写操作下发到真实的物理磁盘分区,然后把处理结果反馈给DFAT文件系统,若返回的处理结果需要在经过其它计算机处理,则DFAT在将请求发往上层的后台服务端程序处理,最后DFAT再把处理结果反馈给用户层的程序,从而完成数据读写操作。
在图2中,展示了本发明的局域网架构。假设局域网内有四台计算机安装了本发明的DFAT文件系统,各自共享了80M的剩余磁盘空间,则整个局域网拥有80*4=320M的共享磁盘空间,则可以存放单文件大小为320M的文件,每台计算机只存储文件的一部分。
在图3中,展示了一个用户层程序读数据的过程,该程序在计算机A上经过DFAT对虚拟磁盘发起了读请求,DFAT将该请求转发给计算机A上的后台服务端程序,台服务端程序发起组播查询,B、C、D三台计算机都将收到查询请求,并对本机的虚拟磁盘进行查询,其中计算机B发现本机存在所请求的读写数据分块,则直接与计算机A建立TCP连接,并将数据发往A。计算机C、D查询本机的虚拟磁盘文件信息后发现没有所请求的分块数据,则不予反馈消息。计算机A上的后台服务端程序收到发自计算机B的数据后转发给DFAT文件系统,最后转发给用户层程序,完成本次数据读过程。
数据写操作与数据读操作类似,用户层程序在计算机A上发起数据写操作,DFAT文件系统收到该请求后,将其转发给后台服务端程序,后台服务端程序先以组播方式询问其它计算机是否有足够大小空间存放指定大小的分块数据,收到该请求的计算机经过判断,若剩余空间符合请求,则以TCP连接方式反馈一个消息给计算机A上的后台服务端程序,随后A上的后台服务端程序根据反馈得到的计算机消息,随机选择预先设置的计算机台数的计算机,并用TCP连接方式将数据发送出去。后台服务端程序再将处理结果反馈给DFAT文件系统,DFAT文件系统在把结果反馈给用户层程序,从而完成写过程。
在图4中,展示了一个用户层程序往计算机A以数据流方式写入数据的数据分块过程。首先本发明对数据流进行了人为的边界指定,数据流是某一个文件的一部分,文件的起始位置定义为边界1,此外分块大小的整数倍数字偏移量皆是边界。如当设置分块大小为2MB,则边界2为2MB、边界3为4MB、边界4为6MB,以此类推。计算机A上的DFAT文件系统在处理数据流时,先判断当前数据小块所属的数据分块,数据小块定义为数据分块的一部分,数据分块由很多个数据小块组成。数据小块的大小定义为缓存块大小,为固定值4096B。
计算机A上的DFAT文件系统收到数据流读写请求后,依数据发来的先后次序处理数据流,每获取达到一个数据小块大小的数据后,DFAT文件系统将该数据小块数据转发给后台服务端程序处理,若数据流大小小于数据小块大小,则DFAT文件系统自动补足剩余部分并记录原始数据流大小。随后,计算机A上的后台服务端程序发起组播查询请求并判断当前数据小块所属的数据分块是否已经在某一计算机上存在,其它计算机收到请求后检索各自虚拟磁盘数据,并以TCP连接反馈检索结果。若反馈的结果为存在,则计算机A直接将该数据小块发往反馈结果为存在的计算机,若反馈结果为都不存在,则计算机A通过随机算法,任意选择一台有足够空间的计算机,并将该数据小块发送到该计算机上。数据分块的备份数由用户设定,若有多个备份,则在随机选择主机时,多次重复随机选择算法并发送数据。
Claims (10)
1.一种基于局域网的分布式文件系统,包括:虚拟磁盘、DFAT文件系统、后台服务端程序,其特征是:
(1)整体上:
系统无Master节点,所有局域网内的计算机处于平等地位;
系统既能解决单一计算机上各磁盘分区剩余空间的统一管理,也能对局域网内计算机剩余存储空间进行统一管理;
(2)虚拟磁盘:
在操作系统驱动层,虚拟出的一个磁盘分区,来解决单一计算机上各个磁盘分区剩余空间的统一管理,对虚拟磁盘的数据读写操作,都会被重定向到单一计算机上的各个物理磁盘分区中;
(3)DFAT文件系统:
运行在操作系统内核层,维护本系统虚拟磁盘上的数据结构,用于为用户层程序提供访问接口,存取虚拟磁盘的数据;
以操作系统的文件系统方式实现,本系统不需要提供额外访问接口,用户层程序也只是如同访问普通磁盘分区内的文件一样访问本系统的虚拟磁盘空间内的文件,
(4)后台服务端程序:
运行在操作系统用户层,处理来自DFAT发来的数据,发往局域网内的其它计算机,以及接收来自局域网内的其它计算机的数据,并交给本机的DFAT处理,本机与局域网内的其它计算机通信时,采用TCP与组播通信相结合的方式来实现。
2.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:虚拟磁盘是一个驱动层程序虚拟出来的磁盘,负责统一管理各个物理磁盘分区共享的磁盘空间,供应用层程序直接或间接访问,写入虚拟磁盘的数据会被自动分发到各个分区内,用户层程序无需知道写入的数据在物理磁盘上的具体位置。
3.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:DFAT文件系统负责维护虚拟磁盘上的数据结构,能与用户层后台服务端程序通信和交换数据,为用户层其它程序提供访问虚拟磁盘的数据读写接口。
4.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:后台服务端程序负责处理DFAT文件系统发来的数据读写请求,并将该请求发往局域网内其它计算机上的后台服务程序,并将处理结果反馈给DFAT文件系统。
5.根据权利要求4所述的基于局域网的分布式文件系统,其特征是:计算机之间的通信由后台服务端程序完成,采用组播技术、TCP技术进行通信。
6.根据权利要求5所述的基于局域网的分布式文件系统,其特征是:后台服务端程序发出组播请求,其它计算机上的后台服务端程序收到该请求后,自行决定是否反馈消息和是否采用组播技术或TCP技术反馈消息。
7.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:系统无Master节点,局域网内计算机处于平等地位,各台计算机通过组播技术实现信息的多播,保证了各台计算机上信息的同步,当传输具体数据时,采用TCP技术,保证了数据传输的正确性和稳定性。
8.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:数据分块的大小由用户预先设置,先判断发往系统的数据分块在系统是否已存在,若存在则直接修改对应计算机上的分块数据,若不存在则根据规则随机选择计算机并向其发送分块数据。
9.根据权利要求8所述的基于局域网的分布式文件系统,其特征是:判断数据分块是否存在的方法为,后台服务端程序发出组播请求,其它计算机上收到该组播请求后自行检索各自计算机,并用TCP技术反馈检索结果。
10.根据权利要求1所述的基于局域网的分布式文件系统,其特征是:数据以数据流的方式写入该系统,并被自动分块,分块文件在DFAT文件系统中以特殊文件的身份存在,只能被后台服务端程序读写,其它应用程序无权限访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394194.8A CN105335441B (zh) | 2014-08-12 | 2014-08-12 | 基于局域网的分布式文件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410394194.8A CN105335441B (zh) | 2014-08-12 | 2014-08-12 | 基于局域网的分布式文件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105335441A CN105335441A (zh) | 2016-02-17 |
CN105335441B true CN105335441B (zh) | 2019-04-30 |
Family
ID=55285969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410394194.8A Active CN105335441B (zh) | 2014-08-12 | 2014-08-12 | 基于局域网的分布式文件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105335441B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648464B (zh) * | 2016-12-22 | 2020-01-21 | 柏域信息科技(上海)有限公司 | 基于云存储的多节点混合块缓存数据读写方法及系统 |
CN110019083B (zh) * | 2017-09-20 | 2023-01-24 | 阿里巴巴集团控股有限公司 | 分布式文件系统的存储方法、装置、电子设备及存储介质 |
CN109783576B (zh) * | 2019-01-02 | 2022-05-31 | 佛山市顺德区美的洗涤电器制造有限公司 | 家电设备及其数据存储方法、装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622187A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 基于网络映射的文件分布式存储方法 |
CN102624859A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 网络多副本的文件分布式存储方法 |
CN103929467A (zh) * | 2013-01-14 | 2014-07-16 | 埃森哲环球服务有限公司 | 安全在线分布式的数据存储服务 |
-
2014
- 2014-08-12 CN CN201410394194.8A patent/CN105335441B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622187A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 基于网络映射的文件分布式存储方法 |
CN102624859A (zh) * | 2011-11-28 | 2012-08-01 | 苏州奇可思信息科技有限公司 | 网络多副本的文件分布式存储方法 |
CN103929467A (zh) * | 2013-01-14 | 2014-07-16 | 埃森哲环球服务有限公司 | 安全在线分布式的数据存储服务 |
Non-Patent Citations (1)
Title |
---|
"基于局域网的文件分布式存储系统";辛铮;《万方学术期刊数据库》;20060531;摘要,第5页,第7-9页 |
Also Published As
Publication number | Publication date |
---|---|
CN105335441A (zh) | 2016-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969168B (zh) | 具有用于分级写入的nvram的持久性存储装置 | |
CN105025053A (zh) | 基于云存储技术的分布式文件的上传方法及其系统 | |
CN102985909B (zh) | 为良好分格的对象提供高扩展性网络存储的方法和设备 | |
US20070179981A1 (en) | Efficient data management in a cluster file system | |
CN103152390B (zh) | 分布式存储系统的节点配置方法、装置、节点及系统 | |
US11232127B2 (en) | Technologies for providing dynamic persistence of data in edge computing | |
KR102178740B1 (ko) | 토러스 네트워크 기반의 분산 파일 시스템을 위한 서버 및 이를 이용한 방법 | |
CN102857554A (zh) | 基于分布式存储系统进行数据冗余处理方法 | |
CN101594387A (zh) | 虚拟集群部署方法和系统 | |
CN106331148A (zh) | 一种客户端数据读取时的缓存管理方法及其装置 | |
CN108845877B (zh) | 管理内存的方法、装置和系统 | |
CN105404679A (zh) | 数据处理方法和装置 | |
CN104063331A (zh) | 处理器、共享存储区域访问方法和锁管理器 | |
CN102023816A (zh) | 一种对象存储系统的对象存放策略和访问方法 | |
CN108319496A (zh) | 资源访问方法、业务服务器、分布式系统及存储介质 | |
CN100530069C (zh) | 一种非同质存储设备的虚拟化系统及方法 | |
CN104536702A (zh) | 一种存储阵列系统及数据写请求处理方法 | |
US11922059B2 (en) | Method and device for distributed data storage | |
CN105335441B (zh) | 基于局域网的分布式文件系统 | |
CN104035925A (zh) | 数据存储方法、装置和存储系统 | |
US10057348B2 (en) | Storage fabric address based data block retrieval | |
CN105007317A (zh) | 一种分布式节点的数据处理方法及网关设备 | |
CN103019964B (zh) | 一种缓存数据访问方法及数据缓存系统 | |
US20070022218A1 (en) | Network-attached storage device having a connection to a local user device | |
CN109889561A (zh) | 一种数据处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |