一种文件存储的方法和装置与流程

文档序号:12465259阅读:225来源:国知局
一种文件存储的方法和装置与流程

本发明涉及存储领域,具体而言,涉及一种文件存储的方法和装置。



背景技术:

随着存储的文件增多以及访问量的增大,单磁盘以经不能满足性能要求,而采用raid阵列的方式又无法从根本上控制文件访问策略,特别是针对大量小文件时,1个文件被分布到多个磁盘上时反而会带来大量的寻址造成的时间浪费。而采用随机分配并将索引存入数据库等存储的方式,则很可能会带来单点故障或性能瓶颈问题,综上,现有的存储效率较低。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种文件存储的方法和装置,以至少解决现有技术存储效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种文件存储的方法,包括:获取待存储文件的文件标识信息;根据所述文件标识信息通过预设存储算法从存储服务器的磁盘中确定目标磁盘;将所述待存储文件存储至所述目标磁盘。

可选地,所述文件标识信息包括文件名和文件扩展名,所述根据所述文件标识信息通过预设存储算法确定目标磁盘包括:根据所述文件名和所述文件扩展名获取所述目标磁盘的标识信息;确定所述标识信息对应的磁盘为目标磁盘。

可选地,所述根据所述文件名和所述文件扩展名获取所述目标磁盘的标识信息包括:获取所述文件名的首位数字以及所述文件扩展名的末位数字;确定所述存储服务器中的磁盘的第一数量;计算所述首位数字与所述末位数字的和,并获取得到的和与所述磁盘的第一数量的比值的第一余数;确定所述第一余数为所述目标磁盘的标识信息。

可选地,在所述将所述待存储文件存储至所述目标磁盘前,所述方法还包括:确定所述目标磁盘是否损坏;所述将所述待存储文件存储至所述目标磁盘包括:在所述目标磁盘未损坏时,将所述待存储文件存储至所述目标磁盘。

可选地,所述方法还包括:在所述目标磁盘损坏时,获取所述存储服务器中未损坏磁盘的第二数量;获取得到的和与所述磁盘的第一数量的比值的第二余数;确定所述第二余数为所述目标磁盘的标识信息。

根据本发明实施例的另一方面,还提供了一种文件存储的装置,包括:第一获取模块,用于获取待存储文件的文件标识信息;第一确定模块,用于根据所述文件标识信息通过预设存储算法从存储服务器的磁盘中确定目标磁盘;存储模块,用于将所述待存储文件存储至所述目标磁盘。

可选地,所述文件标识信息包括文件名和文件扩展名,所述第一确定模块,用于根据所述文件名和所述文件扩展名获取所述目标磁盘的标识信息,并确定所述标识信息对应的磁盘为目标磁盘。

可选地,所述第一确定模块,用于获取所述文件名的首位数字以及所述文件扩展名的末位数字;确定所述存储服务器中的磁盘的第一数量;计算所述首位数字与所述末位数字的和,并获取得到的和与所述磁盘的第一数量的比值的第一余数;确定所述第一余数为所述目标磁盘的标识信息。

可选地,所述装置还包括:所述装置还包括:判断模块,用于确定所述目标磁盘是否损坏;所述存储模块,用于在所述目标磁盘未损坏时,将所述待存储文件存储至所述目标磁盘。

可选地,所述装置还包括:第二获取模块,用于在所述目标磁盘损坏时,获取所述存储服务器中未损坏磁盘的第二数量;处理模块,用于获取得到的和与所述磁盘的第一数量的比值的第二余数;第二确定模块,用于确定所述第二余数为所述目标磁盘的标识信息。

在本发明实施例中,获取待存储文件的文件标识信息;根据所述文件标识信息通过预设存储算法从存储服务器的磁盘中确定目标磁盘;将所述待存储文件存储至所述目标磁盘。这样,通过文件标识信息确定存储的磁盘,无需将索引存储在数据库或文件中,避免了文件索引导致的单点故障或性能瓶颈,并可以有效的将访问压力分布到各个磁盘,从而提高了文件存储的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的一种可选的文件存储的方法的流程示意图;

图2是根据本发明实施例的一种可选的文件存储的装置的结构示意图;

图3是根据本发明实施例的一种可选的文件存储的装置的结构示意图;

图4是根据本发明实施例的一种可选的文件存储的装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本发明实施例,提供了一种文件存储的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种文件存储的方法,如图1所示,该方法包括如下步骤:

S101、获取待存储文件的文件标识信息。

在本步骤中,该文件标识信息可以包括文件名称和文件扩展名,例如,文件“2015001/11.ts”,其中, “2015001”为文件名称,“11”为文件扩展名,“ts”为文件类型。

S102、根据该文件标识信息通过预设存储算法从存储服务器的磁盘中确定目标磁盘。

其中,存储服务器中的磁盘依次设置有标识信息,该标识可以是编号,例如,服务器中有5个磁盘,则该5个磁盘分别编号为:磁盘0、磁盘1、磁盘2、磁盘3以及磁盘4。

该预设存储算法可以是哈希算法,或者,文件依次排序法,本发明对此不作限定,也可以是其他针对有规律文件名进行的特殊分布算法等。

在本发明一种可能的实现方式中,可以根据该文件名和该文件扩展名获取该目标磁盘的标识信息,并确定该标识信息对应的磁盘为目标磁盘。

具体地,可以获取该文件名的首位数字以及该文件扩展名的末位数字,确定该存储服务器中的磁盘的第一数量,并计算该首位数字与该末位数字的和,并获取得到的和与该磁盘的第一数量的比值的第一余数,并确定该第一余数为该目标磁盘的标识信息。

示例地,以文件“2015001/11.ts”为例进行说明,若存储服务器中的数量为5,文件名的首位数字为2,文件扩展名的末位数字为1,则该首位数字与该末位数字的和为3,则第一余数为3,则确定目标磁盘的编号(即标识信息)为3,从而确定目标磁盘为磁盘3。

S103、将该待存储文件存储至该目标磁盘。

考虑到磁盘可能会由于损坏而无法存储文件,因此,在本发明另一实施例中,在该步骤S103之前,可以确定该目标磁盘是否损坏,若该目标磁盘未损坏,则将该待存储文件存储至该目标磁盘。

若该目标磁盘损坏,则需要重新确定目标磁盘,具体地,获取该存储服务器中未损坏磁盘的第二数量,并获取得到的和与该磁盘的第一数量的比值的第二余数,并确定该第二余数为该目标磁盘的标识信息。

示例地,仍然以上述文件“2015001/11.ts”为例进行说明,若确定的目标磁盘为磁盘3,且该磁盘3损坏,则确定为损坏的磁盘数量为4,则第二余数为3,此时,由于磁盘3损坏,则确定目标磁盘为磁盘3的下一磁盘,即磁盘4。

需要说明的是,在确定目标磁盘后,可以将该目标磁盘的标识信息标记在该文件标识信息上,例如,仍然以上述文件“2015001/11.ts”为例进行说明,若目标磁盘为磁盘3,则文件标识信息可以是“/3/2015001/11.ts”,其中,“/3/”即为目标磁盘的标识信息。

另外,若该目标磁盘损坏,并确定新的目标磁盘后,保留该损坏的目标磁盘的标识信息,并添加新的目标磁盘的标识信息,例如,若损坏的目标磁盘为磁盘3,则文件标识信息为“/3/2015001/11.ts”,若确定新的目标磁盘为磁盘4,则文件标识信息为“/4/3/2015001/11.ts”。

进一步地,在损坏的目标磁盘正常后,可以将存储在其他磁盘下且文件标识信息包括损坏的目标磁盘的标识信息的文件,移动至该目标磁盘,并将该目标磁盘标记为正常,例如,当损坏的磁盘3更换为正常磁盘后,将所有其他磁盘中/3/路径下的文件移动到磁盘3下,当移动完成后,将磁盘3标记为正常。

采用上述方法,通过文件标识信息确定存储的磁盘,无需将索引存储在数据库或文件中,避免了文件索引导致的单点故障或性能瓶颈,并可以有效的将访问压力分布到各个磁盘,从而提高了文件存储的效率。

图2为本发明实施例提供的一种文件存储的装置,如图2所示,该装置包括:

第一获取模块201,用于获取待存储文件的文件标识信息;

第一确定模块202,用于根据该文件标识信息通过预设存储算法从存储服务器的磁盘中确定目标磁盘;

存储模块203,用于将该待存储文件存储至该目标磁盘。

可选地,该文件标识信息包括文件名和文件扩展名,该第一确定模块202,用于根据该文件名和该文件扩展名获取该目标磁盘的标识信息,并确定该标识信息对应的磁盘为目标磁盘。

可选地,该第一确定模块202,用于获取该文件名的首位数字以及该文件扩展名的末位数字;确定该存储服务器中的磁盘的第一数量;计算该首位数字与该末位数字的和,并获取得到的和与该磁盘的第一数量的比值的第一余数;确定该第一余数为该目标磁盘的标识信息。

可选地,如图3所示,该装置还包括:

判断模块204,用于确定该目标磁盘是否损坏;

该存储模块203,用于在该目标磁盘未损坏时,将该待存储文件存储至该目标磁盘。

可选地,如图4所示,该装置还包括:

第二获取模块205,用于在该目标磁盘损坏时,获取该存储服务器中未损坏磁盘的第二数量;

处理模块206,用于获取得到的和与该磁盘的第一数量的比值的第二余数;

第二确定模块207,用于确定该第二余数为该目标磁盘的标识信息。

采用上述装置,通过文件标识信息确定存储的磁盘,无需将索引存储在数据库或文件中,避免了文件索引导致的单点故障或性能瓶颈,并可以有效的将访问压力分布到各个磁盘,从而提高了文件存储的效率。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1