发明内容
本发明的主要目的在于提供一种分布式文件系统写入方法及装置,旨在取消内核态和用户态之间的切换步骤以达到高效写入的目的。
为实现上述目的,本发明提供的一种分布式文件系统的写入方法,所述分布式文件系统的写入方法包括如下步骤:
客户端向分布式存储服务器发起文件挂载的请求;
所述客户端接收所述分布式存储服务器根据所述文件挂载的请求发回的写入请求;同时,所述客户端向元数据服务器发起元数据请求;
所述客户端接收所述元数据服务器根据所述元数据请求发回的元数据信息,并将所述元数据信息处理后按预设规则写入所述分布式存储服务器。
优选地,所述客户端接收所述分布式存储服务器根据所述文件挂载的请求发回的写入请求的同时,还包括:
所述分布式存储服务器开始记录写入过程中的日志信息;
所述分布式存储服务器存储根据所述日志信息生成的系统日志至内存。
优选地,所述客户端接收所述元数据服务器根据所述元数据请求发回的元数据信息,并将所述元数据信息处理后按预设规则写入所述分布式存储服务器之后,还包括:
所述分布式存储服务器根据所述系统日志判断写入过程中是否出现异常;
若是,则所述分布式存储服务器中止所述客户端写入,并发出异常信息;
若否,则所述客户端正常写入,并将写入过程中产生的相关元数据信息一并写入所述分布式存储服务器。
优选地,所述分布式存储服务器中止所述客户端写入,并发送异常信息之后还包括:
所述客户端接收所述异常信息,并向所述元数据服务器发起删除元数据请求。
优选地,所述将所述元数据信息进行处理包括:将所述元数据信息进行数据的分片处理和数据的冗余处理中的至少一种。
此外,为实现上述目的,本发明还提供一种分布式文件系统的写入装置,所述分布式文件系统的写入装置包括客户端,所述客户端包括第一请求模块、第一接收模块、第二请求模块、第二接收模块、处理模块及写入模块,其中:
所述第一请求模块,用于向分布式存储服务器发起文件挂载的请求;
所述第一接收模块,用于接收所述分布式存储服务器根据所述文件挂载的请求发回的写入请求;
所述第二请求模块,用于向所述元数据服务器发起元数据请求;
所述第二接收模块,用于接收所述元数据服务器根据所述元数据请求发回的元数据信息;
所述处理模块,用于对所述元数据信息进行处理;
所述写入模块,用于将处理后的所述元数据信息按预设规则写入所述分布式存储服务器。
优选地,所述分布式文件系统的写入装置还包括分布式存储服务器,所述分布式存储服务器包括记录模块和存储模块,其中:
所述记录模块,用于记录所述分布式存储服务器的日志信息;
所述存储模块,用于存储根据所述日志信息生成的系统日志至内存。
优选地,所述分布式存储服务器还包括判断模块、中止模块和第三请求模块,其中:
所述判断模块,用于根据所述系统日志判断写入过程中是否出现异常;
所述中止模块,用于在判定写入异常时中止所述客户端写入;
所述第三请求模块,用于在判定写入异常时发送异常信息;
所述写入模块,还用于将写入过程中产生的相关元数据信息一并写入至所述分布式存储服务器。
优选地,所述客户端还包括第三接收模块和第四请求模块,其中:
所述第三接收模块,用于接收所述异常信息;
所述第四请求模块,用于向所述元数据服务器发起删除元数据请求。
优选地,所述处理模块包括分片单元和冗余单元中的至少一种,其中:
所述分片单元,用于将所述元数据信息进行数据的分片处理;
所述冗余单元,用于将所述元数据信息进行数据的冗余处理。
本发明通过客户端分别与所述分布式存储服务器和所述元数据服务器进行通信,并能够由所述客户端独立地对所述分布式存储服务器进行写入,省去了写入所述分布式存储服务器时需要在用户态和内核态之间切换的中间环节,提高了分布式文件系统的写入效率。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,为本发明分布式文件系统的写入方法第一实施例的流程示意图。本发明提供一种分布式文件系统的写入方法,包括:
步骤S10,客户端向分布式存储服务器发起文件挂载的请求;
本发明实施例提供的分布式文件系统的写入方法,通过基于操作系统内核的客户端来减少数据写入的中间环节以达到高效写入的目的。
客户端包括内核模块,所述客户端与分布式存储服务器和元数据服务器的通信均由所述内核模块完成,包括:向所述分布式文件系统发起文件挂载的请求、对所述分布式文件系统进行数据的读写操作、向所述元数据服务器发出的元数据请求等。
用户需要向所述分布式存储服务器进行写入时,控制所述客户端向所述分布式存储服务器发起文件挂载的请求。
步骤S20,所述客户端接收所述分布式存储服务器根据所述文件挂载的请求发回的写入请求;同时,所述客户端向元数据服务器发起元数据请求;
所述分布式存储服务器接收到所述文件挂载的请求后,根据所述文件挂载的请求向所述客户端发出写入请求,所述客户端接收到所述写入请求,即获得了写入所述分布式存储服务器的授权。
在所述客户端接收到所述写入请求的同时,向元数据服务器发起元数据请求。
步骤S30,所述客户端接收所述元数据服务器根据所述元数据请求发回的元数据信息,并将所述元数据信息处理后按预设规则写入所述分布式存储服务器。
所述元数据服务器接收到所述元数据请求后,向所述客户端发出根据所述元数据请求所对应的元数据信息,所述客户端接收所述元数据信息,并将元数据信息进行处理后按预设规则写入所述分布式存储服务器。其中,对所述元数据信息进行处理包括将所述元数据信息进行数据的分片处理和数据的冗余处理中的至少一种。
本发明通过客户端分别与所述分布式存储服务器和所述元数据服务器进行通信,并能够由所述客户端独立地对所述分布式存储服务器进行写入,省去了写入所述分布式存储服务器的中间环节,提高了分布式文件系统的写入效率。
进一步地,参照图2,基于本发明分布式文件系统的写入方法第一实施例,在本发明分布式文件系统写入方法第二实施例中,上述步骤S20的同时还包括:
步骤S40,所述分布式存储服务器开始记录写入过程中的日志信息;
在所述客户端接收到所述分布式存储服务器根据所述文件挂载的请求发回的写入请求的同时,即客户端可以随时对所述分布式存储服务器进行写入操作的同时,所述分布式存储服务器开始对所述客户端对所述分布式存储服务器的每个写入动作进行记录,作为一个监控写入过程的证据。
步骤S50,所述分布式存储服务器存储根据所述日志信息生成的系统日志至内存。
所述分布式存储服务器将记录得出的日志信息进行数据的处理、转换、封装等操作后生成系统日志,并将所述系统日志存入内存中。
本实施例中,通过对客户端向所述分布式存储服务器的写入变化过程进行记录得出日志信息,再根据所述日志信息生成系统日志,在所述分布式存储服务器出现故障时能够查看所述系统日志,找出写入过程中造成故障的原因,为维护所述分布式存储服务器提供便利。例如,在客户端对所述分布式服务器进行写入操作之后,所述分布式存储服务器出现故障时,维护人员能够查看系统日志,并将写入过程中的错误数据进行删除以使所述分布式存储服务器继续正常工作。
进一步地,参照图3,基于本发明分布式文件系统的写入方法第二实施例,在本发明分布式文件系统写入方法第三实施例中,上述所述客户端接收所述元数据服务器根据所述元数据请求发回的元数据信息,并将所述元数据处理后按预设规则写入所述分布式存储服务器之后,还包括:
步骤S60,所述分布式存储服务器根据所述系统日志判断写入过程中是否出现异常;
本实施例中,所述分布式存储服务器不仅仅只是记录所述系统日志,还包括对记录的所述系统日志进行是否异常的判断功能。例如;所述判断功能为开发人员预设的判断程序,并在写入过程中客户端写入的元数据信息必须获得所述判断程序的授权才能够写入所述分布式存储服务器,这种方式就必须基于特定的已被授权的元数据来进行,保证了所述分布式存储服务器内部数据的一致性。
步骤S70,若是,则所述分布式存储服务器中止所述客户端写入,并发出异常信息;
在所述分布式存储服务器通过系统日志判断出客户端写入的数据异常时,立即中止所述客户端的写入,并向所述客户端发出异常信息。
步骤S80,若否,则所述客户端正常写入,并将写入过程中产生的相关元数据信息一并写入所述分布式存储服务器。
在所述分布式存储服务器通过系统日志判断出客户端写入的数据正常时,所述客户端可以正常写入所述分布式存储服务器。此外,还能够将在写入过程中产生的相关元数据信息一并写入所述分布式存储服务器。
本实施例中,通过所述分布式存储服务器自行对系统日志进行判断,避免了人工只能在所述分布式存储服务器出现故障才能判断的弊端,通过在发现写入过程中出现异常时,立即停止所述客户端的写入,避免了所述分布式存储服务器出现异常的可能。
进一步地,参照图4,基于本发明分布式文件系统的写入方法第三实施例,在本发明分布式文件系统的写入方法第四实施例中,上述所述分布式存储服务器中止所述客户端写入并发送异常信息之后,还包括:
步骤S90,所述客户端接收所述异常信息,并向所述元数据服务器发起删除元数据请求。
本实施例中,所述客户端在接收到所述分布式存储服务器发出的异常信息时,证明所述元数据服务器对应的元数据信息是错误的。因为所述客户端写入所述分布式存储服务器的数据是由元数据服务器中的元数据信息经过处理后按预设规则写入的,因此在之前的数据处理和规则写入无误的情况下,出现错误能够判断出是所述元数据服务器内的元数据信息有误。因此,所述客户端向所述元数据服务器发起删除元数据请求,以删除对应的错误的元数据信息。
请参照图5至图7,本发明还提供一种分布式文件系统的写入装置,包括:客户端100,所述客户端100包括第一请求模块110、第一接收模块120、第二请求模块130、第二接收模块140、处理模块150及写入模块160,其中:
所述第一请求模块110,用于向分布式存储服务器发起文件挂载的请求;
在用户需要向所述分布式存储服务器200进行写入时,通过所述第一请求模块110发起文件挂载的请求。
所述第一接收模块120,用于接收所述分布式存储服务器200根据所述文件挂载的请求发回的写入请求;
所述第二请求模块130,用于向所述元数据服务器300发起元数据请求;
所述第二接收模块140,用于接收所述元数据服务器300根据所述元数据请求发回的元数据信息;
所述处理模块150,用于对所述元数据信息进行处理;
所述写入模块160,用于将处理后的所述元数据信息按预设规则写入所述分布式存储服务器200。
其中,所述处理模块150包括分片单元151和冗余单元152中的至少一张,其中:所述分片单元151,用于将所述元数据信息进行数据的分片处理;所述冗余单元152,用于将所述元数据信息进行数据的冗余处理。
本发明通过客户端100分别与所述分布式存储服务器200和所述元数据服务器300进行通信,并能够由所述客户端100独立地对所述分布式存储服务器200进行写入,省去了写入所述分布式存储服务器200的中间环节,提高了分布式文件系统的写入效率。
进一步地,参照图8,基于本发明分布式文件系统的写入装置的第一实施例,在本发明分布式文件系统的写入装置第二实施例中,上述分布式存储服务器200还包括记录模块210和存储模块220,其中:
所述记录模块210,用于记录所述分布式存储服务器200的日志信息;
在所述客户端100接收到所述分布式存储服务器200根据所述文件挂载的请求发回的写入请求的同时,即客户端100可以随时对所述分布式存储服务器200进行写入操作的同时,所述分布式存储服务器200开始对所述客户端100对所述分布式存储服务器200的每个写入动作进行记录,作为一个监控写入过程的证据。
所述存储模块220,用于存储根据所述日志信息生成的系统日志至内存。
所述分布式存储服务器200将记录得出的日志信息进行数据的处理、转换、封装等操作后生成系统日志,并将所述系统日志存入内存中。
本实施例中,通过对客户端100向所述分布式存储服务器200的写入变化过程进行记录得出日志信息,再根据所述日志信息生成系统日志,在所述分布式存储服务器200出现故障时能够查看所述系统日志,找出写入过程中造成故障的原因,为维护所述分布式存储服务器200提供便利。例如,在客户端100对所述分布式服务器200进行写入操作之后,所述分布式存储服务器200出现故障时,维护人员能够查看系统日志,并将写入过程中的错误数据进行删除以使所述分布式存储服务器200继续正常工作。
进一步地,参照图9,基于本发明分布式文件系统的写入装置的第一实施例,在本发明分布式文件系统的写入装置第三实施例中,上述分布式存储服务器200还包括判断模块230、中止模块240和第三请求模块250,其中:
所述判断模块230,用于根据所述系统日志判断写入过程中是否出现异常;
本实施例中,所述分布式存储服务器不仅仅只是记录所述系统日志,还包括对记录的所述系统日志进行是否异常的判断功能。例如;所述判断功能为开发人员预设的判断程序,并在写入过程中客户端写入的元数据信息必须获得所述判断程序的授权才能够写入所述分布式存储服务器,这种方式就必须基于特定的已被授权的元数据来进行,保证了所述分布式存储服务器内部数据的一致性。
所述中止模块240,用于在写入过程中出现异常时中止所述客户端写入;
所述第三请求模块250,用于在写入过程中出现异常时发送异常信息;
在所述分布式存储服务器200通过系统日志判断出客户端100写入的数据异常时,立即中止所述客户端100的写入,并向所述客户端100发出异常信息。
所述客户端100的所述写入模块160,还用于将写入过程中产生的相关元数据信息一并写入至所述分布式存储服务器200。
在所述分布式存储服务器200通过系统日志判断出客户端100写入的数据正常时,所述客户端100可以正常写入所述分布式存储服务器200。此外,还能够将在写入过程中产生的相关元数据信息一并写入所述分布式存储服务器200。
本实施例中,通过所述分布式存储服务器200自行对系统日志进行判断,避免了人工只能在所述分布式存储服务器200出现故障才能判断的弊端,通过在发现写入过程中出现异常时,立即停止所述客户端100的写入,避免了所述分布式存储服务器200出现异常的可能。
进一步地,参照图10,基于本发明分布式文件系统的写入装置第三实施例,在本发明分布式文件系统的写入装置第四实施例中,上述客户端100还包括:第三接收模块170和第四请求模块180,
所述第三接收模块170,用于接收所述异常信息;
所述第四请求模块180,用于向所述元数据服务器300发起删除元数据请求。
本实施例中,所述客户端100在接收到所述分布式存储服务器200发出的异常信息时,证明所述元数据服务器300对应的元数据信息是错误的。因为所述客户端100写入所述分布式存储服务器200的数据是由元数据服务器300中的元数据信息经过处理后按预设规则写入的,因此在之前的数据处理和规则写入无误的情况下,出现错误能够判断出是所述元数据服务器300内的元数据信息有误。因此,所述客户端100向所述元数据服务器300发起删除元数据请求,以删除对应的错误的元数据信息。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。