CN107105050B - 一种业务对象的存储、下载方法及系统 - Google Patents
一种业务对象的存储、下载方法及系统 Download PDFInfo
- Publication number
- CN107105050B CN107105050B CN201710329410.4A CN201710329410A CN107105050B CN 107105050 B CN107105050 B CN 107105050B CN 201710329410 A CN201710329410 A CN 201710329410A CN 107105050 B CN107105050 B CN 107105050B
- Authority
- CN
- China
- Prior art keywords
- target
- server
- target service
- storage
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Abstract
本发明实施例提供了一种业务对象的存储、下载方法及系统,存储方法包括:目标代理服务器接收终端发送的关于目标业务对象的上传请求;目标代理服务器根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略;目标代理服务器根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中待存储目标业务对象的存储服务器;将上传请求发送至每个所确定的存储服务器;每个接收到上传请求的存储服务器分别存储目标业务对象。应用本发明实施例所提供的技术方案,实现在同一服务器集群中存储不同数量副本的存储,可以提高存储资源的利用率。
Description
技术领域
本发明涉及云存储技术领域,特别是涉及一种业务对象的存储、下载方法及系统。
背景技术
分布式存储系统是将数据分散存储在多个独立的存储服务器上,通过网络进行各个独立设备间的通信和数据传输。分布式存储系统采用可扩展的系统结构,利用多个存储服务器分担存储负荷,不但可以提高系统的可靠性、可用性和存取效率,还易于扩展。例如,分布式键值(Key-Value)系统是一种典型的分布式存储系统,目前主流的分布式键值存储系统有很多,主要有AWS的S3、OpenStack的Swift、阿里云的OSS等,以上这些分布式键值存储系统都可称为分布式对象存储系统。在分布式对象存储系统中一个Key对应存储在系统中的内容(Value)都称作为对象,一个对象可以是一张图片、一个视频文件或者音频文件、一个Word文档等等。分布式对象存储系统都提供了RESTful(Representational StateTransfer)接口来访问其内部的数据,比如上传对象使用HTTP的PUT方法、下载对象使用HTTP的GET方法等。
为了保证数据的安全性和可靠性,在部署分布式对象存储系统的服务器集群时,一般存在两种布置方式:
第一、全部采用默认的三副本策略来配置分布式对象存储集群。当用户上传数据到分布式对象存储集群上后,默认将用户的数据拷贝三份,然后写到3个不同的存储服务器上。但是,针对一些对安全性和可靠性要求不高的数据,也会在分布式对象存储系统中存储三份,这样非常浪费存储资源。
第二、不同业务对数据的安全性和可靠性的需求不同,为了可以满足不同的需求,需要同时设置不同副本的分布式对象存储集群,例如,一副本集群、三副本集群、五副本集群等等。但是,同时设置多个不同副本的分布式对象存储集群,就需要更多的服务器资源,在业务需要写入的数据量不大的情况下,非常浪费资源。
由此可见,现有的对业务对象的存储的方式中,不管是副本数量存储不合理,还是需要较多的存储服务器来实现多副本存储,都存在浪费存储资源的问题亟待解决。
发明内容
本发明实施例的目的在于提供一种业务对象的存储、下载方法及系统,以提高存储资源利用率。具体技术方案如下:
第一方面,本发明实施例提供的一种业务对象的存储方法,应用于分布式存储系统,所述分布式存储系统包括至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器,所述方法包括:
目标代理服务器接收终端发送的关于目标业务对象的上传请求;其中,所述上传请求中携带URL地址和所述目标业务对象的内容,所述URL地址中包含目标副本策略信息,所述目标代理服务器为任一服务器集群中的任一代理服务器;
所述目标代理服务器根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;
所述目标代理服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中待存储所述目标业务对象的存储服务器;将所述上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
每个接收到所述上传请求的存储服务器分别存储所述目标业务对象。
可选的,所述将所述上传请求发送至每个所确定的存储服务器的步骤,包括:
将所述上传请求及所述目标副本策略发送至每个所确定的存储服务器;
所述每个接收到所述上传请求的存储服务器分别存储所述目标业务对象的步骤,包括:
每个接收到所述上传请求及所述目标副本策略的存储服务器根据所述目标副本策略,及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储所述目标业务对象的目录,将所述目标业务对象存储到所确定的目录中。
可选的,所述分布式存储系统还包括:控制服务器;
所述方法还包括:
所述控制服务器接收所述终端发送的关于目标业务的目标业务对象的URL地址请求,其中,所述URL地址请求携带所述目标业务的标识,以及所述目标业务对象的标识;
所述控制服务器根据所述目标业务的标识,分配一个全局的ID给所述目标业务,同一业务的ID相同;
所述控制服务器根据所述目标业务的ID,判断本地是否存在所述目标业务的BUCKET,如果存在,根据所述目标业务的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址,其中,所述BUCKET中携带目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及所述目标业务的ID,其中,所述目标服务器集群为待存储所述目标业务对象的服务器集群;
所述控制服务器将所组成的URL地址发送给所述终端,以使所述终端向所述目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,所述上传请求中携带所述URL地址和所述目标业务对象的内容。
可选的,在所述控制服务器将所组成的URL地址发送给所述终端的步骤之前,还包括:
在所述控制服务器本地不存在所述目标业务的BUCKET的情况下,所述控制服务器判断本地是否存在所述目标业务的业务配置信息,如果存在,根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET;其中,所述业务配置信息至少包括:所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及BUCKET创建规则;
所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址。
可选的,在所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址的步骤之前,还包括:
在所述控制服务器本地不存在所述目标业务的业务配置信息的情况下,所述控制服务器根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和所述目标业务对应的目标副本策略信息,确定所述目标服务器集群的信息,其中,所述目标业务对应的目标副本策略信息是根据所述目标业务的业务需求确定的;
所述控制服务器根据所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成所述目标业务的业务配置信息;
所述控制服务器根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET。
可选的,所述存储方法还包括:
监测代理服务器实时监测自身所在的服务器集群中所有存储服务器的存储状态,其中,所述监测代理服务器是任一服务器集群中的任一代理服务器;
所述控制服务器在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
第二方面,本发明实施例提供的一种业务对象的下载方法,应用于分布式存储系统,所述分布式存储系统包括至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器,所述方法包括:
目标代理服务器接收终端发送的关于目标业务对象的下载请求,其中,所述下载请求中携带URL地址,所述URL地址中包含目标服务器集群的信息和目标副本策略信息,所述目标代理服务器为根据所述URL地址确定的目标服务器集群中的任一代理服务器,所述目标服务器集群为存储所述目标业务对象的服务器集群;
所述目标代理服务器根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;
所述目标代理服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中存储有所述目标业务对象的存储服务器;将所述下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
每个接收到所述下载请求的存储服务器,从各自本地读取所述目标业务对象,并返回给所述目标代理服务器;
所述目标代理服务器从接收到的至少一个所述目标业务对象中,根据预设挑选规则,确定一个所述目标业务对象返回给所述终端。
可选的,所述将所述下载请求发送至每个所确定的存储服务器的步骤,包括:
将所述下载请求及所述目标副本策略发送至每个所确定的存储服务器;
所述每个接收到所述下载请求的存储服务器,从各自本地读取所述目标业务对象,并返回给所述目标代理服务器的步骤,包括:
每个接收到所述下载请求及所述目标副本策略的存储服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中存储所述目标业务对象的目录;从所确定的目录中读取所述目标业务对象并返回给所述目标代理服务器。
第三方面,本发明实施例提供的一种业务对象的存储系统,包括:至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器;
所述服务器集群中的目标代理服务器,用于接收终端发送的关于目标业务对象的上传请求;其中,所述上传请求中携带URL地址和所述目标业务对象的内容,所述URL地址中包含目标副本策略信息,所述目标代理服务器为任一服务器集群中的任一代理服务器;根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中待存储所述目标业务对象的存储服务器;将所述上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
所述服务器集群中的存储服务器,用于在接收到所述上传请求后,存储所述目标业务对象。
可选的,所述服务器集群中的目标代理服务器,具体用于将所述上传请求及所述目标副本策略发送至每个所确定的存储服务器;
所述服务器集群中的存储服务器,具体用于在接收到所述上传请求及所述目标副本策略后,根据所述目标副本策略,及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储所述目标业务对象的目录,将所述目标业务对象存储到所确定的目录中。
可选的,所述存储系统还包括:控制服务器;
所述控制服务器,用于接收所述终端发送的关于目标业务的目标业务对象的URL地址请求,其中,所述URL地址请求携带所述目标业务的标识,以及所述目标业务对象的标识;根据所述目标业务的标识,分配一个全局的ID给所述目标业务,同一业务的ID相同;根据所述目标业务的ID,判断本地是否存在所述目标业务的BUCKET,如果存在,根据所述目标业务的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址,其中,所述BUCKET中携带目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及所述目标业务的ID,其中,所述目标服务器集群为待存储所述目标业务对象的服务器集群;将所组成的URL地址发送给所述终端,以使所述终端向所述目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,所述上传请求中携带所述URL地址和所述目标业务对象的内容。
可选的,所述控制服务器,还用于在所述控制服务器将所组成的URL地址发送给所述终端的步骤之前,且在所述控制服务器本地不存在所述目标业务的BUCKET的情况下,判断本地是否存在所述目标业务的业务配置信息,如果存在,根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET;其中,所述业务配置信息至少包括:所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及BUCKET创建规则;根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址。
可选的,所述控制服务器,还用于在所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址的步骤之前,且在所述控制服务器本地不存在所述目标业务的业务配置信息的情况下,根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和所述目标业务对应的目标副本策略信息,确定所述目标服务器集群的信息,其中,所述目标业务对应的目标副本策略信息是根据所述目标业务的业务需求确定的;根据所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成所述目标业务的业务配置信息;根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET。
可选的,所述服务器集群中的监测代理服务器,用于实时监测自身所在的服务器集群中所有存储服务器的存储状态,所述监测存储服务器是任一服务器集群中的任一代理服务器;
所述控制服务器,还用于在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
可选的,所述服务器集群中的目标代理服务器,还用于接收终端发送的关于目标业务对象的下载请求,其中,所述下载请求中携带URL地址,所述URL地址中包含目标服务器集群的信息和目标副本策略信息,所述目标代理服务器为根据所述URL地址确定的目标服务器集群中的任一代理服务器,所述目标服务器集群为存储所述目标业务对象的服务器集群;根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中存储有所述目标业务对象的存储服务器;将所述下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;从接收到的至少一个所述目标业务对象中,根据预设挑选规则,确定一个所述目标业务对象返回给所述终端;
所述服务器集群中的存储服务器,还用于在接收到所述下载请求后,从本地读取所述目标业务对象,并返回给所述目标代理服务器。
可选的,所述服务器集群中的目标代理服务器,具体用于将所述下载请求及所述目标副本策略发送至每个所确定的存储服务器;
所述服务器集群中的存储服务器,具体用于在接收到所述下载请求及所述目标副本策略后,根据所述目标副本策略,以及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中存储所述目标业务对象的目录;从所确定的目录中读取所述目标业务对象并返回给所述目标代理服务器。
本发明实施例提供的一种业务对象的存储方法及系统,目标代理服务器接收终端发送的关于目标业务对象的上传请求;其中,上传请求中携带URL地址和目标业务对象的内容,URL地址中包含目标副本策略信息,目标代理服务器根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略。可见,本发明实施例通过上传请求中的URL地址和目标代理服务器中预存的副本策略来确定目标业务对象的目标副本策略,实现了对目标业务对象副本数量存储需求的识别。这样,目标代理服务器就可以根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中待存储目标业务对象的存储服务器;将上传请求发送至每个所确定的存储服务器。然后,每个接收到上传请求的存储服务器就可以分别存储目标业务对象,完成目标业务对象的存储。可见,本发明实施例实现了对目标业务对象在一个集群中的多种副本存储。
应用本发明实施例所提供的技术方案,同一个服务器集群支持了不同的副本存储,对于业务是完全透明的,业务本身不需要任何改变。根据业务对象的URL地址,代理服务器部署的副本策略,以及代理服务器中预设的存储服务器分配决策,即可为业务对象从一个服务器集群中分配到满足存储要求的存储服务器并用所分配到的存储服务器存储业务对象,可以实现在同一服务器集群中存储不同数量副本,从而使得可以根据需要存储的业务的大小来开启服务器集群,在所需存储的业务量不大的情况下,只需要在分布式存储系统中开启较少的服务器集群。因此,提高了存储资源的利用率。
另一方面,基于本发明实施例提供的一种业务对象的存储方法,本发明实施例还提供了一种业务对象的下载方法,具有相应的有益效果,在此不做赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种业务对象的存储方法的流程示意图;
图2为终端获取上传目标业务对象的URL地址的流程示意图;
图3为本发明实施例提供的一种业务对象的下载方法的流程示意图;
图4为本发明实施例提供的业务对象的存储系统的第一种结构示意图;
图5为本发明实施例提供的业务对象的存储系统的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了能够提高存储资源利用率,本发明实施例提供了一种业务对象的存储、下载方法及系统。
下面,首先对本发明实施例提供的一种业务对象的存储方法进行说明。
参照图1,图1为本发明实施例提供的一种业务对象的存储方法的流程示意图,该业务对象的存储方法,应用于分布式存储系统,分布式存储系统包括至少一个服务器集群,服务器集群包括至少一个代理服务器和多个存储服务器,方法包括:
S101、目标代理服务器接收终端发送的关于目标业务对象的上传请求;其中,上传请求中携带URL(Uniform Resource Locator,统一资源定位符)地址和目标业务对象的内容,URL地址中包含目标副本策略信息,目标代理服务器为任一服务器集群中的任一代理服务器。
代理服务器是服务器集群的核心服务器,服务器集群中的每个代理服务器可以与其所在的服务器集群中的全部存储服务器连接通信,代理服务器可以从其所在的服务器集群中的全部存储服务器来考虑具体的存储到哪个存储服务器。
目标代理服务器分析上传请求中携带的URL地址,可以得到目标副本策略信息,目标副本策略信息是用于标识业务对象需要具体存储多少数量副本的,根据目标副本策略信息可以确定目标副本策略,目标副本策略信息可以包括副本策略的标识,也可以具体为副本策略的标识,其中,副本策略的标识是用于标识副本策略,以被存储于代理服务器本地的。例如,URL地址http://cluster1.storage.com:8080/beee6e93fbd44ea38a26425a381fc550/2x-2016/test.mp4,其中,2x-2016就是目标副本策略信息,2x可以为副本策略名,2016可以为业务存储对应的BUCKET(桶)创建的时间。
需要说明的是,目标代理服务器属于的目标服务器集群可以是人为预先设定并记录在终端的;如果URL地址包括目标服务器集群的信息,终端也可以根据URL确定目标服务器集群,其中,目标服务器集群为待存储目标业务对象的服务器集群。目标代理服务器具体为目标服务器集群中的哪一个,可以是人为预先设定并记录在终端的;也可以是终端预先通过向服务器集群中负责负载均衡分配的服务器询问,获得的代理服务器。具体采用哪种方式获得目标代理服务器,在此不做具体限定。另外,负责负载均衡分配的服务器可以是额外设置的,也可以是服务器集群中的任一代理服务器或存储服务器。负责负载均衡分配的服务器如何设置,以及通过向服务器集群中负责负载均衡分配的服务器询问,获得的代理服务器属于现有技术,在此不做赘述。
另外,终端可以将本地的目标业务对象使用HTTP PUT的方法向目标代理服务器发送上传请求,具体如何使用HTTP PUT的方法,属于现有技术,在此不做赘述。
S102、目标代理服务器根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略,其中,副本策略规定对应的业务对象存储预设数量个副本;
本发明实施例中在每个代理服务器上预先部署了副本策略,具体使用时,同一服务器集群中的所有代理服务器上可以部署相同的副本策略,使得一个服务器集群内部的全部代理服务器处于相同的地位,使得每个代理服务器可以处理同样的上传请求。例如,一个服务器集群中的一个代理服务器上部署了三副本策略、二副本策略和一副本策略,这个服务器集群中的其他每个代理服务器中也可以部署三副本策略、二副本策略和一副本策略。由于部署了副本策略,因此,对应支持每个副本策略规定的数量的副本保存。例如,副本策略可以包括与副本策略名对应的编号,也可以只包括副本策略名,三副本的存储策略名为3X,对应编号为0,用于规定对应的业务对象存储三个副本;二副本的存储策略名为2X,对应编号为1,用于规定对应的业务对象存储两个副本;一副本的存储策略名为1X,对应编号为2,用于规定对应的业务对象存储一个副本。具体使用时,在使用副本策略整个过程中,可以仅使用副本策略名标识副本策略,也可以仅使用编号来标识副本策略,当然,还可以将这两种标识方式交叉使用,来标识副本策略。
目标代理服务器根据URL地址中的目标副本策略信息,可以确定出对应的副本策略,实现目标代理服务器识别目标业务对象需要存储预设数量个副本的目的。例如,URL地址为:http://cluster1.storage.com:8080/25ac8916b21b47feb86fa1601a13b021/3x-2016/test.mp4,其中,3x-2016为目标副本策略信息,根据这个目标副本策略信息可以确定副本策略对应的目标副本策略为:3X,其对应的编号0,目标代理服务器就获知到目标业务对象需要存储三个副本的信息。
S103、目标代理服务器根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中待存储目标业务对象的存储服务器;将上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与目标副本策略对应的副本数相同;
代理服务器内可以预先设置存储分配决策,副本策略与存储服务器分配决策对应,某一副本策略规定存储预设数量个副本,则对应的存储服务器分配决策则规定如何为这个副本策略分配对应副本数量的存储服务器,用于存储对应的业务对象。例如,针对三副本策略,可以指定分配第一存储服务器、第二存储服务器、第五存储服务器,用于存储业务对象。
S104、每个接收到上传请求的存储服务器分别存储目标业务对象。
上传请求中携带业务对象的内容,每个接收到上传请求的存储服务器分别存储一个目标业务对象的副本,完成对目标业务对象的存储。
本步骤具体实施时,如果目标代理服务器将目标副本策略随上传请求一同发送至每个所确定的存储服务器,则可以按照以下方式进行存储:
每个接收到上传请求及目标副本策略的存储服务器根据目标副本策略,及预设的目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储目标业务对象的目录,将目标业务对象存储到所确定的目录中。其中,目标代理服务器向存储服务器发送上传请求及目标副本策略时,可以在上传请求的HTTP头中加入目标副本策略。
例如,规定存储三个副本的副本策略对应的存储目录:三副本存储目录/srv/node/{sdb...z}/object-0;规定存储两个副本的副本策略对应的存储目录:二副本存储目录/srv/node/{sdb...z}/object-1;规定存储一个副本的副本策略对应的存储目录:一副本存储目录/srv/node/{sdb...z}/object-2。
可以理解的是,本步骤还可以采用其他方式来实现存储,例如,可以直接将目标业务对象存储到磁盘中。
另外,在本发明实施例的一种实施方式中,目标代理服务器还可以将存储是否成功的结果反馈给终端。
应用图1所示实施例,同一个服务器集群支持了不同的副本存储,对于业务是完全透明的,业务本身不需要任何改变。根据业务对象的URL地址,代理服务器部署的副本策略,以及代理服务器中预设的存储服务器分配决策,即可为业务对象分配到满足存储要求的存储服务器并用所分配到的存储服务器存储业务对象,可以实现在同一服务器集群中存储不同数量副本,从而使得可以根据需要存储的业务的大小来开启服务器集群,在所需存储的业务量不大的情况下,只需要开启分布式存储系统中开启较少的服务器集群。因此,提高了存储资源的利用率。
当终端存在上传目标业务对象的URL地址时,可以直接向目标代理服务器发送上传请求,当终端不存在上传目标业务对象的URL地址时,可以先获取用于上传目标业务对象的URL地址,再向代理服务器发送上传请求。具体的,该分布式存储系统还可以包括控制服务器,控制服务器可以用于控制分布式系统中的每个代理服务器;参照图2,图2为终端获取上传目标业务对象的URL地址的流程示意图,终端获取上传目标业务对象的URL地址的具体实施方式可以包括:
S201、控制服务器接收终端发送的关于目标业务的目标业务对象的URL地址请求,其中,URL地址请求携带目标业务的标识,以及目标业务对象的标识;
一个业务可能对应着很多个业务对象,例如,视频业务对应很多具体的视频,每个视频可以作为一个视频业务对象;音频业务对应很多具体的音频,每个音频可以作为一个音频业务对象;图片业务对应很多具体的图片,每个图片可以作为一个图片业务对象。目标业务的标识可以包括目标业务的名称,如爱情片视频,目标业务对象的标识可以是目标业务对象的名称,如甄嬛传。
S202、控制服务器根据目标业务的标识,分配一个全局的ID给目标业务,其中,同一业务的ID相同;
这里的全局是分布式系统的全局,ID用于在分布式系统中记录目标业务,针对同一业务,如果之前已经分配过ID,则将对应的ID分配给目标业务,如果之前没有分配过ID,则重新获得一个ID分配的目标业务。例如,第一项目的视频业务和第二项目的视频业务分别作为业务的标识,需要分别作为一个业务来存储,则给第一项目的视频业务和第二项目的视频业务分别分配一个ID。如果采用视频业务作为第一个项目的视频业务和第二个项目的视频业务的标识,则给视频业务分配一个ID。ID可以为如25ac8916b21b47feb86fa1601a13b021的形式。
S203、控制服务器根据目标业务的ID,判断本地是否存在目标业务的BUCKET,如果控制服务器本地存在目标业务的BUCKET,执行步骤S204,否则,结束。
S204、根据目标业务的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址,其中,BUCKET中携带目标服务器集群的信息,目标业务对应的目标副本策略信息,以及目标业务的ID,其中,目标服务器集群为待存储目标业务对象的服务器集群;
BUCKET用于记录存储的业务,如果控制服务器本地存在某一业务对应的BUCKET,则说明这个业务已经存储在该分布式存储系统中。控制服务器本地如果存在对应目标业务的BUCKET,由于BUCKET中含有目标业务的ID,通过目标业务的ID可以确定出目标业务的的BUCKET。控制服务器通过本地已有的目标业务对象的BUCKET,以及目标业务对象的标识,组成目标业务对象的U RL地址,URL地址的形式如:http://cluster.storage.com:port/ID/Prefix_Bucket_name/object_name,其中,服务器集群的信息对应:http://cluster.storage.co m:port,业务的ID对应:ID,副本策略信息对应:Prefix_Bucket_name,业务对象的标识对应:object_name。
举例而言,三个业务:业务A、业务B和业务C,这三个业务需要上传业务对象test.mp4,业务A的ID为:25ac8916b21b47feb86fa1601a13b021,业务B的ID为:beee6e93fbd44ea38a26425a381fc550,业务C的ID为:e921c115556e 48cd8cb8fbb3499275f8。通过这三个业务的ID可以确定出每个业务对应的B UCKET,业务A的BUCKET为:http://cluster1.storage.com:8080/25ac8916b21 b47feb86fa1601a13b021/3x-2016,业务B的BUCKET为:http://cluster1.storag e.com:8080/beee6e93fbd44ea38a26425a381fc550/2x-2016,业务C的BUCKET为:http://cluster1.storage.com:8080/e921c115556e48cd8cb8fbb3499275f8/1x-2016。
从三个业务的BUCKET中的副本策略信息可以获知这个三个业务需要存储的副本数不同,对安全性和可靠性要求不同,且这三个业务都被存储到同一服务器集群http://cluster1.storage.com:8080/中。控制服务器分别向为这三个业务对应的终端反馈组成的URL地址:业务A的test.mp4对应的URL地址为:htt p://cluster1.storage.com:8080/25ac8916b21b47feb86fa1601a13b021/3x-2016/test.mp4;业务B的test.mp4对应的URL地址为:http://cluster1.storage.com:808 0/beee6e93fbd44ea38a26425a381fc550/2x-2016/test.mp4;业务C的test.mp4对应的URL地址为:http://cluster1.storage.com:8080/e921c115556e48cd8cb8fbb 3499275f8/1x-2016/test.mp4。
需要说明的是,服务器集群的信息可以包括集群域名、集群端口、集群的虚拟IP等。
S205、控制服务器将所组成的URL地址发送给终端,以使终端向目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,其中,上传请求中携带URL地址和目标业务对象的内容。
根据URL地址可以获知目标服务器集群的信息,终端在接收到URL地址后,向目标服务器集群中的任一代理服务器发送关于目标业务对象的上传请求。服务器集群中的每个代理服务器与该服务器集群内的每个代理服务器连接通信,这样,通过目标代理服务器集群中任一代理服务器都可以实现业务对象的存储。再根据图1所示实施例提供的步骤完成业务对象的多副本存储。
应用图2所实施例,当终端不存在用于上传目标业务对象的URL地址时,可以通过向控制服务器发送URL地址请求,以实现获取URL地址的目的,从而使得顺利完成目标业务对象所需的副本存储。通过控制服务器生成URL地址,实现对控制URL地址的控制,从而实现对业务对象存储的控制。
另外,在图2所示实施例的基础上,该业务对象的存储方法,还可以包括:
(1)、在控制服务器本地不存在目标业务的BUCKET的情况下,控制服务器判断本地是否存在目标业务的业务配置信息,如果存在,根据业务配置信息,以及目标业务的ID,创建目标业务的BUCKET;其中,业务配置信息至少包括:目标服务器集群的信息,目标业务对应的目标副本策略信息,以及BUCKET创建规则;
在目标业务当前没有存储到该分布式存储系统中时,控制服务器本地也就没有目标业务对应的BUCKET,如果想将目标业务的目标业务对象存储到该分布式存储系统,则需要创建对应的BUCKET来记录目标业务。
(2)、控制服务器根据所创建的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址,继续执行S205。
控制服务器根据业务配置信息,以及目标业务的ID,以及目标业务对象的URL地址,最终可以获得目标业务对象的URL地址,以供终端使用该URL地址来上传目标业务对象。
进一步的,在控制服务器根据所创建的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址的步骤之前,该存储方法还可以包括:
(1)、在控制服务器本地不存在目标业务的业务配置信息的情况下,控制服务器根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和目标业务对应的目标副本策略信息,确定目标服务器集群的信息,其中,目标业务对应的目标副本策略信息是根据目标业务的业务需求确定的;
本步骤中,可以根据目标业务的对安全性和可靠性的业务需要来确定目标业务对象的目标副本策略信息,例如,如果这个目标业务对存储的安全性和可靠性要求较高,则可以设置采用五副本存储,如果这个目标业务对存储的安全性和可靠性要求较低,则可以设置采用一副本存储。确定目标副本策略信息的过程可以是预先设置的,也可以通过在URL地址请求中携带目标业务的业务需求,然后,控制服务器根据业务需求确定目标副本策略信息,在此不做具体限定。
URL地址中的目标服务器集群的信息,用来指定将目标业务对象存储到哪个服务器集群。在了解各个服务器集群当前存储状态的情况下,可以确定出哪些服务器集群还存在剩余空间,能够用于存储目标业务对象;根据每个服务器集群的副本配置信息可以确定出哪些服务器集群支持目标服务器策略信息对存储的副本数量要求,从而根据这些可以确定出满足存储要求的目标服务器集群。
(2)、控制服务器根据目标服务器集群的信息,目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成目标业务的业务配置信息;
(3)、控制服务器根据业务配置信息,以及目标业务的ID,创建目标业务的BUCKET。
通过上述(2)和(3)两个步骤,可以对用于创建BUCKET的业务配置信息进行配置,并创建组成URL地址的BUCKET。
再进一步的,该业务对象的存储方法,还可以包括:
(1)、监测代理服务器实时监测自身所在的服务器集群中所有存储服务器的存储状态,其中,监测代理服务器是任一服务器集群中的任一代理服务器;
(2)、控制服务器在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
通过(1)和(2)这两个步骤,控制服务器可以获得各个服务器集群的存储状态。具体的,预设时间点可以设置为:在控制服务器接收到终端发送的URL地址请求时。控制服务器在获得各个服务器集群的当前存储状态以后,可以根据服务器集群的当前存储状态来确定哪些服务器集群还可以存储目标业务对象,便于存储资源的分配,提高存储资源利用率。
下面,再对本发明实施例提供的一种业务对象的下载方法进行说明。
基于图1所示实施例相同的发明思路,本发明实施例提供了一种业务对象的下载方法,参照图3,图3为本发明实施例提供的一种业务对象的下载方法的流程示意图,该下载方法应用于分布式存储系统,分布式存储系统包括至少一个服务器集群,服务器集群包括至少一个代理服务器和多个存储服务器,需要说明的是,该分布式存储系统中存储的业务对象可以是通过上述业务对象的存储方法进行存储的,也可以是通过其他方式进行存储的。
该下载方法可以包括:
S301、目标代理服务器接收终端发送的关于目标业务对象的下载请求,其中,下载请求中携带URL地址,URL地址中包含目标服务器集群的信息和目标副本策略信息,目标代理服务器为根据URL地址确定的目标服务器集群中的任一代理服务器,目标服务器集群为存储目标业务对象的服务器集群;
代理服务器是服务器集群的核心服务器,服务器集群中的每个代理服务器可以与其所在的服务器集群中的全部存储服务器连接通信,代理服务器可以从其所在的服务器集群中的全部存储服务器来确定目标业务对象存储到了哪些存储服务器。
终端获得目标业务对象的下载所需的URL地址后,可以根据URL地址去下载业务对象。从URL地址中可以根据目标服务器集群的信息确定目标服务器集群,终端向目标代理服务器发送下载请求。目标代理服务器具体为目标服务器集群中的哪一个,可以是人为预先设定并记录在终端的;也可以是终端预先通过向服务器集群中负责负载均衡分配的服务器询问,获得的代理服务器。具体采用哪种方式获得目标代理服务器,在此不做具体限定。另外,负责负载均衡分配的服务器可以是额外设置的,也可以是服务器集群中的任一代理服务器或存储服务器。负责负载均衡分配的服务器如何设置,以及通过向服务器集群中负责负载均衡分配的服务器询问,获得的代理服务器属于现有技术,在此不做赘述。
目标代理服务器分析下载请求中携带的URL地址,可以得到目标副本策略信息,目标副本策略信息是用于标识业务对象存储了具体多少数量个副本的,可以根据目标副本策略信息确定目标副本策略的。例如,URL地址http://cluster1.storage.com:8080/beee6e93fbd44ea38a26425a381fc550/2x-2016/test.mp4,其中,2x-2016就是目标副本策略信息。
另外,终端可以将本地的目标业务对象使用HTTP GET的方法向目标代理服务器发送上传请求,具体如何使用HTTP GET的方法属于现有技术,在此不做赘述。
S302、目标代理服务器根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略,其中,副本策略规定对应的业务对象存储预设数量个副本;
本发明实施例中在每个代理服务器上预先部署副本策略,具体使用时,同一服务器集群中的所有代理服务器上可以部署相同的副本策略,使得一个服务器集群内部的全部代理服务器处于相同的地位,使得每个代理服务器可以处理同样的下载请求。例如,一个服务器集群中的一个代理服务器上部署了三副本策略、二副本策略和一副本策略,这个服务器集群中的其他每个代理服务器中也可以部署三副本策略、二副本策略和一副本策略。由于部署了副本策略,因此,就对应支持每个副本策略规定数量的副本保存,例如,副本策略可以包括与副本策略名对应的编号,也可以只包括副本策略名,三副本的存储策略名为3X,对应编号为0,用于规定对应的业务对象存储三个副本;二副本的存储策略名为2X,对应编号为1,用于规定对应的业务对象存储两个副本;一副本的存储策略名为1X,对应编号为2,用于规定对应的业务对象存储一个副本。具体使用时,在使用副本策略整个过程中,可以仅使用副本策略名标识副本策略,也可以仅使用编号来标识副本策略,当然,还可以将这两种标识方式交叉使用,来标识副本策略。
目标代理服务器根据URL地址中的目标副本策略信息,可以确定出对应的副本策略,实现目标代理服务器识别目标业务对象存储了几个副本的目的。例如,URL地址为:http://cluster1.storage.com:8080/e921c115556e48cd8cb8fbb3499275f8/1x-2016/test.mp4,其中,1x-2016为目标副本策略信息,根据这个目标副本策略信息可以确定副本策略对应的目标副本策略为:1X对应的编号0,目标代理服务器就获知到目标业务对象存储了一个副本的信息。
S303、目标代理服务器根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中存储有目标业务对象的存储服务器;将下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与目标副本策略对应的副本数相同;
副本策略与存储服务器分配决策对应,某一副本策略规定存储几副本,则对应的存储服务器分配决策则规定如何为这个副本策略分配对应副本数量的存储服务器,用于存储对应的业务对象。例如,针对三副本策略,可以指定分配第一存储服务器、第二存储服务器、第五存储服务器,用于存储业务对象。这样根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,就可以确定出存储目标业务对象的存储服务器。
S304、每个接收到下载请求的存储服务器,从各自本地读取目标业务对象,并返回给目标代理服务器;
如果每个存储的副本都没有损坏,则可以读取跟存储数量相同的目标业务对象;存储的数量越多,存在没有损坏的副本的概率就越大,这样就保证了业务的安全性与可靠性。
S305、目标代理服务器从接收到的至少一个目标业务对象中,根据预设挑选规则,确定一个目标业务对象返回给终端。
预设挑选规则的设置是为了挑选出一个正确的目标业务对象反馈给终端,例如,预设挑选规则为判断目标业务对象的大小是否与标准大小一致,实现判断目标业务对象是否完整,可以挑选出一个完整的目标业务对象返回给终端。
本步骤具体实施时,在目标代理服务器将目标副本策略随下载请求一同发送至每个所确定的存储服务器的情况下,可以通过以下方式实现:
每个接收到下载请求及目标副本策略的存储服务器根据目标副本策略,以及预设的目标副本策略对应的存储目录分配决策,确定该存储服务器中存储目标业务对象的目录;从所确定的目录中读取目标业务对象并返回给目标代理服务器。这样可以从对应的目录下直接读取到目标业务对象,提高读取速度。其中,目标代理服务器向存储服务器发送下载请求及目标副本策略时,可以在上传请求的HTTP头中加入目标副本策略。
应用图3所示实施例,可以针对采用上述业务对象的存储方法进行的存储,来快速下载到业务对象,可以直接找到存储目标业务对象的存储服务器,下载具有针对性,可以提高下载效率。
下面,再对本发明实施例提供的一种业务对象的存储系统进行详细说明。
相应于上述业务对象的存储方法,本发明实施例提供了一种业务对象的存储系统,参照图4,图4为本发明实施例提供的业务对象的存储系统的第一种结构示意图。该存储系统包括:至少一个服务器集群,服务器集群包括至少一个代理服务器和多个存储服务器;
服务器集群中的目标代理服务器,用于接收终端发送的关于目标业务对象的上传请求;其中,上传请求中携带URL地址和目标业务对象的内容,URL地址中包含目标副本策略信息,目标代理服务器为任一服务器集群中的任一代理服务器;根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略,其中,副本策略规定对应的业务对象存储预设数量个副本;根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中待存储目标业务对象的存储服务器;将上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与目标副本策略对应的副本数相同;
服务器集群中的存储服务器,用于在接收到上传请求后,存储目标业务对象。
应用图4所示实施例,同一个服务器集群支持了不同的副本存储,对于业务是完全透明的,业务本身不需要任何改变。根据业务对象的URL地址,代理服务器部署的副本策略,以及代理服务器中预设的存储服务器分配决策,即可为业务对象分配到满足存储要求的存储服务器并用所分配到的存储服务器存储业务对象,可以实现在同一服务器集群中存储不同数量副本,从而使得可以根据需要存储的业务的大小来开启服务器集群,在所需存储的业务量不大的情况下,只需要开启分布式存储系统中开启较少的服务器集群。因此,提高了存储资源的利用率。
本发明实施例的一种实施方式中,服务器集群中的目标代理服务器具体用于将上传请求及目标副本策略发送至每个所确定的存储服务器;
服务器集群中的存储服务器,具体用于在接收到上传请求及目标副本策略后,根据目标副本策略,及预设的目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储目标业务对象的目录,将目标业务对象存储到所确定的目录中。
参照图5,图5为本发明实施例提供的业务对象的存储系统的第二种结构示意图,该业务对象的存储系统还包括控制服务器,该存储系统还包括:控制服务器;
控制服务器,用于接收终端发送的关于目标业务的目标业务对象的URL地址请求,其中,URL地址请求携带目标业务的标识,以及目标业务对象的标识;根据目标业务的标识,分配一个全局的ID给目标业务,同一业务的ID相同;根据目标业务的ID,判断本地是否存在目标业务的BUCKET,如果存在,根据目标业务的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址,其中,BUCKET中携带目标服务器集群的信息,目标业务对应的目标副本策略信息,以及目标业务的ID,其中,目标服务器集群为待存储目标业务对象的服务器集群;将所组成的URL地址发送给终端,以使终端向目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,上传请求中携带URL地址和目标业务对象的内容。
进一步的,该控制服务器还用于在所述控制服务器将所组成的URL地址发送给所述终端的步骤之前,且在控制服务器本地不存在目标业务的BUCKET的情况下,判断本地是否存在目标业务的业务配置信息,如果存在,根据业务配置信息,以及目标业务的ID,创建目标业务的BUCKET;其中,业务配置信息至少包括:目标服务器集群的信息,目标业务对应的目标副本策略信息,以及BUCKET创建规则;根据所创建的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址。
再进一步的,该控制服务器还用于在控制服务器根据所创建的BUCKET,以及目标业务对象的标识,组成目标业务对象的URL地址的步骤之前,且在控制服务器本地不存在目标业务的业务配置信息的情况下,根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和目标业务对应的目标副本策略信息,确定目标服务器集群的信息,其中,目标业务对应的目标副本策略信息是根据目标业务的业务需求确定的;根据目标服务器集群的信息,目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成目标业务的业务配置信息;根据业务配置信息,以及目标业务的ID,创建目标业务的BUCKET。
本发明实施例的一种实施方式中,服务器集群中的监测代理服务器,用于实时监测自身所在的服务器集群中所有存储服务器的存储状态,监测代理服务器是任一服务器集群中的任一代理服务器;
控制服务器,还用于在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
继续参照图4或图5,该存储系统中:
服务器集群中的目标代理服务器,还用于接收终端发送的关于目标业务对象的下载请求,其中,下载请求中携带URL地址,URL地址中包含目标服务器集群的信息和目标副本策略信息,目标代理服务器为根据URL地址确定的目标服务器集群中的任一代理服务器,目标服务器集群为存储目标业务对象的服务器集群;根据URL地址,从本地预存的至少一个副本策略中,确定目标业务对象对应的目标副本策略,其中,副本策略规定对应的业务对象存储预设数量个副本;根据目标副本策略,以及预设的目标副本策略对应的存储服务器分配决策,确定目标代理服务器所在的服务器集群中存储有目标业务对象的存储服务器;将下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与目标副本策略对应的副本数相同;从接收到的至少一个目标业务对象中,根据预设挑选规则,确定一个目标业务对象返回给终端;
服务器集群中的存储服务器,还用于在接收到下载请求后,从本地读取目标业务对象,并返回给目标代理服务器。
应用该业务对象的存储系统下载目标业务对象,可以快速下载到业务对象,可以直接找到存储目标业务对象的存储服务器,下载具有针对性,可以提高下载效率。
本发明实施例的一种实施方式中,服务器集群中的目标代理服务器,具体用于将下载请求及目标副本策略发送至每个所确定的存储服务器;
服务器集群中的存储服务器,具体用于在接收到下载请求及目标副本策略后,根据目标副本策略,以及预设的目标副本策略对应的存储目录分配决策,确定该存储服务器中存储目标业务对象的目录;从所确定的目录中读取目标业务对象并返回给目标代理服务器。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (14)
1.一种业务对象的存储方法,应用于分布式存储系统,所述分布式存储系统包括至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器,其特征在于,所述方法包括:
目标代理服务器接收终端发送的关于目标业务对象的上传请求;其中,所述上传请求中携带URL地址和所述目标业务对象的内容,所述URL地址中包含目标副本策略信息,所述目标代理服务器为任一服务器集群中的任一代理服务器;
所述目标代理服务器根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;
所述目标代理服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中待存储所述目标业务对象的存储服务器;将所述上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
每个接收到所述上传请求的存储服务器分别存储所述目标业务对象;
所述分布式存储系统还包括:控制服务器;
所述方法还包括:
所述控制服务器接收所述终端发送的关于目标业务的目标业务对象的URL地址请求,其中,所述URL地址请求携带所述目标业务的标识,以及所述目标业务对象的标识;
所述控制服务器根据所述目标业务的标识,分配一个全局的ID给所述目标业务,同一业务的ID相同;
所述控制服务器根据所述目标业务的ID,判断本地是否存在所述目标业务的BUCKET,如果存在,根据所述目标业务的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址,其中,所述BUCKET中携带目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及所述目标业务的ID,其中,所述目标服务器集群为待存储所述目标业务对象的服务器集群;
所述控制服务器将所组成的URL地址发送给所述终端,以使所述终端向所述目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,所述上传请求中携带所述URL地址和所述目标业务对象的内容。
2.根据权利要求1所述的方法,其特征在于,所述将所述上传请求发送至每个所确定的存储服务器的步骤,包括:
将所述上传请求及所述目标副本策略发送至每个所确定的存储服务器;
所述每个接收到所述上传请求的存储服务器分别存储所述目标业务对象的步骤,包括:
每个接收到所述上传请求及所述目标副本策略的存储服务器根据所述目标副本策略,及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储所述目标业务对象的目录,将所述目标业务对象存储到所确定的目录中。
3.根据权利要求1所述的方法,其特征在于,在所述控制服务器将所组成的URL地址发送给所述终端的步骤之前,还包括:
在所述控制服务器本地不存在所述目标业务的BUCKET的情况下,所述控制服务器判断本地是否存在所述目标业务的业务配置信息,如果存在,根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET;其中,所述业务配置信息至少包括:所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及BUCKET创建规则;
所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址。
4.根据权利要求3所述的方法,其特征在于,在所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址的步骤之前,还包括:
在所述控制服务器本地不存在所述目标业务的业务配置信息的情况下,所述控制服务器根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和所述目标业务对应的目标副本策略信息,确定所述目标服务器集群的信息,其中,所述目标业务对应的目标副本策略信息是根据所述目标业务的业务需求确定的;
所述控制服务器根据所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成所述目标业务的业务配置信息;
所述控制服务器根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET。
5.根据权利要求4所述的方法,其特征在于,还包括:
监测代理服务器实时监测自身所在的服务器集群中所有存储服务器的存储状态,其中,所述监测代理服务器是任一服务器集群中的任一代理服务器;
所述控制服务器在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
6.一种业务对象的下载方法,应用于分布式存储系统,所述分布式存储系统包括至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器,其特征在于,所述方法包括:
目标代理服务器接收终端发送的关于目标业务对象的下载请求,其中,所述下载请求中携带URL地址,所述URL地址中包含目标服务器集群的信息和目标副本策略信息,所述目标代理服务器为根据所述URL地址确定的目标服务器集群中的任一代理服务器,所述目标服务器集群为存储所述目标业务对象的服务器集群;
所述目标代理服务器根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;
所述目标代理服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中存储有所述目标业务对象的存储服务器;将所述下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
每个接收到所述下载请求的存储服务器,从各自本地读取所述目标业务对象,并返回给所述目标代理服务器;
所述目标代理服务器从接收到的至少一个所述目标业务对象中,根据预设挑选规则,确定一个所述目标业务对象返回给所述终端;
所述分布式存储系统还包括:控制服务器;
所述控制服务器接收所述终端发送的关于所述目标业务对象的URL地址请求,其中,所述URL地址请求携带所述目标业务的标识,以及所述目标业务对象的标识;
所述控制服务器根据所述目标业务的标识,分配一个全局的ID给所述目标业务,同一业务的ID相同;
所述控制服务器根据所述目标业务的ID,判断本地是否存在所述目标业务的BUCKET,如果存在,根据所述目标业务的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址,其中,所述BUCKET中携带目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及所述目标业务的ID;
所述控制服务器将所组成的URL地址发送给所述终端,以使所述终端向所述目标服务器集群的任一代理服务器,发送关于所述目标业务对象的上传请求,所述上传请求中携带所述URL地址和所述目标业务对象的内容。
7.根据权利要求6所述的方法,其特征在于,所述将所述下载请求发送至每个所确定的存储服务器的步骤,包括:
将所述下载请求及所述目标副本策略发送至每个所确定的存储服务器;
所述每个接收到所述下载请求的存储服务器,从各自本地读取所述目标业务对象,并返回给所述目标代理服务器的步骤,包括:
每个接收到所述下载请求及所述目标副本策略的存储服务器根据所述目标副本策略,以及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中存储所述目标业务对象的目录;从所确定的目录中读取所述目标业务对象并返回给所述目标代理服务器。
8.一种业务对象的存储系统,其特征在于,包括:至少一个服务器集群,所述服务器集群包括至少一个代理服务器和多个存储服务器;
所述服务器集群中的目标代理服务器,用于接收终端发送的关于目标业务对象的上传请求;其中,所述上传请求中携带URL地址和所述目标业务对象的内容,所述URL地址中包含目标副本策略信息,所述目标代理服务器为任一服务器集群中的任一代理服务器;根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中待存储所述目标业务对象的存储服务器;将所述上传请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;
所述服务器集群中的存储服务器,用于在接收到所述上传请求后,存储所述目标业务对象;
还包括:控制服务器;
所述控制服务器,用于接收所述终端发送的关于目标业务的目标业务对象的URL地址请求,其中,所述URL地址请求携带所述目标业务的标识,以及所述目标业务对象的标识;根据所述目标业务的标识,分配一个全局的ID给所述目标业务,同一业务的ID相同;根据所述目标业务的ID,判断本地是否存在所述目标业务的BUCKET,如果存在,根据所述目标业务的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址,其中,所述BUCKET中携带目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及所述目标业务的ID,其中,所述目标服务器集群为待存储所述目标业务对象的服务器集群;将所组成的URL地址发送给所述终端,以使所述终端向所述目标服务器集群的任一代理服务器,发送关于目标业务对象的上传请求,所述上传请求中携带所述URL地址和所述目标业务对象的内容。
9.根据权利要求8所述的系统,其特征在于,所述服务器集群中的目标代理服务器,具体用于将所述上传请求及所述目标副本策略发送至每个所确定的存储服务器;
所述服务器集群中的存储服务器,具体用于在接收到所述上传请求及所述目标副本策略后,根据所述目标副本策略,及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中待存储所述目标业务对象的目录,将所述目标业务对象存储到所确定的目录中。
10.根据权利要求8所述的系统,其特征在于,
所述控制服务器,还用于在所述控制服务器将所组成的URL地址发送给所述终端的步骤之前,且在所述控制服务器本地不存在所述目标业务的BUCKET的情况下,判断本地是否存在所述目标业务的业务配置信息,如果存在,根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET;其中,所述业务配置信息至少包括:所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及BUCKET创建规则;根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址。
11.根据权利要求10所述的系统,其特征在于,
所述控制服务器,还用于在所述控制服务器根据所创建的BUCKET,以及所述目标业务对象的标识,组成所述目标业务对象的URL地址的步骤之前,且在所述控制服务器本地不存在所述目标业务的业务配置信息的情况下,根据各个服务器集群的当前存储状态、每个服务器集群的副本配置信息和所述目标业务对应的目标副本策略信息,确定所述目标服务器集群的信息,其中,所述目标业务对应的目标副本策略信息是根据所述目标业务的业务需求确定的;根据所述目标服务器集群的信息,所述目标业务对应的目标副本策略信息,以及预设的BUCKET创建规则,组成所述目标业务的业务配置信息;根据所述业务配置信息,以及所述目标业务的ID,创建所述目标业务的BUCKET。
12.根据权利要求11所述的系统,其特征在于,
所述服务器集群中的监测代理服务器,用于实时监测自身所在的服务器集群中所有存储服务器的存储状态,所述监测存储服务器是任一服务器集群中的任一代理服务器;
所述控制服务器,还用于在预设时间点,从每个服务器集群中的任一监测代理服务器,获取本服务器集群中所有存储服务器的当前存储状态。
13.根据权利要求8所述的系统,其特征在于,
所述服务器集群中的目标代理服务器,还用于接收终端发送的关于目标业务对象的下载请求,其中,所述下载请求中携带URL地址,所述URL地址中包含目标服务器集群的信息和目标副本策略信息,所述目标代理服务器为根据所述URL地址确定的目标服务器集群中的任一代理服务器,所述目标服务器集群为存储所述目标业务对象的服务器集群;根据所述URL地址,从本地预存的至少一个副本策略中,确定所述目标业务对象对应的目标副本策略,其中,所述副本策略规定对应的业务对象存储预设数量个副本;根据所述目标副本策略,以及预设的所述目标副本策略对应的存储服务器分配决策,确定所述目标代理服务器所在的服务器集群中存储有所述目标业务对象的存储服务器;将所述下载请求发送至每个所确定的存储服务器;其中,所确定的存储服务器的数量与所述目标副本策略对应的副本数相同;从接收到的至少一个所述目标业务对象中,根据预设挑选规则,确定一个所述目标业务对象返回给所述终端;
所述服务器集群中的存储服务器,还用于在接收到所述下载请求后,从本地读取所述目标业务对象,并返回给所述目标代理服务器。
14.根据权利要求13所述的系统,其特征在于,所述服务器集群中的目标代理服务器,具体用于将所述下载请求及所述目标副本策略发送至每个所确定的存储服务器;
所述服务器集群中的存储服务器,具体用于在接收到所述下载请求及所述目标副本策略后,根据所述目标副本策略,以及预设的所述目标副本策略对应的存储目录分配决策,确定该存储服务器中存储所述目标业务对象的目录;从所确定的目录中读取所述目标业务对象并返回给所述目标代理服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710329410.4A CN107105050B (zh) | 2017-05-11 | 2017-05-11 | 一种业务对象的存储、下载方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710329410.4A CN107105050B (zh) | 2017-05-11 | 2017-05-11 | 一种业务对象的存储、下载方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107105050A CN107105050A (zh) | 2017-08-29 |
CN107105050B true CN107105050B (zh) | 2020-01-31 |
Family
ID=59668730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710329410.4A Active CN107105050B (zh) | 2017-05-11 | 2017-05-11 | 一种业务对象的存储、下载方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107105050B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786638B (zh) * | 2017-09-27 | 2020-04-14 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN108287669B (zh) * | 2018-01-26 | 2019-11-12 | 平安科技(深圳)有限公司 | 数据存储方法、装置及存储介质 |
CN109257439B (zh) * | 2018-10-26 | 2021-11-23 | 京信网络系统股份有限公司 | 分布式文件保存系统、文件上传方法和装置 |
CN109981459B (zh) * | 2019-02-28 | 2021-02-19 | 联想(北京)有限公司 | 一种信息发送方法、客户端和计算机可读存储介质 |
CN109831534A (zh) * | 2019-03-19 | 2019-05-31 | 深圳市云语科技有限公司 | 一种基于阿里云oss对象存储的文件传输系统 |
CN110113414B (zh) * | 2019-05-05 | 2022-05-31 | 深圳市腾讯网域计算机网络有限公司 | 一种管理副本的方法、装置、服务器及存储介质 |
CN110413846B (zh) * | 2019-07-29 | 2022-05-20 | 数译(成都)信息技术有限公司 | 用于网页镜像的数据处理方法、装置及计算机可读存储介质 |
CN110602163B (zh) * | 2019-08-07 | 2022-02-01 | 创新先进技术有限公司 | 文件上传方法及装置 |
CN113794697B (zh) * | 2021-08-27 | 2023-04-18 | 北京深盾科技股份有限公司 | 基于代理服务的信息处理方法、系统以及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022396A (zh) * | 2007-03-15 | 2007-08-22 | 上海交通大学 | 网格数据副本管理系统 |
CN103327116A (zh) * | 2013-07-05 | 2013-09-25 | 山东大学 | 一种网络文件的动态副本存储方法 |
CN104050102A (zh) * | 2014-06-26 | 2014-09-17 | 北京思特奇信息技术股份有限公司 | 一种电信系统中的对象存储方法及装置 |
CN105144161A (zh) * | 2013-03-13 | 2015-12-09 | 亚马逊科技公司 | 针对复制写入的基于令牌的准入控制 |
CN106202396A (zh) * | 2016-07-08 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象存储方法和对象存储系统 |
-
2017
- 2017-05-11 CN CN201710329410.4A patent/CN107105050B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101022396A (zh) * | 2007-03-15 | 2007-08-22 | 上海交通大学 | 网格数据副本管理系统 |
CN105144161A (zh) * | 2013-03-13 | 2015-12-09 | 亚马逊科技公司 | 针对复制写入的基于令牌的准入控制 |
CN103327116A (zh) * | 2013-07-05 | 2013-09-25 | 山东大学 | 一种网络文件的动态副本存储方法 |
CN104050102A (zh) * | 2014-06-26 | 2014-09-17 | 北京思特奇信息技术股份有限公司 | 一种电信系统中的对象存储方法及装置 |
CN106202396A (zh) * | 2016-07-08 | 2016-12-07 | 乐视控股(北京)有限公司 | 对象存储方法和对象存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107105050A (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107105050B (zh) | 一种业务对象的存储、下载方法及系统 | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN101741730B (zh) | 文件下载方法及设备、提供文件下载服务的方法及系统 | |
CN107483627A (zh) | 一种文件分发、下载方法、分发服务器、客户端及系统 | |
US20170134495A1 (en) | Method and apparatus for sharing collaboratively edited document | |
CN110417884B (zh) | 一种消息推送方法、装置、设备及存储介质 | |
CN107656695B (zh) | 一种数据存储、删除方法、装置及分布式存储系统 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
CN104537076A (zh) | 一种文件读写方法及装置 | |
CN112751897B (zh) | 负载均衡方法、装置、介质及设备 | |
CN111327668B (zh) | 网络管理方法、装置、设备和存储介质 | |
CN103475682A (zh) | 文件迁移方法及设备 | |
CN104394067A (zh) | 局域网通讯方法和装置 | |
CN113810230A (zh) | 对容器集群中的容器进行网络配置的方法、装置及系统 | |
CN110677475A (zh) | 一种微服务处理方法、装置、设备及存储介质 | |
CN103595808B (zh) | 一种文件更新信息推送方法及装置 | |
CN114281253A (zh) | 存储卷的管理方法 | |
US11444998B2 (en) | Bit rate reduction processing method for data file, and server | |
CN114390044A (zh) | 一种文件上传方法、系统、设备及存储介质 | |
CN110011850B (zh) | 云计算系统中服务的管理方法和装置 | |
CN105450679A (zh) | 进行数据云存储的方法及系统 | |
CN101146107B (zh) | 一种下载数据的方法及装置 | |
CN107846429B (zh) | 一种文件备份方法、装置和系统 | |
CN116126462A (zh) | 一种虚拟场景中业务部署的方法、装置以及云服务器 | |
CN103795810A (zh) | 数据分发系统及方法以及该数据分发系统中的中心服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |