CN1900931A - 多机文件存储系统和方法 - Google Patents
多机文件存储系统和方法 Download PDFInfo
- Publication number
- CN1900931A CN1900931A CN 200610098516 CN200610098516A CN1900931A CN 1900931 A CN1900931 A CN 1900931A CN 200610098516 CN200610098516 CN 200610098516 CN 200610098516 A CN200610098516 A CN 200610098516A CN 1900931 A CN1900931 A CN 1900931A
- Authority
- CN
- China
- Prior art keywords
- server node
- file
- storage system
- multiple machine
- data
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种多机文件存储系统和方法,该系统主要包括多个服务器节点,各个服务器节点之间采用高速以太网连接,通过高速以太网进行通信,所述各个服务器节点分段进行文件的保存和读取。该方法主要包括:从需要保存的文件中读取相应的数据块,将读取的数据块分段保存在所述多机文件存储系统中的各个服务器节点中。利用本发明,可以实现一种低成本、高可用、高性能的多机文件存储方案。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种多机文件存储系统和方法。
背景技术
虚拟存储系统是由多个物理存储子系统组成,并且由虚拟存储软件进行逻辑管理的集成系统(存储池),虚拟存储系统具有组成存储池的存储子系统所没有的、更全面的服务功能。虚拟存储系统是虚拟存储技术的现实应用。
虚拟存储技术的应用给IT系统的建设注入了新的推动力,虚拟存储管理软件和管理平台在整个IT系统中占有关键地位。由于虚拟存储技术及其产品的发展历史较短,虚拟存储技术的可靠性和可用性仍然需要进一步提高,才能够消除用户的疑虑。
现有技术中一种文件存储方案为:Coda分布式文件系统。Coda分布式文件系统是一个实验中的分布式文件系统,具有以下特性:
1、离线状态下移动客户端仍可操作;
2、错误恢复;
3、性能和可靠性;
4、安全性;
5、对共享的完美诠释;
6、可以免费获取源代码,支持Linux、NetBSD、FreeBSD、Windows95等多种操作系统。
上述Coda分布式文件系统的缺点为:需要在计算服务器上安装相应的Client(客户端)软件,文件读写并发度不高,不适合作并行存储服务器的文件系统。
现有技术中另一种文件存储方案为:PVFS(并行虚拟文件系统)。PVFS被广泛应用于高性能集群计算系统,PVFS提供一个全局命名的存储空间,将数据文件分配到多个存储子系统上,每个存储子系统由独立的节点服务器进行相关的IO管理,所有存储节点服务器由MGR(管理服务器)进行管理,在每个计算服务器上安装相应的Client软件。PVFS的特点是在IP网络,并行读取数据,确保网络计算机集群所需的IO性能,利用网络传输协议,简单地实现计算机集群对数据文件的共享。
上述PVFS方案的缺点为:PVFS目前只能支持LINUX系统,节点容错性较差,高度依赖MGR。另外PVFS需要在计算服务器上安装相应的Client软件,不适合作并行存储服务器的文件系统。
发明内容
本发明的目的是提供一种多机文件存储系统和方法,从而可以实现低成本、高可用、高性能的多机文件存储方案。
本发明的目的是通过以下技术方案实现的:
一种多机文件存储系统,包括:多个服务器节点,各个服务器节点之间采用高速以太网连接,通过高速以太网进行通信,所述各个服务器节点分段进行文件的保存和读取。
所述的多机文件存储系统还包括:
校验计算模块:对需要保存在多机文件存储系统中的文件进行数据块分段,根据分段后的数据块计算校验块,通过软件将获得的数据块和校验块传递给各个服务器节点进行保存。
所述的服务器节点在定时周期内向其它服务器节点发送心跳数据,接收其它服务器节点发送的心跳数据,所述的服务器节点包括:
查询请求处理模块:当在预定时间内未收到某个服务器节点的心跳数据,则向其它服务器节点发送针对该预定时间内未收到心跳数据的服务器节点的查询请求,将接收到其它服务器节点返回的查询响应传递给故障判断模块;
查询响应发送模块:当接收到其它查询服务器节点发送的针对被查询服务器节点的查询请求后,如果本服务器节点在预定时间内未收到所述被查询服务器节点的心跳数据,则向所述其它查询服务器返回携带故障信息的查询响应;否则,向所述其它查询服务器返回携带正常信息的查询响应;
故障判断模块:当请求发送模块传递过来的查询响应中携带故障信息,或者,没有接收到其它服务器节点返回的查询响应,则确定所述预定时间内未收到心跳数据的服务器节点出现故障;当请求发送模块传递过来的查询响应中携带正常信息,则确定本服务器节点出现故障。
通过在所述多机文件存储系统中增加服务器节点来对所述多机文件存储系统进行扩展。
一种多机文件存储系统的文件处理方法,包括:
从需要保存的文件中读取相应的数据块,将读取的数据块分段保存在所述多机文件存储系统中的各个服务器节点中。
所述的方法具体包括步骤:
A、从需要保存的文件中依次读取设定数量的大小相同的数据块,根据读取的数据块计算出校验块,将所述获得的数据块和校验块组成一个分组,通过软件将该分组中的数据块和校验块分段保存在给各个服务器节点中;
B、再从所述文件中读取一个分组的数据块和校验块并分段保存在各个服务器节点中,每个服务器节点上同一个文件的数据块和校验块依次保存在一个同名文件中,直到所述文件读取完毕。
所述的方法具体包括:
当所述文件的剩余部分不足以构成一个分组的数据块和校验块时,在所述文件中补充全零字节,从所述文件中读取最后一个分组的数据块和校验块。
所述的方法还包括:
当从所述多机文件存储系统中读取文件时,在服务器节点上发起读取数据请求,并将该读取数据请求传递给其它各个服务器节点;依次从各个服务器节点中读取一个分组的文件数据块和校验块,直到该文件全部读出。
所述的方法还包括:
当所述多机文件存储系统中的一个服务器节点发生故障时,根据从其它服务器节点读出的一个分组中的数据块和校验块,计算获得所述发生故障的服务器节点中保存的数据块。
由上述本发明提供的技术方案可以看出,本发明通过采用通过高速以太网进行连接和通信的多个服务器节点,各个服务器节点通过软件分段进行文件的保存和读取。从而可以提供一种低成本、高可用、高性能的多机文件存储实现方案。和现有技术相比,具有如下优点:
1、完全由软件实现,不增加硬件成本,是一种低成本的大容量存储实现方式,文件读写并发度高,适合做重大容量的文件服务器;
2、不受操作系统限制,可以在各种操作系统平台上运行;
3、操作简单、可靠性高、兼容性好,在一台服务器发生故障的情况下,整个系统仍然能够正常提供服务;
4、已有的系统可以方便升级到更大容量的系统,可扩展性好。
附图说明
图1为本方法所述多机文件存储系统的实施例的结构示意图;
图2为本发明所述多机文件存储系统的实施例的文件读取过程的原理示意图。
具体实施方式
本发明提供了一种多机文件存储系统和方法,本发明的核心为:采用通过高速以太网进行连接和通信的多个服务器节点,各个服务器节点通过软件分段进行文件的保存和读取。
下面结合附图来详细描述本发明,本方法所述多机文件存储系统的实施例的结构如图1所示。该多机文件存储系统包括N+1个(至少三个)服务器节点,所有服务器节点地位对等,各个服务器节点之间采用高速以太网连接,通过高速以太网进行数据通信及故障检测。
各个服务器节点内部包括多个IDE(存储单元)和NC(网卡),采用双网络备份,利用其中部分网卡进行服务器节点内部通讯,利用另外的部分网卡进行服务器节点之间的通讯。
本发明所述多机文件存储系统中的所有设备采用普通设备,不需要添加任何特殊检测设备,构成N+1的容错系统。如果因为磁盘故障、操作系统故障、硬件故障、网络故障等原因导致某个服务器节点发生故障,则其余N个服务器节点通过校验以后,仍然可以使本发明所述多机文件存储系统正常地提供数据服务,不会导致服务中断。
本发明所述多机文件存储系统通过软件来实现,与操作系统无关,适用于任何操作系统。
本发明所述多机文件存储系统中的服务器节点在定时周期内向其它服务器节点发送心跳数据,接收其它服务器节点发送的心跳数据,所述的服务器节点包括:
查询请求处理模块:当在预定时间内未收到某个服务器节点的心跳数据,则向其它服务器节点发送针对该预定时间内未收到心跳数据的服务器节点的查询请求,将接收到其它服务器节点返回的查询响应传递给故障判断模块;
查询响应发送模块:当接收到其它查询服务器节点发送的针对被查询服务器节点的查询请求后,如果本服务器节点在预定时间内未收到所述被查询服务器节点的心跳数据,则向所述其它查询服务器返回携带故障信息的查询响应;否则,向所述其它查询服务器返回携带正常信息的查询响应;
故障判断模块:当请求发送模块传递过来的查询响应中携带故障信息,或者,没有接收到其它服务器节点返回的查询响应,则确定所述预定时间内未收到心跳数据的服务器节点出现故障;当请求发送模块传递过来的查询响应中携带正常信息,则确定本服务器节点出现故障。
下面结合附图来详细描述本发明所述方法,本发明所述多机文件存储系统的文件读取过程的原理示意图如图2所示,文件存取过程使用软件方式来实现,构建一个基于网络的通过软件实现的Raid(经济磁盘冗余阵列)文件存取系统。
本发明所述多机文件存储系统的文件保存过程的具体描述如下:
在需要将一个文件保存在包含N+1个服务器节点的多机文件存储系统中时,依次从该文件中读取N个相同大小的数据block(块),计算该N个数据block的校验得到一个校验block(parity)。然后,将上述N个数据block和校验block合并成一个group,分别存入各个服务器节点的存储设备中。各个block的头部还包含该文件分布的服务器节点的数目和标识等信息。继续从该文件中读取N个相同大小的数据block,再计算该N个数据block的校验得到一个校验block,再次将该N个数据block和校验block合并成一个group,分别存入各个服务器节点的存储设备中。
如图2所示,多机文件存储系统包含六个服务器节点,在该多机文件存储系统中写入一个文件时,依次从该文件中读取五个相同大小的数据block,计算这五个数据block的校验得到一个校验block(parity1),总计六个block;将这五个数据block按照一定的散列规则分散到五个服务器节点上存储,将校验block(parity1)存储到剩下的一个服务器节点,这样就完成了一个group数据的存储。
继续从该文件中读取后面的五个数据block,继续进行上述一个group数据的存储工作,直到该文件读完。如果该文件的末尾部分不足五个数据block,补充全零字节的数据block。每个服务器节点上同一个文件的block依次存储在一个同名文件中。
本发明所述多机文件存储系统的文件读取过程的具体描述如下:
当需要对多机文件存储系统中存储的一个文件进行读取时,通过该多机文件存储系统中的任一个节点发起读请求,并将该读请求通过高速以太网发送到其它各个服务器节点,根据该读请求从各个服务器节点上每次读取一个group数据,直到该文件读取完毕。如果其中一个服务器节点发生故障,则通过上述校验block可以计算出该发生故障的服务器节点中保存的数据block。
在对多机文件存储系统中存储的一个文件进行读取时,还可以根据该文件的offset(偏移)值计算出所需要读取的group,然后,从各个服务器节点中有选择地读取所计算出的group,实现对文件的查询操作。
本发明所述多机文件存储系统的检错过程的具体描述如下:
由于本发明所述多机文件存储系统中包含的服务器节点数量众多,因此,通过对单纯的心跳检测中添加设定的规则,采用各个节点的投票机制来进行所述多机文件存储系统的检错过程。
各个服务器节点间采用定时心跳检测,在每个定时周期内服务器节点接收其余所有服务器节点发送的心跳数据,同时向其余所有服务器节点发送心跳数据。如果某个服务器节点A发现长时间没有收到服务器节点B发送的心跳数据,就向剩余其他服务器节点发送查询请求,查询该服务器节点B的信息。
上述剩余其他服务器节点在收到服务器节点A发送的查询请求后,判断上一次收到被查询节点(服务器节点B)的心跳数据是否超时,如果是,则返回故障信息给查询节点(服务器节点A);否则,返回正常信息给查询节点。
服务器节点A接收到剩余其他节点返回的查询响应后,对该查询响应信息进行分析,如果剩余其它节点也认为服务器节点B故障,即返回了故障信息,或者服务器节点A没有收到剩余其它节点返回的响应,则服务器节点A认为服务器节点B故障;如果剩余其他节点返回了正常信息,则服务器节点A认为其自身发生故障。
本发明所述多机文件存储系统具有良好的可扩展性,对本发明所述系统进行扩展只需要在系统网络上添加服务器节点即可,所有数据可以实现平滑过渡。
一个N+1的系统升级到N+m+1的系统后,N+1的系统中的文件在新增加的m个节点上每个节点都对应生成一个文件,文件中只包含文件头信息。在该m个节点上读取文件的时候,根据上述生成的文件中的文件头信息,即文件头信息中的节点数目为N+1,可以向原来的N+1个节点来读取相应的文件。
新增的文件数据写入到N+m+1个节点。这样系统增加数据后即可提供服务,不需要做数据转换。在系统负载较低的时候将原N+1系统中的数据读出,然后再写入N+m+1系统中,这样经过一段时间后,所有数据都变成了N+m+1系统的存储形式。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (9)
1、一种多机文件存储系统,其特征在于,包括:多个服务器节点,各个服务器节点之间采用高速以太网连接,通过高速以太网进行通信,所述各个服务器节点分段进行文件的保存和读取。
2、根据权利要求1所述的多机文件存储系统,其特征在于,所述的多机文件存储系统还包括:
校验计算模块:对需要保存在多机文件存储系统中的文件进行数据块分段,根据分段后的数据块计算校验块,通过软件将获得的数据块和校验块传递给各个服务器节点进行保存。
3、根据权利要求1或2所述的多机文件存储系统,其特征在于,所述的服务器节点在定时周期内向其它服务器节点发送心跳数据,接收其它服务器节点发送的心跳数据,所述的服务器节点包括:
查询请求处理模块:当在预定时间内未收到某个服务器节点的心跳数据,则向其它服务器节点发送针对该预定时间内未收到心跳数据的服务器节点的查询请求,将接收到其它服务器节点返回的查询响应传递给故障判断模块;
查询响应发送模块:当接收到其它查询服务器节点发送的针对被查询服务器节点的查询请求后,如果本服务器节点在预定时间内未收到所述被查询服务器节点的心跳数据,则向所述其它查询服务器返回携带故障信息的查询响应;否则,向所述其它查询服务器返回携带正常信息的查询响应;
故障判断模块:当请求发送模块传递过来的查询响应中携带故障信息,或者,没有接收到其它服务器节点返回的查询响应,则确定所述预定时间内未收到心跳数据的服务器节点出现故障;当请求发送模块传递过来的查询响应中携带正常信息,则确定本服务器节点出现故障。
4、根据权利要求1所述的多机文件存储系统,其特征在于,通过在所述多机文件存储系统中增加服务器节点来对所述多机文件存储系统进行扩展。
5、一种多机文件存储系统的文件处理方法,其特征在于,包括:
从需要保存的文件中读取相应的数据块,将读取的数据块分段保存在所述多机文件存储系统中的各个服务器节点中。
6、根据权利要求5所述的方法,其特征在于,所述的方法具体包括步骤:
A、从需要保存的文件中依次读取设定数量的大小相同的数据块,根据读取的数据块计算出校验块,将所述获得的数据块和校验块组成一个分组,通过软件将该分组中的数据块和校验块分段保存在给各个服务器节点中;
B、再从所述文件中读取一个分组的数据块和校验块并分段保存在各个服务器节点中,每个服务器节点上同一个文件的数据块和校验块依次保存在一个同名文件中,直到所述文件读取完毕。
7、根据权利要求6所述的方法,其特征在于,所述的方法具体包括:
当所述文件的剩余部分不足以构成一个分组的数据块和校验块时,在所述文件中补充全零字节,从所述文件中读取最后一个分组的数据块和校验块。
8、根据权利要求5、6或7所述的方法,其特征在于,所述的方法还包括:
当从所述多机文件存储系统中读取文件时,在服务器节点上发起读取数据请求,并将该读取数据请求传递给其它各个服务器节点;依次从各个服务器节点中读取一个分组的文件数据块和校验块,直到该文件全部读出。
9、根据权利要求8所述的方法,其特征在于,所述的方法还包括:
当所述多机文件存储系统中的一个服务器节点发生故障时,根据从其它服务器节点读出的一个分组中的数据块和校验块,计算获得所述发生故障的服务器节点中保存的数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610098516XA CN100543743C (zh) | 2006-07-04 | 2006-07-04 | 多机文件存储系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610098516XA CN100543743C (zh) | 2006-07-04 | 2006-07-04 | 多机文件存储系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1900931A true CN1900931A (zh) | 2007-01-24 |
CN100543743C CN100543743C (zh) | 2009-09-23 |
Family
ID=37656818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200610098516XA Active CN100543743C (zh) | 2006-07-04 | 2006-07-04 | 多机文件存储系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100543743C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888405A (zh) * | 2010-06-07 | 2010-11-17 | 北京高森明晨信息科技有限公司 | 一种云计算的文件系统和数据处理方法 |
CN103544285A (zh) * | 2013-10-28 | 2014-01-29 | 华为技术有限公司 | 一种数据加载方法及装置 |
CN103699610A (zh) * | 2013-12-13 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种生成文件校验信息的方法、文件校验方法及设备 |
CN104580268A (zh) * | 2013-10-09 | 2015-04-29 | 南京中兴新软件有限责任公司 | 文件数据的传输方法及装置 |
CN105227672A (zh) * | 2015-10-13 | 2016-01-06 | 国家电网公司 | 数据存储及访问的方法和系统 |
CN112256642A (zh) * | 2020-10-13 | 2021-01-22 | 北京神州数字科技有限公司 | 微服务体系下文件分布式写入、读取、处理机制及系统 |
-
2006
- 2006-07-04 CN CNB200610098516XA patent/CN100543743C/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101888405A (zh) * | 2010-06-07 | 2010-11-17 | 北京高森明晨信息科技有限公司 | 一种云计算的文件系统和数据处理方法 |
CN104580268A (zh) * | 2013-10-09 | 2015-04-29 | 南京中兴新软件有限责任公司 | 文件数据的传输方法及装置 |
CN103544285A (zh) * | 2013-10-28 | 2014-01-29 | 华为技术有限公司 | 一种数据加载方法及装置 |
CN103699610A (zh) * | 2013-12-13 | 2014-04-02 | 乐视网信息技术(北京)股份有限公司 | 一种生成文件校验信息的方法、文件校验方法及设备 |
CN105227672A (zh) * | 2015-10-13 | 2016-01-06 | 国家电网公司 | 数据存储及访问的方法和系统 |
CN112256642A (zh) * | 2020-10-13 | 2021-01-22 | 北京神州数字科技有限公司 | 微服务体系下文件分布式写入、读取、处理机制及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100543743C (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101758544B1 (ko) | 비휘발성 메모리 시스템에서의 동기 미러링 | |
US8738963B2 (en) | Methods and apparatus for managing error codes for storage systems coupled with external storage systems | |
US7882304B2 (en) | System and method for efficient updates of sequential block storage | |
US6795895B2 (en) | Dual axis RAID systems for enhanced bandwidth and reliability | |
CN1234071C (zh) | 对不完全raid盘写进行可靠故障转移的方法和设备 | |
CN100345097C (zh) | 用于同步逻辑系统的方法和系统 | |
US20210133026A1 (en) | Erasure Coded Data Shards Containing Multiple Data Objects | |
US20100161564A1 (en) | Cluster data management system and method for data recovery using parallel processing in cluster data management system | |
CN102110154B (zh) | 一种集群文件系统中文件冗余存储方法 | |
CN103534688B (zh) | 数据恢复方法、存储设备和存储系统 | |
CN1892613A (zh) | 备份数据协调方法和系统 | |
CN1900931A (zh) | 多机文件存储系统和方法 | |
US11360697B2 (en) | Apparatus and method for encoding and decoding operations to protect data stored in a memory system | |
CN1564517A (zh) | 内存-网络内存-磁盘高速可靠存储系统及其读写方法 | |
US20180341554A1 (en) | Methods for handling storage element failures to reduce storage device failure rates and devices thereof | |
CN103714022A (zh) | 一种基于数据块的混合存储系统 | |
US20090300309A1 (en) | Storage apparatus | |
CN102158538A (zh) | 一种网络存储系统的管理方法及装置 | |
CN1946049A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |