一种文件切片上传方法、装置及云存储系统与流程

文档序号:14071029阅读:314来源:国知局

本发明涉及计算机和互联网数据处理技术领域,特别是涉及一种文件切片上传方法、装置及云存储系统。



背景技术:

随着互联网网速的不断提升及移动互联网、智能终端的快速普及,使得云存储系统已成为当前互联网发展的趋势。从应用架构上看,云存储系统与传统分布式存储系统差异并不明显,更本质的区别体现在内部软件架构上,云存储系统以大量的服务器和存储设备为基础,构建一个大规模存储集群,提供存储容量,并能够在线进行容量的扩充,由此搭建大容量存储系统整体成本远低于传统存储架构。随着移动用户数量的增加,云存储系统的数据量也越来越大,因此,云存储系统的文件上传技术俨然成为云存储系统发展的新的挑战。

客户端将文件上传至服务器或相应的存储设备进行存储。现有的文件上传技术中,在文件上传时,会占用大量的资源,如服务器的cpu(centralprocessingunit,中央处理单元)、端口、流量、内存以及磁盘i/o(input/output,输入/输出端口)等,一旦服务器的负载过大,则很容易造成文件在上传时产生过大的时延或者丢包,从而导致文件上传失败;同时,网络环境恶劣,也是导致文件上传失败的重要因素。



技术实现要素:

本发明实施例的目的在于提供一种文件切片上传方法、装置及云存储系统,以实现服务器负载过大或出现恶劣的网络环境时,文件可以正常上传。具体技术方案如下:

第一方面,本发明实施例提供了一种文件切片上传方法,应用于云存储系统中的元数据服务器,所述云存储系统还包括多个切片服务器及多个对象存储设备,所述方法包括:

接收由客户端发送的待上传的目标文件的分配请求,其中,所述分配请求中携带:所述目标文件的文件标识符、及申请可用的切片服务器和可用的对象存储设备的标识信号;

根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备,其中,所述第一切片文件为对所述目标文件的切片文件执行原始数据计算法所得到的切片文件。

可选的,所述接收由客户端发送的待上传的目标文件的分配请求的步骤之前,所述方法还包括:

接收由所述客户端发送的所述目标文件的初始化请求;

生成初始标识符,并发送所述初始标识符至所述客户端,以使所述客户端将所接收到的所述初始标识符作为所述目标文件的文件标识符。

可选的,所述确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备的步骤之后,所述方法还包括:

将所述可用的对象存储设备的对象标识符发送至所述可用的切片服务器;

相应地,所述发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备的步骤,包括:

发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器基于所接收到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备的步骤,包括:

发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器向所述元数据服务器请求所述可用的对象存储设备的对象标识符,并基于请求得到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器,包括:

获取所述多个切片服务器的负载值,其中,所述负载值为中央处理单元的使用率、内存的使用率和输入/输出设备的使用率中的至少一种;

判断所述多个切片服务器中是否存在第一切片服务器,其中,所述第一切片服务器的负载值小于预设第一负载阈值;

如果是,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

如果否,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器,包括:

采用轮转法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

采用随机法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器,包括:

采用轮转法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

采用随机法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备,包括:

获取所述可用的切片服务器的网络协议ip地址及所述多个对象存储设备的ip地址;

判断所述多个对象存储设备中是否存在第一对象存储设备,其中,所述第一对象存储设备的ip地址与所述可用的切片服务器的ip地址相同;

如果是,确定所述第一对象存储设备为可用的对象存储设备;

如果否,基于所述多个对象存储设备当前的负载信息,从所述多个对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述基于所述多个对象存储设备当前的负载信息,从所述多个对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备,包括:

获取所述多个对象存储设备的负载值;

判断所述多个对象存储设备中是否存在第二对象存储设备,其中,所述第二对象存储设备的负载值小于预设第二负载阈值;

如果是,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

如果否,获取所述多个对象存储设备的分配次数;

判断所述多个对象存储设备中是否存在第三对象存储设备,其中,所述第三对象存储设备的分配次数大于预设分配次数阈值;

如果是,从所述第三对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备,包括:

采用轮转法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

或者,

采用随机法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述原始数据计算法为纠删码ec算法。

可选的,所述发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备的步骤之后,所述方法还包括:

存储由所述可用的切片服务器发送的第一元数据至元数据表,其中,所述第一元数据为所述第一切片文件的元数据,所述元数据包括磁盘序列号,所述磁盘序列号为存储所述第一切片文件的磁盘的序列号,所述磁盘由所述可用的对象存储设备根据所述第一切片文件的内存大小确定。

可选的,所述文件切片上传方法还包括:

在所述第一元数据存储成功后,发送所述第一元数据所对应的存储成功指令至所述可用的切片服务器,以使所述可用的切片服务器在接收到各个第一切片文件的第一元数据的存储成功指令后,发送所述目标文件的上传结束指令至所述客户端;

接收所述客户端发送的所述目标文件的聚合请求,其中,所述聚合请求中携带:所述目标文件的文件标识符及请求聚合所述第一元数据的标识信号,所述聚合请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;

基于所述目标文件的文件标识符,聚合所述元数据表中的所述目标文件对应的第一元数据。

可选的,所述文件切片上传方法还包括:

接收所述客户端发送的终止请求,其中,所述终止请求中携带:所述目标文件的文件标识符及请求终止切片文件上传的标识信号,所述终止请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;

在判断出聚合完毕所述元数据表中所述目标文件对应的第一元数据后,删除所述文件标识符。

第二方面,本发明实施例还提供了一种文件切片上传装置,应用于云存储系统中的元数据服务器,所述云存储系统还包括多个切片服务器及多个对象存储设备,所述装置包括:

第一接收模块,用于接收由客户端发送的待上传的目标文件的分配请求,其中,所述分配请求中携带:所述目标文件的文件标识符、及申请可用的切片服务器和可用的对象存储设备的标识信号;

第一确定模块,用于根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

第二确定模块,用于根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

第一发送模块,用于发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备,其中,所述第一切片文件为对所述目标文件的切片文件执行原始数据计算法所得到的切片文件。

第三方面,本发明实施例还提供了一种云存储系统,所述系统包括元数据服务器、多个切片服务器及多个对象存储设备;

所述元数据服务器用于:接收由客户端发送的待上传的目标文件的分配请求,其中,所述分配请求中携带:所述目标文件的文件标识符、及申请可用的切片服务器和可用的对象存储设备的标识信号;根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器;

所述切片服务器用于:采集并发送所述切片服务器当前的负载信息以及与自身对应的对象存储设备当前的负载信息至所述元数据服务器;当接收到所述客户端发送的所述目标文件的切片文件时,存储所述目标文件的第一切片文件至所述可用的对象存储设备,其中,所述第一切片文件为对所述目标文件的切片文件执行原始数据计算法所得到的切片文件。本发明实施例提供的文件切片上传方法、装置及云存储系统,可以通过元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;并且通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;且在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件。

附图说明

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

图1为本发明实施例的文件切片上传方法的第一种流程图;

图2为本发明实施例的文件切片上传方法的第二种流程图;

图3为本发明实施例的文件切片上传方法的第三种流程图;

图4为本发明实施例的文件切片上传方法的第四种流程图;

图5为本发明实施例的文件切片上传方法的第五种流程图;

图6为本发明实施例的文件切片上传装置的第一种结构示意图;

图7为本发明实施例的文件切片上传装置的第二种结构示意图;

图8为本发明实施例的文件切片上传装置的第三种结构示意图;

图9为本发明实施例的文件切片上传装置的第四种结构示意图;

图10为本发明实施例的文件切片上传装置的第五种结构示意图;

图11为本发明实施例的云存储系统的结构示意图。

具体实施方式

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

为了保证在服务器负载过大或出现恶劣的网络环境时,文件可以正常上传,本发明实施例提供了一种文件切片上传方法、装置及云存储系统。

下面首先对本发明实施例所提供的文件切片上传方法进行介绍。

需要说明的是,本发明实施例所提供的一种文件切片上传方法的执行主体为云存储系统中的元数据服务器。其中,实现本实施例所提供的一种文件切片上传方法的功能软件为设置于元数据服务器的软件。

如图1所示,本发明实施例所提供的一种文件切片上传方法,可以包括如下步骤:

s101,接收由客户端发送的待上传的目标文件的分配请求。

需要说明的是,客户端在上传目标文件之前,需要向元数据服务器发送分配请求,用于申请可用的切片服务器和可用的对象存储设备;并且由于在同一时刻,客户端可能针对多个目标文件同时发送多个分配请求,为了保证元数据服务器分配的切片服务器和对象存储设备与目标文件相对应,分配请求中需携带目标文件的文件标识符;分配请求可以为http(hypertransferprotocol,超文本传输协议)报文,元数据服务器以httprestapi(hypertransferprotocolrepresentationalstatetransferapplicationprogramminginterface,超文本传输协议表述性状态转移应用程序编程接口)的形式对客户端提供服务。其中,客户端可以为台式电脑或者手机上专门的客户端软件,也可以为台式电脑或者手机上的浏览器软件等等,这都是合理的。

并且,可以理解的是,该文件标识符为在服务器中能够唯一确定出该目标文件的标识信息,例如:目标文件的名称,或者元数据服务器为目标文件分配的编号,等等。

需要强调的是,云存储系统中,元数据服务器用于对业务应用及存储系统元数据统一管理,切片服务器用于数据计算,对象存储设备用于存储文件。待上传的目标文件可以是视频文件、图片文件或者语音文件,等等。

s102,根据切片服务器当前的负载信息,确定具有文件标识符的目标文件所对应的可用的切片服务器。

其中,为了消除服务器负载过大对文件上传的影响,需要获得切片服务器的负载信息;切片服务器采集并发送切片服务器当前的负载信息以及与自身对应的对象存储设备当前的负载信息至元数据服务器;元数据服务器接收该负载信息。切片服务器的负载信息可以为切片服务器的负载大小,或者为切片服务器的负载占有比例,当然并不局限于此。

需要说明的是,云存储系统中包括有多个切片服务器,根据每个切片服务器的负载信息。元数据服务器根据各个切片服务器当前的负载信息,从所有的切片服务器中,采用不同的选择方法对多个切片服务器进行选择;选择方法可以为轮转法,或者随机法,等等,选择出可用的切片服务器。

可以理解的是,所述的根据切片服务器当前的负载信息,确定具有文件标识符的目标文件所对应的可用的切片服务器的步骤的具体实现方式存在多种。为了方案布局清楚,所述的根据切片服务器当前的负载信息,确定具有文件标识符的目标文件所对应的可用的切片服务器的步骤的具体实现方式后续进行介绍。

s103,根据可用的切片服务器及对象存储设备当前的负载信息,确定具有文件标识符的目标文件所对应的可用的对象存储设备。

其中,为了保证文件正常上传,在确定出可用的切片服务器后,由于存储文件的设备为对象存储设备,且对象存储设备与切片服务器具有对应性,因此,可以根据可用的切片服务器及对象存储设备当前的负载信息,来确定具有文件标识符的目标文件所对应的可用的对象存储设备。其中,对象存储设备的负载信息为对象存储设备的负载大小,或者为对象存储设备的负载占有比例,当然并不局限于此。

需要强调的是,云存储系统中包括多个对象存储设备,并且,对象存储设备可以与切片服务器具有对应性,所谓的对应性具体指:对象存储设备可以设置于切片服务器内,或者,对象存储设备关联到切片服务器,等等。其中,如果对象存储设备设置于切片服务器内,此时对象存储设备与切片服务器具有相同的ip(internetprotocol,网络协议)地址,且负载信息相同。

可以理解的是,所述的根据可用的切片服务器及对象存储设备当前的负载信息,确定具有文件标识符的目标文件所对应的可用的对象存储设备的步骤的具体实现方式存在多种。为了方案布局清楚,所述的根据可用的切片服务器及对象存储设备当前的负载信息,确定具有文件标识符的目标文件所对应的可用的对象存储设备的步骤在后续进行举例介绍。

s104,发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器将目标文件的第一切片文件存储至可用的对象存储设备。

其中,元数据服务器在确定可用的切片服务器后,得到可用的切片服务器的设备标识符,元数据服务器将该设备标识符发送给客户端,客户端在接收到该设备标识符之后,能够确定向哪些可用的切片服务器发送目标文件;客户端在发送目标文件的过程中,根据预设的切片策略对目标文件进行切片,然后将切片后的切片文件上传至切片服务器;切片服务器在接收到切片文件后,对切片文件进行原始数据计算法的计算,得到第一切片文件,以保证第一切片文件可以恢复原始的目标文件,然后将第一切片文件发送至可用的对象存储设备;可用的对象存储设备在接收到第一切片文件后,根据预设的磁盘选择方法,将第一切片文件存储至不同的磁盘中。

需要说明的是,设备标识符为在服务器和客户端中能够唯一确定出可用的切片服务器的标识信息,例如:可用的切片服务器的ip地址,或者元数据服务器为可用的切片服务器分配的编号,等等。目标文件的切片方法及磁盘的选择方法属于现有技术,这里不再一一赘述。

应用本发明实施例,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;并且通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;且在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件。

如图2所示,本发明实施例所提供的一种文件切片上传方法,在接收由客户端发送的待上传的目标文件的分配请求的步骤之前,还可以包括如下步骤:

s201,接收由客户端发送的目标文件的初始化请求。

需要说明的是,客户端在发送分配请求、上传目标文件之前,可以向元数据服务器发送初始化请求,用于申请元数据服务器进行目标文件上传前的初始化操作;初始化操作包括:存储目标文件的基本信息、创建目标文件的版本信息及创建目标文件的初始标识符;目标文件的基本信息可以是目标文件的属性信息,或者是目标文件的描述信息;初始化请求可以为http报文。

s202,生成初始标识符,并发送初始标识符至客户端,以使该客户端将所接收到的初始标识符作为目标文件的文件标识符。

其中,元数据服务器在创建完目标文件的初始标识符后,将该初始标识符发送给客户端;客户端在接收到该初始标识符后,将该初始标识符作为目标文件的文件标识符,用于在后续的申请分配、上传切片文件的步骤中,携带着该文件标识符,以避免出现元数据服务器分配不对应的切片服务器或对象存储设备的情况出现。

需要说明的是,客户端在接收到初始标识符时,表示元数据服务器的初始化操作完成,即元数据服务器已存储目标文件的基本信息、已创建目标文件的版本信息和目标文件的初始标识符。元数据服务器存储目标文件的基本信息用于在后续的步骤中快速的索引目标文件对应的切片文件的元数据;目标文件的版本信息在创建后发送给切片服务器,用于切片服务器在进行数据计算时使用。

应用本实施例,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件;并且在客户端发送分配请求之前,先申请初始化,元数据服务器对应于目标文件生产初始标识符,并将该初始标识符发送给客户端作为目标文件的文件标识符,能够避免出现元数据服务器分配不对应的切片服务器或对象存储设备的情况出现,且由元数据服务器统一编号使得文件标识符更为简便、占内存小。

可选的,在一种具体实现方式中,为了使切片服务器发送第一切片文件至可用的对象存储设备,本发明实施例的一种文件切片上传方法在确定具有文件标识符的目标文件所对应的可用的对象存储设备的步骤之后,还可以包括:

将可用的对象存储设备的对象标识符发送至可用的切片服务器。

相应地,发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器将目标文件的第一切片文件存储至可用的对象存储设备的步骤,包括:

发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器基于所接收到的对象标识符,将目标文件的第一切片文件存储至可用的对象存储设备。

其中,元数据服务器在分配确定可用的对象存储设备后,得到可用的对象存储设备的对象标识符,元数据服务器将该对象标识符发送给可用的切片服务器,可用的切片服务器在接收到该对象标识符之后,能够确定哪些可用的对象存储设备可以存储第一切片文件;可用的对象存储设备在接收到第一切片文件后,根据预设的磁盘选择方法,将第一切片文件存储至不同的磁盘中。

需要说明的是,对象标识符为在服务器和存储设备中能够唯一确定出可用的对象存储设备的标识信息,例如:可用的对象存储设备的ip地址,或者元数据服务器为可用的对象存储设备分配的编号,等等。

应用本实施例,元数据服务器在确定可用的对象存储设备时,将可用的对象存储设备的对象标识符发送给可用的切片服务器,以使可用的切片服务器向可用的对象存储设备发送目标文件对应的第一切片文件,保证文件上传的准确性。

可选的,在一种具体实现方式中,除了元数据服务器向可用的切片服务器发送可用的对象存储设备的对象标识符之外,还可以是可用的切片服务器在接收到切片文件后向元数据服务器请求可用的对象存储设备的对象标识符。对于该种实现方式而言,所述发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器将目标文件的第一切片文件存储至所述可用的对象存储设备的步骤,可以包括:

发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器向元数据服务器请求可用的对象存储设备的对象标识符,并基于请求得到的对象标识符,将目标文件的第一切片文件存储至可用的对象存储设备。

需要说明的是,对象标识符为在服务器和存储设备中能够唯一确定出可用的对象存储设备的标识信息,例如:可用的对象存储设备的ip地址,或者元数据服务器为可用的对象存储设备分配的编号,等等。

应用本实施例,元数据服务器在确定可用的对象存储设备时,将可用的对象存储设备的对象标识进行存储或生成,可用的切片服务器在进行完切片文件的计算得到第一切片文件之后向元数据服务器申请存储第一切片文件,元数据服务器再将该对象标识符发送给可用的切片服务器,以使可用的切片服务器向可用的对象存储设备发送目标文件对应的第一切片文件,保证文件上传的准确性。

可选的,在一种具体实现方式中,为了确定可用的切片服务器,合理地进行切片服务器的分配,所述根据切片服务器当前的负载信息,确定具有文件标识符的目标文件所对应的可用的切片服务器,可以包括:

获取多个切片服务器的负载值,其中,负载值为中央处理单元的使用率、内存的使用率和输入/输出设备的使用率中的至少一种;

判断多个切片服务器中是否存在第一切片服务器,其中,第一切片服务器的负载值小于预设第一负载阈值;

如果是,从第一切片服务器中,确定具有文件标识符的目标文件所对应的可用的切片服务器;

如果否,从多个切片服务器中,确定具有文件标识符的目标文件所对应的可用的切片服务器。

其中,预设第一负载阈值根据切片服务器的实际负载情况进行设定,如果切片服务器的负载值小于预设第一负载阈值,说明向该切片服务器发送目标文件的切片文件的成功率较大,则可以向该切片服务器发送切片文件;如果切片服务器的负载值大于预设第一负载阈值,说明该切片服务器的负载已经过大,不宜向该切片服务器发送切片文件。

需要说明的是,在确定具有文件标识符的目标文件所对应的可用的切片服务器时,在多个切片服务器或多个第一切片服务器中,均可以采用随机法,或者轮转法,或者其他选择方法进行选择。

可选的,在一种具体实现方式中,为了确定可用的对象存储设备,合理地进行对象存储设备的分配,所述根据可用的切片服务器及对象存储设备当前的负载信息,确定具有文件标识符的目标文件所对应的可用的对象存储设备,可以包括:

获取可用的切片服务器的网络协议ip地址及多个对象存储设备的ip地址;

判断多个对象存储设备中是否存在第一对象存储设备,其中,第一对象存储设备的ip地址与可用的切片服务器的ip地址相同;

如果是,确定第一对象存储设备为可用的对象存储设备;

如果否,基于多个对象存储设备当前的负载信息,从多个对象存储设备中,确定具有文件标识符的目标文件所对应的可用的对象存储设备。

其中,如果多个对象存储设备中存在ip地址与可用的切片服务器的ip地址相同的对象存储设备,说明该对象存储设备的负载信息与可用的切片服务器的负载信息相同,可以直接确定该对象存储设备为可用的对象存储设备,简化了对象存储设备再进行负载信息判断的过程;如果多个对象存储设备中不存在ip地址与可用的切片服务器的ip地址相同的对象存储设备,则需要进行对象存储设备的负载信息判断,然后确定可用的对象存储设备。

可选的,在一种具体实现方式中,在多个对象存储设备中不存在ip地址与可用的切片服务器的ip地址相同的对象存储设备时,为了确定可用的对象存储设备,合理地进行对象存储设备的分配,所述基于多个对象存储设备当前的负载信息,从多个对象存储设备中,确定具有文件标识符的目标文件所对应的可用的对象存储设备,可以包括:

获取多个对象存储设备的负载值;

判断多个对象存储设备中是否存在第二对象存储设备,其中,第二对象存储设备的负载值小于预设第二负载阈值;

如果是,从第二对象存储设备中,确定具有文件标识符的目标文件所对应的可用的对象存储设备;

如果否,获取多个对象存储设备的分配次数;

判断多个对象存储设备中是否存在第三对象存储设备,其中,第三对象存储设备的分配次数大于预设分配次数阈值;

如果是,从第三对象存储设备中,确定具有文件标识符的目标文件所对应的可用的对象存储设备。

其中,预设第二负载阈值根据对象存储设备的实际负载情况进行设定,如果对象存储设备的负载值小于预设第二负载阈值,说明向该对象存储设备发送目标文件的第一切片文件的成功率较大,则可以向该对象存储设备发送第一切片文件;如果对象存储设备的负载值大于预设第二负载阈值,则可以根据对象存储设备的分配次数进行分配,预设分配次数阈值可根据历史数据进行设定,已分配次数越大,说明该对象存储设备存储目标文件的第一切片文件的可靠性越高,则可以选择该对象存储设备作为可用的对象存储设备存储目标文件的第一切片文件。

需要说明的是,在确定具有文件标识符的目标文件所对应的可用的对象存储设备时,在第二对象存储设备或者第三对象存储设备中,可以采用随机法,或者轮转法,或者其他选择方法进行选择。

可选的,在一种具体实现方式中,为了在目标文件的切片文件丢失时,能够恢复原始目标文件,从而保证文件存储的可靠性,所述原始数据计算法为ec(erasurecode,纠删码)算法。

其中,ec算法的具体原理为,将n份原始切片文件,增加m份校验文件,并能通过n+m份中的任意n份文件,还原为原始切片文件。ec算法包含了编码和解码两个过程,将原始的n份切片文件变为n+m份文件是编码,n+m份文件可分散存放在可用的切片文件的不同位置,如果有任意小于m份的文件失效,仍然能通过剩下的数据还原出来,还原的过程为解码。ec算法的具体过程属于现有技术,这里不再赘述。

需要说明的是,通过ec算法,只保留原始切片文件和校验文件,当切片文件丢失时可以通过ec算法恢复原始切片文件,在保证切片文件存储的可靠性的同时较少存储资源及存储成本。

如图3所示,本发明实施例所提供的一种文件切片上传方法,在发送可用的切片服务器的设备标识符至客户端,以使客户端基于设备标识符,发送目标文件的切片文件至可用的切片服务器,从而使得可用的切片服务器将目标文件的第一切片文件存储至可用的对象存储设备的步骤之后,还可以包括:

s105,存储由可用的切片服务器发送的第一元数据至元数据表。

其中,第一元数据为第一切片文件的元数据;元数据为数据的数据,即能够映射文件的索引信息、属性信息或者描述信息等,本发明实施例中,元数据包括磁盘序列号,磁盘序列号为存储第一切片文件的磁盘的序列号,磁盘由可用的对象存储设备根据第一切片文件的内存大小确定。

需要说明的是,元数据服务器中的元数据表用于记录第一切片文件存储于可用的对象存储设备的信息,包括第一切片文件的切片文件标识符及磁盘序列号,在需要调用目标文件时,只需要向元数据服务器申请,便可根据切片文件标识符及磁盘序列号索引到可用的对象存储设备中存储的第一切片文件,通过索引进行调用。

应用本实施例,元数据服务器将第一元数据存储至元数据表,便于后续目标文件的聚合、调用。

如图4所示,本发明实施例所提供的一种文件切片上传方法,存储由可用的切片服务器发送的第一元数据至元数据表之后,还可以包括如下步骤:

s106,发送第一元数据所对应的存储成功指令至可用的切片服务器,以使可用的切片服务器在接收到各个第一切片文件的第一元数据的存储成功指令后,发送目标文件的上传结束指令至客户端。

其中,存储成功指令可以为第一元数据存储成功状态信息,或者为表示存储成功的任何指令信号。第一元数据存储成功后,说明目标文件已上传结束,应将上传结束指令发送至客户端,以使客户端执行后续步骤;上传完成指令可以为目标文件已完成上传的状态信息,或者为表示已完成上传的任何指令信号。

s107,接收客户端发送的目标文件的聚合请求。

其中,客户端在接收到上传完成指令之后,需要向元数据服务器发送聚合请求,用于申请聚合文件标识符所对应的目标文件的第一元数据;并且由于在同一时刻,客户端可能针对多个目标文件同时发送多个聚合请求,为了保证元数据服务器聚合的第一元数据与目标文件相对应,聚合请求中需携带目标文件的文件标识符;聚合请求可以为http报文。

s108,基于目标文件的文件标识符,聚合元数据表中的目标文件对应的第一元数据。

其中,聚合元数据表中的目标文件对应的第一元数据,可以为将第一元数据存储至数据表中相邻的表项,也可以为将第一元数据存储在数据表中的表项进行绑定,这都是合理的。

应用本实施例,通过元数据服务器对第一切片文件的元数据信息进行聚合,在调用文件时,提高文件调用的速度。

如图5所示,本发明实施例所提供的一种文件切片上传方法,还可以包括:

s109,接收客户端发送的终止请求。

其中,客户端在接收到上传完成指令之后,需要向元数据服务器发送终止请求,用于申请元数据释放剩余空间;并且由于在同一时刻,客户端可能针对多个目标文件同时发送多个终止请求,为了保证元数据服务器删除的信息与目标文件相对应,终止请求中需携带目标文件的文件标识符;终止请求可以为http报文。

s110,判断目标文件对应的第一元数据是否聚合完毕。如果是,则执行s111;否则等待直至聚合完毕。

s111,删除目标文件的文件标识符。

需要说明的是,释放元数据服务器的剩余空间,除了删除目标文件的文件标识符之外,还应删除目标文件的基本信息。

应用本实施例,在完成目标文件的上传之后,有效释放元数据服务器的剩余空间,避免元数据服务器的空间浪费。

下面结合具体的应用实例,对本发明实施例所提供的文件切片上传方法进行介绍。

假设客户端为台式电脑上的浏览器软件,文件切片上传过程如下:

用户通过台式电脑上的浏览器选择视频文件a进行上传,在点击上传按键时,元数据服务器检测到上传指令,即相当于获得了初始化请求,进而元数据服务器分配初始标识符0001作为视频文件a的文件标识符,然后将文件标识符0001发送给浏览器。

浏览器在接收到文件标识符0001时,即相当于获得了初始化完成标志,则发送分配请求给元数据服务器,元数据服务器在接收到分配请求时,根据切片服务器及对象存储设备的负载信息,分配切片服务器1、切片服务器2、切片服务器3及对象存储设备1、对象存储设备2、对象存储设备3,用于视频文件a的上传与存储,其中,假设切片服务器1的ip地址为168.1.1.1、切片服务器2的ip地址为202.1.1.1、切片服务器3的ip地址为155.1.1,对象存储设备1的ip地址为168.1.1.1、对象存储设备2的ip地址为202.1.1.26、对象存储设备3的ip地址为155.1.1.125;元数据服务器将切片服务器1、切片服务器2及切片服务器3的ip地址发送给浏览器,将对象存储设备1、对象存储设备2及对象存储设备3的ip地址发送给切片服务器。

浏览器在接收到切片服务器1、切片服务器2及切片服务器3的ip地址时,开始上传视频文件a,在上传的过程中,按照分片方法对视频文件a进行分片,得到分片文件a1、分片文件a2及分片文件a3,并分别上传分片文件a1、分片文件a2、分片文件a3至切片服务器1、切片服务器2、切片服务器3,切片服务器1、切片服务器2及切片服务器3分别将接收到的分片文件存储至条带缓存,并进行ec计算,分别得到切片文件b1、切片文件b2及切片文件b3;然后,切片服务器1、切片服务器2、切片服务器3分别将切片文件b1、切片文件b2、切片文件b3发送至对象存储设备1、对象存储设备2、对象存储设备3,对象存储设备1、对象存储设备2、对象存储设备3选择适当的磁盘对切片文件b1、切片文件b2、切片文件b3进行存储,并将磁盘序列号返回至切片服务器;切片服务器将分片文件a1、分片文件a2、分片文件a3及相应的磁盘序列号发送至元数据服务器,进而存储至元数据表;存储完成后,元数据服务器发送存储完成指令至切片服务器,切片服务器进而向台式电脑的浏览器发送上传结果。

与现有技术相比,本方案中,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;并且通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;且在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件。

相应于上述方法实施例,本发明实施例提供了一种文件切片上传装置,如图6所述,所述装置可以包括:

第一接收模块610,用于接收由客户端发送的待上传的目标文件的分配请求,其中,所述分配请求中携带:所述目标文件的文件标识符、及申请可用的切片服务器和可用的对象存储设备的标识信号;

第一确定模块620,用于根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

第二确定模块630,用于根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

第一发送模块640,用于发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备,其中,所述第一切片文件为对所述目标文件的切片文件执行原始数据计算法所得到的切片文件。

应用本发明实施例,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;并且通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;且在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件。

更进一步的,在包含第一接收模块610、第一确定模块620、第二确定模块630、第一发送模块640的基础上,如图7所示,本发明实施例所提供的一种文件切片上传装置还可以包括:

第二接收模块650,用于接收由所述客户端发送的所述目标文件的初始化请求;

第二发送模块660,用于生成初始标识符,并发送所述初始标识符至所述客户端,以使所述客户端将所接收到的所述初始标识符作为所述目标文件的文件标识符。

应用本实施例,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件;并且在客户端发送分配请求之前,先申请初始化,元数据服务器对应于目标文件生产初始标识符,并将该初始标识符发送给客户端作为目标文件的文件标识符,能够避免出现元数据分配不对应的切片服务器或对象存储设备的情况出现,且由元数据服务器统一编号使得文件标识符更为简便、占内存小。

可选的,为了使切片服务器发送第一切片文件至可用的对象存储设备,本发明实施例的一种文件切片上传装置还可以包括:

第三发送模块,用于所述第二确定模块630确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备之后,将所述可用的对象存储设备的对象标识符发送至所述可用的切片服务器;

相应地,所述第一发送模块640,具体用于发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器基于所接收到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述第一发送模块640,具体用于发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器向所述元数据服务器请求所述可用的对象存储设备的对象标识符,并基于请求得到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述第一确定模块620,可以包括:

第一获取子模块,用于获取所述多个切片服务器的负载值,其中,所述负载值为中央处理单元的使用率、内存的使用率和输入/输出设备的使用率中的至少一种;

第一判断子模块,用于判断所述多个切片服务器中是否存在第一切片服务器,其中,所述第一切片服务器的负载值小于预设第一负载阈值;

第一确定子模块,用于判断如果第一判断子模块的输出为是,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

第二确定子模块,用于判断如果第一判断子模块的输出为否,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述第一确定子模块,可以包括:

第一确定单元,用于采用轮转法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

第二确定单元,用于采用随机法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述第二确定子模块,可以包括:

第三确定单元,用于采用轮转法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

第四确定单元,用于采用随机法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述第二确定模块630,可以包括:

第二获取子模块,用于获取所述可用的切片服务器的网络协议ip地址及所述多个对象存储设备的ip地址;

第二判断子模块,用于判断所述多个对象存储设备中是否存在第一对象存储设备,其中,所述第一对象存储设备的ip地址与所述可用的切片服务器的ip地址相同;

第三确定子模块,用于判断如果第二判断子模块的输出为是,确定所述第一对象存储设备为可用的对象存储设备;

第四确定子模块,用于判断如果第二判断子模块的输出为否,基于所述多个对象存储设备当前的负载信息,从所述多个对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述第四确定子模块,可以包括:

获取单元,用于获取所述多个对象存储设备的负载值;

第一判断单元,用于判断所述多个对象存储设备中是否存在第二对象存储设备,其中,所述第二对象存储设备的负载值小于预设第二负载阈值;

第五确定单元,用于判断如果第一判断单元的输出为是,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

第六确定单元,用于判断如果第一判断单元的输出为否,获取所述多个对象存储设备的分配次数;

第二判断单元,用于判断所述多个对象存储设备中是否存在第三对象存储设备,其中,所述第三对象存储设备的分配次数大于预设分配次数阈值;

第七确定单元,用于判断如果第二判断单元的输出为是,从所述第三对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述第五确定单元,可以包括:

第一确定子单元,用于采用轮转法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

或者,

第二确定子单元,用于采用随机法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述第一发送模块640中,所述原始数据计算法为纠删码ec算法。

更进一步的,在包含第一接收模块610、第一确定模块620、第二确定模块630、第一发送模块640的基础上,如图8所示,本发明实施例所提供的一种文件切片上传装置还可以包括:

存储模块670,用于所述第一发送模块640发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器,从而使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备之后,存储由所述可用的切片服务器发送的第一元数据至元数据表,其中,所述第一元数据为所述第一切片文件的元数据,所述元数据包括磁盘序列号,所述磁盘序列号为存储所述第一切片文件的磁盘的序列号,所述磁盘由所述可用的对象存储设备根据所述第一切片文件的内存大小确定。

更进一步的,在包含第一接收模块610、第一确定模块620、第二确定模块630、第一发送模块640、存储模块670的基础上,如图9所示,本发明实施例所提供的一种文件切片上传装置还可以包括:

第四发送模块680,用于在所述第一元数据存储成功后,发送所述第一元数据所对应的存储成功指令至所述可用的切片服务器,以使所述可用的切片服务器在接收到各个第一切片文件的第一元数据的存储成功指令后,发送所述目标文件的上传结束指令至所述客户端;

第三接收模块690,用于接收所述客户端发送的所述目标文件的聚合请求,其中,所述聚合请求中携带:所述目标文件的文件标识符及请求聚合所述第一元数据的标识信号,所述聚合请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;

聚合模块700,用于基于所述目标文件的文件标识符,聚合所述元数据表中的所述目标文件对应的第一元数据。

更进一步的,在包含第一接收模块610、第一确定模块620、第二确定模块630、第一发送模块640、存储模块670、第四发送模块680、第三接收模块690、聚合模块700的基础上,如图10所示,本发明实施例所提供的一种文件切片上传装置还可以包括:

第四接收模块710,用于接收所述客户端发送的终止请求,其中,所述终止请求中携带:所述目标文件的文件标识符及请求终止切片文件上传的标识信号,所述终止请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;

删除模块720,用于在判断出聚合完毕所述元数据表中所述目标文件对应的第一元数据后,删除所述文件标识符。

可以理解的是,本发明实施例的另一实施例中,文件切片上传装置可以同时包括:第一接收模块610、第一确定模块620、第二确定模块630、第一发送模块640、第二接收模块650、第二发送模块660、存储模块670、第四发送模块680、第三接收模块690、聚合模块700、第四接收模块710和删除模块720。

相应于上述文件切片上传方法及装置实施例,如图11所示,本发明实施例还提供一种云存储系统,所述系统包括元数据服务器1110、多个切片服务器1120及多个对象存储设备1130;

所述元数据服务器用于:接收由客户端发送的待上传的目标文件的分配请求,其中,所述分配请求中携带:所述目标文件的文件标识符、及申请可用的切片服务器和可用的对象存储设备的标识信号;根据所述切片服务器当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;根据所述可用的切片服务器及所述对象存储设备当前的负载信息,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;发送所述可用的切片服务器的设备标识符至所述客户端,以使所述客户端基于所述设备标识符,发送所述目标文件的切片文件至所述可用的切片服务器;

所述切片服务器用于:采集并发送所述切片服务器当前的负载信息以及与自身对应的对象存储设备当前的负载信息至所述元数据服务器;当接收到所述客户端发送的所述目标文件的切片文件时,存储所述目标文件的第一切片文件至所述可用的对象存储设备,其中,所述第一切片文件为对所述目标文件的切片文件执行原始数据计算法所得到的切片文件。

在本发明实施例中,元数据服务器根据切片服务器和对象存储设备的负载信息,合理分配切片服务器和对象存储设备,上传目标文件,在服务器负载过大时,通过选择合理的切片服务器和对象存储设备,有效的避免文件上传失败的情况发生;并且通过将待上传的目标文件进行切片处理,使得在网络环境恶劣时,如果发生切片文件丢失,不影响其余切片文件的上传;且在文件上传的过程中执行原始数据计算法,保证对象存储设备存储的文件为可恢复的待上传的目标文件。

可选的,所述元数据服务器还用于在所述接收由客户端发送的待上传的目标文件的分配请求的步骤之前,接收由所述客户端发送的所述目标文件的初始化请求;

生成初始标识符,并发送所述初始标识符至所述客户端,以使所述客户端将所接收到的所述初始标识符作为所述目标文件的文件标识符。

可选的,所述元数据服务器还用于在所述确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备之后,将所述可用的对象存储设备的对象标识符发送至所述可用的切片服务器;

相应地,所述切片服务器具体用于基于所接收到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述切片服务器具体用于向所述元数据服务器请求所述可用的对象存储设备的对象标识符,并基于请求得到的对象标识符,将所述目标文件的第一切片文件存储至所述可用的对象存储设备。

可选的,所述元数据服务器具体用于:

获取所述多个切片服务器的负载值,其中,所述负载值为中央处理单元的使用率、内存的使用率和输入/输出设备的使用率中的至少一种;

判断所述多个切片服务器中是否存在第一切片服务器,其中,所述第一切片服务器的负载值小于预设第一负载阈值;

如果是,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

如果否,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述元数据服务器具体用于:

采用轮转法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

采用随机法,从所述第一切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述元数据服务器具体用于:

采用轮转法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器;

或者,

采用随机法,从所述多个切片服务器中,确定具有所述文件标识符的所述目标文件所对应的可用的切片服务器。

可选的,所述元数据服务器具体用于:

获取所述可用的切片服务器的网络协议ip地址及所述多个对象存储设备的ip地址;

判断所述多个对象存储设备中是否存在第一对象存储设备,其中,所述第一对象存储设备的ip地址与所述可用的切片服务器的ip地址相同;

如果是,确定所述第一对象存储设备为可用的对象存储设备;

如果否,基于所述多个对象存储设备当前的负载信息,从所述多个对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述元数据服务器具体用于:

获取所述多个对象存储设备的负载值;

判断所述多个对象存储设备中是否存在第二对象存储设备,其中,所述第二对象存储设备的负载值小于预设第二负载阈值;

如果是,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

如果否,获取所述多个对象存储设备的分配次数;

判断所述多个对象存储设备中是否存在第三对象存储设备,其中,所述第三对象存储设备的分配次数大于预设分配次数阈值;

如果是,从所述第三对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述元数据服务器具体用于:

采用轮转法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备;

或者,

采用随机法,从所述第二对象存储设备中,确定具有所述文件标识符的所述目标文件所对应的可用的对象存储设备。

可选的,所述原始数据计算法为纠删码ec算法。

可选的,所述元数据服务器还用于在所述使得所述可用的切片服务器将所述目标文件的第一切片文件存储至所述可用的对象存储设备之后,存储由所述可用的切片服务器发送的第一元数据至元数据表,其中,所述第一元数据为所述第一切片文件的元数据,所述元数据包括磁盘序列号,所述磁盘序列号为存储所述第一切片文件的磁盘的序列号,所述磁盘由所述可用的对象存储设备根据所述第一切片文件的内存大小确定。

可选的,所述元数据服务器还用于:在所述第一元数据存储成功后,发送所述第一元数据所对应的存储成功指令至所述可用的切片服务器;接收所述客户端发送的所述目标文件的聚合请求,其中,所述聚合请求中携带:所述目标文件的文件标识符及请求聚合所述第一元数据的标识信号,所述聚合请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;基于所述目标文件的文件标识符,聚合所述元数据表中的所述目标文件对应的第一元数据;

相应地,所述切片服务器还用于在接收到各个第一切片文件的第一元数据的存储成功指令后,发送所述目标文件的上传结束指令至所述客户端。

可选的,所述元数据服务器还用于:

接收所述客户端发送的终止请求,其中,所述终止请求中携带:所述目标文件的文件标识符及请求终止切片文件上传的标识信号,所述终止请求为所述客户端在接收到所述目标文件的上传结束指令后所发送的;

在判断出聚合完毕所述元数据表中所述目标文件对应的第一元数据后,删除所述文件标识符。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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