CN102014150B - 一种基于udp分布式小文件存储系统及其数据处理方法 - Google Patents

一种基于udp分布式小文件存储系统及其数据处理方法 Download PDF

Info

Publication number
CN102014150B
CN102014150B CN2010102969488A CN201010296948A CN102014150B CN 102014150 B CN102014150 B CN 102014150B CN 2010102969488 A CN2010102969488 A CN 2010102969488A CN 201010296948 A CN201010296948 A CN 201010296948A CN 102014150 B CN102014150 B CN 102014150B
Authority
CN
China
Prior art keywords
server
message
file
task management
storage
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
Application number
CN2010102969488A
Other languages
English (en)
Other versions
CN102014150A (zh
Inventor
林志扬
吴世雄
章正道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Information Security Research Institute Co., Ltd.
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN2010102969488A priority Critical patent/CN102014150B/zh
Publication of CN102014150A publication Critical patent/CN102014150A/zh
Application granted granted Critical
Publication of CN102014150B publication Critical patent/CN102014150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于UDP分布式小文件存储系统及其数据处理方法,包括第一服务器、第二服务器、第三服务器、第四服务器和第五服务器,第一服务器含有对外服务器和服务监控服务器,第二服务器含有全局命名服务器和服务监控服务器,第三服务器含有信息索引库服务器和服务监控服务器,第四服务器含有任务管理服务器和服务监控服务器,第五服务器含有存储服务器和服务监控服务器;第一服务器、第二服务器、第三服务器、第四服务器和第五服务器的相互之间是通过UDP改装协议来实现数据的相互传递和处理。该系统利用UDP改装协议,来做为内部服务器的通信协议,可以提高整个平台的并发能力与高速I/O能力,解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务。

Description

一种基于UDP分布式小文件存储系统及其数据处理方法
技术领域
本发明涉及计算机信息处理技术领域,特别是涉及一种基于UDP分布式小文件存储系统及其数据处理方法。
背景技术
在图像索引系统中,需要一个庞大的图片存储文件系统。用此文件系统来对图像索引系统中处理的图片文件存储,并能高速的实时性对图片文件进行读写操作。由于图片的特殊性,并不需要对文件进行修改操作,只需要对文件系统进行添加与删除操作即可。目前的分布式文件存储大都是采用TCP的方式进行网络访问。但是由于用户数量的不断攀升,即使对访问量大的应用实现了可扩展、高可靠的集群部署,仍然有访问慢的问题。
为了提高并发速度与实时性问题,会有很多人希望能在UDP协议上进行大型应用程序的构建。然而UDP协议本身存在着不通信不可靠的缺点,于是对于基于UDP进行可靠通信的协议修改工作。目前在网络上有许多人正做着这一工作,UDT、RakNet、eNet等都是构建在UDP之后网络可靠通信开发库。然后这些库开发时都针对了一些特殊应用来进行设计的,不具备通用性。比如RakNet是为游戏应用而设计,对于实时性等游戏相关的网络需求有很好的支持,对于大批量数据传输却有点力所不及。而UDT基于一种基于带宽速率控制的拥塞控制算法进行设计,主要用在小数量的bulk源共享富裕带宽的情况下,最典型的例子就是建立在光纤广域网上的网格计算。
发明内容
本发明的目的在于克服现有技术之不足,提供一种基于UDP分布式小文件存储系统及其数据处理方法,利用对外服务器来接收用户的读写要求,封装对内部存储操作,利用全局命名服务器来对新增文件进行内部唯一命名,利用信息索引库服务器来登记每个内部文件名所对应的存储器,利用任务管理服务器来执行对存储器的读写管理操作,利用存储服务器来存放文件内容,利用UDP改装协议,来做为内部服务器的通信协议,以提高整个平台的并发能力与高速I/O能力,解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务。
本发明解决其技术问题所采用的技术方案是:一种基于UDP分布式小文件存储系统,包括:
一个或多个第一服务器,该第一服务器内包含有一个对外服务器和一个用来管理对外服务器的运行与停止、以及定时对对外服务器进行检查的服务监控服务器;该对外服务器,对外负责向其它系统及用户提供管理控制其文件和目录的接口,对内负责向其它服务器传送用户的命令,并检查命令执行状态,最后将命令执行结果反馈给用户;
一个第二服务器,该第二服务器内包含有一个全局命名服务器和一个用来管理全局命名服务器的运行与停止、以及定时对全局命名服务器进行检查的服务监控服务器;该全局命名服务器设在客户应用和文件系统之间的一个逻辑层中,该全局命名服务器为每个新添加的文件分配一个唯一的内部名称;
一个第三服务器,该第三服务器内包含有一个信息索引库服务器和一个用来管理信息索引库服务器的运行与停止、以及定时对信息索引库服务器进行检查的服务监控服务器;该信息索引库服务器与全局命名服务器一起组成位于客户应用和文件系统之间一个逻辑层,该信息索引库服务器采用NoSQL数据库,用来保存全局名称与文件存储的对应Kye-Value数据、全局名称与用户路径的对应数据;
一个第四服务器,该第四服务器内包含有一个任务管理服务器和一个用来管理任务管理服务器的运行与停止、以及定时对任务管理服务器进行检查的服务监控服务器;该任务管理服务器设为系统的控制中心,负责识别并解决任何容量问题,运行存储服务器负载平衡,优化存储服务器的使用,负责与对外服务器合作进行增加/删除文件;
一个或多个第五服务器,该第五服务器内包含有一个存储服务器和一个用来管理存储服务器的运行与停止、以及定时对存储服务器进行检查的服务监控服务器;该存储服务器按照对外服务器与任务管理服务器的指令进行文件写入与读出;
该第一服务器、第二服务器、第三服务器、第四服务器和第五服务器的相互之间是通过用户数据包协议来实现数据的相互传递和处理。
所述的用户数据包协议为UDP改装协议,该UDP改装协议具有如下协议格式:
2位head:表示消息开始;
6位版本号:表示该UDP改装协议的版本;
8位命令号:表示此消息包含的命令;
16位生存时间:表示此消息所保留的时间,如果超时,此消息会被丢弃,会由发送端重发一次此消息;
32位序列号:表示此消息的编号,由系统随机生成,用来确认消息的成功发送与接收对应;
16位子命令与16位序列号:由应用程序自己指定,用来进一步明确消息包含内容;
数据:表示消息内容;
16位数据大小:发送数据的大小为子命令、子序列号与数据的总和,用来检查数据传送过程的完整;
5位key:表示所使用的加密类型;
1位ack:代表是否需要接收方进行返回确认包;
2位tail:表示消息到此结束。
所述的UDP改装协议,包括如下处理流程:
由发送消息模块负责将m_SendPacket_List需要发送包队列缓存中的消息包发送出去,并判断是否超时,一旦超时,会将数据进行重发;
由接收消息模块负责接收消息包,并进行判断包的首尾标志与数据长度是否一致,并把符合条件的消息包放入到m_RecvPacket_List需要接收包队列缓存中,提供给消息处理模块处理;
由消息处理模块对消息包进行处理,并将需要发送的消息包放入m_SendPacket_List需要发送包队列缓存中。
所述的发送消息模块的发送数据包过程,包括如下步骤:
a1.从m_SendPacket_List需要发送包队列缓存中按顺序取出消息包;
a2.查询该消息包的属性,判断该消息包是否已发送过;判断为是时,继续下一步骤,判断为否时转步骤a5;
a3.判断该消息包是否超时重发;判断为是时,继续下一步骤,判断为否时则返回步骤a1;
a4.判断该消息包是否重发超过3次;判断为是时,返回步骤a1,判断为否时继续下一步骤;
a5.调用标准UDP SocketAPI发送出该消息包;
a6.查询该消息包的消息属性,判断是否需要对方进行确认包,判断为是时,返回步骤a1,判断为否时,将该消息包从m_SendPacket_List需要发送包队列缓存中删除。
所述的接收消息模块的接收数据包过程,包括如下步骤:
b1.调用标准UDP SocketAPI从网卡上接收新的消息数据;
b2.对消息数据包进行验证,判断是否有新消息;判断为是时,继续下一步骤,判断为否时返回步骤b1;
b3.对该消息数据包的首尾标志进行判断,判断首尾标志与数据长度是否一致;判断为是时,继续下一步骤,判断为否时则返回步骤b1;
b4.将该消息数据包放入m_RecvPacket_List需要接收包队列缓存中,交给消息处理模块处理。
所述的消息处理模块的处理数据包过程,包括如下步骤:
c1.从m_RecvPacket_List需要接收包队列缓存中按顺序取出消息包,并将m_RecvPacket_List需要接收包队列缓存中删除该消息包;
c2.判断该消息包否已加密;判断为是时,继续下一步骤,判断为否时转步骤c4;
c3.对该消息包进行解密处理;
c4.判断该消息包是否为确认包;判断为是时,继续下一步骤,判断为否时转步骤c1;
c5.从m_SendPacket_List需要发送包队列缓存中将确认包所对应发送包删除,而后返回步骤c1;
c6.按系统命令执行,而后返回步骤c1。
一种基于UDP分布式小文件存储系统的数据处理方法,包括:
接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤;
接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤;
系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤;
系统在扩充存储空间时,系统主动进行负载均衡的处理步骤;
系统对数据文件进行定期自检的处理步骤。
所述的接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤,包括:
d1.系统的对外服务器得到来自其它系统或用户的访问请求后,获取请求中的其它系统或用户的唯一标志字串与所需要访问的文件路径,并将该标志字串与文件路径发送到系统的信息索引库服务器中;
d2.系统的信息索引库服务器根据内部唯一名称查询得到所述访问请求对应文件所存储的存储服务器的地址,并将此消息返回给对外服务器;
d3.对外服务器得到文件对应的存储服务器的地址编号与内部名称、MD5,向系统的存储服务器发出请求,发送内部名称与MD5;
d4.存储服务器接收到对外服务器的请求后,进行读取相应的文件内容,并计算出MD5进行校验,如果校验通过,存储服务器向对外服务器返回文件内容,否则返回出错信息。
所述的接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤,包括:
e1.系统的对外服务器得到来自其它系统或用户的访问请求后,取得其它系统与用户的唯一标志字串、所需要写入的文件路径与文件内容,该对外服务器将标志字串与文件路径发送到系统的全局命名服务器中;
e2.全局命名服务器收到对外服务器的请求之后,根据标志字串与文件路径等参数,生成一个唯一的内部名称,发回给对外服务器;
e3.对外服务器将取到的内部名称、标志字串、文件路径与文件内容,发送到系统的任务管理服务器,由任务管理服务器执行写入文件操作;
e4.任务管理服务器收到写入文件请求之后,确定要存储数据文件的存储服务器;
e5.存储服务器收到任务管理服务器的写入命令后,将文件内容写入存储服务器中,写入完成后,进行MD5检验,若检验正确,存储服务器向任务管理服务器返回成功消息,若检验不正确,返回步骤e4由任务管理服务器重新确定一个分配存储服务器写入;
e6.任务管理服务器收到存储服务器成功写入的返回消息后,任务管理服务器向信息索引库服务器写入索引信息;
e7.信息索引库服务器向任务管理服务器返回写入成功与否的消息,如果失败,由任务管理服务器向信息索引库服务器重新发送一次写入索引信息的命令;
e8.任务管理服务器向对外服务器返回写入成功与否的消息,对外服务器收到信息后,向外部系统或用户返回状态消息。
所述的系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤,包括:
f1.系统的对外服务器收到从系统的存储服务器读取文件时返回的错误编码时,向系统的任务管理服务器提交文件相应的内部名称与存储服务器地址;
f2.任务管理服务器得到对外服务器的自动恢复消息,向系统的信息索引库服务器发送内部名称,取得要访问的三个存储服务器地址;
f3.信息索引库服务器得到任务管理服务器发来的内部名称,查询到相应的三个存储服务器地址,并将三个存储服务器地址信息发回到任务管理服务器中;
f4.任务管理服务器将三个存储服务器地址、MD5与内部名称发送到报错的存储服务器上,让它自行恢复;
f5.存储服务器收到任务管理服务器的恢复命令后,向其它二个存储服务器读取内部名称的文件内容,并进行MD5检验,检验通过后,删除本地内部名称的文件内容,用新的文件内容替代,完成操作后,存储服务器向任务管理服务器发送操作状态。
所述的系统在扩充存储空间时,系统主动进行负载均衡的处理步骤,包括:
g1.系统的各个存储服务器会定期给任务管理服务器发送自身容量消息,包含剩余空间与剩余空间所占的百分比;
g2.任务管理服务器进行比较,当发现有两个存储服务器的剩余空间所占的百分比相差超过预先确定的阈值时,任务管理服务器向剩余空间所占的百分比较高的一个存储服务器发送负载均衡命令;该负载均衡命令中包含剩余空间所占的百分比较低的另一个存储服务器地址;
g3.剩余空间所占的百分比较高的存储服务器向剩余空间所占的百分比较低的存储服务器发送读取随机文件命令;
g4.剩余空间所占的百分比较低的存储服务器向剩余空间所占的百分比较高的存储服务器发送随机文件内容、内部名称与相应MD5值;
g5.剩余空间所占的百分比较高的存储服务器保存从剩余空间所占的百分比较低的存储服务器得到的文件内容、内部名称与相应MD5值,并将文件写入存储设备中,通过MD5检验之后,向任务管理服务器发送完成命令,包含剩余空间所占的百分比较低的存储服务器地址、内部名称与相应MD5值;
g6.任务管理服务器得到剩余空间所占的百分比较高的存储服务器的反馈消息,向信息索引库服务器提交更改命令,包含剩余空间所占的百分比较高的存储服务器地址、剩余空间所占的百分比较低的存储服务器地址、内部名称与相应MD5值;
g7.信息索引库服务器得到任务管理服务器的更改命令时,将内部名称中关于存储服务器地址中的剩余空间所占的百分比较低的存储服务器改为剩余空间所占的百分比较高的存储服务器,并MD5确认;更新完成后返回状态给任务管理服务器;
g8.任务管理服务器得到信息索引库服务器的确认之后,向剩余空间所占的百分比较低的存储服务器发送删除给定内部名称的文件内容;
g9.剩余空间所占的百分比较低的存储服务器删除完成后,向任务管理服务器返回状态。
所述的系统对数据文件进行定期自检的处理步骤,包括:
h1.系统的存储服务器会定期把存储服务器上的内部名称分批发送到任务管理服务器上;
h2.任务管理服务器收到存储服务器提交上来的内部名称与存储服务器地址后,进行转发到信息索引库服务器上查询;
h3.信息索引库服务器进行查询确认,并把确认的结果返回给任务管理服务器;
h4.任务管理服务器确认该内部名称在信息索引库服务器的查询结果,如果并无此记录,则任务管理服务器向存储服务器下达删除此内部名称及文件内容的指令;如果有此记录,任务管理服务器向存储服务器下达查询成功的指令。
本发明的有益效果是,由于采用了一个或多个第一服务器、一个第二服务器、一个第三服务器、一个第四服务器和一个或多个第五服务器来构成基于UDP分布式小文件存储系统,且第一服务器内包含有一个对外服务器和一个服务监控服务器,第二服务器内包含有一个全局命名服务器和一个服务监控服务器,第三服务器内包含有一个信息索引库服务器和一个服务监控服务器,第四服务器内包含有一个任务管理服务器和一个服务监控服务器,第五服务器内包含有一个存储服务器和一个服务监控服务器;第一服务器、第二服务器、第三服务器、第四服务器和第五服务器的相互之间是通过UDP改装协议来实现数据的相互传递和处理;该系统是通过对外服务器向用户与其它系统提供服务,采用UDP改装协议,做为内部服务器的通信协议,以提高整个平台的并发能力与高速I/O能力;采用对外服务器来接收用户的读写要求,封装对内部存储操作,对用户而言是透明;全局命名服务器对新增文件进行内部唯一命名,信息索引库服务器里登记每个内部文件名所对应的存储器,任务管理服务器执行对存储器的读写管理操作,存储服务器存放文件内容;该系统在对外服务器上提供了API访问方法,能为其它系统及用户提供高效、快速的访问接口,使用户与系统能透明方便的使用与管理此海量、稳定、便捷分布式小文件存储系统;解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务。
以下结合附图及实施例对本发明作进一步详细说明;但本发明的一种基于UDP分布式小文件存储系统及其数据处理方法不局限于实施例。
附图说明
图1是本发明的系统框架图;
图2是改装前后UDP协议栈应用图;
图3是改装后UDP协议-QDP格式图;
图4是QDP协议工作流程示意图;
图5是QDP协议发送消息模块流程示意图;
图6是QDP协议接收消息模块流程示意图;
图7是QDP协议消息处理模块流程示意图;
图8是本发明方法的数据文件读取流程示意图;
图9是本发明方法的数据文件写入流程示意图;
图10是本发明方法的数据文件出错恢复流程示意图;
图11是本发明方法的增加新存储服务器负载匀衡流程示意图;
图12是本发明方法的数据文件自检流程示意图。
具体实施方式
实施例,请参见图1所示,本发明的一种基于UDP分布式小文件存储系统,包括:
二个第一服务器,该第一服务器内包含有一个对外服务器和一个用来管理对外服务器的运行与停止、以及定时对对外服务器进行检查的服务监控服务器;该对外服务器,对外负责向其它系统及用户提供管理控制其文件和目录的接口,对内负责向其它服务器传送用户的命令,并检查命令执行状态,最后将命令执行结果反馈给用户;当然,第一服务器也可以选择采用一个或二个以上,根据需要进行设置;
一个第二服务器,该第二服务器内包含有一个全局命名服务器和一个用来管理全局命名服务器的运行与停止、以及定时对全局命名服务器进行检查的服务监控服务器;该全局命名服务器设在客户应用和文件系统之间的一个逻辑层中,该全局命名服务器为每个新添加的文件分配一个唯一的内部名称;
一个第三服务器,该第三服务器内包含有一个信息索引库服务器和一个用来管理信息索引库服务器的运行与停止、以及定时对信息索引库服务器进行检查的服务监控服务器;该信息索引库服务器与全局命名服务器一起组成位于客户应用和文件系统之间一个逻辑层,该信息索引库服务器采用NoSQL数据库,用来保存全局名称与文件存储的对应Kye-Value数据、全局名称与用户路径的对应数据;信息索引库服务器对于文件存储的作用就好像是DNS对于网络的作用一样;
一个第四服务器,该第四服务器内包含有一个任务管理服务器和一个用来管理任务管理服务器的运行与停止、以及定时对任务管理服务器进行检查的服务监控服务器;该任务管理服务器设为系统的控制中心,负责识别并解决任何容量问题,运行存储服务器负载平衡,优化存储服务器的使用,负责与对外服务器合作进行增加/删除文件;
二个第五服务器,该第五服务器内包含有一个存储服务器和一个用来管理存储服务器的运行与停止、以及定时对存储服务器进行检查的服务监控服务器;该存储服务器按照对外服务器与任务管理服务器的指令进行文件写入与读出;当然,第五服务器也可以选择采用一个或二个以上,根据需要进行设置;
第一服务器、第二服务器、第三服务器、第四服务器和第五服务器中均有选用服务监控服务器,该服务监控服务器负责管理其它服务器的运行与停止,并可以定时对所管理的其它服务器进行检查,如果所管理的其它服务器出错时,可由它对所管理的其它服务器进行重启,也可对自身与所管理的其它服务器进行定期重启,及自动更新操作;
该第一服务器、第二服务器、第三服务器、第四服务器和第五服务器的相互之间是通过用户数据包协议来实现数据的相互传递和处理。
本发明的系统提供多个对外服务器的用户访问入口点,以及对内部的文件存储管理,解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务。在对外服务器中提供完整的API操作接口,可以方便与第三方软件相合,以扩展第三方软件的文件存储应用;同时,系统可以在文件数据量的增长时,进行顺滑扩展。
所述的用户数据包协议为UDP改装协议。
本发明为了系统高速通信的需要对UDP协议进行改造,我们将改装后的UDP协议称为QDP(Quick UDP)。UDP是User Datagram Protocol的简称,中文名是用户数据包协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
UDP特性有以下几个方面:
(1)UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段;
(2)由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
(3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小;
(4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制;
(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数);
(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
由于UDP所具有以上的特性,所以在高速的IO数据通信方面,具有较强的优势。然而UDP也有一些弱点。
与TCP不同,UDP协议并不提供数据传送的保证机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,通常人们把UDP协议称为不可靠的传输协议。
相对于TCP协议,UDP协议的另外一个不同之处在于如何接收突法性的多个数据报。不同于TCP,UDP并不能确保数据的发送和接收顺序。例如,一个位于客户端的应用程序向服务器发出了以下4个数据报。
D1
D22
D333
D4444
但是UDP有可能按照以下顺序将所接收的数据提交到服务端的应用:
D333
D1
D4444
D22
为了避免UDP的弱点,本发明在正常的UDP协议通信中增加一个确认,就可以对消息进行有限的保护以防丢失。在一个正常的对话中,NCPA发送数据消息<data,m>,并等待来自NCP B的确认消息<ack>。当接到这个确认消息时,NCPA关闭对话。NCP B一旦接收到这一消息<data,m>,就把m传送到b,并用<ack>消息进行应答,然后关闭。
NCPA发送<data,m>;
NCP B接收<data,m>,传送m,发送<ack>,关闭;
NCPA接收<ack>,通知关闭。
如果在某段时间后,NCPA没有接到确认应答,数据丢失的可能性迫使NCPA再次发送数据<data,m>。(由于缺乏全局状态知识,在接收<data,m>和发送<ack>之间,NCP A不能观测到是否<data,m>已丢失、<ack>已丢失或NCP B机器已关闭。)因此,NCPA在有限时间内,等侯接收确认消息,如果不能接收到这一消息,则计时器断定时间用完,就会产生超时(timeout)信息。显而易见,这种选择重传消息的机制仍然有丢失的可能性。情形如下:
NCPA发送<data,m1>;
NCPB接收<data,m1>,传送m1,发送<ack>,关闭;
NCPA超时,发送<data,m1>;
NCPB接收<data,m>,传送m1,发送<ack>,关闭;
NCPA接收<ack>,通知关闭;
NCPA发送<data,m2>;
DN<data,m2>丢失;
NCPA接收<ack>(Step 2),通知关闭。
这样会使m2消息没有被成功发送。为了确认消息的成功发送与接收对应。在协议中添加一个序列号,可避免以前对话的信息传送。
NCPA发送<data,m1,x>;
NCPB接收<data,m1,x>,传送m1,发送<ack,x>,关闭;
NCPA接收<ack,x>,通知关闭。
QDP主要的目标就是在UDP层之上实现以上的协议算法,使得应用程序能够在UDP层之上获得通用、可靠、高效的通信能力。QDP提供的用于开发的应用程序接口与Socket API非常相像,姑且称之为QDP Socket API,基本上的函数名与参数等都与Socket API相一致,但是QDP Socket API的API接口都位于命名空间QDP当中。QDP协议栈应用如图2所示。
参见图3所示,所述UDP改装协议即QDP具有如下协议格式:
2位head:表示消息开始;
6位版本号:表示该QDP的版本,为以后可能QDP协议升级留下空间;
8位命令号:表示此消息包含的命令;
16位生存时间:表示此消息所保留的时间,如果超时,此消息会被丢弃,会由发送端重发一次此消息;
32位序列号:表示此消息的编号,由系统随机生成,用来确认消息的成功发送与接收对应;
16位子命令与16位序列号:由应用程序自己指定,用来进一步明确消息包含内容;
数据:表示消息内容;
16位数据大小:发送数据的大小为子命令、子序列号与数据的总和,用来检查数据传送过程的完整;
5位key:表示所使用的加密类型;
1位ack:代表是否需要接收方进行返回确认包;
2位tail:表示消息到此结束。
参见图4所示,所述的UDP改装协议即QDP协议,包括如下处理流程:
由发送消息模块负责将m_SendPacket_List需要发送包队列缓存中的消息包发送出去,并判断是否超时,一旦超时,会将数据进行重发;
由接收消息模块负责接收消息包,并进行判断包的首尾标志与数据长度是否一致,并把符合条件的消息包放入到m_RecvPacket_List需要接收包队列缓存中,提供给消息处理模块处理;
由消息处理模块对消息包进行处理,并将需要发送的消息包放入m_SendPacket_List需要发送包队列缓存中;消息处理模块是协议中主要处理流程,可以创建多个实例,以提高消息包并发处理速度,主动确认返回消息包,并主动将其对应的消息包从m_SendPacket_List队列中消除。
参见图5所示,所述的发送消息模块的发送数据包过程,包括如下步骤:
a1.从m_SendPacket_List需要发送包队列缓存中按顺序取出消息包;如图5框501所示的步骤;
a2.查询该消息包的属性,判断该消息包是否已发送过;判断为是时,继续下一步骤,判断为否时转步骤a5;如图5框502所示的步骤;
a3.判断该消息包是否超时重发;判断为是时,继续下一步骤,判断为否时则返回步骤a1;如图5框503所示的步骤;
a4.判断该消息包是否重发超过3次;判断为是时,返回步骤a1,判断为否时继续下一步骤;如图5框504所示的步骤;
a5.调用标准UDP SocketAPI发送出该消息包;如图5框505所示的步骤;
a6.查询该消息包的消息属性,判断是否需要对方进行确认包,判断为是时,返回步骤a1,判断为否时,将该消息包从m_SendPacket_List需要发送包队列缓存中删除;如图5框506所示的步骤。
参见图6所示,所述的接收消息模块的接收数据包过程,包括如下步骤:
b1.调用标准UDP Socket API从网卡上接收新的消息数据;如图6框601所示的步骤;
b2.对消息数据包进行验证,判断是否有新消息;判断为是时,继续下一步骤,判断为否时返回步骤b1;如图6框602所示的步骤;
b3.对该消息数据包的首尾标志进行判断,判断首尾标志与数据长度是否一致;判断为是时,继续下一步骤,判断为否时则返回步骤b1;如图6框603所示的步骤;
b4.将该消息数据包放入m_RecvPacket_List需要接收包队列缓存中,交给消息处理模块处理;如图6框604所示的步骤。
参见图7所示,所述的消息处理模块的处理数据包过程,包括如下步骤:
c1.从m_RecvPacket_List需要接收包队列缓存中按顺序取出消息包,并将m_RecvPacket_List需要接收包队列缓存中删除该消息包;如图7框701所示的步骤;
c2.判断该消息包否已加密;判断为是时,继续下一步骤,判断为否时转步骤c4;如图7框702所示的步骤;
c3.对该消息包进行解密处理;如图7框703所示的步骤;
c4.判断该消息包是否为确认包;判断为是时,继续下一步骤,判断为否时转步骤c1;如图7框704所示的步骤;
c5.从m_SendPacket_List需要发送包队列缓存中将确认包所对应发送包删除,而后返回步骤c1;如图7框705所示的步骤;
c6.按系统命令执行,而后返回步骤c1;如图7框706所示的步骤。
在本发明中,配备大容量的存储设备,需要对这些设备进行管理,同时还要为其它系统与用户提供良好的文件存储服务。本发明将系统中所有的存储设备整合起来,建立一个统一的名字空间(各个服务器的IP地址与目录组织),在集成的个个存储服务的目录结构是一致,其它系统与用户可以以透明的方式通过对外服务器访问其文件。
本发明的一种基于UDP分布式小文件存储系统的数据处理方法,包括:
接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤;
接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤;
系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤;
系统在扩充存储空间时,系统主动进行负载均衡的处理步骤;
系统对数据文件进行定期自检的处理步骤。
参见图8所示,所述的接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤,包括:
d1.系统的对外服务器得到来自其它系统或用户的访问请求后,获取请求中的其它系统或用户的唯一标志字串与所需要访问的文件路径,并将该标志字串与文件路径发送到系统的信息索引库服务器中,查询所对应的内部唯一名称;如图8所示的步骤8.1;
其中:
信息索引库服务器中的外部映射数据采用如下的结构形式:
它包含有用户ID、文件路径以及内部名称的字段,该用户ID是用于识别不同的系统与用户的识别符,该文件路径表示在逻辑上此文件的储存位置,该内部名称是用来表示内部文件的唯一标志;
d2.系统的信息索引库服务器根据内部唯一名称查询得到所述访问请求对应文件所存储的存储服务器的地址,并将此消息返回给对外服务器;如图8所示的步骤8.2;
其中:
信息索引库服务器中的存储地址数据采用如下的结构形式:
Figure BDA0000027468830000181
它包含有内部名称、MD5、存储服务器1、存储服务器2与存储服务器3的字段,该内部名称是用来表示内部文件的唯一标志,MD5做为文件的校验值,存储服务器1、2、3分别为存储服务器地址编号;
d3.对外服务器得到文件对应的存储服务器的地址编号与内部名称、MD5,向系统的存储服务器发出请求,发送内部名称与MD5;如图8所示的步骤8.3;
d4.存储服务器接收到对外服务器的请求后,进行读取相应的文件内容,并计算出MD5进行校验,如果校验通过,存储服务器向对外服务器返回文件内容,否则返回出错信息,对外服务器会继续步骤8.3请求下一个存储服务器。如三个都出错,对外服务器向外部系统或用户返回错误消息。
参见图9所示,所述的接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤,包括:
e1.系统的对外服务器得到来自其它系统或用户的访问请求后,取得其它系统与用户的唯一标志字串、所需要写入的文件路径与文件内容,该对外服务器将标志字串与文件路径发送到系统的全局命名服务器中,以请求全局命名服务器为此文件分配一个唯一的内部名称;如图9所示的步骤9.1;
e2.全局命名服务器收到对外服务器的请求之后,根据标志字串与文件路径等参数,生成一个唯一的内部名称,发回给对外服务器;如图9所示的步骤9.2;
e3.对外服务器将取到的内部名称、标志字串、文件路径与文件内容,发送到系统的任务管理服务器,由任务管理服务器执行写入文件操作;如图9所示的步骤9.3;
e4.任务管理服务器收到写入文件请求之后,确定要存储数据文件的存储服务器;如图9所示的步骤9.4;
任务管理服务器收到写入文件请求之后,进行分配相应的三个存储服务器;其分配算法,根据各个存储服务器的空间进行累加,然后进行随机分配,以确定三个随机存储服务器;
Figure BDA0000027468830000191
根据各个存储服务器的剩余空间的不同,其权值也不同,这样空间大的存储服务器可更多可能得到新分配文件,空间小的存储服务器得到新分配文件的机会会比较小;
任务管理服务器将文件内容与内部名称发送到对应的三个分配存储服务器;
e5.存储服务器收到任务管理服务器的写入命令后,将文件内容写入存储服务器中,写入完成后,进行MD5检验,若检验正确,存储服务器向任务管理服务器返回成功消息,若检验不正确,返回步骤e4由任务管理服务器重新确定一个分配存储服务器写入;如图9所示的步骤9.5;
e6.任务管理服务器收到存储服务器成功写入的返回消息后,任务管理服务器向信息索引库服务器写入索引信息;如图9所示的步骤9.6;
该索引信息包括外部映射数据与存储地址数据;其外部映射数据结构如:
Figure BDA0000027468830000192
它包含有用户ID、文件路径以及内部名称的字段,该用户ID是用于识别不同的系统与用户的识别符,该文件路径表示在逻辑上此文件的储存位置,该内部名称是用来表示内部文件的唯一标志;
存储地址数据采用如下的结构形式:
Figure BDA0000027468830000201
它包含有内部名称、MD5、存储服务器1、存储服务器2与存储服务器3的字段,该内部名称是用来表示内部文件的唯一标志,MD5做为文件的校验值,存储服务器1、2、3分别为存储服务器地址编号;
e7.信息索引库服务器向任务管理服务器返回写入成功与否的消息,如果失败,由任务管理服务器向信息索引库服务器重新发送一次写入索引信息的命令;如图9所示的步骤9.7;
e8.任务管理服务器向对外服务器返回写入成功与否的消息,对外服务器收到信息后,向外部系统或用户返回状态消息;如图9所示的步骤9.8。
参见图10所示,所述的系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤,包括:
f1.系统的对外服务器收到从系统的存储服务器读取文件时返回的错误编码时,向系统的任务管理服务器提交文件相应的内部名称与存储服务器地址;如图10所示的步骤10.1;
f2.任务管理服务器得到对外服务器的自动恢复消息,向系统的信息索引库服务器发送内部名称,取得要访问的三个存储服务器地址;如图10所示的步骤10.2;
f3.信息索引库服务器得到任务管理服务器发来的内部名称,查询到相应的三个存储服务器地址,并将三个存储服务器地址信息发回到任务管理服务器中;如图10所示的步骤10.3;
f4.任务管理服务器将三个存储服务器地址、MD5与内部名称发送到报错的存储服务器上,让它自行恢复;如图10所示的步骤10.4;
f5.存储服务器收到任务管理服务器的恢复命令后,向其它二个存储服务器读取内部名称的文件内容,并进行MD5检验,检验通过后,删除本地内部名称的文件内容,用新的文件内容替代,完成操作后,存储服务器向任务管理服务器发送操作状态;如图10所示的步骤10.5。
当系统增加新的存储设备时,任务管理服务器会主动进行负载均衡处理,指导旧的存储服务器向新的存储服务器写入数据,直到两者差别不超过预先设定的百分比。
参见图11所示,所述的系统在扩充存储空间时,系统主动进行负载均衡的处理步骤,包括:
g1.系统的各个存储服务器会定期给任务管理服务器发送自身容量消息,包含剩余空间与剩余空间所占的百分比;如图11所示的步骤11.1;
g2.任务管理服务器进行比较,当发现有两个存储服务器的剩余空间所占的百分比相差超过预先确定的阈值时(比如相差在30%),任务管理服务器向剩余空间所占的百分比较高的一个存储服务器即存储服务器1发送负载均衡命令;该负载均衡命令中包含剩余空间所占的百分比较低的另一个存储服务器地址即存储服务器n地址;如图11所示的步骤11.2;
g3.存储服务器1向存储服务器n发送读取随机文件命令;如图11所示的步骤11.3;
g4.存储服务器n向存储服务器1发送随机文件内容、内部名称与相应MD5值;如图11所示的步骤11.4;
g5.存储服务器1保存从存储服务器n得到的文件内容、内部名称与相应MD5值,并将文件写入存储设备中,通过MD5检验之后,向任务管理服务器发送完成命令,包含存储服务器n地址、内部名称与相应MD5值;如图11所示的步骤11.5;
g6.任务管理服务器得到存储服务器1的反馈消息,向信息索引库服务器提交更改命令,包含存储服务器1地址、存储服务器n地址、内部名称与相应MD5值;如图11所示的步骤11.6;
g7.信息索引库服务器得到任务管理服务器的更改命令时,将内部名称中关于存储服务器地址中的存储服务器n改为存储服务器1,并MD5确认;更新完成返回状态给任务管理服务器;如图11所示的步骤11.7;
g8.任务管理服务器得到信息索引库服务器的确认之后,向存储服务器n发送删除给定内部名称的文件内容;如图11所示的步骤11.8;
g9.存储服务器n删除完成后,向任务管理服务器返回状态;如图11所示的步骤11.9。
参见图12所示,所述的系统对数据文件进行定期自检的处理步骤,包括:
h1.系统的存储服务器会定期把存储服务器上的内部名称分批发送到任务管理服务器上;如图12所示的步骤12.1;
h2.任务管理服务器收到存储服务器提交上来的内部名称与存储服务器地址后,进行转发到信息索引库服务器上查询;如图12所示的步骤12.2;
h3.信息索引库服务器进行查询确认,并把确认的结果返回给任务管理服务器;如图12所示的步骤12.3;
h4.任务管理服务器确认该内部名称在信息索引库服务器的查询结果,如果并无此记录,则任务管理服务器向存储服务器下达删除此内部名称及文件内容的指令;如果有此记录,任务管理服务器向存储服务器下达查询成功的指令;如图12所示的步骤12.4。
采取本发明的基于UDP分布式小文件存储系统和设备,可以为各种需要分布式存储服务的系统提供服务,采用UDP协议显著提高系统的并发量与访问速度,在协议中添加命令与数据的独立空间,可以使各系统之间接口服务如函数调用一样方便,更可降低系统的藕合性,让各个流程更加自由通信,如:让任务管理服务器上的接收文件写入、系统自检、负载均衡、自动恢复等功能可以分开到不同设备上,以减轻设备压力。
上述实施例仅用来进一步说明本发明的一种基于UDP分布式小文件存储系统及其数据处理方法,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围内。

Claims (11)

1.一种基于UDP分布式小文件存储系统,其特征在于:包括:
一个或多个第一服务器,该第一服务器内包含有一个对外服务器和一个用来管理对外服务器的运行与停止、以及定时对对外服务器进行检查的服务监控服务器;该对外服务器,对外负责向其它系统及用户提供管理控制其文件和目录的接口,对内负责向其它服务器传送用户的命令,并检查命令执行状态,最后将命令执行结果反馈给用户;
一个第二服务器,该第二服务器内包含有一个全局命名服务器和一个用来管理全局命名服务器的运行与停止、以及定时对全局命名服务器进行检查的服务监控服务器;该全局命名服务器设在客户应用和文件系统之间的一个逻辑层中,该全局命名服务器为每个新添加的文件分配一个唯一的内部名称;
一个第三服务器,该第三服务器内包含有一个信息索引库服务器和一个用来管理信息索引库服务器的运行与停止、以及定时对信息索引库服务器进行检查的服务监控服务器;该信息索引库服务器与全局命名服务器一起组成位于客户应用和文件系统之间一个逻辑层,该信息索引库服务器采用NoSQL数据库,用来保存全局名称与文件存储的对应Kye-Value数据、全局名称与用户路径的对应数据;
一个第四服务器,该第四服务器内包含有一个任务管理服务器和一个用来管理任务管理服务器的运行与停止、以及定时对任务管理服务器进行检查的服务监控服务器;该任务管理服务器设为系统的控制中心,负责识别并解决任何容量问题,运行存储服务器负载平衡,优化存储服务器的使用,负责与对外服务器合作进行增加/删除文件;
一个或多个第五服务器,该第五服务器内包含有一个存储服务器和一个用来管理存储服务器的运行与停止、以及定时对存储服务器进行检查的服务监控服务器;该存储服务器按照对外服务器与任务管理服务器的指令进行文件写入与读出;
该第一服务器、第二服务器、第三服务器、第四服务器和第五服务器的相互之间是通过用户数据包协议来实现数据的相互传递和处理;
所述的用户数据包协议为UDP改装协议,该UDP改装协议具有如下协议格式:
2位head:表示消息开始;
6位版本号:表示该UDP改装协议的版本;
8位命令号:表示此消息包含的命令;
16位生存时间:表示此消息所保留的时间,如果超时,此消息会被丢弃,会由发送端重发一次此消息;
32位序列号:表示此消息的编号,由系统随机生成,用来确认消息的成功发送与接收对应;
16位子命令与16位序列号:由应用程序自己指定,用来进一步明确消息包含内容;
数据:表示消息内容;
16位数据大小:发送数据的大小为子命令、子序列号与数据的总和,用来检查数据传送过程的完整;
5位key:表示所使用的加密类型;
1位ack:代表是否需要接收方进行返回确认包;
2位tail:表示消息到此结束。
2.根据权利要求1所述的基于UDP分布式小文件存储系统,其特征在于:所述的UDP改装协议,包括如下处理流程:
由发送消息模块负责将m_SendPacket_List需要发送包队列缓存中的消息包发送出去,并判断是否超时,一旦超时,会将数据进行重发;
由接收消息模块负责接收消息包,并进行判断包的首尾标志与数据长度是否一致,并把符合条件的消息包放入到m_RecvPacket_List需要接收包队列缓存中,提供给消息处理模块处理;
由消息处理模块对消息包进行处理,并将需要发送的消息包放入m_SendPacket_List需要发送包队列缓存中。
3.根据权利要求2所述的基于UDP分布式小文件存储系统,其特征在于:所述的发送消息模块的发送数据包过程,包括如下步骤:
a1.从m_SendPacket_List需要发送包队列缓存中按顺序取出消息包;
a2.查询该消息包的属性,判断该消息包是否已发送过;判断为是时,继续下一步骤,判断为否时转步骤a5;
a3.判断该消息包是否超时重发;判断为是时,继续下一步骤,判断为否时则返回步骤a1;
a4.判断该消息包是否重发超过3次;判断为是时,返回步骤a1,判断为否时继续下一步骤;
a5.调用标准UDP Socket API发送出该消息包;
a6.查询该消息包的消息属性,判断是否需要对方进行确认包,判断为是时,返回步骤a1,判断为否时,将该消息包从m_SendPacket_List需要发送包队列缓存中删除。
4.根据权利要求2所述的基于UDP分布式小文件存储系统,其特征在于:所述的接收消息模块的接收数据包过程,包括如下步骤:
b1.调用标准UDP Socket API从网卡上接收新的消息数据;
b2.对消息数据包进行验证,判断是否有新消息;判断为是时,继续下一步骤,判断为否时返回步骤b1;
b3.对该消息数据包的首尾标志进行判断,判断首尾标志与数据长度是否一致;判断为是时,继续下一步骤,判断为否时则返回步骤b1;
b4.将该消息数据包放入m_RecvPacket_List需要接收包队列缓存中,交给消息处理模块处理。
5.根据权利要求2所述的基于UDP分布式小文件存储系统,其特征在于:所述的消息处理模块的处理数据包过程,包括如下步骤:
c1.从m_RecvPacket_List需要接收包队列缓存中按顺序取出消息包,并将m_RecvPacket_List需要接收包队列缓存中删除该消息包;
c2.判断该消息包否已加密;判断为是时,继续下一步骤,判断为否时转步骤c4;
c3.对该消息包进行解密处理;
c4.判断该消息包是否为确认包;判断为是时,继续下一步骤,判断为否时转步骤c1;
c5.从m_SendPacket_List需要发送包队列缓存中将确认包所对应发送包删除,而后返回步骤c1;
c6.按系统命令执行,而后返回步骤c1。
6.一种基于UDP分布式小文件存储系统的数据处理方法,包括:
接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤;
接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤;
系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤;
系统在扩充存储空间时,系统主动进行负载均衡的处理步骤;
系统对数据文件进行定期自检的处理步骤;
其中,系统内是通过用户数据包协议来实现数据的相互传递和处理;
所述的用户数据包协议为UDP改装协议,该UDP改装协议具有如下协议格式:
2位head:表示消息开始;
6位版本号:表示该UDP改装协议的版本;
8位命令号:表示此消息包含的命令;
16位生存时间:表示此消息所保留的时间,如果超时,此消息会被丢弃,会由发送端重发一次此消息;
32位序列号:表示此消息的编号,由系统随机生成,用来确认消息的成功发送与接收对应;
16位子命令与16位序列号:由应用程序自己指定,用来进一步明确消息包含内容;
数据:表示消息内容;
16位数据大小:发送数据的大小为子命令、子序列号与数据的总和,用来检查数据传送过程的完整;
5位key:表示所使用的加密类型;
1位ack:代表是否需要接收方进行返回确认包;
2位tail:表示消息到此结束。
7.根据权利要求6所述的基于UDP分布式小文件存储系统的数据处理方法,其特征在于:所述的接受系统外部的用户的访问请求,将用户的指定数据文件从系统中读取出来的处理步骤,包括:
d1.系统的对外服务器得到来自其它系统或用户的访问请求后,获取请求中的其它系统或用户的唯一标志字串与所需要访问的文件路径,并将该标志字串与文件路径发送到系统的信息索引库服务器中;
d2.系统的信息索引库服务器根据内部唯一名称查询得到所述访问请求对应文件所存储的存储服务器的地址,并将此消息返回给对外服务器;
d3.对外服务器得到文件对应的存储服务器的地址编号与内部名称、MD5,向系统的存储服务器发出请求,发送内部名称与MD5;其中,MD5为文件的校验值;
d4.存储服务器接收到对外服务器的请求后,进行读取相应的文件内容,并计算出MD5进行校验,如果校验通过,存储服务器向对外服务器返回文件内容,否则返回出错信息。
8.根据权利要求6所述的基于UDP分布式小文件存储系统的数据处理方法,其特征在于:所述的接受系统外部的用户的写入请求,将用户的指定数据文件写入系统中的处理步骤,包括:
e1.系统的对外服务器得到来自其它系统或用户的访问请求后,取得其它系统与用户的唯一标志字串、所需要写入的文件路径与文件内容,该对外服务器将标志字串与文件路径发送到系统的全局命名服务器中;
e2.全局命名服务器收到对外服务器的请求之后,根据标志字串与文件路径参数,生成一个唯一的内部名称,发回给对外服务器;
e3.对外服务器将取到的内部名称、标志字串、文件路径与文件内容,发送到系统的任务管理服务器,由任务管理服务器执行写入文件操作;
e4.任务管理服务器收到写入文件请求之后,确定要存储数据文件的存储服务器;
e5.存储服务器收到任务管理服务器的写入命令后,将文件内容写入存储服务器中,写入完成后,进行MD5检验,若检验正确,存储服务器向任务管理服务器返回成功消息,若检验不正确,返回步骤e4由任务管理服务器重新确定一个分配存储服务器写入;其中,MD5为文件的校验值;
e6.任务管理服务器收到存储服务器成功写入的返回消息后,任务管理服务器向信息索引库服务器写入索引信息;
e7.信息索引库服务器向任务管理服务器返回写入成功与否的消息,如果失败,由任务管理服务器向信息索引库服务器重新发送一次写入索引信息的命令;
e8.任务管理服务器向对外服务器返回写入成功与否的消息,对外服务器收到信息后,向外部系统或用户返回状态消息。
9.根据权利要求6所述的基于UDP分布式小文件存储系统的数据处理方法,其特征在于:所述的系统在读取指定数据文件错误时,系统进行自动恢复的处理步骤,包括:
f1.系统的对外服务器收到从系统的存储服务器读取文件时返回的错误编码时,向系统的任务管理服务器提交文件相应的内部名称与存储服务器地址;
f2.任务管理服务器得到对外服务器的自动恢复消息,向系统的信息索引库服务器发送内部名称,取得要访问的三个存储服务器地址;
f3.信息索引库服务器得到任务管理服务器发来的内部名称,查询到相应的三个存储服务器地址,并将三个存储服务器地址信息发回到任务管理服务器中;
f4.任务管理服务器将三个存储服务器地址、MD5与内部名称发送到报错的存储服务器上,让它自行恢复;其中,MD5为文件的校验值;
f5.存储服务器收到任务管理服务器的恢复命令后,向其它二个存储服务器读取内部名称的文件内容,并进行MD5检验,检验通过后,删除本地内部名称的文件内容,用新的文件内容替代,完成操作后,存储服务器向任务管理服务器发送操作状态。
10.根据权利要求6所述的基于UDP分布式小文件存储系统的数据处理方法,其特征在于:所述的系统在扩充存储空间时,系统主动进行负载均衡的处理步骤,包括:
g1.系统的各个存储服务器会定期给任务管理服务器发送自身容量消息,包含剩余空间与剩余空间所占的百分比;
g2.任务管理服务器进行比较,当发现有两个存储服务器的剩余空间所占的百分比相差超过预先确定的阈值时,任务管理服务器向剩余空间所占的百分比较高的一个存储服务器发送负载均衡命令;该负载均衡命令中包含剩余空间所占的百分比较低的另一个存储服务器地址;
g3.剩余空间所占的百分比较高的存储服务器向剩余空间所占的百分比较低的存储服务器发送读取随机文件命令;
g4.剩余空间所占的百分比较低的存储服务器向剩余空间所占的百分比较高的存储服务器发送随机文件内容、内部名称与相应MD5值;其中,MD5为文件的校验值;
g5.剩余空间所占的百分比较高的存储服务器保存从剩余空间所占的百分比较低的存储服务器得到的文件内容、内部名称与相应MD5值,并将文件写入存储设备中,通过MD5检验之后,向任务管理服务器发送完成命令,包含剩余空间所占的百分比较低的存储服务器地址、内部名称与相应MD5值;
g6.任务管理服务器得到剩余空间所占的百分比较高的存储服务器的反馈消息,向信息索引库服务器提交更改命令,包含剩余空间所占的百分比较高的存储服务器地址、剩余空间所占的百分比较低的存储服务器地址、内部名称与相应MD5值;
g7.信息索引库服务器得到任务管理服务器的更改命令时,将内部名称中关于存储服务器地址中的剩余空间所占的百分比较低的存储服务器改为剩余空间所占的百分比较高的存储服务器,并MD5确认;更新完成后返回状态给任务管理服务器;
g8.任务管理服务器得到信息索引库服务器的确认之后,向剩余空间所占的百分比较低的存储服务器发送删除给定内部名称的文件内容;
g9.剩余空间所占的百分比较低的存储服务器删除完成后,向任务管理服务器返回状态。
11.根据权利要求6所述的基于UDP分布式小文件存储系统的数据处理方法,其特征在于:所述的系统对数据文件进行定期自检的处理步骤,包括:
h1.系统的存储服务器会定期把存储服务器上的内部名称分批发送到任务管理服务器上;
h2.任务管理服务器收到存储服务器提交上来的内部名称与存储服务器地址后,进行转发到信息索引库服务器上查询;
h3.信息索引库服务器进行查询确认,并把确认的结果返回给任务管理服务器;
h4.任务管理服务器确认该内部名称在信息索引库服务器的查询结果,如果并无此记录,则任务管理服务器向存储服务器下达删除此内部名称及文件内容的指令;如果有此记录,任务管理服务器向存储服务器下达查询成功的指令。
CN2010102969488A 2010-09-29 2010-09-29 一种基于udp分布式小文件存储系统及其数据处理方法 Active CN102014150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102969488A CN102014150B (zh) 2010-09-29 2010-09-29 一种基于udp分布式小文件存储系统及其数据处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102969488A CN102014150B (zh) 2010-09-29 2010-09-29 一种基于udp分布式小文件存储系统及其数据处理方法

Publications (2)

Publication Number Publication Date
CN102014150A CN102014150A (zh) 2011-04-13
CN102014150B true CN102014150B (zh) 2013-12-11

Family

ID=43844158

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102969488A Active CN102014150B (zh) 2010-09-29 2010-09-29 一种基于udp分布式小文件存储系统及其数据处理方法

Country Status (1)

Country Link
CN (1) CN102014150B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234594A (zh) * 2017-11-28 2018-06-29 北京市商汤科技开发有限公司 文件存储方法和装置、电子设备、程序和介质

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103577117B (zh) * 2012-08-09 2017-07-25 深圳市腾讯计算机系统有限公司 数据存储方法及装置
CN103778268A (zh) * 2012-10-24 2014-05-07 鸿富锦精密工业(深圳)有限公司 文件自动分类方法及系统
CN102968281A (zh) * 2012-11-26 2013-03-13 华为技术有限公司 一种数据迁移的方法及装置
CN104683459B (zh) * 2015-02-13 2018-05-11 华为技术有限公司 一种发送业务数据的方法和存储系统
CN105141666B (zh) * 2015-07-29 2018-12-14 江苏天联信息科技发展有限公司 信息数据存储方法及装置
CN107292653A (zh) * 2016-04-12 2017-10-24 北京京东尚科信息技术有限公司 一种零售仓储货物价格计算方法及装置
CN105843561B (zh) * 2016-04-25 2018-11-16 浪潮(北京)电子信息产业有限公司 一种存储空间的缓冲方法及装置
CN106899602B (zh) * 2017-03-13 2019-12-27 广州五舟科技股份有限公司 分布式计算平台及其文件管理方法
CN107147562B (zh) * 2017-04-27 2018-09-14 腾讯科技(深圳)有限公司 消息处理方法和装置
CN107391261A (zh) * 2017-07-29 2017-11-24 安徽云帮邦网络技术有限公司 一种云数据平台
CN109669811B (zh) * 2017-08-15 2021-04-13 金钱猫科技股份有限公司 一种能够可靠性访问的数据处理方法及终端
CN109558266B (zh) * 2017-09-26 2022-06-14 慧荣科技股份有限公司 主动错误更正失败处理方法
CN108733805B (zh) * 2018-05-18 2020-12-08 招银云创(深圳)信息技术有限公司 文件交互方法、系统、计算机设备和存储介质
CN108986792B (zh) * 2018-09-11 2021-02-12 苏州思必驰信息科技有限公司 用于语音对话平台的语音识别模型的训练调度方法及系统
CN111049857A (zh) * 2019-12-26 2020-04-21 山东方寸微电子科技有限公司 一种基于udp协议的网络存储系统及方法
CN111686445A (zh) * 2020-01-15 2020-09-22 博智安全科技股份有限公司 基于u3d的网络攻防竞赛平台
CN111884818B (zh) * 2020-08-25 2022-12-27 中移(杭州)信息技术有限公司 数据文件处理方法、系统、服务器及存储介质
CN112104635B (zh) * 2020-09-09 2022-10-14 中移(杭州)信息技术有限公司 通信方法、系统和网络设备
CN114157529B (zh) * 2021-12-01 2024-01-23 东方财富信息股份有限公司 一种分布式数据传输系统及方法
CN117749789B (zh) * 2024-02-07 2024-05-03 成都倍特数字能源科技有限公司 一种基于udp协议的传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1464453A (zh) * 2002-06-06 2003-12-31 联想(北京)有限公司 基于分布式文件系统的文件存储系统及其文件访问方法
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN101676855A (zh) * 2008-09-11 2010-03-24 美国日本电气实验室公司 可变动的辅助存储系统和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1464453A (zh) * 2002-06-06 2003-12-31 联想(北京)有限公司 基于分布式文件系统的文件存储系统及其文件访问方法
CN101188569A (zh) * 2006-11-16 2008-05-28 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
CN101676855A (zh) * 2008-09-11 2010-03-24 美国日本电气实验室公司 可变动的辅助存储系统和方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234594A (zh) * 2017-11-28 2018-06-29 北京市商汤科技开发有限公司 文件存储方法和装置、电子设备、程序和介质

Also Published As

Publication number Publication date
CN102014150A (zh) 2011-04-13

Similar Documents

Publication Publication Date Title
CN102014150B (zh) 一种基于udp分布式小文件存储系统及其数据处理方法
TWI332150B (en) Processing data for a tcp connection using an offload unit
CN100556036C (zh) 执行数据传送请求的方法、系统和程序
US8935336B2 (en) Optimizing program requests over a wide area network
CN100476769C (zh) 降低写操作的数量的方法和系统
US10484472B2 (en) Methods and systems for efficiently moving data between nodes in a cluster
CN105051675B (zh) 复制目标服务
CN103020257B (zh) 数据操作的实现方法和装置
US11025564B2 (en) RDMA transport with hardware integration and out of order placement
WO1992019057A2 (en) Method and apparatus for managing and facilitating communicationsin a distributed heterogeneous network
CN1997982A (zh) 提高tcp重发处理速度
US11068412B2 (en) RDMA transport with hardware integration
CN104820701A (zh) 数据记录和同步方法及系统
US11108671B2 (en) Systems and methods for processing network traffic using dynamic memory
CN101827019A (zh) 网络接口设备
CN111078607A (zh) 面向rdma与非易失性内存的网络访问编程框架部署方法及系统
CN103248670A (zh) 计算机网络环境下的连接管理
CN110502364A (zh) 一种OpenStack平台下大数据沙箱集群的跨云备份恢复方法
US20130191484A1 (en) Mail transfer system, mail gateway and data store server
US10154079B2 (en) Pre-boot file transfer system
CN104462562A (zh) 一种基于数据仓库自动化的数据迁移系统及方法
CN113542402A (zh) 文件传输方法、装置、系统、电子设备及存储介质
US20120246264A1 (en) Data Exchange Between Communicating Computing Equipment Using Differential Information
CN203574673U (zh) 一种消息处理系统
CN105573801B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20110413

Assignee: Xiamen Information Security Research Institute Co., Ltd.

Assignor: Xiamen Meiya Pico Information Co., Ltd.

Contract record no.: 2014350000079

Denomination of invention: Distributed small file storage system based on UDP (User Datagram Protocol) and data processing method thereof

Granted publication date: 20131211

License type: Exclusive License

Record date: 20140710

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
TR01 Transfer of patent right

Effective date of registration: 20170419

Address after: View of the road Xiamen city Fujian province 361000 Software Park No. 14

Patentee after: Xiamen Information Security Research Institute Co., Ltd.

Address before: AIU Cupressaceae No. 12 building, 361000 Fujian province Xiamen software park two sunrise Road

Patentee before: Xiamen Meiya Pico Information Co., Ltd.

TR01 Transfer of patent right