CN104461378A - 将数据对象写入ip硬盘的方法、装置及系统 - Google Patents
将数据对象写入ip硬盘的方法、装置及系统 Download PDFInfo
- Publication number
- CN104461378A CN104461378A CN201410606549.5A CN201410606549A CN104461378A CN 104461378 A CN104461378 A CN 104461378A CN 201410606549 A CN201410606549 A CN 201410606549A CN 104461378 A CN104461378 A CN 104461378A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- written
- hard disk
- data fragmentation
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种将数据对象写入IP硬盘的方法、装置及系统。当数据对象分为若干个数据分片写入时,服务器通过查询最近一次已发送的数据分片对应的第一key和第一key对应的已发送的数据分片的长度,第一key与第一目标IP硬盘对应;若第一key对应的剩余存储容量大于或等于待写入数据分片的长度,则确定待写入数据分片对应的key与第一key相同;根据第一key对应的已发送的数据分片的长度确定待写入数据分片的偏移量;并将包括待写入数据分片、第一key及待写入数据分片的偏移量的数据写入请求发送至第一目标IP硬盘;使得服务器能够对属于同一数据对象的多个数据分片分配同一key,提高了IP硬盘的存储空间利用率。
Description
技术领域
本发明实施例涉及存储技术,尤其涉及一种将数据对象写入互联网协议(IP,Internet Protocol)硬盘的方法、装置及系统。
背景技术
IP硬盘是以对象为存储单位的存储单元,IP硬盘通过IP协议,使用键-值(key-value)接口进行对象的数据传输。
现有技术中,服务器将每一次需要写入的数据都作为一个待写入对象,为该待写入对象分配对应的IP硬盘及key;其中,key与待写入对象一一对应;服务器将包括该待写入对象、key的数据写入请求发送至该IP硬盘;IP硬盘接收到服务器发送的数据写入请求后,分配与该待写入对象的大小相同的存储空间存储该待写入对象,并将key和该待写入对象进行关联存储,从而完成一次数据写入。
但是,现有技术中,当一数据对象分为多个数据分片写入时,服务器将每一数据分片作为一待写入对象,为每一数据分片分配一一对应的key,IP硬盘对属于同一数据对象的多个数据分片需要分别存储一个key;因此,当数据分片较小时,存在IP硬盘存储空间利用率低的问题。
发明内容
本发明实施例提供一种将数据对象写入IP硬盘的方法、装置及系统,用以解决现有技术中当一数据对象分为多个数据分片写入时,服务器将每一数据分片作为一待写入对象,为每一数据分片分配一一对应的key,IP硬盘对属于同一数据对象的多个数据分片需要分别存储一个key;当数据分片较小时,IP硬盘存储空间利用率低的问题。
本发明实施例提供一种将数据对象写入IP硬盘的方法,所述方法应用于存储系统中,所述存储系统包括至少一个服务器和多个IP硬盘,所述方法由服务器执行,所述数据对象包括若干个数据分片,所述方法包括:
确定待发送的待写入数据分片;
查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;
根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
将所述第一数据写入请求发送给所述第一目标IP硬盘。
本发明实施例还提供一种将数据对象写入IP硬盘的方法,所述方法由所述IP硬盘执行,所述数据对象包括若干个数据分片,所述方法包括:
接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;
根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
本发明实施例提供一种将数据对象写入IP硬盘的装置,所述装置为服务器,所述数据对象包括若干个数据分片,所述装置包括:
待写入数据分片确定模块,用于确定待发送的待写入数据分片;其中,数据对象包括若干个数据分片;
剩余存储容量确定模块,用于查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
key确定模块,用于若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
偏移量确定模块,用于根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
生成模块,用于生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
发送模块,用于将所述第一数据写入请求发送给所述第一目标IP硬盘。
本发明实施例还提供一种将数据对象写入IP硬盘的装置,所述装置为IP硬盘,所述数据对象包括若干个数据分片,所述装置包括:
接收模块,用于接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;
处理模块,用于根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
本发明实施例还提供一种将数据对象写入IP硬盘的系统,所述数据对象包括若干个数据分片,所述系统包括:至少一个上述的服务器和多个上述的IP硬盘。
本发明实施例提供一种将数据对象写入IP硬盘的方法、装置及系统,当数据对象分为若干个数据分片写入时,服务器通过查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则确定所述待写入数据分片对应的key与所述第一key相同;根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;并将包括待写入数据分片、第一key及所述待写入数据分片的偏移量的数据写入请求发送至第一目标IP硬盘;使得服务器能够对属于同一数据对象的多个数据分片分配同一key,避免IP硬盘需要对属于同一数据对象的多个数据分片分别存储一个key,减少了IP硬盘存储key所占用的存储空间的大小,提高了IP硬盘的存储空间利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明将数据对象写入IP硬盘的方法的应用场景示意图;
图2为本发明将数据对象写入IP硬盘的方法实施例一的流程图;
图3为本发明将数据对象写入IP硬盘的方法实施例二的流程图;
图4为本发明将数据对象写入IP硬盘的方法实施例三的流程图;
图5为本发明将数据对象写入IP硬盘的方法实施例五的流程图;
图6为本发明将数据对象写入IP硬盘的方法实施例七的流程图;
图7为本发明服务器实施例一的结构示意图;
图8为本发明服务器实施例五的结构示意图;
图9为本发明IP硬盘实施例一的结构示意图;
图10为本发明IP硬盘实施例二的结构示意图;
图11为本发明IP硬盘实施例四的结构示意图;
图12为本发明IP硬盘实施例五的结构示意图;
图13为本发明IP硬盘实施例六的结构示意图;
图14为本发明IP硬盘实施例八的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明将数据对象写入IP硬盘的方法的应用场景示意图,如图1所示,存储系统中,当一数据对象分为多个数据分片写入时,服务器11将每一数据分片作为一待写入对象,为每一数据分片分配一一对应的key;服务器11将包括一数据分片及该数据分片对应的key的数据写入请求发送至IP硬盘12,IP硬盘12对属于同一数据对象的多个数据分片需要分别存储一个key;因此,当数据分片较小时,存在IP硬盘12存储空间利用率低的问题。
需要说明的是,图1的应用场景中一个服务器和3个IP硬盘仅为举例,任何包括至少一个服务器和多个IP硬盘的存储系统都为本发明将数据对象写入IP硬盘的方法的应用场景。
图2为本发明将数据对象写入IP硬盘的方法实施例一的流程图,执行主体为服务器,如图2所示,本实施例的方法可以包括:
步骤201、确定待发送的待写入数据分片;
其中,数据对象可以为文件、块数据等。
可选的,服务器可以根据用户输入确定待发送的数据分片。
例如,用户向一已存在文件中写入3KB数据;则可以认为该3KB数据为待写入数据分片。
步骤202、查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;
需要说明的是,所述最近一次已发送的数据分片与所述待写入数据分片属于同一数据对象。
需要说明的是,一个key仅对应一个IP硬盘,一个IP硬盘可以对应多个key。
假设一数据对象包括7个数据分片,且数据分片1的长度为4KB,数据分片2的长度为2KB,数据分片3的长度为6KB,数据分片4的长度为10KB,数据分片5的长度为18KB,数据分片6的长度为5KB,数据分片7的长度为4KB:
当待写入数据分片为数据分片5时,则最近一次已发送的数据分片为数据分片4。进一步的,当数据分片1~数据分片4对应的key都为key1时,则key1对应的已发送的数据分片的长度为22KB。
当待写入数据分片为数据分片7时,则最近一次已发送的数据分片为数据分片6。进一步的,当数据分片1~数据分片5对应的key都为key1,数据分片6对应的key为key2时,则key2对应的已发送的数据分片的长度为5KB。
步骤203、根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
例如,若预设的key的存储容量为2MB,且第一key对应的已发送的数据分片的长度为1MB,则第一key对应的剩余存储容量为1MB。
步骤204、若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
步骤205、根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
例如,若第一key对应已发送的数据分片的长度为1MB,则所述待写入数据分片的偏移量可以为1MB。
步骤206、生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
步骤207、将所述第一数据写入请求发送给所述第一目标IP硬盘。
现有技术中,当一数据对象分为多个数据分片写入时,服务器将每一数据分片作为一待写入对象,为每一数据分片分配一一对应的key,服务器向IP硬盘发送的数据写入请求包括数据分片及该数据分片对应的key。本发明中,当数据对象分为若干个数据分片写入时,服务器查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则确定所述待写入数据分片对应的key与所述第一key相同;根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;并将包括待写入数据分片、第一key及所述待写入数据分片的偏移量的数据写入请求发送至第一目标IP硬盘。
现有技术中,当一数据对象分为多个数据分片写入时,由于服务器将每一数据分片作为一待写入对象,为每一数据分片分配一一对应的key,服务器向IP硬盘发送的数据写入请求包括数据分片及该数据分片对应的key;导致IP硬盘需要对属于同一数据对象的多个数据分片分别存储一个key;由于存储key就需要占据几KB到几十KB的存储空间大小,当数据分片较小时,存储key所占存储空间的大小更加不容忽视;且由于该多个数据分片对应了同一数据对象的不同部分,没有必要为该多个数据分片分别对应存储一个key;因此,存在IP硬盘存储空间利用率低的问题。
本发明中,当数据对象分为若干个数据分片写入时,服务器通过查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则确定所述待写入数据分片对应的key与所述第一key相同;根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;并将包括待写入数据分片、第一key及所述待写入数据分片的偏移量的数据写入请求发送至第一目标IP硬盘;使得服务器能够对属于同一数据对象的多个数据分片分配同一key,避免IP硬盘需要对属于同一数据对象的多个数据分片分别存储一个key,减少了IP硬盘存储key所占用的存储空间的大小,提高了IP硬盘的存储空间利用率。
图3为本发明将数据对象写入IP硬盘的方法实施例二的流程图,执行主体为服务器,如图3所示,在步骤201之前还可以包括:
步骤301、确定所述最近一次已发送的数据分片是否为对所述数据对象进行首次写入的数据分片;
步骤302、若所述最近一次已发送的数据分片为对所述数据对象的首次写入的数据分片,则为所述最近一次已发送的数据分片分配对应的所述第一key以及所述第一目标IP硬盘;
可选的,服务器可以根据所述最近一次已发送的数据分片的内容通过哈希算法获得所述第一key。
步骤303、生成第二数据写入请求,所述第二数据写入请求包括所述最近一次已发送的数据分片、所述第一key、以及所述最近一次已发送的数据分片的偏移量;其中,所述最近一次已发送的数据分片的偏移量等于0;
其中,偏移量等于0,即指示IP硬盘从所述第一key对应的存储空间的起始位置对最近一次已发送的数据分片进行存储。
步骤304、将所述第二数据写入请求发送给所述第一目标IP硬盘。
本实施例中,通过服务器在确定最近一次已发送的数据分片为对数据对象进行首次写入的数据分片时,为最近一次已发送的数据分片分配对应的key以及目标IP硬盘,并将包括该key、最近一次已发送的数据分片及偏移量为0的数据写入请求发送至IP硬盘;使得服务器能够实现在对数据对象进行首次写入时分配key及IP硬盘;以在用户之后再对该数据对象进行写入时,服务器能够根据已分配的key及IP硬盘,确定待写入数据分片对应的key及IP硬盘。
需要说明的是,若最近一次已发送的数据分片为对数据对象进行首次写入的数据分片,且为所述最近一次已发送的数据分片分配的key为key1、目标IP硬盘为IP硬盘1,则待写入数据分片对应的key也为key1,待写入数据分片对应的数据写入请求也发送至IP硬盘1。
图4为本发明将数据对象写入IP硬盘的方法实施例三的流程图,执行主体为服务器,如图4所示,本实施例的方法可以包括:
步骤401、确定待发送的待写入数据分片;
步骤402、查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;
需要说明的是,步骤402与步骤202相同,在此不再赘述。
步骤403、根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
需要说明的是,步骤403与步骤203相同,在此不再赘述。
步骤404、若所述第一key对应的剩余存储容量小于所述待写入数据分片的长度,则:根据所述第一key对应的剩余存储容量,将所述待写入数据分片拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第一key对应的剩余存储容量;
例如,若第一key对应的剩余存储容量为1MB,待写入数据分片的长度为1.5MB,预设的key的存储容量为1MB,则:将待写入数据分片的前1MB作为第一子分片,将待写入数据分片的后0.5MB作为第二子分片。
又例如,若第一key对应的剩余存储容量为0.5MB,待写入数据分片的长度为2MB,预设的key的存储容量为1MB,则:将待写入数据分片的前0.5MB作为第一子分片,将待写入数据分片的中间1MB作为第二子分片,将待写入数据分片的后0.5MB作为第三子分片。
步骤405、根据所述第一key确定所述第一子分片对应的key,所述第一子分片对应的key与所述第一key相同;
也即,第一子分片对应的key与最近一次已发送的数据分片对应的key相同。
步骤406、根据所述第一key对应的已发送的数据分片的长度确定所述第一子分片的偏移量;
步骤407、生成第一子数据写入请求,所述第一子数据写入请求包括所述第一子分片、所述第一key以及所述第一子分片的偏移量;
步骤408、将第一子数据写入请求发送给所述第一目标IP硬盘;
步骤409、为所述第二子分片分配对应的第二key,并为所述第二key分配对应的第二目标IP硬盘;
可选的,服务器可以根据第二子分片的内容通过哈希算法获得所述第一key。
需要说明的是,通过将长度等于第一key对应的剩余存储容量的第一子分片发送至第一目标IP硬盘进行存储,将第二子分片发送至第二目标IP硬盘进行存储,使得同一数据对象的多个数据分片能够在一部分数据分片对应同一key存储至一IP硬盘的基础上,其他数据分片可以对应另一key存储至另一IP硬盘;以使服务器在读取该数据对象时,能够从多个IP硬盘上同时读取;从而在提高IP硬盘存储空间利用率的基础上,还提高服务器读取数据对象的效率。
步骤410、生成第二子数据写入请求,所述第二子数据写入请求包括所述第二子分片、所述第二子分片对应的第二key以及所述第二子分片的偏移量;其中,所述第二子分片的偏移量等于0;
步骤411、将第二子数据写入请求发送给所述第二目标IP硬盘。
需要说明的是,步骤405~步骤408与步骤409~步骤411之间并没有先后关系;
本实施例中,通过服务器根据第一key对应的剩余存储容量,将待写入数据分片拆分为第一子分片和第二子分片;确定第一子分片对应的key与第一key相同,并为第二子分片分配新的key;使得当第一key对应的剩余存储容量小于待写入数据分片的长度时,服务器能够对待写入数据分片进行拆分,并发送至相应的IP硬盘进行存储。
数据对象写入IP硬盘的方法实施例四
可选的,在本发明方法实施例一、或方法实施例二、或方法实施例三的基础上,还可以包括:生成数据读取请求,所述数据读取请求包括key和偏移量;将所述数据读取请求发送给所述第一目标IP硬盘。
可选的,数据读取请求中还可以包括所需读取数据的大小。
需要说明的是,数据读取请求中包括的key为服务器已分配的key,例如为方法实施例一中的第一key;数据读取请求中包括的偏移位置可以为0至预设的key的存储容量之间的任意正整数。
本实施例中,通过向IP硬盘发送包括key及偏移量的数据读取请求,使得服务器在将数据发送至IP硬盘存储后,能够通过指定相应的key及偏移量,实现对该key对应的存储空间中数据的灵活读取。
图5为本发明将数据对象写入IP硬盘的方法实施例五的流程图,执行主体为IP硬盘,如图5所示,本实施例的方法可以包括:
步骤501、接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;
例如,若数据对象包括3个数据分片,数据分片1的长度为4KB,数据分片2的长度为2KB,数据分片3的长度为6KB,且待写入数据分片为数据分片3,数据分片1、数据分片2、数据分片3都写入IP硬盘1,则偏移量为6KB。
步骤502、根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
例如,若key对应的存储空间的首地址为0x00,IP硬盘一存储地址对应的存储单元的大小为1B,偏移量为1MB,则待写入数据分片存储在该IP硬盘的起始地址为0x400。
现有技术中,当一数据对象分为多个数据分片写入时,IP硬盘接收到服务器发送的包括key及待写入数据分片的数据写入请求后,分配与待写入数据分片大小相同的存储空间存储该待写入数据分片,并将该key和该待写入数据分片进行关联存储,以使服务器在进行数据读取时能够根据该key获得该待写入数据分片。本发明中,当一数据对象分为多个数据分片写入时,IP硬盘接收服务器发送的包括待写入数据分片、key及偏移值的数据写入请求,根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
现有技术中,当一数据对象分为多个数据分片写入时,由于IP硬盘接收到服务器发送的包括key及待写入数据分片的数据写入请求后,分配与待写入数据分片大小相同的存储空间存储该待写入数据分片,并将该key和该待写入数据分片进行关联存储;因此,IP硬盘需要对属于同一数据对象的多个数据分片分别存储一个key;由于存储key就需要占据几KB到几十KB的存储空间大小,当数据分片较小时,存储key所占存储空间的大小更加不容忽视;且由于该多个数据分片对应了同一数据对象的不同部分,没有必要为该多个数据分片分别对应不同的key;因此,存在IP硬盘存储空间利用率低的问题。
本发明中,当一数据对象分为多个数据分片写入时,通过IP硬盘接收服务器发送的包括待写入数据分片、key及偏移值的数据写入请求,根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片;使得IP硬盘能够根据服务器在数据写入请求中包括的偏移值,将多个数据分片存储至一个key对应的存储空间;使得多个数据分片在IP硬盘中能够对应同一个key,减少了IP硬盘存储key所占用的存储空间的大小,提高了IP硬盘的存储空间利用率。
数据对象写入IP硬盘的方法实施例六
可选的,在本发明方法实施例五的基础上,还可以包括:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;根据所述key及所述偏移量读取数据,并将所读取的数据反馈给所述服务器。
可选的,数据读取请求中还可以包括所需读取数据的大小。
需要说明的是,数据读取请求中包括的key为IP硬盘中已存储的key,例如为方法实施例五中的key;数据读取请求中包括的偏移位置可以为0至预设的key的存储容量之间的任意正整数。
现有技术中,IP硬盘接收服务器发送的数据读取请求,所述数据读取请求包括key;IP硬盘根据所述key读取数据,并将所读取的数据反馈给服务器。本发明中,IP硬盘接收服务器发送的数据读取请求,所述数据读取请求包括key和偏移量;IP硬盘根据所述key及所述偏移量读取数据,并将所读取的数据反馈给服务器。
现有技术中,由于IP硬盘接收到服务器发送的包括key和待写入数据分片的数据写入请求后,将该key和该待写入数据分片进行关联存储;当IP硬盘接收到服务器发送的包括该key的数据读取请求时,IP硬盘根据该key获取对应的数据(也即,数据写入请求中的待写入数据分片)并反馈给服务器;因此,当一数据对象分为多个数据分片写入时,服务器需要对每一数据分片对应的key分别进行读取操作,才能够获得该key对应的数据分片,操作复杂;
本发明中,在IP硬盘对多个数据分片对应同一个key进行存储后,通过IP硬盘接收服务器发送的包括key和偏移量的数据读取请求,IP硬盘根据所述key及所述偏移量读取数据,并将所读取的数据反馈给服务器;使得当一数据对象分为多个数据分片写入时,服务器能通过设置相应的偏移量即可以实现对各数据分片的灵活读取,操作简单。
数据对象写入IP硬盘的方法实施例七
在本发明数据对象写入IP硬盘的方法实施例五的基础上,可选的,所述key对应的存储容量等于M倍的预设的长度L;其中,M为正整数。
例如,若key对应的存储容量为2MB,预设的长度L为64KB,则M等于32。也即,key对应的存储容量被分为32段。
图6为本发明将数据对象写入IP硬盘的方法实施例七的流程图,如图6所示,步骤502可以包括:
步骤601、根据所述偏移量及预设的长度L,确定需要将所述待写入数据分片存储至所述key对应的存储空间中的第N段存储空间;并根据所述偏移量、N及所述预设的长度L,确定所述第N段存储空间的剩余存储容量;
其中,N为正整数,且M大于N;
例如,若key对应的存储容量为2MB,预设的长度L为64KB,则M等于32;进一步地,若偏移量为1MB,则N等于17(也即,需要将待写入数据分片存储至所述key对应的存储空间中的第17段存储空间);进一步地,根据偏移量为1MB、N等于17和预设的长度L为2MB,则可确定第17段存储空间的剩余存储容量为64KB。
步骤602、确定所述待写入数据分片的长度是否大于所述第N段存储空间的剩余存储容量;
若是,则执行步骤603;否则,执行步骤606。
步骤603、根据所述第N段存储空间的剩余存储容量及预设的长度L,将所述待写入数据分片依次拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第N段存储空间的剩余存储容量;所述第二子分片的长度小于或等于所述预设的长度L;
例如,若第N段存储空间的剩余存储容量为32KB、预设的长度L为64KB,待写入数据分片的大小为94KB,则将所述待写入数据分片的前32KB作为第一子分片,将所述待写入数据分片后62KB作为第二子分片。
又例如,若第N段存储空间的剩余存储容量为32KB、预设的长度L为64KB,待写入数据分片的大小为120KB,则将所述待写入数据分片的前32KB作为第一子分片,将所述待写入数据分片的中间64KB作为第二子分片,将所述待写入数据分片最后的24KB为第三子分片。
步骤604、确定所述第一子分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述第一子分片;
可选的,确定所述第N段存储空间的剩余存储容量的起始地址,可以为:根据所述第N段存储空间的剩余存储容量及预设的长度L,确定所述第N段存储空间的已存储数据的大小;根据所述第N段存储空间的已存储数据的大小及所述第N段的存储空间的首地址,确定所述第N段存储空间的剩余存储容量的起始地址。
步骤605、分配第N+1段的存储空间,将所述第N+1段存储空间的首地址与所述key值进行关联存储,其中,所述第N+1段存储空间的大小等于所述预设的长度L;确定所述第二子分片存储在所述IP硬盘的起始地址为所述第N+1段存储空间的首地址,并从所述第N+1段存储空间的首地址对应的存储空间开始写入所述第二子分片;
需要说明的是,步骤605执行完之后则结束。
步骤606、确定所述待写入数据分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述待写入数据分片。
本实施例,通过IP硬盘将key对应的存储容量分为M段,在进行数据存储时,根据偏移量及预设的长度L,确定需要将待写入数据分片存储至key对应的存储空间中的哪一段(例如第N段)存储空间,并在确定该段存储空间的剩余存储容量小于待写入数据分片的大小时,分配下一段(第N+1段)的存储空间进行存储,使得key对应的存储空间中的每段存储空间仅在需要使用的时候才进行分配,进一步提高了IP硬盘存储空间利用率。
数据对象写入IP硬盘的方法实施例八
可选的,在本发明方法实施例七的基础上,还可以包括:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;根据所述偏移量及所述预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;根据所述偏移量、所述第N段存储空间的首地址,确定需要读取数据的起始地址;根据所述需要读取数据的起始地址读取数据,并将所读取的数据反馈给所述服务器。
可选的,数据读取请求中还可以包括所需读取数据的大小。
需要说明的是,数据读取请求中包括的key为IP硬盘已存储的key,例如为方法实施例五中的key;数据读取请求中包括的偏移位置可以为0至预设的key的存储容量之间的任意正整数。
本实施例中,在IP硬盘对多个数据分片对应同一个key进行存储后,通过IP硬盘接收服务器发送的数key和偏移量的数据读取请求;根据所述偏移量及预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;根据所述偏移量及所述第N段存储空间的首地址,确定需要读取数据的起始地址;根据所述需要读取数据的起始地址读取数据,并将所读取的数据反馈给所述服务器;使得当一数据对象分为多个数据分片写入时,服务器能通过设置相应的偏移量即可以实现对各数据分片的灵活读取,操作简单。
图7为本发明服务器实施例一的结构示意图,如图7所示,本实施例的服务器可以包括:待写入数据分片确定模块701、剩余存储容量确定模块702、key确定模块703、偏移量确定模块704、生成模块705和发送模块706。其中,待写入数据分片确定模块701,用于确定待发送的待写入数据分片;其中,数据对象包括若干个数据分片;剩余存储容量确定模块702,用于查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;key确定模块703,用于若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;偏移量确定模块704,用于根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;生成模块705,用于生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;发送模块706,用于将所述第一数据写入请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例二
在本发明服务器实施例一的基础上,可选的,key确定模块703,还用于:确定所述最近一次已发送的数据分片是否为对所述数据对象进行首次写入的数据分片;若是,则为所述最近一次已发送的数据分片分配对应的所述第一key以及所述第一目标IP硬盘;
相应的,生成模块705,还用于:生成第二数据写入请求,所述第二数据写入请求包括所述最近一次已发送的数据分片、所述第一key、以及所述最近一次已发送的数据分片的偏移量;其中,所述最近一次已发送的数据分片的偏移量等于0;
相应的,发送模块706,还用于:将所述第二数据写入请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例三
在本发明服务器实施例一或服务器实施例二的基础上,可选的,key确定模块703,还用于:
若所述第一key对应的剩余存储容量小于所述待写入数据分片的长度,则:
根据所述第一key对应的剩余存储容量,将所述待写入数据分片拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第一key对应的剩余存储容量;
根据所述第一key确定所述第一子分片对应的key,所述第一子分片对应的key与所述第一key相同;
为所述第二子分片分配对应的第二key,并为所述第二key分配对应的第二目标IP硬盘;
相应的,偏移量确定模块704,具体用于:根据所述第一key对应的已发送的数据分片的长度确定所述第一子分片的偏移量;
生成模块705,具体用于:生成第一子数据写入请求,所述第一子数据写入请求包括所述第一子分片、所述第一key以及所述第一子分片的偏移量;生成第二子数据写入请求,所述第二子数据写入请求包括所述第二子分片、所述第二子分片对应的第二key以及所述第二子分片的偏移量;其中,所述第二子分片的偏移量等于0;
发送模块706,具体用于:将第一子数据写入请求发送给所述第一目标IP硬盘;将第二子数据写入请求发送给所述第二目标IP硬盘。
本实施例的服务器,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例四
在本发明服务器实施例一、或服务器实施例二、或服务器实施例三的基础上,可选的,生成模块705,还用于:生成数据读取请求,所述数据读取请求包括key和偏移量;发送模块706,还可以用于:将所述数据读取请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行将数据对象写入IP硬盘的方法实施例四的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明服务器实施例五的结构示意图,如图8所示,本实施例的服务器可以包括:处理器801和发送器802;
其中,处理器801,用于:确定待发送的待写入数据分片;
查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;
根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
发送器802,用于:将所述第一数据写入请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例六
在本发明服务器实施例五的基础上,可选的,处理器801,还用于:
确定所述最近一次已发送的数据分片是否为对所述数据对象进行首次写入的数据分片;若是,则为所述最近一次已发送的数据分片分配对应的所述第一key以及所述第一目标IP硬盘;
生成第二数据写入请求,所述第二数据写入请求包括所述最近一次已发送的数据分片、所述第一key、以及所述最近一次已发送的数据分片的偏移量;其中,所述最近一次已发送的数据分片的偏移量等于0;
相应的,发送器802,还用于:将所述第二数据写入请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例七
在本发明服务器实施例五或服务器实施例六的基础上,可选的,处理器801,还用于:
若所述第一key对应的剩余存储容量小于所述待写入数据分片的长度,则:
根据所述第一key对应的剩余存储容量,将所述待写入数据分片拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第一key对应的剩余存储容量;
根据所述第一key确定所述第一子分片对应的key,所述第一子分片对应的key与所述第一key相同;
为所述第二子分片分配对应的第二key,并为所述第二key分配对应的第二目标IP硬盘;
根据所述第一key对应的已发送的数据分片的长度确定所述第一子分片的偏移量;
生成第一子数据写入请求,所述第一子数据写入请求包括所述第一子分片、所述第一key以及所述第一子分片的偏移量;生成第二子数据写入请求,所述第二子数据写入请求包括所述第二子分片、所述第二子分片对应的第二key以及所述第二子分片的偏移量;其中,所述第二子分片的偏移量等于0;
相应的,发送器802具体用于:将第一子数据写入请求发送给所述第一目标IP硬盘;将第二子数据写入请求发送给所述第二目标IP硬盘。
本实施例的服务器,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
服务器实施例八
在本发明服务器实施例五、或服务器实施例六、或服务器实施例七的基础上,可选的,处理器801,还用于:生成数据读取请求,所述数据读取请求包括key和偏移量;发送器802,还用于:将所述数据读取请求发送给所述第一目标IP硬盘。
本实施例的服务器,可以用于执行将数据对象写入IP硬盘的方法实施例四的技术方案,其实现原理和技术效果类似,此处不再赘述。
图9为本发明IP硬盘实施例一的结构示意图,如图9所示,本实施例的IP硬盘可以包括:接收模块901和处理模块902。其中,接收模块901,用于接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;处理模块902,用于根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
本实施例的IP硬盘,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本发明IP硬盘实施例二的结构示意图,如图10所示,本实施例的IP硬盘在图9所示IP硬盘结构的基础上,进一步地,还可以包括:第一发送模块903。接收模块901还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;处理模块902还用于:根据所述key及所述偏移量读取数据;该第一发送模块903用于将处理模块902所读取的数据反馈给所述服务器。
本实施例的IP硬盘,可以用于执行将数据对象写入IP硬盘的方法实施例六的技术方案,其实现原理和技术效果类似,此处不再赘述。
IP硬盘实施例三
可选的,在本发明IP硬盘实施例一的基础上,所述key对应的存储容量等于M倍的预设的长度L;其中,M为正整数;
相应的,处理模块902,具体用于:
根据所述偏移量及预设的长度L,确定需要将所述待写入数据分片存储至所述key对应的存储空间中的第N段存储空间;并根据所述偏移量、N及所述预设的长度L,确定所述第N段存储空间的剩余存储容量;其中,N为正整数,且M大于N;
确定所述待写入数据分片的长度是否大于所述第N段存储空间的剩余存储容量;
若是,则根据所述第N段存储空间的剩余存储容量及预设的长度L,将所述待写入数据分片依次拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第N段存储空间的剩余存储容量;所述第二子分片的长度小于或等于所述预设的长度L;
确定所述第一子分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述第一子分片;
分配第N+1段的存储空间,将所述第N+1段存储空间的首地址与所述key值进行关联存储,其中,所述第N+1段存储空间的大小等于所述预设的长度L;确定所述第二子分片存储在所述IP硬盘的起始地址为所述第N+1段存储空间的首地址,并从所述第N+1段存储空间的首地址对应的存储空间开始写入所述第二子分片;
否则,确定所述待写入数据分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述待写入数据分片。
本实施例的IP硬盘,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明IP硬盘实施例四的结构示意图,如图11所示,本实施例的IP硬盘在图9所示IP硬盘结构的基础上,进一步地,还可以包括:第二发送模块904;接收模块901还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;处理模块902还用于:根据所述偏移量及所述预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;根据所述偏移量、所述第N段存储空间的首地址,确定需要读取数据的起始地址;根据所述需要读取数据的起始地址读取数据;该第二发送模块904用于将处理模块902所读取的数据反馈给所述服务器。
本实施例的IP硬盘,可以用于执行将数据对象写入IP硬盘的方法实施例八的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本发明IP硬盘实施例五的结构示意图,如图12所示,本实施例的IP硬盘可以包括:接收器1201和处理器1202。其中,接收器1201,用于接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;处理器1202,用于根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
本实施例的IP硬盘,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图13为本发明IP硬盘实施例六的结构示意图,如图13所示,本实施例的IP硬盘在图12所示IP硬盘结构的基础上,进一步地,还可以包括:第一发送器1203。接收器1201还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;处理器1202还用于:根据所述key及所述偏移量读取数据;该第一发送器1203,用于将处理器1202所读取的数据反馈给所述服务器。
本实施例的IP硬盘,可以用于执行将数据对象写入IP硬盘的方法实施例六的技术方案,其实现原理和技术效果类似,此处不再赘述。
IP硬盘实施例七
可选的,在本发明IP硬盘实施例五的基础上,所述key对应的存储容量等于M倍的预设的长度L;其中,M为正整数;
相应的,处理器1202,具体用于:
根据所述偏移量及预设的长度L,确定需要将所述待写入数据分片存储至所述key对应的存储空间中的第N段存储空间;并根据所述偏移量、N及所述预设的长度L,确定所述第N段存储空间的剩余存储容量;其中,N为正整数,且M大于N;
确定所述待写入数据分片的长度是否大于所述第N段存储空间的剩余存储容量;
若是,则根据所述第N段存储空间的剩余存储容量及预设的长度L,将所述待写入数据分片依次拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第N段存储空间的剩余存储容量;所述第二子分片的长度小于或等于所述预设的长度L;
确定所述第一子分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述第一子分片;
分配第N+1段的存储空间,将所述第N+1段存储空间的首地址与所述key值进行关联存储,其中,所述第N+1段存储空间的大小等于所述预设的长度L;确定所述第二子分片存储在所述IP硬盘的起始地址为所述第N+1段存储空间的首地址,并从所述第N+1段存储空间的首地址对应的存储空间开始写入所述第二子分片;
否则,确定所述待写入数据分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述待写入数据分片。
本实施例的IP硬盘,可以用于执行图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本发明IP硬盘实施例八的结构示意图,如图14所示,本实施例的IP硬盘在图12所示IP硬盘结构的基础上,进一步地,还可以包括:第二发送器1204;接收器1201还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;处理器1202还用于:根据所述偏移量及所述预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;根据所述偏移量、所述第N段存储空间的首地址,确定需要读取数据的起始地址;根据所述需要读取数据的起始地址读取数据;该第二发送器1204用于将处理器1202所读取的数据反馈给所述服务器。
本实施例的IP硬盘,可以用于执行将数据对象写入IP硬盘的方法实施例八的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明还提供一种将数据对象写入互联网协议IP硬盘的系统,所述数据对象包括若干个数据分片,所述系统包括:服务器实施例一、实施例二、实施例三、或实施例四中所述的服务器,以及IP硬盘实施例一、实施例二、实施例三、或实施例四中所述的IP硬盘。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (17)
1.一种将数据对象写入互联网协议IP硬盘的方法,其特征在于,所述方法应用于存储系统中,所述存储系统包括至少一个服务器和多个IP硬盘,所述方法由服务器执行,所述数据对象包括若干个数据分片,所述方法包括:
确定待发送的待写入数据分片;
查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;
根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
将所述第一数据写入请求发送给所述第一目标IP硬盘。
2.根据权利要求1所述的方法,其特征在于,所述确定待发送的待写入数据分片之前,还包括:
确定所述最近一次已发送的数据分片是否为对所述数据对象进行首次写入的数据分片;
若是,则为所述最近一次已发送的数据分片分配对应的所述第一key以及所述第一目标IP硬盘;
生成第二数据写入请求,所述第二数据写入请求包括所述最近一次已发送的数据分片、所述第一key、以及所述最近一次已发送的数据分片的偏移量;其中,所述最近一次已发送的数据分片的偏移量等于0;
将所述第二数据写入请求发送给所述第一目标IP硬盘。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
若所述第一key对应的剩余存储容量小于所述待写入数据分片的长度,则:
根据所述第一key对应的剩余存储容量,将所述待写入数据分片拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第一key对应的剩余存储容量;
根据所述第一key确定所述第一子分片对应的key,所述第一子分片对应的key与所述第一key相同;
根据所述第一key对应的已发送的数据分片的长度确定所述第一子分片的偏移量;
生成第一子数据写入请求,所述第一子数据写入请求包括所述第一子分片、所述第一key以及所述第一子分片的偏移量;
将第一子数据写入请求发送给所述第一目标IP硬盘;
为所述第二子分片分配对应的第二key,并为所述第二key分配对应的第二目标IP硬盘;
生成第二子数据写入请求,所述第二子数据写入请求包括所述第二子分片、所述第二子分片对应的第二key以及所述第二子分片的偏移量;其中,所述第二子分片的偏移量等于0;
将第二子数据写入请求发送给所述第二目标IP硬盘。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述将所述第一数据写入请求发送给所述第一目标IP硬盘之后,还包括:
生成数据读取请求,所述数据读取请求包括key和偏移量;
将所述数据读取请求发送给所述第一目标IP硬盘。
5.一种将数据对象写入互联网协议IP硬盘的方法,其特征在于,所述方法由所述IP硬盘执行,所述数据对象包括若干个数据分片,所述方法包括:
接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;
根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
6.根据权利要求5所述的方法,其特征在于,所述从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片之后,还包括:
接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;
根据所述key及所述偏移量读取数据,并将所读取的数据反馈给所述服务器。
7.根据权利要求5所述的方法,其特征在于,所述key对应的存储容量等于M倍的预设的长度L;其中,M为正整数;
相应的,所述根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片,包括:
根据所述偏移量及预设的长度L,确定需要将所述待写入数据分片存储至所述key对应的存储空间中的第N段存储空间;并根据所述偏移量、N及所述预设的长度L,确定所述第N段存储空间的剩余存储容量;其中,N为正整数,且M大于N;
确定所述待写入数据分片的长度是否大于所述第N段存储空间的剩余存储容量;
若是,则根据所述第N段存储空间的剩余存储容量及预设的长度L,将所述待写入数据分片依次拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第N段存储空间的剩余存储容量;所述第二子分片的长度小于或等于所述预设的长度L;
确定所述第一子分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述第一子分片;
分配第N+1段的存储空间,将所述第N+1段存储空间的首地址与所述key值进行关联存储,其中,所述第N+1段存储空间的大小等于所述预设的长度L;确定所述第二子分片存储在所述IP硬盘的起始地址为所述第N+1段存储空间的首地址,并从所述第N+1段存储空间的首地址对应的存储空间开始写入所述第二子分片;
否则,确定所述待写入数据分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述待写入数据分片。
8.根据权利要求7所述的方法,其特征在于,所述从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片之后,还包括:
接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;
根据所述偏移量及所述预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;
根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;
根据所述偏移量、所述第N段存储空间的首地址,确定需要读取数据的起始地址;
根据所述需要读取数据的起始地址读取数据,并将所读取的数据反馈给所述服务器。
9.一种将数据对象写入互联网协议IP硬盘的装置,所述装置为服务器,其特征在于,所述数据对象包括若干个数据分片,所述装置包括:
待写入数据分片确定模块,用于确定待发送的待写入数据分片;其中,数据对象包括若干个数据分片;
剩余存储容量确定模块,用于查询最近一次已发送的数据分片对应的第一key和所述第一key对应的已发送的数据分片的长度,所述第一key与第一目标IP硬盘对应;根据所述第一key对应的已发送的数据分片的长度及预设的key的存储容量,确定所述第一key对应的剩余存储容量,所述第一key对应的剩余存储容量等于所述key的存储容量减去所述第一key对应的已发送的数据分片的长度;
key确定模块,用于若所述第一key对应的剩余存储容量大于或等于所述待写入数据分片的长度,则根据所述第一key确定所述待写入数据分片对应的key,所述待写入数据分片对应的key与所述第一key相同;
偏移量确定模块,用于根据所述第一key对应的已发送的数据分片的长度确定所述待写入数据分片的偏移量;
生成模块,用于生成第一数据写入请求,所述第一数据写入请求包括所述待写入数据分片、所述待写入数据分片对应的key以及所述待写入数据分片的偏移量;
发送模块,用于将所述第一数据写入请求发送给所述第一目标IP硬盘。
10.根据权利要求9所述的装置,其特征在于,所述key确定模块,还用于:
确定所述最近一次已发送的数据分片是否为对所述数据对象进行首次写入的数据分片;
若是,则为所述最近一次已发送的数据分片分配对应的所述第一key以及所述第一目标IP硬盘;
所述生成模块,还用于:生成第二数据写入请求,所述第二数据写入请求包括所述最近一次已发送的数据分片、所述第一key、以及所述最近一次已发送的数据分片的偏移量;其中,所述最近一次已发送的数据分片的偏移量等于0;
所述发送模块,还用于:将所述第二数据写入请求发送给所述第一目标IP硬盘。
11.根据权利要求9或10所述的装置,其特征在于,所述key确定模块,还用于:
若所述第一key对应的剩余存储容量小于所述待写入数据分片的长度,则:
根据所述第一key对应的剩余存储容量,将所述待写入数据分片拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第一key对应的剩余存储容量;
根据所述第一key确定所述第一子分片对应的key,所述第一子分片对应的key与所述第一key相同;
为所述第二子分片分配对应的第二key,并为所述第二key分配对应的第二目标IP硬盘;
所述偏移量确定模块,具体用于:根据所述第一key对应的已发送的数据分片的长度确定所述第一子分片的偏移量;
生成模块,具体用于:生成第一子数据写入请求,所述第一子数据写入请求包括所述第一子分片、所述第一key以及所述第一子分片的偏移量;生成第二子数据写入请求,所述第二子数据写入请求包括所述第二子分片、所述第二子分片对应的第二key以及所述第二子分片的偏移量;其中,所述第二子分片的偏移量等于0;
发送模块,具体用于:将第一子数据写入请求发送给所述第一目标IP硬盘;将第二子数据写入请求发送给所述第二目标IP硬盘。
12.根据权利要求9~11任一项所述的装置,其特征在于,所述生成模块,还用于:生成数据读取请求,所述数据读取请求包括key和偏移量;
所述发送模块,还用于:将所述数据读取请求发送给所述第一目标IP硬盘。
13.一种将数据对象写入互联网协议IP硬盘的装置,所述装置为IP硬盘,其特征在于,所述数据对象包括若干个数据分片,所述装置包括:
接收模块,用于接收服务器发送的数据写入请求,所述数据写入请求包括:待写入数据分片,所述待写入数据分片对应的key以及偏移量,所述key与所述IP硬盘对应,所述偏移量用于指示已写入所述IP硬盘的数据分片的大小;
处理模块,用于根据所述key和所述偏移量确定所述待写入数据分片存储在所述IP硬盘的起始地址,并从所述待写入数据分片存储在所述IP硬盘的起始地址对应的存储空间开始写入所述待写入数据分片。
14.根据权利要求13所述的装置,其特征在于,所述接收模块,还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;
所述处理模块,还用于:根据所述key及所述偏移量读取数据;
所述装置,还包括:第一发送模块,用于将所述处理模块所读取的数据反馈给所述服务器。
15.根据权利要求13所述的装置,其特征在于,所述key对应的存储容量等于M倍的预设的长度L;其中,M为正整数;
所述处理模块,具体用于:
根据所述偏移量及预设的长度L,确定需要将所述待写入数据分片存储至所述key对应的存储空间中的第N段存储空间;并根据所述偏移量、N及所述预设的长度L,确定所述第N段存储空间的剩余存储容量;其中,N为正整数,且M大于N;
确定所述待写入数据分片的长度是否大于所述第N段存储空间的剩余存储容量;
若是,则根据所述第N段存储空间的剩余存储容量及预设的长度L,将所述待写入数据分片依次拆分为第一子分片和第二子分片;其中,所述第一子分片的长度等于所述第N段存储空间的剩余存储容量;所述第二子分片的长度小于或等于所述预设的长度L;
确定所述第一子分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述第一子分片;
分配第N+1段的存储空间,将所述第N+1段存储空间的首地址与所述key值进行关联存储,其中,所述第N+1段存储空间的大小等于所述预设的长度L;确定所述第二子分片存储在所述IP硬盘的起始地址为所述第N+1段存储空间的首地址,并从所述第N+1段存储空间的首地址对应的存储空间开始写入所述第二子分片;
否则,确定所述待写入数据分片存储在所述IP硬盘的起始地址为所述第N段存储空间的剩余存储容量的起始地址,并从所述第N段存储空间的剩余存储容量的起始地址对应的存储空间开始写入所述待写入数据分片。
16.根据权利要求15所述的装置,其特征在于,所述接收模块,还用于:接收所述服务器发送的数据读取请求,所述数据读取请求包括所述key和偏移量;
所述处理模块,还用于:根据所述偏移量及所述预设的长度L,确定需要从所述key对应的存储空间中的第N段存储空间的数据开始,进行数据读取;根据所述key与各段存储空间的首地址的关联关系,确定第N段存储空间的首地址;根据所述偏移量、所述第N段存储空间的首地址,确定需要读取数据的起始地址;根据所述需要读取数据的起始地址读取数据;
所述装置,还包括:第二发送模块,用于将所述处理模块所读取的数据反馈给所述服务器。
17.一种将数据对象写入互联网协议IP硬盘的系统,其特征在于,所述数据对象包括若干个数据分片,所述系统包括:至少一个权利要求9~12任一项所述的服务器和多个权利要求13~16任一项所述的IP硬盘。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410606549.5A CN104461378B (zh) | 2014-10-30 | 2014-10-30 | 将数据对象写入ip硬盘的方法、装置及系统 |
PCT/CN2015/083780 WO2016065927A1 (zh) | 2014-10-30 | 2015-07-10 | 将数据对象写入ip硬盘的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410606549.5A CN104461378B (zh) | 2014-10-30 | 2014-10-30 | 将数据对象写入ip硬盘的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461378A true CN104461378A (zh) | 2015-03-25 |
CN104461378B CN104461378B (zh) | 2017-09-26 |
Family
ID=52907507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410606549.5A Active CN104461378B (zh) | 2014-10-30 | 2014-10-30 | 将数据对象写入ip硬盘的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104461378B (zh) |
WO (1) | WO2016065927A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065927A1 (zh) * | 2014-10-30 | 2016-05-06 | 华为技术有限公司 | 将数据对象写入ip硬盘的方法、装置及系统 |
WO2017215249A1 (zh) * | 2016-06-12 | 2017-12-21 | 杭州海康威视数字技术股份有限公司 | 分配网际协议ip磁盘的方法及装置 |
CN108021333A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 随机读写数据的系统、装置及方法 |
CN110035307A (zh) * | 2019-03-08 | 2019-07-19 | 视联动力信息技术股份有限公司 | 一种分片存储方法和装置 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010157300A (ja) * | 2009-01-05 | 2010-07-15 | Hitachi Kokusai Electric Inc | 映像記録装置 |
US7849259B1 (en) * | 2007-02-14 | 2010-12-07 | Marvell International Ltd. | Disk controller response handler for write commands |
CN103929475A (zh) * | 2014-03-27 | 2014-07-16 | 华为技术有限公司 | 一种以太网架构的硬盘存储系统及硬盘数据操作方法 |
CN103973810A (zh) * | 2014-05-22 | 2014-08-06 | 华为技术有限公司 | 基于互联网协议ip盘的数据处理方法和装置 |
CN104023081A (zh) * | 2014-06-19 | 2014-09-03 | 华为技术有限公司 | 网协ip硬盘的数据处理方法及ip硬盘 |
CN104077239A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | Ip硬盘与存储系统,及其数据操作方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102843396B (zh) * | 2011-06-22 | 2018-03-13 | 中兴通讯股份有限公司 | 一种分布式缓存系统中的数据写入及读取方法及装置 |
US20140304525A1 (en) * | 2013-04-01 | 2014-10-09 | Nexenta Systems, Inc. | Key/value storage device and method |
CN103761190B (zh) * | 2013-12-19 | 2017-01-11 | 华为技术有限公司 | 数据处理方法及装置 |
CN103942012B (zh) * | 2014-03-26 | 2017-10-10 | 华为技术有限公司 | 一种读取数据的方法、装置及设备 |
CN104461378B (zh) * | 2014-10-30 | 2017-09-26 | 华为技术有限公司 | 将数据对象写入ip硬盘的方法、装置及系统 |
-
2014
- 2014-10-30 CN CN201410606549.5A patent/CN104461378B/zh active Active
-
2015
- 2015-07-10 WO PCT/CN2015/083780 patent/WO2016065927A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7849259B1 (en) * | 2007-02-14 | 2010-12-07 | Marvell International Ltd. | Disk controller response handler for write commands |
JP2010157300A (ja) * | 2009-01-05 | 2010-07-15 | Hitachi Kokusai Electric Inc | 映像記録装置 |
CN103929475A (zh) * | 2014-03-27 | 2014-07-16 | 华为技术有限公司 | 一种以太网架构的硬盘存储系统及硬盘数据操作方法 |
CN103973810A (zh) * | 2014-05-22 | 2014-08-06 | 华为技术有限公司 | 基于互联网协议ip盘的数据处理方法和装置 |
CN104023081A (zh) * | 2014-06-19 | 2014-09-03 | 华为技术有限公司 | 网协ip硬盘的数据处理方法及ip硬盘 |
CN104077239A (zh) * | 2014-06-24 | 2014-10-01 | 华为技术有限公司 | Ip硬盘与存储系统,及其数据操作方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016065927A1 (zh) * | 2014-10-30 | 2016-05-06 | 华为技术有限公司 | 将数据对象写入ip硬盘的方法、装置及系统 |
WO2017215249A1 (zh) * | 2016-06-12 | 2017-12-21 | 杭州海康威视数字技术股份有限公司 | 分配网际协议ip磁盘的方法及装置 |
CN108021333A (zh) * | 2016-11-03 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 随机读写数据的系统、装置及方法 |
CN110035307A (zh) * | 2019-03-08 | 2019-07-19 | 视联动力信息技术股份有限公司 | 一种分片存储方法和装置 |
CN113791736A (zh) * | 2021-09-15 | 2021-12-14 | 京东科技信息技术有限公司 | 数据迁移方法、网卡设备、服务器及数据迁移系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2016065927A1 (zh) | 2016-05-06 |
CN104461378B (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990479B2 (en) | Efficient packing of compressed data in storage system implementing data striping | |
CN104461378A (zh) | 将数据对象写入ip硬盘的方法、装置及系统 | |
US11010103B2 (en) | Distributed batch processing of non-uniform data objects | |
WO2018222236A1 (en) | Managing i/o operations in a storage network | |
CN113875206B (zh) | 云数据库的专用虚拟网络复制 | |
US11010056B2 (en) | Data operating method, device, and system | |
CN103593147A (zh) | 一种数据读取的方法及装置 | |
US20220156016A1 (en) | Network storage gateway | |
CN104077239A (zh) | Ip硬盘与存储系统,及其数据操作方法 | |
JP2015523766A (ja) | クラウド・ネットワークにおける接続高速化のための方法および装置 | |
CN103248666A (zh) | 一种离线下载资源的系统、方法及装置 | |
CN103369002A (zh) | 一种资源下载的方法及系统 | |
CN105653209A (zh) | 一种对象存储数据传输方法及装置 | |
WO2017171574A1 (en) | Backup server selection based on data commonality | |
CN104052824A (zh) | 分布式缓存方法及系统 | |
CN103595808A (zh) | 一种文件更新信息推送方法及装置 | |
JP2015179448A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、情報処理システム、ストレージ、ストレージ制御方法、及び、ストレージ制御プログラム | |
CN103092527A (zh) | 小文件的存储方法及系统 | |
CN103002038A (zh) | 弹性负载均衡的处理方法和装置 | |
US20160267050A1 (en) | Storage subsystem technologies | |
CN102541869A (zh) | 写入文件的方法和装置 | |
CN103414656B (zh) | 报文发送控制方法和网卡 | |
CN110912969B (zh) | 一种文件高速传输源节点、目的节点装置及系统 | |
CN103064638B (zh) | 一种处理数据的方法、装置及系统 | |
US20180314544A1 (en) | Combining data blocks from virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |