基于分布式文件系统的文件处理方法及装置与流程

文档序号:12733885阅读:253来源:国知局
基于分布式文件系统的文件处理方法及装置与流程

本发明涉及数据存储领域,特别涉及一种基于分布式文件系统的文件处理方法及装置。



背景技术:

分布式文件系统指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。现有的分布式文件系统文件存储文件过程中,将文件切片之后通过指定的识别特征在文件列表中检索是否存在文件,这种存储方式效率低、存储时间长。



技术实现要素:

本发明的主要目的是提供一种基于分布式文件系统的文件处理方法和装置,旨在提高分布式文件系统的文件存储效率。

为实现上述目的,本发明提供一种基于分布式文件系统的文件处理方法,所述分布式文件系统包括客户端和至少一个存储节点,所述文件处理方法包括步骤:

获取所有存储节点的身份标识;

依据待写入切片的MD5值获取节点标识与所述待写入切片的MD5值最接近的节点,并确认为第一目标节点;

将所述待写入切片保存至所述第一目标节点。

优选的,所述将所述待写入切片保存至所述第一目标节点之后还包括步骤:

依据待写入切片的MD5值获取除所述第一目标节点之外,节点标识与所述待写入切片的MD5值最接近的节点,并确认为第二目标节点;

将所述待写入切片保存至所述第二目标节点。

优选的,所述获取所有存储节点的身份标识之前还包括步骤:

缓存待写入数据;

将所述待写入数据按指定大小切片;

在每个切片中记录该切片的MD5值;

对每个切片加密并将所述切片发送至存储节点。

优选的,所述缓存待写入数据之前还包括步骤:

定时获取所有存储节点的信息。

优选的,所述存储节点运行于基于申威处理器的平台上,所述客户端运行于申威处理器或兼容x86指令集的平台。

此外,本发明还提供一种基于分布式文件系统的文件处理装置,所述分布式文件系统包括客户端和至少一个存储节点,所述文件处理装置包括:

第一获取模块,用于获取所有存储节点的身份标识;

第二获取模块,用于依据待写入切片的MD5值获取节点标识与所述待写入切片的MD5值最接近的节点,并确认为第一目标节点;

第一存储模块,用于将所述待写入切片保存至所述第一目标节点。

优选的,还包括:

第三获取模块,用于依据待写入切片的MD5值获取除所述第一目标节点之外,节点标识与所述待写入切片的MD5值最接近的节点,并确认为第二目标节点;

第二存储模块,用于将所述待写入切片保存至所述第二目标节点。

优选的,还包括:

缓存模块,用于缓存待写入数据;

切片模块,用于将所述待写入数据按指定大小切片;

记录模块,用于在每个切片中记录该切片的MD5值;

发送模块,用于对每个切片加密并将所述切片发送至存储节点。

优选的,还包括:

定时获取模块,用于定时获取所有存储节点的信息。

优选的,所述存储节点运行于基于申威处理器的平台上,所述客户端运行于申威处理器或兼容x86指令集的平台。

本发明的技术方案中,所述分布式文件系统包括客户端和至少一个存储节点,所述文件处理方法包括步骤:获取所有存储节点的身份标识;依据待写入切片的MD5值获取节点标识与所述待写入切片的MD5值最接近的节点,并确认为第一目标节点;将所述待写入切片保存至所述第一目标节点。本发明的技术方案通过将切片的MD5与节点标识相匹配,节约了文件存储时间,提高了效率。

附图说明

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

图1为本发明分布式文件系统的结构示意图;

图2为本发明基于分布式文件系统的文件处理方法第一实施例的方法流程图;

图3为本发明基于分布式文件系统的文件处理方法第二实施例的方法流程图;

图4为本发明基于分布式文件系统的文件处理方法第三实施例的方法流程图;

图5为本发明基于分布式文件系统的文件处理装置第一实施例的模块示意图;

图6为本发明基于分布式文件系统的文件处理装置第二实施例的模块示意图;

图7为本发明基于分布式文件系统的文件处理装置第三实施例的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

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

本发明提供一种基于分布式文件系统的文件处理方法。

如图1所示,在一实施例中,所述分布式文件系统包括客户端10和至少一个存储节点20。所述客户端10为普通计算机、笔记本电脑、平板电脑等各种终端,至少一个客户端10通过局域网或因特网与至少一个存储节点20相连。本实施例中以普通计算机为例,至少一台个人计算机通过因特网连接至所述存储节点20。

请进一步参阅图2,在一实施例中所述基于分布式文件系统的文件处理方法包括步骤:

S100、获取所有存储节点20的身份标识。

随着信息和时代的发展,人们获取的信息越来越多,单纯通过增加硬盘个数来增加计算机文件系统的存储空间已经无法满足人们的需求。在分布式文件系统中,由于文件存储于网络中的多个节点中,可以有效的分担各个节点的存储压力。在本实施例中,该分布式文件系统中可以随时增加或减少存储节点20,每个存储节点20在加入到分布式文件系统中时,均会随机生成一个唯一的身份标识,因检修等因素暂离所述分布式文件系统时,仍保留原身份标识。

S200、依据待写入切片的MD5值获取节点标识与所述待写入切片的MD5值最接近的节点,并确认为第一目标节点。

应当理解的是,在计算机技术中,可以根据每个文件的内容计算获得改文件对应的MD5值(Message Digest Algorithm MD5消息摘要算法第五版)。MD5值是根据计算获得的每个文件独特的数字指纹,两个文件中即使只有细微差别,其计算获得的MD5值也会有较大的差别。

在本实施例中,将待写入文件本预先切片成指定大小的切片,并获取每个切片的MD5值。再将切片的MD5值与每个存储节点20的节点标识相比较后,确定所有存储节点20中节点标识与切片MD5值最接近的一存储节点20,作为存储该切片的节点。

S300、将所述待写入切片保存至所述第一目标节点。

在确认用于保存切片的第一目标节点后,将切片发送至节点,完成对切片的存储。在将切片保存至该第一目标节点之后,可以在该第一目标节点的现有文件的数字指纹列表中检索该切片的MD5值,并判断是否存在具有相同MD5值的文件。显然,如果存在具有相同MD5值的文件,则证明该存储节点20中存在相同的文件,则不需要重复保存该切片,只需要记录该切片的路径信息,并在该切片被调用时,依据MD5值调用相应的切片即可。

本实施例的技术方案中,通过将切片存储至具有与该切片MD5值最接近节点标识的节点中,避免了在全部节点中检索是否存在相同的文件切片,只需要在选定的该切片对应的第一目标节点中检索是否存在相同的文件即可,可以有效的节约存储时间和效率。同时,如果需要读取该文件,即可用通过在存储过程中生成的元数据目录读取该文件,在元数据目录丢失或损坏时,还可以通过计算每个切片的MD5值,并进一步确定该切片的存储节点20,并通过在该存储节点20中通过检索MD5值获得该文件,也使文件的存储过程更加的安全。

如图3所示,在本发明的方法又一实施例中,优选所述步骤S300之后还包括步骤:

S400、依据待写入切片的MD5值获取除所述第一目标节点之外,节点标识与所述待写入切片的MD5值最接近的节点,并确认为第二目标节点;

S500、将所述待写入切片保存至所述第二目标节点。

应当理解的是,在分布式文件系统中,每个文件优选在至少两个存储节点20上存储,以作为备份。在本实施例中,在进一步在除第一目标节点之外的其他存储节点20中,再次获取身份标识与切片MD5值最接近的存储节点20,并把切片在第二目标节点中进行存储,完成了对切片文件的备份。

请进一步参阅图4,优选的,在所述步骤S100之前还包括步骤:

S010、缓存待写入数据;

S020、将所述待写入数据按指定大小切片;

S030、在每个切片中记录该切片的MD5值;

S040、对每个切片加密并将所述切片发送至存储节点20。

应当理解的是,在分布式文件系统中,对文件进行存储时,应当先对文件进行处理切片成指定的大小,以便于存储。在本实施例中,每个切片的大小优选为64MB,显然,还可以是32MB、16MB等更小的尺寸,也可以是128MB、256MB等更大的尺寸,该切片文件的尺寸是可以根据具体情况所设定的。本实施例中以64MB为例。当一个文件的大小可以被64MB整除时,例如是128MB,则可以将该文件切片成两个64MB的文件直接存储。但是实际使用过程中,很难做到待写入文件的大小恰好为64MB的整数倍,虽然缩小切片的尺寸,例如将切片的尺寸设置为1MB,则文件大小是1MB的整数倍的可能性相对于64MB较高,但是切片尺寸过小时,需要存储的文件数量过多,会给系统增加额外的压力。而如果将剩余部分直接存储,例如,将一个100MB的文件切片为一个64MB的文件和一个36MB的文件,并将36MB的文件直接存储,则可能在存储过程中产生一36MB的内存碎片或硬盘碎片,影响文件存储效率,同时浪费空间。因此在本实施例中,如果切片的尺寸不足预设大小,则在目标文件之后增加特定的数据作为补充文件,将所有的目标切片补足64MB,可以有效提高内存和硬盘使用效率,防止产生内存碎片和硬盘碎片。

优选的,所述步骤S010之前还包括步骤:

S001、定时获取所有存储节点20的信息。

应当理解的是,为了保证系统正常运行,本实施例中进一步在每个存储节点20运行一个独立的管理进程,用于接受和处理系统服务,每个节点之间互相推送状态信息,以判断各存储节点20是否处于正常工作状态,实现对全部存储节点20的管理。

优选的,所述存储节点20运行于基于申威处理器的平台上,所述客户端10运行于申威处理器或兼容x86指令集的平台。

申威处理器是由江南计算机所研究的具有完全自主知识产权的处理器,基于该处理器的平台可以实现硬件与软件的国产自主化,可以最大限度的保证数据的安全,同时该处理器功耗低、运算效率高,可以在保证正常使用的前提下,有效节约能源。

此外,本发明还提供一种基于分布式文件系统的文件处理装置,所述分布式文件系统包括客户端10和至少一个存储节点20,所述客户端10为普通计算机、笔记本电脑、平板电脑等各种终端,至少一个客户端10通过局域网或因特网与至少一个存储节点20相连。本实施例中以普通计算机为例,至少一台个人计算机通过因特网连接至所述存储节点20。

如图5所示,在一实施例中,所述基于分布式文件系统的文件处理装置包括:

第一获取模块21,用于获取所有存储节点20的身份标识。

随着信息和时代的发展,人们获取的信息越来越多,单纯通过增加硬盘个数来增加计算机文件系统的存储空间已经无法满足人们的需求。在分布式文件系统中,由于文件存储于网络中的多个节点中,可以有效的分担各个节点的存储压力。在本实施例中,该分布式文件系统中可以随时增加或减少存储节点20,每个存储节点20在加入到分布式文件系统中时,均会随机生成一个唯一的身份标识,因检修等因素暂离所述分布式文件系统时,仍保留原身份标识。

第二获取模块22,用于依据待写入切片的MD5值获取节点标识与所述待写入切片的MD5值最接近的节点,并确认为第一目标节点。

应当理解的是,在计算机技术中,可以根据每个文件的内容计算获得改文件对应的MD5值(Message Digest Algorithm MD5消息摘要算法第五版)。MD5值是根据计算获得的每个文件独特的数字指纹,两个文件中即使只有细微差别,其计算获得的MD5值也会有较大的差别。

在本实施例中,将待写入文件本预先切片成指定大小的切片,并获取每个切片的MD5值。再将切片的MD5值与每个存储节点20的节点标识相比较后,确定所有存储节点20中节点标识与切片MD5值最接近的一存储节点20,作为存储该切片的节点。

第一存储模块23,用于将所述待写入切片保存至所述第一目标节点。

在确认用于保存切片的第一目标节点后,将切片发送至节点,完成对切片的存储。在将切片保存至该第一目标节点之后,可以在该第一目标节点的现有文件的数字指纹列表中检索该切片的MD5值,并判断是否存在具有相同MD5值的文件。显然,如果存在具有相同MD5值的文件,则证明该存储节点20中存在相同的文件,则不需要重复保存该切片,只需要记录该切片的路径信息,并在该切片被调用时,依据MD5值调用相应的切片即可。

本实施例的技术方案中,通过将切片存储至具有与该切片MD5值最接近节点标识的节点中,避免了在全部节点中检索是否存在相同的文件切片,只需要在选定的该切片对应的第一目标节点中检索是否存在相同的文件即可,可以有效的节约存储时间和效率。同时,如果需要读取该文件,即可用通过在存储过程中生成的元数据目录读取该文件,在元数据目录丢失或损坏时,还可以通过计算每个切片的MD5值,并进一步确定该切片的存储节点20,并通过在该存储节点20中通过检索MD5值获得该文件,也使文件的存储过程更加的安全。

请参阅图6,优选的,所述文件处理装置还包括:

第三获取模块24,用于依据待写入切片的MD5值获取除所述第一目标节点之外,节点标识与所述待写入切片的MD5值最接近的节点,并确认为第二目标节点;

第二存储模块25,用于将所述待写入切片保存至所述第二目标节点。

应当理解的是,在分布式文件系统中,每个文件优选在至少两个存储节点20上存储,以作为备份。在本实施例中,在进一步在除第一目标节点之外的其他存储节点20中,再次获取身份标识与切片MD5值最接近的存储节点20,并把切片在第二目标节点中进行存储,完成了对切片文件的备份。

请进一步参阅图7,优选的,还包括:

缓存模块11,用于缓存待写入数据;

切片模块12,用于将所述待写入数据按指定大小切片;

记录模块13,用于在每个切片中记录该切片的MD5值;

发送模块14,用于对每个切片加密并将所述切片发送至存储节点20。

应当理解的是,在分布式文件系统中,对文件进行存储时,应当先对文件进行处理切片成指定的大小,以便于存储。在本实施例中,每个切片的大小优选为64MB,显然,还可以是32MB、16MB等更小的尺寸,也可以是128MB、256MB等更大的尺寸,该切片文件的尺寸是可以根据具体情况所设定的。本实施例中以64MB为例。当一个文件的大小可以被64MB整除时,例如是128MB,则可以将该文件切片成两个64MB的文件直接存储。但是实际使用过程中,很难做到待写入文件的大小恰好为64MB的整数倍,虽然缩小切片的尺寸,例如将切片的尺寸设置为1MB,则文件大小是1MB的整数倍的可能性相对于64MB较高,但是切片尺寸过小时,需要存储的文件数量过多,会给系统增加额外的压力。而如果将剩余部分直接存储,例如,将一个100MB的文件切片为一个64MB的文件和一个36MB的文件,并将36MB的文件直接存储,则可能在存储过程中产生一36MB的内存碎片或硬盘碎片,影响文件存储效率,同时浪费空间。因此在本实施例中,如果切片的尺寸不足预设大小,则在目标文件之后增加特定的数据作为补充文件,将所有的目标切片补足64MB,可以有效提高内存和硬盘使用效率,防止产生内存碎片和硬盘碎片。

优选的,所述文件处理装置还包括:

定时获取模块,用于定时获取所有存储节点20的信息。

应当理解的是,为了保证系统正常运行,本实施例中进一步在每个存储节点20运行一个独立的管理进程,用于接受和处理系统服务,每个节点之间互相推送状态信息,以判断各存储节点20是否处于正常工作状态,实现对全部存储节点20的管理。

优选的,所述存储节点20运行于基于申威处理器的平台上,所述客户端10运行于申威处理器或兼容x86指令集的平台。

申威处理器是由江南计算机所研究的具有完全自主知识产权的处理器,基于该处理器的平台可以实现硬件与软件的国产自主化,可以最大限度的保证数据的安全,同时该处理器功耗低、运算效率高,可以在保证正常使用的前提下,有效节约能源。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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