CN107436725B - 一种数据写、读方法、装置及分布式对象存储集群 - Google Patents
一种数据写、读方法、装置及分布式对象存储集群 Download PDFInfo
- Publication number
- CN107436725B CN107436725B CN201610351615.8A CN201610351615A CN107436725B CN 107436725 B CN107436725 B CN 107436725B CN 201610351615 A CN201610351615 A CN 201610351615A CN 107436725 B CN107436725 B CN 107436725B
- Authority
- CN
- China
- Prior art keywords
- data
- subdata
- written
- accessed
- hard disk
- 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
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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种数据写、读方法、装置及分布式对象存储集群,数据写方法包括:存储服务器接收客户端发送的待写入数据,将该待写入数据切分为多个子数据;将每个子数据写入对应的网络硬盘中,针对每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器。应用本发明所示实施例,将待写入数据划分的每个子数据写入对应的网络硬盘中,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,将待写入数据划分的多个子数据对应写入多个网络硬盘中,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
Description
技术领域
本发明涉及云存储技术领域,特别涉及一种数据写、读方法、装置及分布式对象存储集群。
背景技术
通常情况下,存储设备中的存储空间被预先分隔成特定大小的多个子存储空间,比如将100M的存储空间分隔成30M、30M和40M的子存储空间,这种情况下,将数据写入到存储设备中时,可以将该数据写入到该存储设备的某一存储空间中,比如将10M的数据写入到该存储设备的30M的子存储空间中。但是该写入过程中,该10M的数据将会占据这30M的存储空间,其他数据无法再写入,从而造成资源的浪费。
针对上述缺陷,目前写入数据时,通常将多个数据合并成一份较大的数据再进行写入,比如将三个10M的文件合并写入到30M的子存储空间中,避免了资源浪费。但是应用这种方法,将10M的文件写入30M的子存储空间时,需要等待其他可以合并的文件,如果当前没有其他待写入文件,或者当前其他待写入文件的数据大小不合适,写入数据的效率会非常低。
发明内容
本发明实施例的目的在于提供一种数据写、读方法、装置及分布式对象存储集群,提高写入、读取数据的效率。
为达到上述目的,本发明实施例公开了一种数据写方法,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述方法包括:
接收所述分布式对象存储集群中的客户端发送的待写入数据;其中,所述待写入数据为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据写入请求后,向所述元数据服务器指定的存储服务器发送的;
将所述待写入数据切分为多个子数据,并确定每个子数据的序号;
将每个子数据写入对应的网络硬盘中;
针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器。
可选的,所述将所述待写入数据切分为多个子数据,可以包括:
将所述待写入数据平均切分为多个子数据。
可选的,所述将所述待写入数据平均切分为多个子数据,可以包括:
根据所述分布式对象存储集群中的网络硬盘的数量,确定均分的数量;
根据确定的均分的数量,将所述待写入数据平均切分为所述数量个子数据。
可选的,所述将所述待写入数据平均切分为多个子数据,可以包括:
判断所述待写入数据是否能够被均分;
如果否,在所述待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;将添加补充位后的待写入数据平均切分为多个子数据。
可选的,所述方法还可以包括:
采用预设的数据保护算法对所述多个子数据进行运算,确定所述待写入数据的校验数据;
将所述校验数据写入对应的网络硬盘中;
将所述校验数据与所述待写入数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系发送给所述元数据服务器。
为达到上述目的,本发明实施例还公开了一种数据读方法,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述方法包括:
接收所述分布式对象存储集群中的客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;所述数据访问请求为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据读取请求后,向所述元数据服务器确定的存储服务器发送的;
根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;
将组合后的待访问数据发送给所述客户端。
可选的,所述数据访问请求中还携带有所述待访问数据的目标数据量信息;
所述将组合后的待访问数据发送给所述客户端,包括:
根据组合后的待访问数据的数据量与所述目标数据量的差值,判断所述组合后的待访问数据中是否存在补充位;
如果是,根据所述差值,从所述组合后的待访问数据的末尾开始,去除该差值对应的数据量;
将去除该差值对应的数据量后的待访问数据发送给所述客户端。
可选的,所述数据访问请求中还携带有校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系;
所述将组合后的待访问数据发送给所述客户端,包括:
根据所述校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的所述待访问数据的校验数据;
根据所述校验数据,判断组合后的待访问数据是否完整;
如果完整,将所述组合后的待访问数据发送给所述客户端;
如果不完整,利用所述校验数据生成所述待访问数据缺少的子数据,将生成的子数据与所述读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给所述客户端。
为达到上述目的,本发明实施例还公开了一种数据写装置,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述装置包括:
第一接收模块,用于接收所述分布式对象存储集群中的客户端发送的待写入数据;其中,所述待写入数据为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据写入请求后,向所述元数据服务器指定的存储服务器发送的;
切分模块,用于将所述待写入数据切分为多个子数据,并确定每个子数据的序号;
第一写入模块,用于将每个子数据写入对应的网络硬盘中;
第一发送模块,用于针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器。
可选的,所述切分模块,具体可以用于:
将所述待写入数据平均切分为多个子数据。
可选的,所述切分模块,可以包括:
确定子模块,用于根据所述分布式对象存储集群中的网络硬盘的数量,确定均分的数量;
第一切分子模块,用于根据确定的均分的数量,将所述待写入数据平均切分为所述数量个子数据。
可选的,所述切分模块,可以包括:
第一判断子模块,用于判断所述待写入数据是否能够被均分,如果否,触发添加子模块;
添加子模块,用于在所述待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;
第二切分子模块,用于将添加补充位后的待写入数据平均切分为多个子数据。
可选的,所述装置还可以包括:
运算模块,用于采用预设的数据保护算法对所述多个子数据进行运算,确定所述待写入数据的校验数据;
第二写入模块,用于将所述校验数据写入对应的网络硬盘中;
第二发送模块,用于将所述校验数据与所述待写入数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系发送给所述元数据服务器。
为达到上述目的,本发明实施例还公开了一种分布式对象存储集群,包括客户端、元数据服务器、网络硬盘和上述的存储服务器,其中,
所述客户端,用于向所述元数据服务器发送数据写入请求;以及向所述元数据服务器指定的存储服务器发送所述待写入数据;
所述元数据服务器,用于根据所述客户端发送的数据写入请求,指定接收所述客户端发送的待写入数据的存储服务器;
所述存储服务器,用于接收所述客户端发送的待写入数据;将所述待写入数据切分为多个子数据,并确定每个子数据的序号;将每个子数据写入对应的网络硬盘中;针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器;
所述网络硬盘,用于写入所述待写入数据的每个子数据。
为达到上述目的,本发明实施例还公开了一种数据读装置,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述装置包括:
第二接收模块,用于接收所述分布式对象存储集群中的客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;所述数据访问请求为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据读取请求后,向所述元数据服务器指定的存储服务器发送的;
组合模块,用于根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;
第三发送模块,用于将组合后的待访问数据发送给所述客户端。
可选的,所述数据访问请求中还携带有所述待访问数据的目标数据量信息;
所述第三发送模块,可以包括:
第二判断子模块,用于根据组合后的待访问数据的数据量与所述目标数据量的差值,判断所述组合后的待访问数据中是否存在补充位,如果是,触发去除子模块;
去除子模块,用于根据所述差值,从所述组合后的待访问数据的末尾开始去除该差值对应的数据量;
第一发送子模块,用于将去除该差值对应的数据量后的待访问数据发送给所述客户端。
可选的,所述数据访问请求中还携带有校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系;
所述第三发送模块,可以包括:
获取子模块,用于根据所述校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的所述待访问数据的校验数据;
第三判断子模块,用于根据所述校验数据,判断组合后的待访问数据是否完整,如果完整,触发所述第二发送子模块,如果不完整,触发第三发送子模块;
第二发送子模块,用于将所述组合后的待访问数据发送给所述客户端;
第三发送子模块,用于利用所述校验数据生成所述待访问数据缺少的子数据,将生成的子数据与所述读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给所述客户端。
为达到上述目的,本发明实施例还公开了一种分布式对象存储集群,客户端、元数据服务器、网络硬盘和上述的存储服务器,其中,
所述客户端,用于向所述元数据服务器发送数据读取请求;以及向所述元数据服务器确定的存储服务器发送数据访问请求;
所述元数据服务器,用于根据所述客户端发送的数据读取请求,确定接收所述客户端发送的数据访问请求的存储服务器;
所述存储服务器,用于接收所述客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给所述客户端;
所述网络硬盘,用于存储所述待访问数据的每个子数据。
由上述技术方案可见,存储服务器接收客户端发送的待写入数据,将该待写入数据切分为多个子数据;将每个子数据写入对应的网络硬盘中,针对每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器。应用本发明所示实施例,将待写入数据划分的每个子数据写入对应的网络硬盘中,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,将待写入数据划分的多个子数据对应写入多个网络硬盘中,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据写方法的流程示意图;
图2为本发明实施例提供的一种数据读方法的流程示意图;
图3为本发明实施例提供的一种数据写装置的结构示意图;
图4为本发明实施例提供的一种数据读装置的结构示意图;
图5为本发明实施例提供的一种分布式对象存储集群的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种数据写、读方法、装置及分布式对象存储集群。需要说明的是,本发明实施例所提供的数据写、读方法及装置优选适用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群还可以包括:客户端,元数据服务器和网络硬盘。
其中,网络硬盘的主要功能包括数据存储;存储服务器的主要功能包括数据缓存、数据保护算法的运算、在网络硬盘中写入、读取数据;元数据服务器的主要功能包括管理文件***的名称空间、控制客户端与存储服务器的交互,缓存和同步分布式元数据;客户端可以理解为需要写入或访问数据的用户。
图1为本发明实施例提供的一种数据写方法的流程示意图,包括:
S101:接收分布式对象存储集群中的客户端发送的待写入数据。
其中,该待写入数据为该客户端在向该分布式对象存储集群中的元数据服务器发送数据写入请求后,向该元数据服务器指定的存储服务器发送的。
在实际应用中,客户端发送待写入数据的过程可以包括:
1、客户端向元数据服务器发送数据写入请求,其中该数据写入请求中包括该待写入数据的标识信息。
具体的,该标识信息可以为待写入数据的名称、ID号等唯一标识该待写入数据的信息。
2、元数据服务器根据客户端发送的数据写入请求,确定存储服务器的地址信息,并将确定的存储服务器的地址信息发送给客户端(指定存储服务器的过程)。
具体的,地址信息可以为IP地址。元数据服务器可以根据存储服务器的资源利用率等信息指定存储服务器。
3、客户端根据元数据服务器确定的存储服务器的地址信息,向该地址信息对应的存储服务器发送待写入数据。
S102:将待写入数据切分为多个子数据,并确定每个子数据的序号。
假设待写入数据为S,将S切分为多个子数据,并确定每个子数据的序号。
在本发明所示实施例中,可以将该待写入数据平均切分为多个子数据。平均切分有利于平衡网络硬盘的存储资源,当然,也可以按照其他方式切分,在此不作限制。
在本发明所示实施例中,将该待写入数据平均切分为多个子数据,可以包括:
判断该待写入数据是否能够被均分;
如果是,则直接将该待写入数据平均切分为多个子数据;
如果否,在该待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;将添加补充位后的待写入数据平均切分为多个子数据。
具体的,将待写入数据为S平均切分为多个子数据,可以根据分布式对象存储集群中的网络硬盘的数量,确定均分的数量;根据确定的均分的数量,将该待写入数据平均切分为该数量个子数据。
假设分布式对象存储集群中包括4个网络硬盘,则可以为待写入数据为S平均切分为4个子数据。
首先,判断待写入数据为S是否能够被均分:如果是,直接将待写入数据为S平均切分为4个子数据;如果否,在待写入数据S的末尾添加补充位,使添加补充位后的待写入数据S能够被均分;将添加补充位后的待写入数据S平均切分为4个子数据。补充为可以为“0”或其他,在此不做限制。
假设确定每个子数据的序号分别为:S1、S2、S3、S4。
S103:将每个子数据写入对应的网络硬盘中。
假设将S1写入网络硬盘A1,S2写入网络硬盘A2,S3写入网络硬盘A3,S4写入网络硬盘A4。A1、A2、A3、A4分别为四个网络硬盘的标识信息。
S104:针对待写入数据的每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给该分布式对象存储集群中的元数据服务器。
将S1-A1、S2-A2、S3-A3、S4-A4的对应关系,发送给元数据服务器。
该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系属于待写入数据的元数据信息。元数据服务器中可以存储有数据的标识信息、元数据信息、存储服务器的地址信息的对应关系。
在实际应用中,经常会因为设备故障出现数据丢失的情况。针对这种情况,通常会采用一些数据保护算法,比如EC(Erasure Coding,纠删码)算法对原始数据进行运算,得到校验数据。利用这种方法,即使出现部分数据丢失的情况,也能根据校验数据补齐完整的原始数据。
在本发明所示的另一个实施例中,可以采用预设的数据保护算法对该多个子数据进行运算,确定该待写入数据的校验数据;将该校验数据写入对应的网络硬盘中;将该校验数据与该待写入数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系发送给该元数据服务器。
假设预设的数据保护算法为EC算法,采用EC算法对多个子数据进行运算,得到校验数据。需要说明的是,利用EC算法进行运算,需要保证子数据的数据量相等,也就是说,切分子数据时,需要平均切分。另外,切分的子数据的个数和得到的校验数据的个数是预先设定的,假设预先设定切分成5个子数据,得到2个校验数据。
将校验数据写入对应的网络硬盘中,也就是说,切分的子数据的个数与预先设定的校验数据的个数不能大于分布式对象存储集群中的网络硬盘的数量。
假设分布式对象存储集群中包括10个网络硬盘,将待写入数据S平均切分为5个子数据,2个校验数据为SX和SY,将SX写入网络硬盘A9,将SY写入网络硬盘A10。
将校验数据与待写入数据的对应关系,及校验数据与该校验数据写入的网络硬盘的标识信息的对应关系发送给元数据服务器。
将SX和SY与待写入数据S的对应关系和SX-A9、SY-A10发送给元数据服务器。
在实际应用中,元数据服务器中可以存储有Object信息表、Strip信息表、网络硬盘信息表。Object信息表中可以记录Object_key(即数据的标识信息)和Object数据写入的strip_id(strip_id表示子数据的序号)。Strip信息表中可以记录strip_id及其对应的网络硬盘wwn(即子数据的序号与网络硬盘的标识信息的对应关系,网络硬盘wwn表示网络硬盘的标识信息)和unit_key(根据unit_key读取网络硬盘中的指定数据)。网络硬盘信息表中可以记录网络硬盘wwn及其网络硬盘的地址。另外,元数据服务器中还可以获取存储服务器的地址信息。
Object信息表格式可以如表1所示:
表1
字段 | Key | 备注 |
object_key | 表示一个数据的标识信息 | |
strip_id集合 | 记录该数据切分的子数据的序号 | |
object_size | 表示该数据的大小 |
Strip信息表格式可以如表2所示:
表2
网络硬盘信息表格式可以如表3所示:
表3
字段 | Key | 备注 |
wwn | 表示网络硬盘的标识信息 | |
IP | 网络硬盘的地址信息 |
需要说明的是,上述Object信息表、Strip信息表、网络硬盘信息表的格式仅对元数据服务器中存储的部分内容进行示例性描述,并不构成对本发明的限定。
在本发明提供的方案中,使用了网络硬盘。在网络硬盘中存储数据的特点是:存储的数据占用的空间就是数据本身的大小,例如100KB的数据,占用网络硬盘的空间就是100KB。因此,避免了资源的浪费。
应用本发明图1所示实施例,存储服务器接收客户端发送的待写入数据,将该待写入数据切分为多个子数据;将每个子数据写入对应的网络硬盘中,针对每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给该分布式对象存储集群中的元数据服务器。应用本发明所示实施例,将待写入数据划分的每个子数据写入对应的网络硬盘中,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,将待写入数据划分的多个子数据对应写入多个网络硬盘中,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
图2为为本发明实施例提供的一种数据读方法的流程示意图,包括:
S201:接收分布式对象存储集群中的客户端发送的数据访问请求。
其中,该数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;该数据访问请求为该客户端在向该分布式对象存储集群中的元数据服务器发送数据读取请求后,向该元数据服务器确定的存储服务器发送的。
在实际应用中,客户端发送数据访问请求的过程可以包括:
1、客户端向元数据服务器发送数据读取请求,其中该数据读取请求中包括待访问数据的标识信息。
具体的,该标识信息可以为待访问数据的名称、ID号等唯一标识该待访问数据的信息。
2、元数据服务器根据客户端发送的数据读取请求中的待访问数据的标识信息,查找待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息,并将待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息发送给客户端(确定存储服务器的过程)。
具体的,元数据服务器中存储有数据的标识信息、元数据信息、存储服务器的地址信息的对应关系。其中,元数据信息可以包括待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,其中,该网络硬盘为该子数据写入的网络硬盘。
3、客户端根据元数据服务器返回的待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息,向待访问数据对应的存储服务器发送数据访问请求。
具体的,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系。假设待访问数据为S,S的元数据信息包括S1-A1、S2-A2、S3-A3、S4-A4的对应关系,其中,S1、S2、S3、S4为每个子数据的序号,A1、A2、A3、A4分别为四个网络硬盘的标识信息。
S202:根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据。
根据S1-A1、S2-A2、S3-A3、S4-A4的对应关系,依次在A1、A2、A3、A4四个网络硬盘中读取每个子数据,并将读取的子数据S1、S2、S3、S4组合为待访问数据。
S203:将组合后的待访问数据发送给客户端。
作为本发明的一种实施方式,数据访问请求中还可以携带有待访问数据的目标数据量信息,这种情况下,S203可以包括:根据组合后的待访问数据的数据量与该目标数据量的差值,判断该组合后的待访问数据中是否存在补充位;如果是,根据该差值,从该组合后的待访问数据的末尾开始,去除该差值对应的数据量;将去除该差值对应的数据量后的待访问数据发送给该客户端。
假设待访问数据S的目标数据量信息为398KB。将读取的子数据S1、S2、S3、S4组合为待访问数据后,计算组合后的待访问数据的数据量与目标数据量的差值。
如果在写入数据S的过程中,为了能够平均切分数据S,而在数据S的末尾添加了补充位,则组合后的待访问数据的数据量与S的目标数据量的差值不为0。因此,可以根据组合后的待访问数据的数据量与该目标数据量的差值,判断该组合后的待访问数据中是否存在补充位。当组合后的待访问数据中存在补充位时,根据该差值,从组合后的待访问数据的末尾开始,去除该差值对应的数据量,将去除该差值对应的数据量后的待访问数据发送给客户端。
假设在写入数据S的过程中,在数据S的末尾添加了2KB的数据量,组合后的待访问数据的数据量为400KB,则组合后的待访问数据的数据量与目标数据量的差值为2KB。根据该差值,从数据S的末尾开始去除2KB的数据量。将去除了2KB数据量的数据S发送给客户端。
作为本发明的一种实施方式,当待访问数据存在对应的校验数据时,数据访问请求中还可以携带有校验数据与待访问数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系。
这种情况下,S203可以包括:根据该校验数据与该待访问数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的该待访问数据的校验数据;根据该校验数据,判断组合后的待访问数据是否完整;如果完整,将该组合后的待访问数据发送给该客户端;如果不完整,利用该校验数据生成该待访问数据缺少的子数据,将生成的子数据与该读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给该客户端。
假设待访问数据S存在2个校验数据SX和SY,元数据服务器中存储有SX和SY与待写入数据S的对应关系和SX-A9、SY-A10,A9为校验数据SX写入的网络硬盘的标识信息,A10为校验数据SY写入的网络硬盘的标识信息。
根据校验数据与待访问数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系,即,SX和SY与待写入数据S的对应关系和SX-A9、SY-A10,获取网络硬盘中保存的待访问数据S的校验数据SX和SY。
根据校验数据SX和SY,判断组合后的待访问数据是否完整。具体的,可以利用EC算法、循环校验码等技术校验数据校验原始数据是否完整。
如果完整,将组合后的待访问数据发送给客户端;如果不完整,利用校验数据SX和SY生成缺少的子数据,将生成的子数据与从网络硬盘中读取的子数据组合为完整的待访问数据S,将完整的待访问数据S发送给客户端。
应用本发明图2所示实施例,存储服务器接收客户端发送的数据访问请求,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给客户端。应用本发明所示实施例,存储服务器根据客户端的数据访问请求,从网络硬盘中读取待访问数据的每个子数据,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,应用网络硬盘存储数据,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
与上述的方法实施例相对应,本发明实施例还提供一种数据写、读装置。
图3为本发明实施例提供的一种数据写装置的结构示意图,包括:
第一接收模块301,用于接收该分布式对象存储集群中的客户端发送的待写入数据;其中,该待写入数据为该客户端在向该分布式对象存储集群中的元数据服务器发送数据写入请求后,向该元数据服务器指定的存储服务器发送的;
切分模块302,用于将该待写入数据切分为多个子数据,并确定每个子数据的序号;
在本发明所示实施例中,切分模块302,具体可以用于将该待写入数据平均切分为多个子数据。
在本发明所示实施例中,切分模块302,可以包括:确定子模块和第一切分子模块(图中未示出),其中,
确定子模块,用于根据该分布式对象存储集群中的网络硬盘的数量,确定均分的数量;
第一切分子模块,用于根据确定的均分的数量,将该待写入数据平均切分为该数量个子数据。
在本发明所示实施例中,切分模块302,可以包括:第一判断子模块、添加子模块和第二切分子模块(图中未示出),其中,
第一判断子模块,用于判断该待写入数据是否能够被均分,如果否,触发添加子模块,如果是,触发第一切分子模块;
添加子模块,用于在该待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;
第二切分子模块,用于将添加补充位后的待写入数据平均切分为多个子数据。
第一写入模块303,用于将每个子数据写入对应的网络硬盘中;
第一发送模块304,用于针对该待写入数据的每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给该分布式对象存储集群中的元数据服务器。
在本发明所示实施例中,还可以包括:运算模块、第二写入模块和第二发送模块(图中未示出),其中,
运算模块,用于采用预设的数据保护算法对该多个子数据进行运算,确定该待写入数据的校验数据;
第二写入模块,用于将该校验数据写入对应的网络硬盘中;
第二发送模块,用于将该校验数据与该待写入数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系发送给该元数据服务器。
应用本发明图3所示实施例,存储服务器接收客户端发送的待写入数据,将该待写入数据切分为多个子数据;将每个子数据写入对应的网络硬盘中,针对每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给该分布式对象存储集群中的元数据服务器。应用本发明所示实施例,将待写入数据划分的每个子数据写入对应的网络硬盘中,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,将待写入数据划分的多个子数据对应写入多个网络硬盘中,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
图4为本发明实施例提供的一种数据读装置的结构示意图,包括:
第二接收模块401,用于接收该分布式对象存储集群中的客户端发送的数据访问请求;其中,该数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;该数据访问请求为该客户端在向该分布式对象存储集群中的元数据服务器发送数据读取请求后,向该元数据服务器指定的存储服务器发送的;
组合模块402,用于根据该待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;
第三发送模块403,用于将组合后的待访问数据发送给该客户端。
在本发明所示实施例中,该数据访问请求中还携带有该待访问数据的目标数据量信息;第三发送模块403,可以包括:第二判断子模块、去除子模块和第一发送子模块(图中未示出),其中,
第二判断子模块,用于根据组合后的待访问数据的数据量与该目标数据量的差值,判断该组合后的待访问数据中是否存在补充位,如果是,触发去除子模块;
去除子模块,用于根据该差值,从该组合后的待访问数据的末尾开始去除该差值对应的数据量;
第一发送子模块,用于将去除该差值对应的数据量后的待访问数据发送给该客户端。
在本发明所示实施例中,该数据访问请求中还携带有校验数据与该待访问数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系;第三发送模块403,可以包括:获取子模块、第三判断子模块、第二发送子模块和第三发送子模块(图中未示出),其中,
获取子模块,用于根据该校验数据与该待访问数据的对应关系,及该校验数据与该校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的该待访问数据的校验数据;
第三判断子模块,用于根据该校验数据,判断组合后的待访问数据是否完整,如果完整,触发第二发送子模块,如果不完整,触发第三发送子模块;
第二发送子模块,用于将该组合后的待访问数据发送给该客户端;
第三发送子模块,用于利用该校验数据生成该待访问数据缺少的子数据,将生成的子数据与该读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给该客户端。
应用本发明图4所示实施例,存储服务器接收客户端发送的数据访问请求,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给客户端。应用本发明所示实施例,存储服务器根据客户端的数据访问请求,从网络硬盘中读取待访问数据的每个子数据,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,应用网络硬盘存储数据,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
图5为本发明实施例提供的一种分布式对象存储集群的结构示意图,分布式对象存储集群包括:存储服务器、客户端、元数据服务器和N个网络硬盘(网络硬盘1、网络硬盘2……网络硬盘N)。
在本发明的一个实施例中,该客户端,用于向元数据服务器发送数据写入请求;以及向该元数据服务器指定的存储服务器发送该待写入数据;
该元数据服务器,用于根据客户端发送的数据写入请求,指定接收该客户端发送的待写入数据的存储服务器;
该存储服务器,用于接收客户端发送的待写入数据;将待写入数据切分为多个子数据,并确定每个子数据的序号;将每个子数据写入对应的网络硬盘中;针对待写入数据的每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给元数据服务器;
该网络硬盘,用于写入待写入数据的每个子数据。
在上述实施例中的数据写方法的流程包括:
1、客户端向元数据服务器发送数据写入请求。其中该数据写入请求中包括该待写入数据的标识信息。
2、元数据服务器根据客户端发送的数据写入请求,指定接收客户端发送的待写入数据的存储服务器。
具体过程可以包括:元数据服务器根据客户端发送的数据写入请求,确定存储服务器的地址信息,并将确定的存储服务器的地址信息发送给客户端。
3、客户端向元数据服务器指定的存储服务器发送待写入数据。
具体过程可以包括:客户端根据元数据服务器确定的存储服务器的地址信息,向该地址信息对应的存储服务器发送待写入数据。
4、存储服务器接收客户端发送的待写入数据;将待写入数据切分为多个子数据,并确定每个子数据的序号;将每个子数据写入对应的网络硬盘中;针对待写入数据的每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给元数据服务器。
应用上述实施例,存储服务器接收客户端发送的待写入数据,将该待写入数据切分为多个子数据;将每个子数据写入对应的网络硬盘中,针对每个子数据,将该子数据的序号与该子数据写入的网络硬盘的标识信息的对应关系发送给该分布式对象存储集群中的元数据服务器。应用本发明所示实施例,将待写入数据划分的每个子数据写入对应的网络硬盘中,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,将待写入数据划分的多个子数据对应写入多个网络硬盘中,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
在本发明的另一个实施例中,在图5提供的分布式对象存储集群中,该客户端,用于向元数据服务器发送数据读取请求;以及向该元数据服务器确定的存储服务器发送数据访问请求;
该元数据服务器,用于根据该客户端发送的数据读取请求,确定接收该客户端发送的数据访问请求的存储服务器;
该存储服务器,用于接收客户端发送的数据访问请求;其中,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给客户端;
该网络硬盘,用于存储该待访问数据的每个子数据。
在上述实施例中的数据读方法的流程包括:
1、客户端向元数据服务器发送数据读取请求。其中该数据读取请求中包括待访问数据的标识信息。
2、元数据服务器根据客户端发送的数据读取请求,确定接收客户端发送的数据访问请求的存储服务器。
具体过程可以包括:元数据服务器根据客户端发送的数据读取请求中的待访问数据的标识信息,查找待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息,并将待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息发送给客户端。其中,元数据信息包括待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系。
3、客户端向元数据服务器确定的存储服务器发送数据访问请求。
具体过程可以包括:客户端根据元数据服务器返回的待访问数据的元数据信息和待访问数据对应的存储服务器的地址信息,向待访问数据对应的存储服务器发送数据访问请求。
4、存储服务器接收客户端发送的数据访问请求;其中,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给客户端。
应用上述实施例,存储服务器接收客户端发送的数据访问请求,数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给客户端。应用本发明所示实施例,存储服务器根据客户端的数据访问请求,从网络硬盘中读取待访问数据的每个子数据,网络硬盘的存储特性为,存储数据占用的空间与数据本身的大小相同,因此,应用网络硬盘存储数据,不占用多余的空间,避免了资源浪费,也无需等待与其他数据合并,提高了读写数据的效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种数据写方法,其特征在于,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述方法包括:
接收所述分布式对象存储集群中的客户端发送的待写入数据;其中,所述待写入数据为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据写入请求后,向所述元数据服务器指定的存储服务器发送的;
将所述待写入数据切分为多个子数据,并确定每个子数据的序号;
将每个子数据写入对应的网络硬盘中;
针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器;
所述方法还包括:
采用预设的数据保护算法对所述多个子数据进行运算,确定所述待写入数据的校验数据;
将所述校验数据写入对应的网络硬盘中;
将所述校验数据与所述待写入数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系发送给所述元数据服务器。
2.根据权利要求1所述的方法,其特征在于,所述将所述待写入数据切分为多个子数据,包括:
将所述待写入数据平均切分为多个子数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述待写入数据平均切分为多个子数据,包括:
根据所述分布式对象存储集群中的网络硬盘的数量,确定均分的数量;
根据确定的均分的数量,将所述待写入数据平均切分为所述数量的子数据。
4.根据权利要求2所述的方法,其特征在于,所述将所述待写入数据平均切分为多个子数据,包括:
判断所述待写入数据是否能够被均分;
如果否,在所述待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;将添加补充位后的待写入数据平均切分为多个子数据。
5.一种数据读方法,其特征在于,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述方法包括:
接收所述分布式对象存储集群中的客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;所述数据访问请求为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据读取请求后,向所述元数据服务器确定的存储服务器发送的;
根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;
将组合后的待访问数据发送给所述客户端;
所述数据访问请求中还携带有校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系;
所述将组合后的待访问数据发送给所述客户端,包括:
根据所述校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的所述待访问数据的校验数据;
根据所述校验数据,判断组合后的待访问数据是否完整;
如果完整,将所述组合后的待访问数据发送给所述客户端;
如果不完整,利用所述校验数据生成所述待访问数据缺少的子数据,将生成的子数据与所述读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述数据访问请求中还携带有所述待访问数据的目标数据量信息;
所述将组合后的待访问数据发送给所述客户端,包括:
根据组合后的待访问数据的数据量与所述目标数据量的差值,判断所述组合后的待访问数据中是否存在补充位;
如果是,根据所述差值,从所述组合后的待访问数据的末尾开始,去除该差值对应的数据量;
将去除该差值对应的数据量后的待访问数据发送给所述客户端。
7.一种数据写装置,其特征在于,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述装置包括:
第一接收模块,用于接收所述分布式对象存储集群中的客户端发送的待写入数据;其中,所述待写入数据为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据写入请求后,向所述元数据服务器指定的存储服务器发送的;
切分模块,用于将所述待写入数据切分为多个子数据,并确定每个子数据的序号;
第一写入模块,用于将每个子数据写入对应的网络硬盘中;
第一发送模块,用于针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述分布式对象存储集群中的元数据服务器;
所述装置还包括:
运算模块,用于采用预设的数据保护算法对所述多个子数据进行运算,确定所述待写入数据的校验数据;
第二写入模块,用于将所述校验数据写入对应的网络硬盘中;
第二发送模块,用于将所述校验数据与所述待写入数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系发送给所述元数据服务器。
8.根据权利要求7所述的装置,其特征在于,所述切分模块,具体用于:
将所述待写入数据平均切分为多个子数据。
9.根据权利要求8所述的装置,其特征在于,所述切分模块,包括:
确定子模块,用于根据所述分布式对象存储集群中的网络硬盘的数量,确定均分的数量;
第一切分子模块,用于根据确定的均分的数量,将所述待写入数据平均切分为所述数量的子数据。
10.根据权利要求8所述的装置,其特征在于,所述切分模块,包括:
第一判断子模块,用于判断所述待写入数据是否能够被均分,如果否,触发添加子模块;
添加子模块,用于在所述待写入数据的末尾添加补充位,使添加补充位后的待写入数据能够被均分;
第二切分子模块,用于将添加补充位后的待写入数据平均切分为多个子数据。
11.一种分布式对象存储集群,其特征在于,包括客户端、元数据服务器、网络硬盘和权利要求7-10任意一项所述的存储服务器,其中,
所述客户端,用于向所述元数据服务器发送数据写入请求;以及向所述元数据服务器指定的存储服务器发送所述待写入数据;
所述元数据服务器,用于根据所述客户端发送的数据写入请求,指定接收所述客户端发送的待写入数据的存储服务器;
所述存储服务器,用于接收所述客户端发送的待写入数据;将所述待写入数据切分为多个子数据,并确定每个子数据的序号;将每个子数据写入对应的网络硬盘中;针对所述待写入数据的每个子数据,将所述子数据的序号与所述子数据写入的网络硬盘的标识信息的对应关系发送给所述元数据服务器;
所述网络硬盘,用于写入所述待写入数据的每个子数据。
12.一种数据读装置,其特征在于,应用于分布式对象存储集群中的存储服务器,所述分布式对象存储集群中至少还包括网络硬盘,所述装置包括:
第二接收模块,用于接收所述分布式对象存储集群中的客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;所述数据访问请求为所述客户端在向所述分布式对象存储集群中的元数据服务器发送数据读取请求后,向所述元数据服务器指定的存储服务器发送的;
组合模块,用于根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;
第三发送模块,用于将组合后的待访问数据发送给所述客户端;
所述数据访问请求中还携带有校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系;
所述第三发送模块,包括:
获取子模块,用于根据所述校验数据与所述待访问数据的对应关系,及所述校验数据与所述校验数据写入的网络硬盘的标识信息的对应关系,获取网络硬盘中保存的所述待访问数据的校验数据;
第三判断子模块,用于根据所述校验数据,判断组合后的待访问数据是否完整,如果完整,触发第二发送子模块,如果不完整,触发第三发送子模块;
第二发送子模块,用于将所述组合后的待访问数据发送给所述客户端;
第三发送子模块,用于利用所述校验数据生成所述待访问数据缺少的子数据,将生成的子数据与所述读取的子数据组合为完整的待访问数据,将完整的待访问数据发送给所述客户端。
13.根据权利要求12所述的装置,其特征在于,所述数据访问请求中还携带有所述待访问数据的目标数据量信息;
所述第三发送模块,包括:
第二判断子模块,用于根据组合后的待访问数据的数据量与所述目标数据量的差值,判断所述组合后的待访问数据中是否存在补充位,如果是,触发去除子模块;
去除子模块,用于根据所述差值,从所述组合后的待访问数据的末尾开始去除该差值对应的数据量;
第一发送子模块,用于将去除该差值对应的数据量后的待访问数据发送给所述客户端。
14.一种分布式对象存储集群,其特征在于,包括客户端、元数据服务器、网络硬盘和权利要求12-13任意一项所述的存储服务器,其中,
所述客户端,用于向所述元数据服务器发送数据读取请求;以及向所述元数据服务器确定的存储服务器发送数据访问请求;
所述元数据服务器,用于根据所述客户端发送的数据读取请求,确定接收所述客户端发送的数据访问请求的存储服务器;
所述存储服务器,用于接收所述客户端发送的数据访问请求;其中,所述数据访问请求中携带有待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系;根据所述待访问数据的每个子数据的序号与网络硬盘的标识信息的对应关系,在对应存储了子数据的每个网络硬盘中读取子数据,并将读取的子数据组合为待访问数据;将组合后的待访问数据发送给所述客户端;
所述网络硬盘,用于存储所述待访问数据的每个子数据。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610351615.8A CN107436725B (zh) | 2016-05-25 | 2016-05-25 | 一种数据写、读方法、装置及分布式对象存储集群 |
EP16902961.8A EP3467635A4 (en) | 2016-05-25 | 2016-11-09 | METHOD AND APPARATUS FOR WRITING AND READING DATA, AND DISTRIBUTED OBJECT STORAGE CLUSTER |
PCT/CN2016/105175 WO2017201977A1 (zh) | 2016-05-25 | 2016-11-09 | 一种数据写、读方法、装置及分布式对象存储集群 |
US16/304,471 US11216187B2 (en) | 2016-05-25 | 2016-11-09 | Data writing and reading method and apparatus, and distributed object storage cluster |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610351615.8A CN107436725B (zh) | 2016-05-25 | 2016-05-25 | 一种数据写、读方法、装置及分布式对象存储集群 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107436725A CN107436725A (zh) | 2017-12-05 |
CN107436725B true CN107436725B (zh) | 2019-12-20 |
Family
ID=60411032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610351615.8A Active CN107436725B (zh) | 2016-05-25 | 2016-05-25 | 一种数据写、读方法、装置及分布式对象存储集群 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11216187B2 (zh) |
EP (1) | EP3467635A4 (zh) |
CN (1) | CN107436725B (zh) |
WO (1) | WO2017201977A1 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110244903B (zh) * | 2018-03-09 | 2021-08-13 | 杭州海康威视***技术有限公司 | 一种数据存储方法及装置 |
CN110209341B (zh) * | 2018-03-23 | 2022-02-01 | 腾讯科技(深圳)有限公司 | 一种数据写入方法、装置和存储设备 |
CN108646981B (zh) * | 2018-04-28 | 2021-09-03 | 深圳市茁壮网络股份有限公司 | 一种数据缓存节点管理方法、数据缓存方法和缓存管理节点 |
CN108710702A (zh) * | 2018-05-25 | 2018-10-26 | 吴卓航 | 一种基于分片重组技术实现数据安全存储的方法 |
CN109085999B (zh) * | 2018-06-15 | 2022-04-22 | 华为技术有限公司 | 数据处理方法及处理*** |
CN109508143B (zh) * | 2018-08-17 | 2022-04-22 | 郑州云海信息技术有限公司 | 一种数据存储方法及装置 |
CN109359144A (zh) * | 2018-08-24 | 2019-02-19 | 中国建设银行股份有限公司 | 数据存储方法及***、装置和存储介质 |
CN109286624B (zh) * | 2018-09-27 | 2021-05-18 | 北京锐安科技有限公司 | 一种通讯方法、装置、终端与存储介质 |
WO2020132849A1 (zh) * | 2018-12-25 | 2020-07-02 | 华为技术有限公司 | 分布式存储***中数据存储方法、装置及计算机程序产品 |
CN110245129B (zh) * | 2019-04-23 | 2022-05-13 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
CN110290171A (zh) * | 2019-05-15 | 2019-09-27 | 陈菡 | 一种数据管理方法及装置、电子设备 |
CN110602159A (zh) * | 2019-07-30 | 2019-12-20 | 广州力挚网络科技有限公司 | 一种数据处理方法与*** |
CN111045598B (zh) * | 2019-10-10 | 2023-08-15 | 深圳市金泰克半导体有限公司 | 数据存储方法、装置 |
CN110730185A (zh) * | 2019-10-22 | 2020-01-24 | 张瑞 | 一种基于分布式计算的区块链大数据处理方法及*** |
CN111026709B (zh) * | 2019-12-10 | 2024-03-12 | 中盈优创资讯科技有限公司 | 基于集群访问的数据处理方法及装置 |
WO2021189311A1 (en) * | 2020-03-25 | 2021-09-30 | Beijing Didi Infinity Technology And Development Co., Ltd. | Read operation in object storage system using enhanced meta structure |
CN112130999B (zh) * | 2020-09-23 | 2024-02-13 | 南方电网科学研究院有限责任公司 | 一种基于边缘计算的电力异构数据处理方法 |
CN112596952B (zh) * | 2020-12-25 | 2022-07-12 | 苏州浪潮智能科技有限公司 | 一种集群数据处理方法、***、设备以及介质 |
CN112711382B (zh) * | 2020-12-31 | 2024-04-26 | 百果园技术(新加坡)有限公司 | 基于分布式***的数据存储方法、装置和存储节点 |
CN113126920A (zh) * | 2021-04-02 | 2021-07-16 | 深圳市杉岩数据技术有限公司 | 对象存储批量读取及写入方法、客户端、存储网关及介质 |
CN113238716A (zh) * | 2021-06-08 | 2021-08-10 | 北京金山云网络技术有限公司 | 数据访问请求的处理方法、装置和电子设备 |
CN114936010B (zh) * | 2022-07-20 | 2022-12-27 | 阿里巴巴(中国)有限公司 | 数据处理方法、装置、设备及介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233455A1 (en) * | 2002-06-14 | 2003-12-18 | Mike Leber | Distributed file sharing system |
CN100579016C (zh) * | 2006-01-24 | 2010-01-06 | 华为技术有限公司 | 一种网络数据的分布式存储下载***、设备及方法 |
CN101504670A (zh) * | 2009-03-04 | 2009-08-12 | 成都市华为赛门铁克科技有限公司 | 数据操作方法、***、客户端和数据服务器 |
US8819208B2 (en) * | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
US8281182B2 (en) * | 2010-03-12 | 2012-10-02 | Cleversafe, Inc. | Dispersed storage unit selection |
CN102004797A (zh) * | 2010-12-24 | 2011-04-06 | 深圳市同洲电子股份有限公司 | 一种数据处理方法、装置和*** |
US9069471B2 (en) | 2011-09-30 | 2015-06-30 | Hitachi, Ltd. | Passing hint of page allocation of thin provisioning with multiple virtual volumes fit to parallel data access |
CN103942112B (zh) * | 2013-01-22 | 2018-06-15 | 深圳市腾讯计算机***有限公司 | 磁盘容错方法、装置及*** |
CN103608784B (zh) * | 2013-06-26 | 2015-06-10 | 华为技术有限公司 | 网络卷创建方法、数据存储方法、存储设备和存储*** |
CN103955528B (zh) | 2014-05-09 | 2015-09-23 | 北京华信安天信息科技有限公司 | 写入文件数据的方法、读取文件数据的方法以及装置 |
SG11201701440SA (en) | 2014-10-03 | 2017-04-27 | Agency Science Tech & Res | Distributed active hybrid storage system |
CN105260136B (zh) | 2015-09-24 | 2019-04-05 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储*** |
CN105242881B (zh) * | 2015-10-12 | 2018-02-16 | 创新科软件技术(深圳)有限公司 | 分布式存储***及其数据读写方法 |
CN105468300B (zh) * | 2015-11-20 | 2018-08-14 | 华为技术有限公司 | Ip硬盘的管理方法和装置 |
-
2016
- 2016-05-25 CN CN201610351615.8A patent/CN107436725B/zh active Active
- 2016-11-09 WO PCT/CN2016/105175 patent/WO2017201977A1/zh unknown
- 2016-11-09 US US16/304,471 patent/US11216187B2/en active Active
- 2016-11-09 EP EP16902961.8A patent/EP3467635A4/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US11216187B2 (en) | 2022-01-04 |
EP3467635A4 (en) | 2019-04-24 |
WO2017201977A1 (zh) | 2017-11-30 |
EP3467635A1 (en) | 2019-04-10 |
CN107436725A (zh) | 2017-12-05 |
US20190146681A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107436725B (zh) | 一种数据写、读方法、装置及分布式对象存储集群 | |
US11799959B2 (en) | Data processing method, apparatus, and system | |
US8239621B2 (en) | Distributed data storage system, data distribution method, and apparatus and program to be used for the same | |
US11003625B2 (en) | Method and apparatus for operating on file | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
CN102708165B (zh) | 分布式文件***中的文件处理方法及装置 | |
US20130018855A1 (en) | Data deduplication | |
KR102187127B1 (ko) | 데이터 연관정보를 이용한 중복제거 방법 및 시스템 | |
CN110908589B (zh) | 数据文件的处理方法、装置、***和存储介质 | |
CN110780819A (zh) | 一种分布式存储***的数据读写方法 | |
CN106980680B (zh) | 数据存储方法及存储设备 | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107153512B (zh) | 一种数据迁移方法和装置 | |
CN107506466B (zh) | 一种小文件存储方法及*** | |
CN104965835A (zh) | 一种分布式文件***的文件读写方法及装置 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
CN107844483B (zh) | 文件管理方法及装置 | |
TWI420333B (zh) | 分散式的重複數據刪除系統及其處理方法 | |
US20130218851A1 (en) | Storage system, data management device, method and program | |
CN109241011B (zh) | 一种虚拟机文件处理方法及装置 | |
CN107168645B (zh) | 一种分布式***的存储控制方法及*** | |
CN107066206B (zh) | 一种分布式物理磁盘的存储控制方法及*** | |
CN111125011A (zh) | 一种文件处理方法、***及相关设备 | |
US10318159B1 (en) | Method and system for physical locality repair in a storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |