应用于分布式存储系统中的数据存储方法和系统的制作方法

文档序号:7864884阅读:178来源:国知局
专利名称:应用于分布式存储系统中的数据存储方法和系统的制作方法
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据存储方法和系统。
背景技术
存储系统是指计算机中由存放程序和数据的各种存储设备、控制部件及管理信息调度的设备(硬件)和算法(软件)所组成的系统,随着大规模数据存储的应用需要,分布式存储系统,即将数据分散存储在多台独立的服务器中,由于可以利用多台服务器分担存储负荷,在一定程度上提高系统的可靠性以及存储效率,因此成为数据存储的主要发展方式。但是随着高性能计算中心、数据中心以及云存储服务中心等系统中存储系统规模越来越大,包含的服务器数量越来越多,可靠性仍然是分布式存储系统所面临的重要问题之一 O现有技术中一种提高分布式存储系统的可靠性方法是采用廉价冗余磁盘阵列方式,使用冗余备份特性来保证。即将多个磁盘按不同的组合方式组合成为一个大硬盘,从而提供比单个硬盘更高的存储性能。但是由于分布式存储系统可靠性不仅取决于磁盘阵列的可靠性,还涉及到存储服务器、存储网络等的稳定性问题,且大规模的分布式存储系统往往综合使用多种类型的存储方式进行存储,因此仍旧存在数据损坏、数据难以扩展、数据恢复缓慢、操作性差等可靠性问题。总之,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够创新的提出一种有效的数据存储方法,以解决现有技术中分布式存储系统的可靠性低问题。

发明内容
本申请所要解决的技术问题是提供一种应用于分布式存储系统的数据存储方法,用以解决现有技术中数据存储可靠性低的技术问题。本申请还提供了一种应用于分布式存储系统的数据存储系统,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本申请公开了一种应用于分布式存储系统的数据存储方法,包括确定待存储数据的数据类别;查找所述待存储数据的数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息;依据所述副本数目,生成所述待存储数据的数据副本;将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。优选地,所述待存储数据具体为待存储文件,则所述确定待存储数据的数据类别包括获取待存储文件的文件名后缀;依据所述文件名后缀,确定所述待存储文件的数据类别。
优选地,所述将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中包括调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中。优选地,所述调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中包括确定所述分布式存储系统的文件系统类型;查找保存的所述文件系统类型对应的配置接口函数;通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。优选地,所述将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中包括确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统;查找不同的文件系统的类型分别对应的配置接口函数;通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息对应的存储节点中。优选地,所述将所述数据副本分别存储到不同的存储位置信息对应的存储节点中后,所述方法还包括当接收到数据访问请求时,依据所述数据访问请求确定请求访问的目标数据类别;查找所述目标数据类别对应的目标存储规则;依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的目标存储节点;按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。优选地,所述处理所述每一存储节点中的目标数据副本包括判断所述每一存储节点是否为有效存储节点,获得第一判断结果;根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。优选地,所述操作类型具体为数据更新操作,则处理所述存储节点中的有效存储节点中的目标数据副本后,所述方法还包括判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果;根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。为了解决上述问题,本申请还公开了一种应用于分布式存储系统中的数据存储系统,包括数据类别确定模块,用于确定待存储数据的数据类别;规则查找模块,用于查找所述待存储数据的数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息;副本生成模块,用于依据所述副本数目,生成所述待存储数据的数据副本;数据存储模块,用于将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。优选地,所述数据类别确定模块包括
获取模块,用于获取待存储文件的文件名后缀;类别确定子模块,用于依据所述文件名后缀,确定所述待存储文件的数据类别。优选地,所述数据存储模块具体用于调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。优选地,所述数据存储模包括系统类型确定模块,用于确定所述分布式存储系统的文件系统类型;第一函数查找模块,用于查找保存的所述文件系统类型对应的配置接口函数;第一存储子模块,用于通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。优选地,所述数据存储模块包括节点确定模块,用于确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统;第二函数查找模块,用于查找不同的文件系统的类型分别对应的配置接口函数;第二存储子模块,用于通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息对应的存储节点中。优选地,所述系统还包括数据请求模块,用于接收数据访问请求,依据所述数据访问请求确定请求访问的目标数据类别;目标规则查找模块,用于查找所述目标数据类别对应的目标存储规则;目标节点确定模块,依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点;处理模块,用于按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。优选地,所述处理模块包括第一判断模块,用于判断所述每一存储节点是否为有效存储节点,获得第一判断结果;处理子模块,用于根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。优选地,所述操作类型具体为数据更新操作,所述系统还包括第二判断模块,用于判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果;节点效果确定模块,用于根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。优选地,所述系统还包括
用户接口模块,用于接收用户的预设的存储规则更新请求,更新所述预设的存储规则,并保存更新后的预设的存储规则。与现有技术相比,本申请包括以下优点在本申请中,首先确定待存储数据的数据类别,并查找该数据类别对应的预设的存储规则,根据预设的存储规则中的副本数据生成该待存储数据的多个数据副本,并将数据副本分别存储到该预设的存储规则中的存储位置信息对应的存储节点中,通过对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。


为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本申请的一种应用于分布式存储系统的数据存储方法实施例I的流程图;图2是本申请的一种应用于分布式存储系统的数据存储方法实施例2的流程图;图3是本申请的一种应用于分布式存储系统的数据存储方法实施例3的流程图;图4是本申请的一种应用于分布式存储系统的数据存储系统实施例4的结构示意图;图5是本申请的一种应用于分布式存储系统的数据存储系统实施例5的结构示意图;图6是本申请的一种应用于分布式存储系统的数据存储系统实施例6的结构示意图。
具体实施例方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请可用于众多通用或专用的计算装置环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请的主要思想之一可以包括,首先确定待存储数据的数据类别,并查找该数据类别对应的预设的存储规则,根据预设的存储规则中的副本数据生成该待存储数据的多个数据副本,并将数据副本分别存储到该预设的存储规则中的存储位置信息对应的存储节点中,通过对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。参考图1,示出了本申请一种应用于分布式存储系统的数据存储方法实施例I的流程图,可以包括以下步骤步骤101 :确定待存储数据的数据类别。分布式存储系统是一种集群存储系统,可以将数据分散存储到不同的存储服务器中,通过文件系统对数据进行管理,文件系统是指用于管理磁盘或分区上的文件的方法和 数据结构。其中,该待存储数据可以是指元数据或者文件数据。文件数据和元数据是文件系统所管理的两种存储数据形式,文件数据包括目录数据和实际数据,而元数据是用来组织和管理文件数据的数据。在实际应用中,作为一种可能的实现情况,所述待存储数据可以是指元数据。本实施例中,待存储数据在进行存储时,首先确定其数据类别,所述数据类别即是指用于区分不同数据的类型特征。所述数据类别可以根据待存储数据的文件格式、文件类型、大小等进行划分。例如根据不同文件类型可以划分图像、动画、声音、文本、网页等数据类别,根据文件格式可以划分临时文件、备份文件、帮助文件等数据类别,根据文件大小可以划分大文件、小文件等数据类别,还可以根据数据的重要性进行划分,比如源码、文档等可以划分为重要性数据。作为一种可能的实现方式,所述待存储数据为待存储文件时,确定待存储数据的数据类别可以具体包括获取待存储文件的文件名后缀。依据所述文件名后缀,确定所述待存储文件的数据类别。即根据待存储文件的文件名后缀,可以确定该待存储文件的数据类别。根据文件名后缀,可以得出该待存储数据的文件格式、文件类型等信息,进而可以确定出待存储数据的数据类别。例如,文件名后缀为V0C”,“. wav”即为声音文件,“.htm,,,“. html”是指网页文件,“.doc”为文本文件等。又如,文件名后缀为tmp”,syd”,即为临时文件,“.bak” “.old”即为备份文件等。继而根据文件名后缀可以分析得出待存储文件的数据类别。当然,系统还可以预先存储不同文件名后缀对应的数据类别,从而可以直接查找获得该待存储数据的数据类别。步骤102 :查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息。本申请实施例中,预先为不同的数据类别对应保存有存储规则,所述存储规则可以包括了副本数目以及不同的存储位置信息,当然还可以包括其他的存储信息。副本数目是指待存储数据可生成的副本数量,存储位置信息可以是指分布式存储系统可以提供的用于数据存储的存储节点,其可以包括存储节点的地址、标识等信息。 不同的数据类别对应不同的存储规则,其副本数目以及存储位置信息也不同。比如对于数据类别为临时文件的待存储数据,,为了减少性能损失,其副本数目可以设置为一,存储位置信息包括一个存储节点。又如数据类别为重要性数据,如源码、文档等,其副本数目可以设置多个,对应每一副本可以设置多个不同的存储节点进行存储,存储位置信息也即包括多个,其中的存储地址或者存储节点标识可以根据分布式存储系统可提供的存储节点中。又如对于数据类别为大文件的数据,其副本数目可以设置较少,而对于小文件的数据,副本数据可以设置较多个。因此,本实施例中,根据不同的数据类别可以对应有不同的存储规则,从而可以根据数据本身的特性进行存储。其中,所述不同数据类别对应的存储规则,还可以依据用户的更新请求,对存储规则进行更新。步骤103 :依据所述副本数目,生成所述待存储数据的数据副本。数据副本是与待存储数据完全一致的数据,其可以为待存储数据的复制数据,待存储数据以及复制数据均称为待存储数据的数据副本。根据所确定出的预设的存储规则中的副本数目,可以生成副本数目个该待存储数据的数据副本。步骤104 :将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。根据不同存储位置信息可以确定出用于存储数据副本的不同存储节点,从而可以将数据副本分别存储到不同的存储节点中。在不同存储节点中存储数据副本,保证了数据的可扩展性,且可以使得某一存储节点的数据损坏时,仍可以使用其他存储节点中的数据进行正常的数据访问操作。由于不同数据类别的待存储数据其存储方式不同,因此增加了数据的可操作性,且避免了一些数据对系统资源的占用,提高了数据的可靠性。在本实施例中,根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。参考图2,示出了本申请一种应用于分布式存储系统的数据存储方法实施例2的流程图,可以包括以下步骤步骤201 :确定待存储数据的数据类别。其中,待存储数据为待存储文件时,可以首先犹取待存储文件的文件名后缀。依据所述文件名后缀,确定所述待存储文件的数据类别。步骤202 :查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息。步骤203 :依据所述副本数目,生成所述待存储数据的数据副本。步骤20广步骤203的操作可参见上述实施例I的步骤IOf步骤103,在此不再赘述。
步骤204 :调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。在分布式存储系统中,通常通过文件系统对数据进行管理,文件系统是操作系统用于管理磁盘或分区上的文件的方法和数据结构,即是一种在磁盘上组织文件的方法,在分布式存储系统中,文件系统是分布于不同集群中。在本申请中,即调用存储系统中的文件系统,使用文件系统实现将数据副本分别存储到不同的存储节点中。在计算机网络中,待存储数据通常是由用户进程产生,因此所述待存储数据可以是通过虚拟文件系统从用户进程获取的数据,虚拟文件系统是物理文件系统与用户进程服务之间的一个接口层。待存储数据经过上述处理后,即存储到物理文件系统管理的不同存储节点中。其中,在进行数据存储以及数据访问时,不同文件系统所采用的算法或函数是不同。因此本申请实施例中,可以为不同的文件系统类型设置相应的配置接口函数,根据不同的文件系统类型,可以选择对应的配置接口函数实现数据的存储和访问。因此,在调用分布·式存储系统的文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中可以具体为确定所述分布式存储系统的文件系统类型;查找保存的所述文件系统类型对应的配置接口函数;通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。在进行数据访问时,所述方法还可以包括步骤205 :当接收到数据访问请求时,依据所述数据访问请求确定请求访问的目标数据的目标数据类别。数据访问请求包括数据读取请求以及数据更新请求,数据更新可以包括数据的写入、修改、删除或者增加等操作。依据数据访问请求请求访问的目标数据,可以首先确定出该目标数据的目标数据类别。步骤206 :查找所述目标数据类别对应的目标存储规则。依据预设的不同数据类别对应的存储规则,可以查找该目标数据类别对应的目标存储规则。步骤207 :依据所述目标存储规则中的目标存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点。由于存储规则中包括副本数目以及不同的存储位置信息,因此可以依据目标存储规则中的目标存储位置信息,确定出该请求访问的目标数据的不同目标数据副本分别对应的存储节点。步骤208 :按照所述数据访问请求的操作类型,处理所述每一存储节点中的目标数据副本。该操作类型也即可以包括读取操作、更新操作,其中更新操作又可以包括数据修改、删除或者增加等操作。依据不同的操作类型,可以同时对每一存储节点中的目标数据副本进行处理。
由于不同的原因,所述分布式存储系统的存储数据副本的存储节点可能无效,因此在处理每一存储节点的目标数据副本可以首先判断其是否为有效的存储节点,若是,在进行处理其保存的数据副本,因此,该处理所述每一存储节点中的目标数据副本可以包括判断所述每一存储节点是否为有效存储节点,获得第一判断结果;根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。其中,当数据访问请求为数据更新请求,即操作类型为数据更新时,对数据副本的处理为对每一存储节点中的目标数据副本均进行更新,从而可以实现不同存储节点中数据副本的同步更新。在对每一存储节点的目标数据副本均进行更新后,由于更新操作可能失败,更新失败的存储节点的数据副本与其他存储节点的数据副本已经不同,为了不影响后续数据的访问,因此所述方法还可以包括 判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果。根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。其中,当数据访问请求为数据读取请求时,即操作类型为读取操作时,由于存储数据副本的存储节点可能为无效的存储节点,因此处理每一存储节点中的目标数据副本具体可以是依次读取每一存储节点中的目标数据副本,直至某一存储节点读取成功,即可停止读取操作。在本实施例中,根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。在进行数据访问时,可以同步处理不同存储节点中的数据,保证了数据的一致性,进一步提高了存储系统的可靠性。参考图3,示出了本申请一种应用于分布式存储系统的数据存储方法实施例3的流程图,可以包括以下步骤步骤301 :确定待存储数据的数据类别。其中,待存储数据为待存储文件时,可以首先犹取待存储文件的文件名后缀。依据所述文件名后缀,确定所述待存储文件的数据类别。步骤302 :查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息。步骤303 :依据所述副本数目,生成所述待存储数据的数据副本。步骤30广步骤303的操作可参见上述实施例I的步骤IOf步骤103,在此不再赘述。步骤304 :确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统。步骤305 :查找不同的文件系统的类型分别对应的配置接口函数;
步骤306 :通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息对应的存储节点中。由于分布式存储系统中可能综合使用多种不同类型的文件系统,形成复杂、异构的系统,分别管理不同的存储节点中的数据,由于不同类型的文件系统其采用的算法或函数是不同,因此,首先确定出不同的存储节点以及每一存储节点应用的文件系统。从而可以查找预先保存的不同文件系统类型对应的配置接口函数,通过每一存储节点应用的文件系统类型对应的配置接口函数调用该文件系统,将数据副本存储至存储节点中。步骤307 :当接收到数据访问请求时,依据所述数据访问请求确定请求访问的目标数据类别。步骤308 :查找所述目标数据类别对应的目标存储规则。步骤309 :依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点;·步骤310 :按照所述数据访问请求的操作类型,处理所述每一存储节点中的目标数据副本。其中,在处理所述每一存储节点中的目标数据副本,可以具体为判断所述每一存储节点是否为有效存储节点,获得第一判断结果;根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。其中,当数据访问请求为数据更新请求,即操作类型为数据更新时,对数据副本的处理为对每一存储节点中的目标数据副本均进行更新,从而可以实现不同存储节点中数据副本的同步更新。在对每一存储节点的目标数据副本均进行更新后,由于更新操作可能失败,更新失败的存储节点的数据副本与其他存储节点的数据副本已经不同,为了不影响后续数据的访问,因此所述方法还可以包括判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果。根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。其中,当数据访问请求为数据读取请求时,即操作类型为读取操作时,由于存储数据副本的存储节点可能为无效的存储节点,因此处理每一存储节点中的目标数据副本具体可以是依次读取每一存储节点中的目标数据副本,直至某一存储节点读取成功,即可停止读取操作。在本实施例中,根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。在进行数据访问时,可以同步处理不同存储节点中的数据,保证了数据的一致性,进一步提高了存储系统的可靠性。对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。与上述本申请一种应用于分布式存储系统中的数据存储方法实施例I所提供的方法相对应,参见图4,本申请还提供了一种应用于分布式存储系统中的数据存储装置实施例I,在本实施例中,该装置可以包括数据类别确定模块401,用于确定待存储数据的数据类别。该待存储数据可以是指元数据或者文件数据。文件数据和元数据是文件系统所管理的两种存储数据形式,文件数据包括目录数据和实际数据,而元数据是用来组织和管理文件数据的数据。所述数据类别即是指用于区分不同数据的类型特征。所述数据类别可以根据待存
储数据的文件格式、文件类型、大小等进行划分。其中,所述待存储数据为待存储文件时,所述数据类别确定模块401可以包括获取模块4011,用于获取待存储文件的文件名后缀;类别确定子模块4012,用于依据所述文件名后缀,确定所述待存储文件的数据类别。根据文件名后缀,可以得出该待存储数据的文件格式、文件类型等信息,进而可以确定出待存储数据的数据类别。规则查找模块402,用于查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息。本申请实施例中,预先为不同的数据类别对应保存有存储规则,所述存储规则包括了副本数目以及不同的存储位置信息。副本数目是指待存储数据可生成的的副本数量,存储位置信息可以是指分布式存储系统可以提供的用于数据存储的存储节点,其可以包括存储节点的地址、标识等信息。副本生成模块403,用于依据所述副本数目,生成所述待存储数据的数据副本。数据存储模块404,用于将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。在不同存储节点中存储数据副本,保证了数据的可扩展性,可以使得某一存储节点的数据损坏时,仍可以使用其他存储节点中的数据进行正常的数据访问操作。由于不同数据类别的待存储数据其存储方式不同,因此增加了数据的可操作性,且避免了一些数据对系统资源的占用,有效提高了数据的可靠性。其中,所述系统还可以包括一用户接口模块,用于接收用户的预设的存储规则更新请求,更新所述预设的存储规则,并保存更新后的预设的存储规则。在本实施例中,系统根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。与上述本申请一种应用于分布式存储系统中的数据存储方法实施例2所提供的方法相对应,参见图5,本申请还提供了一种应用于分布式存储系统中的数据存储装置实施例2,在本实施例中,该装置可以包括数据类别确定模块501,用于确定待存储数据的数据类别。待存储数据为待存储文件时,所述数据类别确定模块可以包括获取模块,用于获取待存储文件的文件名后缀;类别确定子模块,用于依据所述文件名后缀,确定所述待存储文件的数据类别。规则查找模块502,用于查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息;副本生成模块503,用于依据所述副本数目,生成所述待存储数据的数据副本; 数据存储模块504,用于调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。即使用文件系统将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中其中,在进行数据存储以及数据访问时,不同文件系统所采用的算法或函数是不同。因此本申请实施例中,可以为不同的文件系统类型设置相应的配置接口函数,根据不同的文件系统类型,可以选择对应的配置接口函数实现数据的存储和访问。因此,所述数据存储模块504可以包括系统类型确定模块,用于确定所述分布式存储系统的文件系统类型;第一函数查找模块,用于查找保存的所述文件系统类型对应的配置接口函数;第一存储子模块,用于通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。数据请求模块505,用于接收数据访问请求,依据所述数据访问请求确定请求访问的目标数据类别。数据访问请求包括数据读取请求以及数据更新请求,数据更新可以包括数据的写入、修改、删除或者增加等操作。依据数据访问请求请求访问的目标数据,可以首先确定出该目标数据的目标数据类别。目标规则查找模块506,用于查找所述目标数据类别对应的目标存储规则。依据预设的不同数据类别对应的存储规则,可以查找该目标数据类别对应的目标存储规则。目标节点确定模块507,依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点。由于存储规则中包括副本数目以及不同的存储位置信息,因此可以依据目标存储规则中的目标存储位置信息,确定出该请求访问的目标数据的不同目标数据副本分别对应的存储节点。处理模块508,用于按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。由于不同的原因,所述分布式存储系统的存储数据副本的存储节点可能无效,因此,所述处理模块可以包括第一判断模块,用于判断所述每一存储节点是否为有效存储节点,获得第一判断结果;处理子模块,用于根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。其中,当数据访问请求为数据更新请求,即操作类型为数据更新时,对数据副本的处理为对每一存储节点中的目标数据副本均进行更新,从而可以实现不同存储节点中数据副本的同步更新。在对每一存储节点的目标数据副本均进行更新后,由于更新操作可能失败,更新失败的存储节点的数据副本与其他存储节点的数据副本已经不同,为了不影响后续数据的访问,所述系统还包括
第二判断模块,用于判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果;节点效果确定模块,用于根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。其中,当数据访问请求为数据读取请求时,即操作类型为读取操作时,由于存储数据副本的存储节点可能为无效的存储节点,因此处理每一存储节点中的目标数据副本具体可以是依次读取每一存储节点中的目标数据副本,直至某一存储节点读取成功,即可停止读取操作。本实施例所述的数据存储系统可以通过接口层与分布式存储系统的文件系统相连,以及通过虚拟文件系统与用户进程层相连,从而实现用户进程的数据存储到文件系统中。该数据存储系统可以与不同类型的文件系统进行连接。由于本实施例所述数据存储系统是通过使用文件系统进行数据存储,在软件架构上,所述数据存储系统堆叠在文件系统之上,因此其也可以称为存储系统的上层文件系统,而所述存储系统的本身的物理文件系统即为下层文件系统。在本实施例中,根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。在进行数据访问时,可以同步处理不同存储节点中的数据,保证了数据的一致性,进一步提高了存储系统的可靠性。与上述本申请一种应用于分布式存储系统中的数据存储方法实施例3所提供的方法相对应,参见图6,本申请还提供了一种应用于分布式存储系统中的数据存储装置实施例3,在本实施例中,该装置可以包括数据类别确定模块601,用于确定待存储数据的数据类别;规则查找模块602,用于查找所述数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息;副本生成模块603,用于依据所述副本数目,生成所述待存储数据的数据副本;数据存储模块604,用于将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。由于分布式存储系统中可能综合使用多种不同类型的文件系统,形成复杂、异构的系统,分别管理不同的存储节点中的数据,由于不同类型的文件系统其采用的算法或函数是不同,因此,所述数据存储模块可以包括节点确定模块6041,用于确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统;第二函数查找模块6042,用于查找不同的文件系统的类型分别对应的配置接口函数;第二存储子模块6043,用于通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息分别对应的存储节点中。数据请求模块605,用于接收数据访问请求,依据所述数据访问请求确定请求访问的目标数据类别;目标规则查找模块606,用于查找所述目标数据类别对应的目标存储规则;
目标节点确定模块607,依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点;处理模块608,用于按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。其中,所述处理模块可以包括第一判断模块,用于判断所述每一存储节点是否为有效存储节点,获得第一判断结果;处理子模块,用于根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。其中,当操作类型具体为数据更新操作时,所述系统还包括第二判断模块,用于判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果;节点效果确定模块,用于根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。其中,当数据访问请求为数据读取请求时,即操作类型为读取操作时,由于存储数据副本的存储节点可能为无效的存储节点,因此处理每一存储节点中的目标数据副本具体可以是依次读取每一存储节点中的目标数据副本,直至某一存储节点读取成功,即可停止读取操作。在本实施例中,根据待存储数据的数据类别,可以确定待存储数据对应的预设的存储规则,从而可以依据该预设的存储规则,生成数据副本并将数据副本相应存储到不同的存储节点中,针对不同的数据类别有针对性的生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。在进行数据访问时,可以同步处理不同存储节点中的数据,保证了数据的一致性,进一步提高了存储系统的可靠性。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些 部分所述的方法。以上对本申请所提供的一种检索方法、装置及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种应用于分布式存储系统的数据存储方法,其特征在于,包括 确定待存储数据的数据类别; 查找所述待存储数据的数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息; 依据所述副本数目,生成所述待存储数据的数据副本; 将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。
2.根据权利要求I所述的方法,其特征在于,所述待存储数据具体为待存储文件,则所述确定待存储数据的数据类别包括 获取待存储文件的文件名后缀; 依据所述文件名后缀,确定所述待存储文件的数据类别。
3.根据权利要求I所述的方法,其特征在于,所述将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中包括 调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中。
4.根据权利要求3所述的方法,其特征在于,所述调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中包括 确定所述分布式存储系统的文件系统类型; 查找保存的所述文件系统类型对应的配置接口函数; 通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。
5.根据权利要求I所述的方法,其特征在于,所述将所述数据副本分别存储到不同的存储位置信息分别对应的存储节点中包括 确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统; 查找不同的文件系统的类型分别对应的配置接口函数; 通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息对应的存储节点中。
6.根据权利要求Γ5任一项所述的方法,其特征在于,所述将所述数据副本分别存储到不同的存储位置信息对应的存储节点中后,所述方法还包括 当接收到数据访问请求时,依据所述数据访问请求确定请求访问的目标数据类别; 查找所述目标数据类别对应的目标存储规则; 依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的目标存储节点; 按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。
7.根据权利要求6所述的方法,其特征在于,所述处理所述每一存储节点中的目标数据副本包括 判断所述每一存储节点是否为有效存储节点,获得第一判断结果; 根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。
8.根据权利要求7所述的方法,其特征在于,所述操作类型具体为数据更新操作,则处理所述存储节点中的有效存储节点中的目标数据副本后,所述方法还包括 判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果; 根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。
9.一种应用于分布式存储系统中的数据存储系统,其特征在于,包括 数据类别确定模块,用于确定待存储数据的数据类别; 规则查找模块,用于查找所述待存储数据的数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息; 副本生成模块,用于依据所述副本数目,生成所述待存储数据的数据副本; 数据存储模块,用于将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。
10.根据权利要求9所述的系统,其特征在于,所述数据类别确定模块包括 获取模块,用于获取待存储文件的文件名后缀; 类别确定子模块,用于依据所述文件名后缀,确定所述待存储文件的数据类别。
11.根据权利要求9所述的系统,其特征在于,所述数据存储模块具体用于调用所述分布式存储系统的文件系统,将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。
12.根据权利要求11所述的系统,其特征在于,所述数据存储模包括 系统类型确定模块,用于确定所述分布式存储系统的文件系统类型; 第一函数查找模块,用于查找保存的所述文件系统类型对应的配置接口函数; 第一存储子模块,用于通过所述配置接口函数调用所述文件系统,将所述数据副本分别存储到不同的存储节点地址对应的存储节点中。
13.根据权利要求9所述的系统,其特征在于,所述数据存储模块包括 节点确定模块,用于确定所述不同的存储位置信息分别对应的存储节点,以及每一存储节点应用的文件系统; 第二函数查找模块,用于查找不同的文件系统的类型分别对应的配置接口函数; 第二存储子模块,用于通过所述不同配置接口函数调用对应的文件系统,将所述数据副本分别存储到不同存储位置信息对应的存储节点中。
14.根据权利要求扩13任一项所述的方法,其特征在于,所述系统还包括 数据请求模块,用于接收数据访问请求,依据所述数据访问请求确定请求访问的目标数据类别; 目标规则查找模块,用于查找所述目标数据类别对应的目标存储规则; 目标节点确定模块,依据所述目标存储规则中的存储位置信息,确定所述目标数据的不同目标数据副本分别对应的存储节点; 处理模块,用于按照所述数据访问请求的操作类型,处理所述每一目标存储节点中的目标数据副本。
15.根据权利要求14所述的系统,其特征在于,所述处理模块包括 第一判断模块,用于判断所述每一存储节点是否为有效存储节点,获得第一判断结果; 处理子模块,用于根据所述第一判断结果,当存储节点为有效存储节点时,处理所述有效存储节点中的目标数据副本。
16.根据权利要求14所述的系统,其特征在于,所述操作类型具体为数据更新操作,所述系统还包括 第二判断模块,用于判断所述存储节点的目标数据副本是否更新成功,获得第二判断结果; 节点效果确定模块,用于根据所述第二判断结果,确定更新成功的存储节点为有效存储节点,更新失败的存储节点为无效存储节点。
17.根据权利要求9所述的系统,其特征在于,所述系统还包括 用户接口模块,用于接收用户的预设的存储规则更新请求,更新所述预设的存储规则,并保存更新后的预设的存储规则。
全文摘要
本发明提供了一种应用于分布式存储系统中的数据存储方法和系统,其中,确定待存储数据的数据类别;查找所述待存储数据的数据类别对应的预设的存储规则,所述预设的存储规则包括副本数目以及不同的存储位置信息;依据所述副本数目,生成所述待存储数据的数据副本;将所述数据副本分别存储到不同的存储位置信息对应的存储节点中。本发明实施例,通过对不同的数据类别生成不同数目的数据副本进行存储,从而既保证了存储数据的安全性、扩展性、可操作性等问题,又避免了对系统资源的占用,从而有效提高了存储系统的可靠性。
文档编号H04L29/08GK102938784SQ20121044117
公开日2013年2月20日 申请日期2012年11月6日 优先权日2012年11月6日
发明者蒋金虎, 李希, 何晓斌, 王红艳, 王晞阳, 魏巍, 余婷, 陈起, 郑翔, 杨京 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1