CN106790324B - 内容分发方法、虚拟服务器管理方法、云平台和系统 - Google Patents

内容分发方法、虚拟服务器管理方法、云平台和系统 Download PDF

Info

Publication number
CN106790324B
CN106790324B CN201510808757.8A CN201510808757A CN106790324B CN 106790324 B CN106790324 B CN 106790324B CN 201510808757 A CN201510808757 A CN 201510808757A CN 106790324 B CN106790324 B CN 106790324B
Authority
CN
China
Prior art keywords
virtual server
server
virtual
url
storage
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
Application number
CN201510808757.8A
Other languages
English (en)
Other versions
CN106790324A (zh
Inventor
刘峥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510808757.8A priority Critical patent/CN106790324B/zh
Priority to EP16865571.0A priority patent/EP3334123B1/en
Priority to PCT/CN2016/094421 priority patent/WO2017084393A1/zh
Publication of CN106790324A publication Critical patent/CN106790324A/zh
Priority to US15/985,071 priority patent/US10911530B2/en
Application granted granted Critical
Publication of CN106790324B publication Critical patent/CN106790324B/zh
Priority to US17/141,809 priority patent/US11431791B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Abstract

本发明实施例涉及内容分发方法、虚拟服务器管理方法、云平台和系统,该内容分发方法应用于内容分发系统,包括:第一虚拟服务器接收内容请求方发送的第一请求消息,第一请求消息中携带用户请求内容的第一统一资源定位符URL;第一虚拟服务器根据自身维护的缓存列表,判断第一虚拟服务器管理的存储服务器中的一个存储服务器缓存了第一URL对应的内容;将第一请求消息重定向至缓存列表中记录的缓存了第一URL对应内容的第一存储服务器,所述重定向至第一存储服务器的第一请求消息用于指示第一存储服务器将缓存的第一URL对应的内容发送给内容请求方。由上可见,本发明实施例中,将服务器集群的计算能力和存储能力分开来,有效提高了内容I/O吞吐性能。

Description

内容分发方法、虚拟服务器管理方法、云平台和系统
技术领域
本发明涉及通信技术领域,尤其涉及内容分发方法、虚拟服务器管理方法、云平台和系统。
背景技术
内容分发网络(content delivery network,CDN)系统是一种在因特网(internet)上构建的分布式服务器系统。CDN系统也常称为内容分发系统或内容分发网络,该系统包含多个数据中心,其目的是使网络上的内容更快、更稳定的传输给用户,降低网络时延,提升用户体验。上述每个数据中心可以称为一个CDN节点,CDN节点可位于多个地点,多个不同的网络,以减少传输内容所需的流量,进而降低带宽成本。这些CDN节点之间也会动态的互相传输内容,并对用户的下载行为进行优化,减少内容供应者所需要的带宽成本,改善用户的下载速度,提高系统的稳定性。
CDN系统中的CDN节点可以分为中心节点和边缘节点,其中,每个中心节点包括一台或多台中心服务器,每个边缘节点包括一台或多台边缘服务器。中心节点一般会缓存需要分发的所有的网络内容,而边缘节点仅仅缓存需要分发的网络内容的一部分。当用户访问某一互联网内容时,域名系统(domain name system,DNS)会把用户的访问分配到离用户最近的边缘节点上,如果用户访问的边缘节点存储有用户需要的内容,那么该边缘节点会把用户请求的内容直接返回给用户。如果用户访问的边缘节点没有存储用户需要的内容,那么该边缘节点就回内容源头所在的服务器获取用户所访问内容,再返回给用户,例如,该边缘节点可以从中心节点获取用户所访问内容,再返回给用户。
现有技术中,将云计算应用到了内容分发方法中。其中,云计算提供的基础设施即服务(infrastructure as a service,IaaS)是消费者使用处理、储存、网络以及各种基础运算资源,部署与执行操作系统或应用程序等各种软件。客户端无须购买服务器、软件等网络设备,即可任意部署和运行处理、存储、网络和其它基本的计算资源,从而可以控制操作系统、储存装置、已部署的应用程序。企业可以根据自己不断变化的组织架构、管控模式和业务需求,基于虚拟化技术快速部署资源或获得服务,为企业云应用服务快速提供动态、灵活、弹性、虚拟、共享和高效的计算资源服务。IaaS中最重要的技术是虚拟化技术,即在单台物理服务器上利用虚拟化管理软件创建多个虚拟机,每一台虚拟机作为一台服务器使用。
现有技术的内容分发方法,采用了直接基于云计算技术的内容分发网络(CDN)。内容分发网络一般是分层结构,除了前面提到的由中心节点和边缘节点构成的两层结构,内容分发网络还可以是由中心节点、中间节点和边缘节点构成的三层结构。其中每个层次都是由一个或多个服务器组成的服务器集群。直接基于云计算技术的内容分发网络,其具体表现形式是利用云计算的虚拟化技术,直接将虚拟服务器看作传统内容分发网络中的物理服务器。在不同数据中心上构建中心节点的服务器集群、中间节点的服务器集群或边缘节点的服务器集群等,其中,服务器集群中的服务器都是虚拟服务器。
这种直接基于云计算技术的内容分发网络的好处是对内容分发网络管理控制软件可直接应用,并且具有云计算带来的优点,如可以使用通用硬件、设备占用空间小等等。
但是,由于直接基于虚拟服务器构成的服务器集群来构建内容分发网络,导致内容分发网络的内容输入输出(input/output,I/O)需要通过虚拟服务器来进行,基于虚拟服务器的内容I/O的性能远低于基于物理服务器的内容I/O的性能,从而基于云计算的内容分发网络的内容I/O的性能大大降低,影响用户的体验。
发明内容
本发明实施例提供内容分发方法、虚拟服务器管理方法、云平台和系统,可以使基于云计算的内容分发网络的内容I/O的性能得到大幅提升。第一方面,提供了一种内容分发方法,应用于内容分发系统,该内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,任意一个虚拟服务器作为第一虚拟服务器执行以下方法,包括:
第一虚拟服务器接收内容请求方发送的第一请求消息,第一请求消息中携带用户请求内容的第一统一资源定位符(uniform resource locator,URL);
第一虚拟服务器根据自身维护的缓存列表,判断第一虚拟服务器管理的存储服务器中的一个存储服务器缓存了第一URL对应的内容;
将第一请求消息重定向至缓存列表中记录的缓存了第一URL对应内容的第一存储服务器,上述重定向至第一存储服务器的第一请求消息用于指示第一存储服务器将缓存的第一URL对应的内容发送给内容请求方。
本发明实施例提供了一种内容分发方法,由于将服务器集群的计算能力和存储能力分开来,将计算能力利用云计算的虚拟化技术实现,而存储能力采用独立的存储服务器实现,从而使存储服务器可以直接将内容发送给内容请求方,而无需通过虚拟服务器,因此有效提高了内容I/O吞吐性能。
结合第一方面,在第一方面的第一种可能的实现方式中,该方法还包括:
第一虚拟服务器接收内容请求方发送的第二请求消息,第二请求消息中携带用户请求内容的第二URL;
第一虚拟服务器根据自身维护的缓存列表,判断第一虚拟服务器管理的所有存储服务器中均未缓存第二请求消息携带的第二URL对应的内容;
第一虚拟服务器根据一致性哈希算法,确定用于缓存第二请求消息携带的第二URL对应的内容的第二存储服务器;
将第二请求消息重定向至第二存储服务器,上述重定向至第二存储服务器的第二请求消息用于指示第二存储服务器回源获取用户请求的内容,将回源获取的用户请求的内容发送给内容请求方。
上述实现方式中,给出了当虚拟服务器管理的所有存储服务器中均未缓存用户请求的内容时,根据一致性哈希算法确定用于缓存用户请求的内容的存储服务器,由该存储服务器回源获取用户请求的内容,将回源获取的用户请求的内容发送给内容请求方,通过该方法可以在提高内容I/O的性能的基础上,确保负载均衡。
结合第一方面,在第一方面的第二种可能的实现方式中,第一虚拟服务器根据自身维护的缓存列表,判断第一虚拟服务器管理的存储服务器中的一个存储服务器缓存了第一URL对应的内容之前,该方法还包括:
第一虚拟服务器根据第一请求消息中携带的用户请求内容的第一URL,确定第一虚拟服务器处理第一URL。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,第一虚拟服务器根据自身维护的缓存列表,判断第一虚拟服务器管理的所有存储服务器中均未缓存第二请求消息携带的第二URL对应的内容之前,该方法还包括:
第一虚拟服务器根据第二请求消息中携带的用户请求内容的第二URL,确定第一虚拟服务器处理第二URL。
结合第一方面的第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:
第一虚拟服务器接收内容请求方发送的第三请求消息,第三请求消息中携带用户请求内容的第三URL;
第一虚拟服务器根据第三请求消息中携带的用户请求内容的第三URL,确定第二虚拟服务器处理第三URL;
将第三请求消息重定向至第二虚拟服务器。
上述实现方式中,给出了虚拟服务器在接收到内容请求方发送的请求消息后,在对该请求消息进行相应处理前,先要根据请求消息中携带的URL,判断处理该URL的虚拟服务器,当判断出自身为处理该URL的虚拟服务器时,再对该请求消息进行相应处理,当判断出应该由其他虚拟服务器来处理该URL时,将该请求消息重定向至其他虚拟服务器。本领域技术人员可以理解,上述第一虚拟服务器为内容分发系统所包含的多个虚拟服务器中最先接收到该请求消息的虚拟服务器,上述第二虚拟服务器为在第一虚拟服务器对请求消息进行重定向处理后才接收到该请求消息的虚拟服务器。由于每个虚拟服务器只处理自身对应的URL,从而实现了虚拟服务器级别的负载均衡。
结合第一方面的第二种或第三种或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,第一虚拟服务器根据请求消息中携带的用户请求内容的URL,确定处理该URL的虚拟服务器,包括:
第一虚拟服务器根据请求消息中携带的用户请求内容的URL,计算该URL的哈希值;
获取分布式数据库中所有分块的哈希值,根据该URL的哈希值,按照一致性哈希算法查询该URL对应的分块,其中,内容分发系统包括的存储服务器中的每一个存储服务器均划分为至少一个分块;
根据该URL对应的分块的哈希值,以及分布式数据库中存储的分块的哈希值与虚拟服务器的哈希值的对应关系,确定处理该URL的虚拟服务器。
上述实现方式中,给出了确定处理URL的虚拟服务器的方法,由于分布式数据库中存储了分块的哈希值与虚拟服务器的哈希值的对应关系,因此本发明实施例中,先根据一致性哈希算法确定URL对应的分块的哈希值,然后根据确定出的分块的哈希值就可以在分布式数据库中查找到处理该URL的虚拟服务器。这种方式简单、容易实现,并且可以利用云计算的优点,提高处理效率。
结合第一方面的第一种可能的实现方式,在第一方面的第六种可能的实现方式中,内容分发系统包括的存储服务器中的每一个存储服务器均划分为至少一个分块,上述将第二请求消息重定向至第二存储服务器之后,该方法还包括:
第一虚拟服务器更新第二URL对应的热度信息;
根据热度信息,确定需要缓存第二URL对应的内容;
确定第二URL对应的分块的存储容量未满;
通知第二存储服务器缓存第二URL对应的内容到第二URL对应的分块。
上述实现方式中,给出了当存储服务器中未缓存URL对应的内容时,根据热度信息确定是否需要缓存URL对应的内容,由于缓存URL对应的内容可以有效节约将内容发送给内容请求方的时间,因此尽量缓存访问热度高的内容可以提高内容分发系统的I/O效率;以及,当URL对应的分块的存储容量未满时,缓存URL对应的内容到URL对应的分块,可以有效实现负载均衡。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,每个分块对应一个虚拟服务器,该方法还包括:
第一虚拟服务器确定第二URL对应的分块的存储容量已满;
确定第一虚拟服务器管理的多个分块中的至少一个分块的存储容量未满,选择一个存储容量未满的分块;
第一虚拟服务器通知第二存储服务器缓存第二URL对应的内容到选择的分块,并且,第一虚拟服务器将第二URL的哈希值、缓存第二URL对应的内容的分块的哈希值和第二URL对应的热度信息添加到缓存队列的记录中;或
第一虚拟服务器确定第二URL对应的分块的存储容量已满;
确定第一虚拟服务器管理的多个分块的存储容量均已满,从缓存队列中查询热度低于第一阈值的记录;
根据查询到的记录,通知该记录中的分块对应的存储服务器删除该记录中的URL对应的内容。
上述实现方式中,给出了虚拟服务器管理存储服务器存储和删除内容的方法,当每个分块对应一个虚拟服务器,且URL对应的分块的存储容量已满时,将URL对应的内容存储在该虚拟服务器管理的其他存储容量未满的分块;当每个分块对应一个虚拟服务器,且URL对应的分块的存储容量已满时,该虚拟服务器管理的所有分块的存储容量均已满时,根据热度信息删除热度低的内容。该方式可以使虚拟服务器拉通存储自己管理的分块,提高磁盘利用率。
结合第一方面的第六种可能的实现方式,在第一方面的第八种可能的实现方式中,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,上述将第二请求消息重定向至第二存储服务器之后,该方法还包括:
第一虚拟服务器接收当第二URL对应的分块的存储容量已满时,该分块所属的第二存储服务器向管理该分块的多个虚拟服务器上报的该分块已满的通知信息;
第一虚拟服务器向第二存储服务器发送删除通知,该删除通知中携带第一虚拟服务器管理的该分块中热度低于第二阈值的内容的URL,该删除通知用于指示第二存储服务器根据该删除通知中携带的URL对应的内容的热度信息,确定是否将该删除通知中携带的URL对应的内容删除。
上述实现方式中,给出了虚拟服务器管理存储服务器删除内容的方法,当每个分块对应多个虚拟服务器,且URL对应的分块的存储容量已满时,该虚拟服务器向URL对应的存储服务器发送删除通知,由存储服务器根据该分块对应的多个虚拟服务器分别发送的删除通知,通过比较删除通知中携带的热度信息,删除热度低的内容。该方式通过多个虚拟服务器的协商,删除存储服务器的分块中热度低的内容的准确性高。
优选地,可以通过多次发送删除通知的方式,来进一步提高删除内容的准确性,例如,当存储服务器要删除分块中三分之一存储容量的内容时,可以仅在删除通知中携带三十分之一存储容量的内容的URL,通过一次比较确认某个虚拟服务器的删除通知中携带的URL对应的内容,向该虚拟服务器发送通知信息,指示该虚拟服务器再次发送删除通知。
第二方面,提供了一种虚拟服务器管理方法,应用于内容分发系统,内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,上述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,上述至少一个分块中的每个分块由一个虚拟服务器管理,该方法包括:
云平台计算内容分发系统的每个分块的哈希值和每个虚拟服务器的哈希值;
根据一致性哈希算法或随机选取的方式,确定每个分块对应的虚拟服务器;
建立分布式数据库,在该分布式数据库中存储分块的哈希值与虚拟服务器的哈希值的对应关系。
本发明实施例提供了一种虚拟服务器管理方法,该方法中通过建立分布式数据库,预先确定了分块和虚拟服务器的对应关系,每个分块由一个虚拟服务器管理,可以使虚拟服务器拉通存储自己管理的分块,提高磁盘利用率。
结合第二方面,在第二方面的第一种可能的实现方式中,该方法还包括:
云平台根据内容分发系统的负荷,确定需要新增虚拟服务器;
确定需要分配给新增虚拟服务器的分块数目;
从所有分块中选择上述分块数目个分块;
删除选择的分块中的内容;
将所选分块分配给新增虚拟服务器,并更新分布式数据库中分块与虚拟服务器的对应关系;或
云平台根据内容分发系统的负荷,确定需要减少虚拟服务器;
云平台通知存储服务器删除待减少的虚拟服务器对应的分块中的内容;
将待减少的虚拟服务器对应的分块分配给其他的虚拟服务器,更新分块与虚拟服务器的对应关系;
删除上述待减少的虚拟服务器。
上述实现方式中,给出了每个分块由一个虚拟服务器管理时,虚拟服务器伸缩的处理流程,无论增加或者减少虚拟服务器都要更新分布式数据库中分块与虚拟服务器的对应关系,从而在虚拟服务器伸缩后仍然可以实现内容分发的分布式处理。其中,当增加虚拟服务器时,更新分布式数据库不仅需要在数据库中增加新增虚拟服务器与其管理的分块的哈希值之间的对应关系,还要删除为新增虚拟服务器分配的分块与原管理该分块的虚拟服务器的哈希值之间的对应关系;当减少虚拟服务器时,更新分布式数据库不仅需要在数据库中删除减少的虚拟服务器与该虚拟服务器原来管理的分块的哈希值之间的对应关系,还要增加该虚拟服务器原来管理的分块与为该虚拟服务器原来管理的分块重新分配的虚拟服务器的哈希值之间的对应关系。
第三方面,提供了一种虚拟服务器管理方法,应用于内容分发系统,内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,上述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,上述至少一个分块中的每个分块由多个虚拟服务器管理,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,该方法包括:
云平台计算内容分发系统的每个分块的哈希值和每个虚拟服务器的哈希值;
根据一致性哈希算法或随机选取的方式,确定每个分块对应的多个虚拟服务器;
建立分布式数据库,在该分布式数据库中存储分块的哈希值与虚拟服务器的哈希值的对应关系。
本发明实施例提供了一种虚拟服务器管理方法,该方法中通过建立分布式数据库,预先确定了分块的哈希值和虚拟服务器的对应关系,每个分块由多个虚拟服务器管理的情况下,实现内容分发的分布式处理。
结合第三方面,在第三方面的第一种可能的实现方式中,该方法还包括:
云平台根据内容分发系统的负荷,确定需要新增虚拟服务器;
云平台计算新增虚拟服务器的哈希值;
获取所有分块的所有哈希值;
基于一致性哈希算法,为新增虚拟服务器分配对应的分块的一个哈希值;
删除分配的分块中的属于该分块的一个哈希值原对应虚拟服务器的缓存队列的内容;
将所选分块的一个哈希值分配给新增虚拟服务器,并更新分布式数据库中分块的哈希值与虚拟服务器的对应关系;或
云平台根据内容分发系统的负荷,确定需要减少虚拟服务器;
云平台确定待减少的虚拟服务器对应的分块的哈希值;
通知存储服务器删除待减少的虚拟服务器对应的分块中的属于该虚拟服务器的缓存队列的内容;
将待减少的虚拟服务器对应的分块的哈希值分配给其他的虚拟服务器,更新分块的哈希值与虚拟服务器的对应关系;
删除该待减少的虚拟服务器。
上述实现方式中,给出了每个分块由多个虚拟服务器管理时,虚拟服务器伸缩的处理流程,无论增加或者减少虚拟服务器都要更新分布式数据库中分块的哈希值与虚拟服务器的对应关系,从而在虚拟服务器伸缩后仍然可以实现内容分发的分布式处理。其中,当增加虚拟服务器时,更新分布式数据库仅需要在数据库中增加新增虚拟服务器与其管理的分块的哈希值之间的对应关系,而无需删除为新增虚拟服务器分配的分块与原管理该分块的虚拟服务器的哈希值之间的对应关系;当减少虚拟服务器时,更新分布式数据库仅需要在数据库中删除减少的虚拟服务器与该虚拟服务器原来管理的分块的哈希值之间的对应关系,无需为该虚拟服务器原来管理的分块重新分配虚拟服务器,也无需增加该虚拟服务器原来管理的分块与为该虚拟服务器原来管理的分块重新分配的虚拟服务器的哈希值之间的对应关系。
第四方面,提供了一种内容分发系统,该内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,上述任意一个虚拟服务器作为第一虚拟服务器用于执行上述内容分发方法。
本发明实施例提供了一种内容分发系统,由于将服务器集群的计算能力和存储能力分开来,将计算能力利用云计算的虚拟化技术实现,而存储能力采用独立的存储服务器实现,从而使存储服务器可以直接将内容发送给内容请求方,而无需通过虚拟服务器,因此有效提高了内容I/O吞吐性能。
第五方面,提供了一种云平台,应用于内容分发系统,内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,上述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,上述至少一个分块中的每个分块由一个虚拟服务器管理,该云平台用于执行上述第二方面或第二方面的各种可能的实现方式提供的虚拟服务器管理方法。
本发明实施例提供了一种云平台,该云平台通过建立分布式数据库,预先确定了分块和虚拟服务器的对应关系,每个分块由一个虚拟服务器管理,可以使虚拟服务器拉通存储自己管理的分块,提高磁盘利用率。
第六方面,提供了一种云平台,应用于内容分发系统,内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,上述至少两个虚拟服务器中的任意一个虚拟服务器均管理上述至少两个存储服务器中的一个或多个存储服务器,上述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,上述至少一个分块中的每个分块由多个虚拟服务器管理,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,该云平台用于执行上述第三方面或第三方面的各种可能的实现方式提供的虚拟服务器管理方法。
本发明实施例提供了一种云平台,该云平台通过建立分布式数据库,预先确定了分块的哈希值和虚拟服务器的对应关系,每个分块由多个虚拟服务器管理的情况下,实现内容分发的分布式处理。
另一方面,本发明实施例提供了一种云平台,该云平台具有实现上述方法实际中云平台行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,云平台的结构中包括处理器和发射器,所述处理器被配置为支持云平台执行上述方法中相应的功能。所述发射器用于支持云平台与存储服务器之间的通信,向存储服务器发送上述方法中所涉及的信息或者指令。所述云平台还可以包括存储器,所述存储器用于与处理器耦合,其保存云平台必要的程序指令和数据。
又一方面,本发明实施例提供了一种存储服务器,该存储服务器具有实现上述方法设计中存储服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一个可能的设计中,存储服务器的结构中包括接收器和处理器,所述接收器被配置为支持存储服务器接收上述云平台重定向的请求消息等各种指令。所述处理器控制存储服务器根据所述接收器接收的请求消息将存储服务器的分块中缓存的内容发送给内容请求方,或者,先回源获取请求消息中携带的URL对应的内容,然后将获取的内容发送给内容请求方。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述云平台所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述存储服务器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
相较于现有技术,本发明提供的方案可以使基于云计算的内容分发网络的内容I/O的性能得到大幅提升。
附图说明
图1为本发明实施例提供的CDN系统架构示意图;
图2为本发明实施例提供的内容分发方法所基于的网络架构示意图;
图3为本发明实施例提供的一种内容分发方法信号流图;
图4为本发明实施例提供的一种虚拟服务器的管理方法流程图;
图5为本发明实施例提供的另一种虚拟服务器的管理方法流程图;
图6为哈希值生成方法示意图;
图7为URL对应的边缘服务器的确定方法示意图;
图8为本发明提出的边缘节点的服务器集群的架构示意图;
图9为存储服务器的分块示意图;
图10为存储分块和虚拟服务器的一种对应关系示意图;
图11为本发明实施例提供的一种内容分发方法流程图;
图12为本发明实施例提供的另一种内容分发方法流程图;
图13为本发明实施例提供的另一种内容分发方法流程图;
图14为本发明实施例提供的另一种内容分发方法流程图;
图15为存储分块和虚拟服务器的另一种对应关系示意图;
图16为本发明实施例提供的另一种内容分发方法流程图;
图17为本发明实施例提供的虚拟服务器的管理方法流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
图1为本发明实施例提供的CDN系统架构示意图,参照图1,该CDN系统包括中心节点101、中间节点102和边缘节点103,其中,每个层级中的节点数目均可以为一个或多个,图中示出一个中心节点,仅为示意,并不作为对本发明实施例中中心节点数目的限定,通常地,中心节点101缓存该CDN系统中的全部内容,中间节点102缓存中心节点101的部分内容,边缘节点103缓存中间节点102的部分内容。针对某一内容的访问请求通常先会被重定向到边缘节点103,如果边缘节点103缓存了该访问请求所要访问的内容,则边缘节点103会直接将该内容发送给内容请求方,如果边缘节点103未缓存该访问请求所要访问的内容,则边缘节点103先要从其上一级节点获取该内容,然后将获取的内容发送给内容请求方。其中,重定向是指是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。
本发明实施例中,将中间节点102称为边缘节点103的上一级节点,将中心节点101称为中间节点102的上一级节点,如果中间节点102也未缓存该访问请求所要访问的内容,则中间节点102先要从其上一级节点获取该内容,然后将获取的内容发送给边缘节点103。
为了克服现有技术中基于云计算的CDN系统I/O性能较低的问题,本发明实施例中,对每个CDN节点的组成进行了改进,这里的CDN节点可以是中心节点、中间节点,也可以是边缘节点,由于用户的访问请求通常先被重定向到边缘节点,因此本发明实施例中仅以CDN系统中的边缘节点为例进行说明,其他的CDN节点构成和内容分发方法与此类似,为节约篇幅,在此不进行赘述。
本发明实施例中,利用云计算技术创建的虚拟服务器和独立的存储服务器(storage server)来实现CDN系统中的边缘节点。将服务器的计算能力和存储能力分开来,将计算能力利用云计算的虚拟化技术实现,而存储能力采用独立的存储服务器实现。每一台虚拟服务器可以访问一台或多台存储服务器。由于存储服务器为物理服务器,内容I/O无需通过虚拟服务器,因此极大地提高了CDN系统的I/O性能。
图2为本发明实施例提供的内容分发方法所基于的网络架构示意图,参照图2,本发明涉及的网元包括:用户设备(User Equipment,UE)201、负载均衡与路由服务器(LoadBalancing&Route Server)202、云平台(Cloud Platform)203和存储服务器204。其中,可以根据需要在云平台203上创建多个虚拟机(Virtual Machine,VM)2031,每个VM2031作为一个虚拟服务器,虚拟服务器2031和存储服务器204共同构成CDN系统的集群服务器节点。图2中的集群服务器节点是作为CDN系统的边缘节点来使用,本领域技术人员可以了解同样的集群服务器节点也可以作为中心节点或中间节点来使用,本发明实施例中仅以CDN系统中的边缘节点为例进行说明。
本发明实施例提供了一种云平台,该云平台具有实现本发明实施例提供的内容分发方法和虚拟服务器管理方法实际中云平台行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,云平台的结构中包括处理器和发射器,所述处理器被配置为支持云平台执行上述方法中相应的功能。所述发射器用于支持云平台与存储服务器之间的通信,向存储服务器发送上述方法中所涉及的信息或者指令。所述云平台还可以包括存储器,所述存储器用于与处理器耦合,其保存云平台必要的程序指令和数据。所述云平台还可以包括接收器,所述接收器用于接收UE发送的请求消息。
本发明实施例提供了一种存储服务器,该存储服务器具有实现上述方法设计中存储服务器行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一个可能的设计中,存储服务器的结构中包括接收器和处理器,所述接收器被配置为支持存储服务器接收上述云平台重定向的请求消息等各种指令。所述处理器控制存储服务器根据所述接收器接收的请求消息将存储服务器的分块中缓存的内容发送给内容请求方,或者,先回源获取请求消息中携带的URL对应的内容,然后将获取的内容发送给内容请求方。所述存储服务器还可以包括发射器,所述发射器用于将内容发送给内容请求方。
基于图2所示的网络架构,本发明实施例提供的内容分发方法主要包括如下处理流程:
1、用户根据文件的URL,通过UE201向负载均衡与路由服务器202请求某文件内容;
2、负载均衡与路由服务器202根据路由调度算法将用户重定向(Redirect)至云计算平台下的某台虚拟服务器A,其中,具体的路由调度算法可以基于不同的选择策略,比如基于虚拟服务器的负载状况、基于虚拟服务器的响应时间等等;本发明实施例中,云计算平台可以简称为云平台。
3、UE201向虚拟服务器A请求URL对应的文件内容;
4、虚拟服务器A判断应该处理该URL的虚拟服务器B;如果虚拟服务器A和虚拟服务器B不是同一虚拟服务器,则将用户请求重定向至虚拟服务器B,然后再由虚拟服务器B对该用户请求进行处理;如果虚拟服务器A和虚拟服务器B是同一虚拟服务器,则无需进行重定向,直接由虚拟服务器B对该用户请求进行处理;
虚拟服务器B判断该URL是否在所保持的缓存队列中;如果该URL在虚拟服务器B的缓存队列中,则将用户请求重定向至缓存队列所记录的该URL对应的存储服务器C,并通知存储服务器C将该URL对应的文件内容分发给UE201;如果该URL不在虚拟服务器B的缓存队列中,则根据一致性哈希算法确定该URL对应的存储服务器D,将用户请求重定向至该URL对应的存储服务器D,并通知存储服务器D回源获取该URL对应的文件内容,并分发给UE201;
其中,存储服务器C和存储服务器D可能为同一存储服务器,也可能为不同的存储服务器。
5、存储服务器C或存储服务器D将该URL所对应的文件内容分发给UE201。
本发明实施例提供了一种内容分发方法,由虚拟服务器接收UE发送的请求消息,根据请求消息中携带的用户请求的文件内容的URL,对该URL进行处理,将请求消息重定向至该URL对应的存储服务器,由存储服务器将缓存的该URL对应的内容发送给UE。由于将服务器集群的计算能力和存储能力分开来,将计算能力利用云计算的虚拟化技术实现,而存储能力采用独立的存储服务器实现,从而使存储服务器可以直接将内容发送给UE,而无需通过虚拟服务器,因此有效提高了内容I/O吞吐性能。
图3为本发明实施例提供的内容分发方法信号流图,该方法涉及的主体主要包括CDN节点中的虚拟服务器和存储服务器,该方法包括:
步骤301,虚拟服务器A接收UE发送的请求消息,请求消息中携带用户请求内容的URL。
本发明实施例中,负载均衡与路由服务器在接收到UE发送的请求消息后,根据预设的策略,将请求消息重定向至虚拟服务器A。
步骤302,虚拟服务器A根据URL,确定处理该URL的虚拟服务器B。
CDN节点包括多个虚拟服务器,每个虚拟服务器负责处理部分URL,接收到请求消息的虚拟服务器A不一定是负责处理该URL的虚拟服务器,因此虚拟服务器A在接收到请求消息后,还要根据请求消息中携带的URL,确定处理该URL的虚拟服务器B。
本发明实施例中,在建立CDN系统时,云平台会建立一个分布式数据库,在该分布式数据库中保存着分块与虚拟服务器的对应关系,也就是说该对应关系中的分块由对应的虚拟服务器进行管理,可以根据随机选取的方式,来为每个分块选取对应的虚拟服务器,也可以根据一致性哈希算法,来为每个分块确定对应的虚拟服务器,将确定好的对应关系存储于分布式数据库中,以便后续进行查找,其中,以分块的哈希值来标识一个分块,以虚拟服务器的哈希值来标识一个虚拟服务器。
为了确定处理URL的虚拟服务器,可以先计算URL的哈希值,然后从分布式数据库中查找CDN节点中所有分块的哈希值,根据一致性哈希算法确定URL对应的分块的哈希值,再根据分块的哈希值从分布式数据库中查找该分块的哈希值对应的虚拟服务器的哈希值,从而确定处理URL的虚拟服务器。其中,上述所有分块的哈希值既包括所有分块中每个分块的哈希值,也包括每个分块的每个哈希值。
本发明实施例中,存储服务器和虚拟服务器的数量可以不同,也就是说,存储服务器和虚拟服务器不必一一对应,为了实现虚拟服务器和存储服务器的一对多对应,可以将存储服务器划分为至少一个分块,虚拟服务器对分块的管理方式可以采取下面两种管理方式:
第一种管理方式,将存储服务器分为至少一个分块,每个分块由一个虚拟服务器管理;此时,分布式数据库中存储的分块与虚拟服务器的对应关系可以如表一所示:
表一
虚拟服务器 A B C D
分块 00 10 20 30
由表一可见,当确定URL对应的分块的哈希值为10时,通过查询分布式数据库,可以知道处理该URL的虚拟服务器为虚拟服务器B。
第二种管理方式,将存储服务器分为至少一个分块,每个分块由多个虚拟服务器管理,其中,本发明实施例中提到的多个均指至少两个。此时,分布式数据库中存储的分块与虚拟服务器的对应关系可以如表二所示:
表二
虚拟服务器 A B C D
分块 000 001 20 30
由表二可见,当确定URL对应的分块的哈希值为000时,通过查询分布式数据库,可以知道处理该URL的虚拟服务器为虚拟服务器A。
本发明实施例中,为了实现分块与虚拟服务器的一对多的对应关系,可以使每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,使一个分块获得多个哈希值的方式可以在分块的标识后面添加序号,例如,表二中的分块000和分块001对应同一分块00,也就是说,分块00由两个虚拟服务器管理,这两个虚拟服务器分别为虚拟服务器A和虚拟服务器B。
对应于第一种管理方式和第二种管理方式,可以采取相同的方法确定处理URL的虚拟服务器B,具体地:虚拟服务器A根据URL,计算URL的哈希值;向分布式数据库查询分块的哈希值,根据一致性哈希算法,确定URL对应的分块的哈希值;根据URL对应的分块的哈希值,向分布式数据库查询该分块的哈希值对应的虚拟服务器的哈希值;将查询到的虚拟服务器确定为处理URL的虚拟服务器B。
如果步骤302确定出的虚拟服务器B和虚拟服务器A不是同一虚拟服务器,则执行步骤303;如果步骤302确定出的虚拟服务器B和虚拟服务器A是同一虚拟服务器,则执行步骤304。
步骤303,当虚拟服务器A与虚拟服务器B不一致时,虚拟服务器A将请求消息重定向至虚拟服务器B。
步骤304,虚拟服务器B判断自身管理的存储服务器中是否缓存了URL对应的内容。
若步骤304的判断结果为虚拟服务器B判断出自身管理的存储服务器中缓存了URL对应的内容,则执行步骤305;若步骤304的判断结果为虚拟服务器B判断出自身管理的存储服务器中未缓存URL对应的内容,则执行步骤307。
步骤305,当虚拟服务器B判断出自身管理的存储服务器中缓存了URL对应的内容时,将请求消息重定向至缓存队列所记录的URL对应的存储服务器,并向URL对应的存储服务器发送第一通知消息。
步骤306,URL对应的存储服务器根据请求消息和第一通知消息,将缓存的URL对应的内容发送给UE。
其中,第一通知消息用于指示存储服务器,该存储服务器中缓存有URL对应的内容,可选地,步骤305中也可以不向URL对应的存储服务器发送第一通知消息,相应地,步骤306中URL对应的存储服务器根据请求消息判断自身是否缓存了URL对应的内容,当判断出自身缓存了URL对应的内容时,将缓存的URL对应的内容发送给UE。
步骤307,当虚拟服务器B判断出自身管理的存储服务器中未缓存URL对应的内容时,将请求消息重定向至根据一致性哈希算法确定的URL对应的存储服务器,并向URL对应的存储服务器发送第二通知消息。
步骤308,URL对应的存储服务器根据请求消息和第二通知消息,回源获取URL对应的内容,将获取的URL对应的内容发送给UE。
其中,第二通知消息用于指示存储服务器,该存储服务器中未缓存有URL对应的内容,可选地,步骤307中也可以不向URL对应的存储服务器发送第二通知消息,相应地,步骤308中URL对应的存储服务器根据请求消息判断自身是否缓存了URL对应的内容,当判断出自身未缓存URL对应的内容时,回源获取URL对应的内容,将获取的URL对应的内容发送给UE。
上述回源获取URL对应的内容,具体可以为:从中间节点获取URL对应的内容或者从中心节点获取URL对应的内容。
由于虚拟服务器对分块采用第一种管理方式和采用第二种管理方式时,内容分发方法的流程有所不同,下面针对两种管理方式下的内容分发方法分别进行说明:
内容分发方法还可以包括内容存储的处理流程,针对第一种管理方式,在步骤307之后,该方法还可以包括:
步骤3071,虚拟服务器B更新URL对应的热度信息。
步骤3072,根据热度信息,判断是否需要缓存URL对应的内容。
步骤3073,当判断出需要缓存URL对应的内容时,判断URL对应的分块的存储容量是否已满。
这里URL对应的分块,指的是根据一致性哈希算法确定的URL对应的分块。
若步骤3073的判断结果为判断出URL对应的分块的存储容量未满,则执行步骤3074;若步骤3073的判断结果为判断出URL对应的分块的存储容量已满,则执行步骤3075。
步骤3074,当判断出URL对应的分块的存储容量未满时,通知存储服务器缓存URL对应的内容到URL对应的分块。
本发明实施例中,以存储服务器D代表URL对应的分块所在的存储服务器。
步骤3075,当判断出URL对应的分块的存储容量已满时,在虚拟服务器B管理的多个分块中,选择一个存储容量未满的分块;通知存储服务器缓存URL对应的内容到选择的分块,并将URL、缓存URL的分块的标识和URL对应的热度信息添加到缓存队列的记录中。
本发明实施例中,以存储服务器C代表虚拟服务器B选择的一个存储容量未满的分块所在的存储服务器。
其中,存储服务器C和存储服务器D可能是同一存储服务器,也可能是不同的存储服务器。
内容分发方法还可以包括内容删除的处理流程,存储服务器可以定时或由事件触发向管理分块的虚拟服务器上报分块的存储容量,针对第一种管理方式,当虚拟服务器B确定管理的多个分块的存储容量均已满时,从缓存队列中查询热度低于第一阈值的记录;根据查询到的记录,通知该记录中的分块对应的存储服务器删除该记录中的URL对应的内容。
本发明实施例还提供了一种虚拟服务器的管理方法,参照图4所示的虚拟服务器的管理方法流程图,本发明实施例中,边缘节点包含的虚拟服务器的数量不是固定不变的,可以随着CDN系统负荷的变化而增加或减少虚拟服务器,该方法可由云平台来执行,下面以第一种管理方式为例进行说明,该方法包括:
步骤401,云平台根据CDN系统的负荷,判断是否需要增加虚拟服务器或者减少虚拟服务器。
当判断结果为需要增加虚拟服务器时,执行步骤402;当判断结果为需要减少虚拟服务器时,执行步骤406。
步骤402,当需要增加虚拟服务器时,确定需要分配给新增虚拟服务器的分块数目。
步骤403,从所有分块中选择上述分块数目个分块。
其中,可以采用随机选择的方式来选择新增虚拟服务器对应的分块,也可以根据一致性哈希算法确定新增虚拟服务器对应的分块。
步骤404,删除选择的分块中的内容。
步骤405,将所选分块分配给新增虚拟服务器,并更新分布式数据库中保存的分块与虚拟服务器的对应关系。
步骤406,当需要减少虚拟服务器时,通知存储服务器删除待减少的虚拟服务器对应的分块中的文件。
步骤407,将待减少的虚拟服务器对应的分块分配给其他的虚拟服务器,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
针对第二种管理方式,内容分发方法包括的内容存储的处理流程,与第一种管理方式类似,在此不做赘述。
针对第二种管理方式,内容分发方法还可以包括内容删除的处理流程,由于采用第二种管理方式时,一个分块由多个虚拟服务器管理,因此要根据多个虚拟服务器的协商结果来确定删除一个分块中的哪些内容,而不能由一个虚拟服务器单独来确定删除一个分块中的哪些内容,具体地,该方法包括:当URL对应的分块的存储容量已满时,该分块所属的存储服务器向管理该分块的多个虚拟服务器上报该分块已满的通知信息,通知分块对应的虚拟服务器需要淘汰热度较低的第一百分比的内容;多个虚拟服务器中的每个虚拟服务器分别向该存储服务器发送删除通知,删除通知中携带虚拟服务器管理的该分块中热度较低的第二百分比的内容的URL,以及该部分内容的热度信息;存储服务器根据每个删除通知中携带的URL对应的内容的热度信息,将热度信息指示的热度最低的删除通知中携带的URL对应的内容删除。
其中,热度信息具体可以为平均热度、最大热度或最小热度,本发明实施例中,可以设定第二百分比小于第一百分比,从而可以通过虚拟服务器多次发送删除通知,以便比较精确的删除热度较低的内容。
本发明实施例还提供了一种虚拟服务器的管理方法,参照图5所示的虚拟服务器的管理方法流程图,本发明实施例中,针对第二种管理方式与第一种管理方式略有不同,该方法包括:
步骤501,云平台根据CDN系统的负荷,判断是否需要增加虚拟服务器或者减少虚拟服务器。
当判断结果为需要增加虚拟服务器时,执行步骤502;当判断结果为需要减少虚拟服务器时,执行步骤506。
步骤502,当需要增加虚拟服务器时,计算新增虚拟服务器的哈希值。
步骤503,基于一致性哈希算法,为新增虚拟服务器分配对应的分块。
步骤504,删除分配的分块中的属于原对应虚拟服务器缓存队列的内容。
步骤505,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
与第一种管理方式不同的是,步骤505中,更新上述对应关系比较简单,仅需增加一个分块的哈希值与虚拟服务器的哈希值的对应关系,由于分块可以由多个虚拟服务器管理,因此无需删除该分块与其他虚拟服务器的对应关系。
步骤506,当需要减少虚拟服务器时,确定将减少的虚拟服务器对应的分块。
步骤507,通知存储服务器删除将减少的虚拟服务器对应的分块中的属于该虚拟服务器的缓存队列的内容。
步骤508,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
本发明实施例中涉及到URL的哈希值、分块的哈希值和服务器的哈希值,下面以URL的哈希值为例进行说明,CDN系统中的内容标识是内容所对应的URL,通常为了节省存储空间,CDN系统中不使用URL的原始字符串,而是使用URL的哈希(Hash)串来代表URL,上述哈希串也可称为哈希值,图6为哈希值生成方法示意图,参照图6,通过将原始URL分段,对每段利用任意Hash算法得到一个固定长度的二进制串,再合并而成。图6中对于某URL所得到的Hash串是长度为64的二进制串。
本发明实施例中,采用对URL分布式处理的方式,由于内容分发网络中所处理的URL数目数以亿级,所以当服务器集群,如边缘节点的服务器集群处理URL的时候,一般采用分布式的处理方法。具体来说,就是将整个URL的集合根据边缘节点的服务器集群中服务器的数量,分为独立的URL子集合,每个边缘服务器只处理自己对应的URL子集合。一个URL只会在唯一一台边缘服务器上进行处理。这里的处理是指边缘服务器对URL对应的内容进行热度计算,判断是否缓存,缓存对应的文件内容,回源获取URL对应的文件内容等操作。
判断一个URL对应的边缘服务器可以基于一致性哈希的技术,具体地,可以先根据一致性哈希算法,确定URL对应的分块,然后在分布式数据库中查找该分块对应的虚拟服务器,从而确定URL对应的虚拟服务器;或者,如果分布式数据库中存储的分块的哈希值与虚拟服务器的哈希值的对应关系满足一致性哈希算法,则可以直接根据一致性哈希算法,确定URL对应的虚拟服务器。下面以上述第二种情况为例,对一致性哈希算法进行简要说明,图7为URL对应的边缘服务器的确定方法示意图,参照图7,具体的判断方法是,基于某个哈希算法,如murmur算法,对URL和服务器的标识(ID)做哈希,得到URL的哈希串和服务器的哈希串,这个哈希串通常为二进制串。图7所示的哈希串的长度是32位,所有可能的长度为32的哈希串组成了一个环,环上面的每个点对应某个哈希串,总共有2^32个Hash串。那么URL的哈希串和服务器的哈希串都会对应在环上某个点。从URL的哈希串对应的点出发,顺时针所遇到的第一个服务器的哈希串对应的点,那么这个服务器就是处理此URL的服务器。
通常情况下,由于服务器的数量远远小于URL的数目,为了负载均衡,对于一台服务器,会生成多个哈希串,也就是说,一个服务器对应于环上多个点。生成多个哈希串的方法可以在服务器的ID后添加序号来解决。本发明实施例提出了一种边缘节点的服务器集群的架构,结合云计算技术和独立的存储服务器来实现内容分发网络中的边缘节点的服务器集群,其中,存储服务器采用独立的物理服务器来实现。图8为本发明提出的边缘节点的服务器集群的架构示意图,参照图8,该架构的特点是将服务器集群的计算能力和存储能力分开来,将计算能力利用云计算的虚拟化技术实现,而存储能力采用独立的存储服务器实现。每一台虚拟服务器可以访问一台或多台存储服务器。
本发明实施例中,虚拟服务器与存储服务器的对应关系比较灵活,虚拟服务器与存储服务器可以是一对多的对应关系,存储服务器与虚拟服务器也可以是一对多的对应关系,而不必完全是一一对应的对应关系。如果虚拟服务器和存储服务器一一对应,则虚拟服务器的数量与存储服务器的数量必须相等,导致当需要弹性伸缩虚拟服务器的时候,就必须同时增加或减少存储服务器的数量,影响虚拟服务器的动态弹性伸缩。所以,本发明实施例中,对于一个虚拟服务器对应的存储服务器的数目不做限定,对于一个存储服务器对应的虚拟服务器的数目也不做限定,即一台存储服务器可以对应多台虚拟服务器,一台虚拟服务器可以对应多台存储服务器。
参照图8,本发明实施例中,虚拟服务器与存储服务器的对应关系不必一一对应,具有以下好处:虚拟服务器的数量与存储服务器的数量可以不等;方便实现容量不等的异构的存储服务器混合组网;增加虚拟服务器时可以平均从多台虚拟服务器获得其对应存储空间;减少虚拟服务器时可以将对应的存储空间平均分配给多台虚拟服务器管理;避免单台虚拟服务器过热导致某存储服务器负载过重的情况。
要实现存储服务器与虚拟服务器的一对多对应,可以对存储服务器的存储能力进行分块。分块的原则可以是根据不同存储服务器的存储能力,采用相似的分块大小进行分块。图9为存储服务器的分块示意图,参照图9,每个存储服务器被划分为3个分块,例如,其中一个存储服务器划分的3个分块分别用Partition1.1、Partition1.2和Partition1.3标识,分块的数目为至少一个,图中仅以分块数目为3作为示例,并不用于对本发明的限定。
本发明实施例中,当采用第一种管理方式时,每一个存储分块只能由一个虚拟服务器进行访问和管理,其优点是虚拟服务器可以拉通存储自己管理的分块,提高磁盘利用率,缺点是当伸缩虚拟服务器时,维护存储服务器的存储与虚拟服务器的对应关系稍复杂。
对于每一存储分块,可以随机选择一个虚拟服务器作为其分配的虚拟服务器,或者,根据一致性哈希算法确定为其分配的虚拟服务器,存储分块与虚拟服务器的对应关系存储于内容分发网络的分布式数据库中。图10为存储分块和虚拟服务器的对应关系示意图,参照图10,一个分块只能由一个虚拟服务器管理,但是一个虚拟服务器可以管理多个存储服务器的多个分块,从而实现虚拟服务器和存储服务器之间一对多的对应关系。
下面通过几个具体的实施例,对本发明实施例提供的内容分发方法进行详细说明。
图11为本发明实施例提供的内容分发方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储空间进行分块,每一个分块由一台虚拟服务器管理下,实现文件分发流程,该方法包括:
步骤1101,用户向路由服务器请求文件。
其中,用户可以通过UE向路由服务器发送请求消息,该请求消息中携带用户想要获取的文件内容的URL。
步骤1102,路由服务器向负载均衡服务器请求可接受用户请求的虚拟服务器。
本发明实施例中,路由服务器和负载均衡服务器可以集成在一个设备中,统称为负载均衡与路由服务器,或者,也可以单独设立路由服务器和负载均衡服务器。
步骤1103,路由服务器重定向用户请求到负载均衡服务器返回的虚拟服务器A。
步骤1104,虚拟服务器A计算URL所对应的Hash串。
步骤1105,虚拟服务器A向分布式数据库查询分块的Hash串。
步骤1106,虚拟服务器A根据URL的Hash串和分块的Hash串,根据一致性Hash判断URL对应的分块。
步骤1104至1106中的关键技术方案:虚拟服务器根据URL判断应该处理此URL的分块,从而可以确定处理此URL的存储服务器。
虚拟服务器可以先根据URL,判断应该处理此URL的存储分块和存储服务器,然后再判断URL对应的虚拟服务器。
根据URL判断URL对应的分块,是根据一致性Hash算法,具体的判断方法是,基于某个Hash算法,如murmur算法,对URL和存储分块的ID做Hash,得到URL和服务器的Hash串。所有可能的Hash串组成了一个环,环上面的每个点对应某个Hash串。那么URL的Hash串,和存储分块的Hash串都会对应在环上某个点。从URL的Hash串对应的点出发,顺时针所遇到的第一个存储分块Hash串对应的点,那么这个存储分块就是缓存时用来存储此URL内容的存储分块,存储分块所在的存储服务器就是处理此URL的存储服务器。
通常情况下,由于存储分块的数量远远小于URL的数目,为了负载均衡,对于一个存储分块,会生成多个Hash串,对应于环上多个点。生成多个Hash串的方法可以在存储分块的ID后添加序号来解决。
步骤1107,虚拟服务器A根据分块的Hash串向分布式数据库查询分块所对应的虚拟服务器B。
步骤1107中的关键技术方案:虚拟服务器根据URL判断应该处理此URL的虚拟服务器。
存储分块与虚拟服务器的对应关系存储于内容分发网络的分布式数据库中,建立分布式数据库时,对于每一存储分块,可以随机选择(如uniform sampling)一个虚拟服务器作为其分配的虚拟服务器。得到URL对应的存储分块和存储服务器后,可以根据分布式数据库中存储的存储分块Hash值和虚拟机Hash值的对应关系来得到URL对应的虚拟服务器。
步骤1108,如果虚拟服务器A和虚拟服务器B是同一虚拟服务器,则转向步骤1110,否则转向步骤1109。
步骤1109,重定向用户请求到虚拟服务器B。
步骤1110,虚拟服务器B根据用户请求的URL判断用户请求的文件是否已经存在于缓存队列中。
步骤1111,如果用户请求的文件在缓存队列中,则重定向用户请求到缓存队列中记录的该URL对应的存储服务器,并通知存储服务器进行文件分发。
步骤1112,如果用户请求的文件不在缓存队列中,则重定向用户请求到根据一致性哈希确定的该URL对应的存储服务器,并通知存储服务器回源获取用户请求的文件内容。
步骤1113,存储服务器返回用户请求的内容。
图12为本发明实施例提供的内容分发方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储空间进行分块,每一个分块由一台虚拟服务器管理下,虚拟服务器如何管理存储服务器存储文件和删除文件,该方法包括:
步骤1201,虚拟服务器收到用户请求某URL的文件内容。
步骤1202,虚拟服务器更新用户请求的URL对应的文件的热度信息。
步骤1203,虚拟服务器根据热度信息判断是否需要缓存URL对应的文件内容,如果是,则转向步骤1204,否则结束。
步骤1204,虚拟服务器判断URL对应的分块的存储容量是否已满,如是则转向步骤1205,否则转向步骤1206。
本发明实施例中,可以由存储服务器通知虚拟服务器分块的容量占用情况。
步骤1205,虚拟服务器在所管理的分块中选择其他任一容量未满之分块,用于存储URL对应的文件内容。
步骤1206,虚拟服务器在缓存队列中URL所对应的记录中添加所存储的分块ID。
步骤1207,虚拟服务器缓存用户请求的URL对应的文件内容,通知分块对应的存储服务器存储文件内容。
步骤1204至1207对应的关键技术方案:如何将缓存队列的文件内容存储在存储服务器上。
本发明实施例中,一个分块只能由一台虚拟服务器管理,但一台虚拟服务器可以管理多个分块。如果虚拟服务器为一个管理的分块创建一个缓存队列,各个缓存队列之间独立管理,各个缓存队列利用现有CDN缓存管理技术独立管理,会导致硬盘利用率低,各分块热度不均匀,命中率低。
为了避免这些缺点,本发明实施例中采用统一管理的策略,虚拟服务器对所管理的多个分块只创建唯一的缓存队列。缓存队列中的文件存储在文件的URL对应的分块中。如果某文件的URL对应的分块的存储容量已满,而虚拟服务器所管理的其他分块的容量未满的时候,则将文件存储在其他任一容量未满的分块中,同时在缓存队列中文件对应的记录中标记所存储的分块。这样当某用户请求该文件内容时,用户请求被重定向到缓存记录中所标记的分块对应的存储服务器。
其中,分块的存储容量满是指分块所存储的文件的总量已经大于存储容量的C%,即达到吃水线,通常C值为80至85,本发明不对C的取值进行限定。
步骤1208,虚拟服务器判断自身所管理的所有分块的容量是否均已满,如是则转向步骤1209,否则结束。
其中,由存储服务器通知虚拟服务器分块的容量占用情况。
步骤1209,虚拟服务器从缓存队列中查询热度最低的一部分内容。
例如,查询热度最低的5%内容。
步骤1210,虚拟服务器通知分块对应的存储服务器删除所查询到的对应于此分块的热度最低的内容。
步骤1208至1210对应的关键技术方案:当虚拟服务器所管理的所有分块均存储满时,如何删除对应存储服务器中的文件内容。
其中,存储服务器会监控本机所有分块的容量占用情况,并定时或由事件促发通知分块对应的虚拟服务器容量占用情况,例如,分块容量已满时,通知分块对应的虚拟服务器该分块容量已满。当虚拟服务器管理的所有分块的存储容量都已满时,虚拟服务器会从缓存队列中查询热度最低的一部分内容,如热度最低的5%内容,并通知存储服务器删除这部分内容。
本发明实施例对于虚拟服务器如何计算用户请求对应的URL的热度信息,以及具体的缓存队列算法不做限定,例如常见的近期最少使用(Least Recent Usage,LRU)算法,最不经常使用(Least Frequent Usage,LFU)算法等算法都可以使用。
图13为本发明实施例提供的内容分发方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储空间进行分块,每一个分块由一台虚拟服务器管理下,当虚拟服务器伸缩的时候如何维护存储服务器的存储与虚拟服务器的对应关系,该方法包括:
步骤1301,云平台根据负载情况判断是否需要增加虚拟服务器或减少虚拟服务器。
当判断出需要增加虚拟服务器时,执行步骤1302;当判断出需要减少虚拟服务器时,执行步骤1306。
步骤1302,当需要增加虚拟服务器时,云平台计算需要重新分配给新增虚拟服务器的分块数目a。
例如,可以采用虚拟服务器的管理分块数的平均值作为a。
步骤1303,云平台从所有分块中随机选择a个分块。
例如,可采用uniform sample的采样方法。
步骤1304,云平台删除所选择的a个分块中的文件。
步骤1305,云平台创建一个虚拟服务器,并将所选分块分配给新增虚拟服务器,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
其中,更新分布式数据库中保存的分块与虚拟服务器的对应关系,具体为:删除分布式数据库中原有的所选分块与虚拟服务器的对应关系,增加所选分块与新增虚拟服务器的对应关系。步骤1306,当需要减少虚拟服务器时,云平台通知存储服务器删除将减少的虚拟服务器对应分块中的文件。
步骤1307,云平台删除上述将减少的虚拟服务器,并将该虚拟服务器对应的分块随机分配给其他的虚拟服务器,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
其中,更新分布式数据库中保存的分块与虚拟服务器的对应关系,具体为:删除分布式数据库中分块与减少的虚拟服务器的对应关系,建立分块与其他虚拟服务器的对应关系。
本发明实施例中,还可以采用将存储服务器划分为一个或多个分块,每一个存储分块可以由多台虚拟服务器进行访问和管理的方式,其优点当伸缩虚拟服务器时,维护存储服务器的存储与虚拟服务器的对应关系简单,缺点是虚拟服务器无法拉通存储自己管理的分块,磁盘利用率相对较低。
对于每一存储分块,随机选择多个虚拟服务器作为其分配的虚拟服务器,存储分块与虚拟服务器的对应关系存储于内容分发网络的分布式数据库中,本发明对于选择的虚拟服务器的数量不做限定。
本发明实施例中,每个存储服务器的分块数可以为1,即可以不对存储服务器的存储空间进行划分,即分块并不是必须的,下面的实施例中就以分块数量为1为例进行阐述。
图14为本发明实施例提供的内容分发方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储空间进行分块,每一个分块可以由多个虚拟服务器同时管理,实现文件分发流程,该方法包括:
步骤1401,用户向路由服务器请求某文件。
步骤1402,路由服务器向负载均衡服务器请求可接受用户请求的虚拟服务器。
步骤1403,路由服务器重定向用户请求到负载均衡服务器返回的虚拟服务器A。
步骤1404,虚拟服务器A计算URL所对应的Hash串。
步骤1405,虚拟服务器A向分布式数据库查询分块的Hash串。
步骤1406,虚拟服务器A根据URL的Hash串和分块的Hash串,根据一致性Hash判断URL对应的分块。
步骤1401至1406对应的关键技术方案:虚拟服务器根据URL判断应该处理此URL的分块,从而确定处理此URL的存储服务器。
虚拟服务器先根据URL判断应该处理此URL的存储分块和对应的存储服务器,再判断URL对应的虚拟服务器。
根据URL判断应该处理此URL的分块的方法是根据前面介绍的一致性Hash方法。
具体的判断方法是,基于某个Hash算法,如murmur算法,对URL和存储分块的ID做Hash,得到URL和服务器的Hash串。所有可能的Hash串组成了一个环,环上面的每个点对应某个Hash串。那么URL的Hash串和存储分块的Hash串都会对应在环上某个点。从URL的Hash串对应的点出发,顺时针所遇到的第一个存储分块Hash串对应的点,那么这个存储分块就是缓存时用来存储此URL内容的存储分块,存储分块所在的存储服务器就是处理此URL的存储服务器。
通常情况下,由于存储分块的数量远远小于URL的数目,为了负载均衡,对于一个存储分块,会生成多个Hash串,对于环上多个点。生成多个Hash串的方法可以在存储分块的ID后添加序号来解决。
步骤1407,虚拟服务器A向分布式数据库查询虚拟服务器的Hash串。
步骤1408,虚拟服务器A根据分块的Hash串和虚拟服务器的Hash串,根据一致性Hash判断URL对应的虚拟服务器。
步骤1408的前提条件是:云平台建立分布式数据库时,根据一致性Hash确定分块的Hash串和虚拟服务器的Hash串的对应关系,并在分布式数据库中存储该对应关系。
本发明实施例中,判断URL对应的虚拟服务器,可以采用从分布式数据库中查找的方式来代替步骤1508。
步骤1407至1408对应的关键技术方案:虚拟服务器根据URL判断应该处理此URL的虚拟服务器。
本发明实施例中,在得到URL对应的存储分块和存储服务器后,仍然利用一致性Hash算法来得到存储分块和虚拟服务器的对应关系,从而得到URL对应的虚拟服务器。
图15为存储分块和虚拟服务器的对应关系示意图,参照图15,每个分块和每个虚拟服务器都有多个hash串与其对应,每一个分块和每一个虚拟服务器在hash环上都有若干个点与其对应;而分块和虚拟服务器的对应关系是从分块的点开始顺时针找最近的虚拟服务器的点,每个分块对应的多个点可能找到不同的虚拟服务器与其对应,这就使得同一个分块可以被多个虚拟服务器所管理。
参照图15,具体的判断方法是,基于某个Hash算法,如murmur算法,对存储分块的ID和虚拟服务器的ID做Hash,得到存储分块和虚拟服务器的Hash串。所有可能的Hash串组成了一个环,环上面的每个点对应某个Hash串。那么存储分块的Hash串,和虚拟服务器的Hash串都会对应在环上某个点。从存储分块的Hash串对应的点出发,顺时针所遇到的第一个虚拟服务器的Hash串对应的点,那么这个虚拟服务器就是处理此存储分块对应的URL的虚拟服务器。
通常情况下,由于存储分块的数量和虚拟服务器的数量都很小,为了负载均衡,对于一个存储分块,会生成多个Hash串,对于环上多个点。生成多个Hash串的方法可以在存储分块的ID后添加序号来解决。对于一个虚拟服务器,会生成多个Hash串,对于环上多个点。生成多个Hash串的方法可以在虚拟服务器的ID后添加序号来解决。
得到存储分块和虚拟服务器的对应关系后,存储分块与虚拟服务器的对应关系存储于内容分发网络的分布式数据库中,一个分块由一个虚拟服务器管理的时候,数据库中存储的是该分块和虚拟服务器的一对一关系;而在这里数据库中存储的则是每一个分块的每一个hash串与虚拟服务器的对应关系,实际上每一个分块对应多个虚拟服务器。
步骤1409,如果虚拟服务器A和虚拟服务器B是同一虚拟服务器,则转向步骤1411,否则转向步骤1410。
步骤1410,重定向用户请求到虚拟服务器B。
步骤1411,虚拟服务器B根据用户请求的URL判断用户请求的文件是否已经存在于缓存队列中。
步骤1412,如果用户请求的文件在缓存队列中,则重定向用户请求到对应的存储服务器,并通知存储服务器进行文件分发。
步骤1413,如果用户请求的文件不在缓存队列中,则重定向用户请求到对应的存储服务器,并通知存储服务器回源获取用户请求的文件内容。
步骤1414,存储服务器返回用户请求的内容。
图16为本发明实施例提供的内容分发方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储空间进行分块,每一个分块可以由多个虚拟服务器同时管理,虚拟服务器如何管理存储服务器存储和删除文件,该方法包括:
步骤1601,当虚拟服务器收到用户请求某URL的文件内容,并确定用户请求的文件不在缓存队列中时,更新用户请求的URL对应的文件的热度信息。
其中,具体可以在步骤1413之后执行步骤1601。
步骤1602,虚拟服务器根据热度信息判断是否需要缓存URL对应的文件内容,如果是,则转向步骤1603,否则结束。
步骤1603对应的关键技术方案:如何将缓存队列的文件内容存储在存储服务器上。
本发明实施例中,一个分块可以由多台虚拟服务器管理,而且一台虚拟服务器可以管理多个分块。为了避免热度不均导致的命中率下降,虚拟服务器对所管理的多个分块创建唯一的缓存队列。缓存队列中的文件存储在文件的URL对应的分块中。
步骤1603,虚拟服务器缓存用户请求的URL对应的文件内容到所选择的分块。
其中,上述所选择的分块为根据一致性哈希算法确定的URL对应的分块。
存储服务器会定时或由事件触发向管理其分块的所有虚拟服务器上报分块的存储容量。
步骤1604,各虚拟服务器判断所管理的分块的容量是否已满。
若判断结果为是,则执行步骤1605,否则结束。
步骤1605,各虚拟服务器通知存储服务器需要删除的内容。
其中,上述各虚拟服务器指的是管理该分块的多个虚拟服务器。
步骤1606,存储服务器收到各虚拟服务器的删除通知,从中删除平均热度最低的通知中的内容。
根据预设策略的不同,也可以删除最大热度最低的通知中的内容,或者,还可以删除最小热度最低的通知中的内容。
步骤1607,如果分块已经释放出足够的空间,则结束,否则转向步骤1605。
步骤1604至1607对应的关键技术方案:当存储服务器存储满的时候,如何删除文件内容。
存储服务器会监控本机所有分块的容量占用情况,并定时或由事件促发通知分块对应的虚拟服务器容量占用情况。该实施例中,由于一个分块会同时由多个虚拟服务器进行管理,所以如果某分块的存储容量已满,需要删除多个虚拟服务器各缓存队列中热度最低,且对应于本分块的内容。
具体方法如下:存储服务器通知分块对应的虚拟服务器需要淘汰该分块中热度较低的a%内容,例如5%最低热度内容;各虚拟服务器向存储服务器发送其缓存队列该分块中热度最低的b%的内容,其中,b%的内容大小需要远小于a%的内容大小,例如,b%为a%的1/10,以及发送其平均热度,或最大、最小热度;存储服务器收到各个虚拟服务器发送的热度最低的内容,将其中平均热度或最大、最小热度最低的虚拟服务器发送的内容删除,并继续向此虚拟服务器发送新的淘汰通知;存储服务器收到新的需要淘汰的内容,比较其平均热度或最大、最小热度和上一轮未淘汰的内容的虚拟服务器的平均热度或最大、最小热度,将其中平均热度或最大、最小热度最低的虚拟服务器发送的内容删除;重复前面的步骤,直到淘汰完成,即已经淘汰了a%的内容。
图17为本发明实施例提供的虚拟服务器的管理方法流程图,该实施例阐述了在边缘节点的服务器集群中,对存储服务器的存储分块,每一个分块可以由多个虚拟服务器同时管理,当虚拟服务器伸缩的时候如何维护存储服务器的存储与虚拟服务器的对应关系,该方法包括:
步骤1701,云平台根据负载情况判断需要增加一台虚拟服务器。
内容分发网络中的执行设备/模块需要能监控所有VM的负载状况,并根据实现设置的业务逻辑判断是否达到扩容的阈值,一般由该节点云平台的VM管理模块监控并执行扩容。
步骤1702,云平台计算新增虚拟服务器的Hash串。
步骤1703,云平台向分布式数据库查询分块及虚拟服务器的Hash串,基于一致性Hash查询新增虚拟服务器所对应的b个分块。
步骤1704,云平台删除查询返回的b个分块中现有VM缓存队列中不再归属于现有VM的文件。
在步骤1704重新确认分块和VM对应关系的时候,现有VM所对应的分块可能发生改变,这时候就需要在数据库中调整分块和VM的对应关系,同时还要调整现有VM的缓存队列,对每一个VM删除不再归他管理的文件。然后由存储服务器将这些被现有VM从缓存队列中删除的文件从分块中删除,即删除重新分配的分块中的属于原对应虚拟服务器缓存队列的内容。
步骤1705,将所选分块分配给新增虚拟服务器,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
步骤1706,云平台根据负载情况判断需要减少一台虚拟服务器。
步骤1707,云平台通知存储服务器删除所选择分块中属于被删VM缓存队列的内容。
步骤1708,更新分布式数据库中保存的分块与虚拟服务器的对应关系。
本发明实施例提供的虚拟服务器的管理方法,利用云平台和独立的存储服务器(例如,流媒体服务器)实现内容分发网络,在具有云计算平台动态、灵活、弹性、虚拟、共享和高效的优点的基础上,保持了I/O性能不降低,以满足媒体等大文件的内容分发需要。
本发明中的利用云计算的技术和独立的存储服务器实现内容分发网络中边缘节点的服务器集群的方法,也可以用在内容分发网络中的中心节点的服务器集群,以及中心节点和边缘节点之间的中间节点的服务器集群上。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种内容分发方法,应用于内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,所述至少一个分块中的每个分块由至少一个虚拟服务器管理,所述任意一个虚拟服务器作为第一虚拟服务器执行以下方法,包括:
所述第一虚拟服务器接收内容请求方发送的第一请求消息,所述第一请求消息中携带用户请求内容的第一统一资源定位符URL;
所述第一虚拟服务器根据第一URL的哈希值确定其对应的分块,并根据分布式数据库中分块的哈希值与虚拟服务器的哈希值的对应关系确定处理该URL的虚拟服务器;
基于处理该URL的虚拟服务器为第一虚拟服务器,所述第一虚拟服务器根据自身维护的缓存列表,判断所述第一虚拟服务器管理的存储服务器中的一个存储服务器缓存了所述第一URL对应的内容;
将所述第一请求消息重定向至缓存列表中记录的缓存了所述第一URL对应内容的第一存储服务器,所述重定向至所述第一存储服务器的第一请求消息用于指示所述第一存储服务器将缓存的所述第一URL对应的内容发送给所述内容请求方。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一虚拟服务器接收所述内容请求方发送的第二请求消息,所述第二请求消息中携带用户请求内容的第二URL;
所述第一虚拟服务器根据自身维护的缓存列表,判断所述第一虚拟服务器管理的所有存储服务器中均未缓存所述第二请求消息携带的所述第二URL对应的内容;
所述第一虚拟服务器根据一致性哈希算法,确定用于缓存所述第二请求消息携带的所述第二URL对应的内容的第二存储服务器;
将所述第二请求消息重定向至所述第二存储服务器,所述重定向至所述第二存储服务器的第二请求消息用于指示所述第二存储服务器回源获取用户请求的内容,将回源获取的用户请求的内容发送给所述内容请求方。
3.如权利要求2所述的方法,其特征在于,所述第一虚拟服务器根据自身维护的缓存列表,判断所述第一虚拟服务器管理的所有存储服务器中均未缓存所述第二请求消息携带的所述第二URL对应的内容之前,所述方法还包括:
所述第一虚拟服务器根据所述第二请求消息中携带的用户请求内容的第二URL,确定所述第一虚拟服务器处理所述第二URL。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述第一虚拟服务器接收所述内容请求方发送的第三请求消息,所述第三请求消息中携带用户请求内容的第三URL;
所述第一虚拟服务器根据所述第三请求消息中携带的用户请求内容的第三URL,确定第二虚拟服务器处理所述第三URL;
将所述第三请求消息重定向至所述第二虚拟服务器。
5.如权利要求3或4所述的方法,其特征在于,所述第一虚拟服务器根据请求消息中携带的用户请求内容的URL,确定处理该URL的虚拟服务器,包括:
所述第一虚拟服务器根据请求消息中携带的用户请求内容的URL,计算该URL的哈希值;
获取分布式数据库中所有分块的哈希值,根据该URL的哈希值,按照一致性哈希算法查询该URL对应的分块,其中,所述内容分发系统包括的存储服务器中的每一个存储服务器均划分为至少一个分块;
根据该URL对应的分块的哈希值,以及所述分布式数据库中存储的分块的哈希值与虚拟服务器的哈希值的对应关系,确定处理该URL的虚拟服务器。
6.如权利要求2所述的方法,其特征在于,所述内容分发系统包括的存储服务器中的每一个存储服务器均划分为至少一个分块,所述将所述第二请求消息重定向至所述第二存储服务器之后,所述方法还包括:
所述第一虚拟服务器更新所述第二URL对应的热度信息;
根据所述热度信息,确定需要缓存所述第二URL对应的内容;
确定所述第二URL对应的分块的存储容量未满;
通知所述第二存储服务器缓存所述第二URL对应的内容到所述第二URL对应的分块。
7.如权利要求6所述的方法,其特征在于,每个分块对应一个虚拟服务器,所述方法还包括:
所述第一虚拟服务器确定所述第二URL对应的分块的存储容量已满;
确定所述第一虚拟服务器管理的多个分块中的至少一个分块的存储容量未满,选择一个存储容量未满的分块;
所述第一虚拟服务器通知所述第二存储服务器缓存所述第二URL对应的内容到选择的分块,并且,所述第一虚拟服务器将所述第二URL的哈希值、缓存所述第二URL对应的内容的分块的哈希值和所述第二URL对应的热度信息添加到缓存队列的记录中;或
所述第一虚拟服务器确定所述第二URL对应的分块的存储容量已满;
确定所述第一虚拟服务器管理的多个分块的存储容量均已满,从所述缓存队列中查询热度低于第一阈值的记录;
根据查询到的记录,通知该记录中的分块对应的存储服务器删除该记录中的URL对应的内容。
8.如权利要求6所述的方法,其特征在于,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,所述将所述第二请求消息重定向至所述第二存储服务器之后,所述方法还包括:
所述第一虚拟服务器接收当所述第二URL对应的分块的存储容量已满时,该分块所属的所述第二存储服务器向管理该分块的多个虚拟服务器上报的该分块已满的通知信息;
所述第一虚拟服务器向所述第二存储服务器发送删除通知,所述删除通知中携带所述第一虚拟服务器管理的该分块中热度低于第二阈值的内容的URL,所述删除通知用于指示所述第二存储服务器根据所述删除通知中携带的URL对应的内容的热度信息,确定是否将所述删除通知中携带的URL对应的内容删除。
9.一种虚拟服务器管理方法,应用于内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,所述至少一个分块中的每个分块由一个虚拟服务器管理,所述方法包括:
云平台计算内容分发系统的每个分块的哈希值和每个虚拟服务器的哈希值;
根据一致性哈希算法或随机选取的方式,确定每个分块对应的虚拟服务器;
建立分布式数据库,在所述分布式数据库中存储分块的哈希值与虚拟服务器的哈希值的对应关系。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
云平台根据所述内容分发系统的负荷,确定需要新增虚拟服务器;
确定需要分配给新增虚拟服务器的分块数目;
从所有分块中选择所述分块数目个分块;
删除选择的分块中的内容;
将所选分块分配给所述新增虚拟服务器,并更新所述分布式数据库中分块与虚拟服务器的对应关系;或
云平台根据所述内容分发系统的负荷,确定需要减少虚拟服务器;
云平台通知存储服务器删除待减少的虚拟服务器对应的分块中的内容;
将待减少的虚拟服务器对应的分块分配给其他的虚拟服务器,更新分块与虚拟服务器的对应关系;
删除所述待减少的虚拟服务器。
11.一种虚拟服务器管理方法,应用于内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,所述至少一个分块中的每个分块由多个虚拟服务器管理,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,所述方法包括:
云平台计算内容分发系统的每个分块的哈希值和每个虚拟服务器的哈希值;
根据一致性哈希算法或随机选取的方式,确定每个分块对应的多个虚拟服务器;
建立分布式数据库,在所述分布式数据库中存储分块的哈希值与虚拟服务器的哈希值的对应关系。
12.如权利要求11所述的方法,其特征在于,所述方法还包括:
云平台根据所述内容分发系统的负荷,确定需要新增虚拟服务器;
云平台计算新增虚拟服务器的哈希值;
获取所有分块的所有哈希值;
基于一致性哈希算法,为所述新增虚拟服务器分配对应的分块的一个哈希值;
删除分配的分块中的属于该分块的一个哈希值原对应虚拟服务器的缓存队列的内容;
将所选分块的一个哈希值分配给所述新增虚拟服务器,并更新所述分布式数据库中分块的哈希值与虚拟服务器的对应关系;或
云平台根据所述内容分发系统的负荷,确定需要减少虚拟服务器;
云平台确定待减少的虚拟服务器对应的分块的哈希值;
通知存储服务器删除待减少的虚拟服务器对应的分块中的属于该虚拟服务器的缓存队列的内容;
将待减少的虚拟服务器对应的分块的哈希值分配给其他的虚拟服务器,更新分块的哈希值与虚拟服务器的对应关系;
删除所述待减少的虚拟服务器。
13.一种内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述任意一个虚拟服务器作为第一虚拟服务器用于执行如权利要求1至8中任一权利要求所述的内容分发方法。
14.一种云平台,应用于内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,所述至少一个分块中的每个分块由一个虚拟服务器管理,所述云平台用于执行如权利要求9或10所述的虚拟服务器管理方法。
15.一种云平台,应用于内容分发系统,其特征在于,所述内容分发系统包括至少两个虚拟服务器和至少两个存储服务器,所述至少两个虚拟服务器中的任意一个虚拟服务器均管理所述至少两个存储服务器中的一个或多个存储服务器,所述一个或多个存储服务器中的每一个存储服务器均划分为至少一个分块,所述至少一个分块中的每个分块由多个虚拟服务器管理,每个分块具有多个哈希值,每个分块的一个哈希值对应一个虚拟服务器,所述云平台用于执行如权利要求11或12所述的虚拟服务器管理方法。
CN201510808757.8A 2015-11-20 2015-11-20 内容分发方法、虚拟服务器管理方法、云平台和系统 Active CN106790324B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510808757.8A CN106790324B (zh) 2015-11-20 2015-11-20 内容分发方法、虚拟服务器管理方法、云平台和系统
EP16865571.0A EP3334123B1 (en) 2015-11-20 2016-08-10 Content distribution method and system
PCT/CN2016/094421 WO2017084393A1 (zh) 2015-11-20 2016-08-10 内容分发方法、虚拟服务器管理方法、云平台和系统
US15/985,071 US10911530B2 (en) 2015-11-20 2018-05-21 Content delivery method, virtual server management method, cloud platform, and system
US17/141,809 US11431791B2 (en) 2015-11-20 2021-01-05 Content delivery method, virtual server management method, cloud platform, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510808757.8A CN106790324B (zh) 2015-11-20 2015-11-20 内容分发方法、虚拟服务器管理方法、云平台和系统

Publications (2)

Publication Number Publication Date
CN106790324A CN106790324A (zh) 2017-05-31
CN106790324B true CN106790324B (zh) 2020-06-16

Family

ID=58717251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510808757.8A Active CN106790324B (zh) 2015-11-20 2015-11-20 内容分发方法、虚拟服务器管理方法、云平台和系统

Country Status (4)

Country Link
US (2) US10911530B2 (zh)
EP (1) EP3334123B1 (zh)
CN (1) CN106790324B (zh)
WO (1) WO2017084393A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190037044A1 (en) * 2016-03-01 2019-01-31 Telefonaktiebolaget Lm Ericsson (Publ) Content distribution and delivery optimization in a content delivery network (cdn)
CN108494720B (zh) * 2017-02-23 2021-02-12 华为软件技术有限公司 一种基于会话迁移的调度方法及服务器
CN107332908B (zh) * 2017-07-03 2020-11-27 网宿科技股份有限公司 一种数据传输方法及其系统
CN107463342B (zh) * 2017-08-28 2021-04-20 北京奇艺世纪科技有限公司 一种cdn边缘节点文件的存储方法及装置
CN108011948B (zh) * 2017-11-30 2021-01-05 成都航天科工大数据研究院有限公司 一种基于边缘计算的工业设备一体化监控系统
CN109936593B (zh) * 2017-12-15 2022-03-01 网宿科技股份有限公司 一种消息分发的方法和系统
CN108111623A (zh) * 2017-12-29 2018-06-01 北京奇虎科技有限公司 一种基于内容分发网络cdn的通信方法和装置
US10498696B2 (en) * 2018-01-31 2019-12-03 EMC IP Holding Company LLC Applying a consistent hash to a distributed domain name server cache
CN108366217B (zh) * 2018-03-14 2021-04-06 成都创信特电子技术有限公司 监控视频采集存储方法
CN108491488B (zh) * 2018-03-14 2021-11-30 成都创信特电子技术有限公司 媒体高速存储方法
CN109543504A (zh) * 2018-09-29 2019-03-29 杭州沃习睿科技合伙企业(有限合伙) 基于独立人脸识别终端的协同人脸识别系统及方法
CN109639801A (zh) * 2018-12-17 2019-04-16 深圳市网心科技有限公司 数据节点分配及数据获取方法及系统
US11470176B2 (en) * 2019-01-29 2022-10-11 Cisco Technology, Inc. Efficient and flexible load-balancing for clusters of caches under latency constraint
CN112398884B (zh) * 2019-08-14 2023-08-25 上海哔哩哔哩科技有限公司 镜像回源场景下流量调度控制方法、可读存储介质及计算机设备
CN113127414B (zh) * 2019-12-31 2023-05-23 贵州白山云科技股份有限公司 一种请求处理方法和系统及边缘节点
CN113132439B (zh) * 2019-12-31 2023-04-21 贵州白山云科技股份有限公司 一种数据处理方法和系统及边缘节点
CN113132443B (zh) * 2019-12-31 2022-06-07 北京金山云网络技术有限公司 资源获取方法、装置及cdn网络中的节点设备
CN111930316B (zh) * 2020-09-09 2021-04-20 上海七牛信息技术有限公司 一种内容分发网络的缓存读写系统和方法
US20220317898A1 (en) * 2021-04-03 2022-10-06 EMC IP Holding Company LLC Managing Application Storage Resource Allocations Based on Application Specific Storage Policies
CN114500722B (zh) * 2022-01-25 2023-10-17 北京百度网讯科技有限公司 一种分发应用程序镜像的方法、装置、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439913A (zh) * 2009-02-27 2012-05-02 雅塔公司 网络业务管理和负载平衡的系统和方法
CN104506620A (zh) * 2014-12-23 2015-04-08 西安电子科技大学 一种可扩展的自动化计算服务平台及其构建方法
CN104580393A (zh) * 2014-12-18 2015-04-29 北京蓝汛通信技术有限责任公司 用于服务器集群系统的扩容方法、装置及服务器集群系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020073167A1 (en) * 1999-12-08 2002-06-13 Powell Kyle E. Internet content delivery acceleration system employing a hybrid content selection scheme
US7797426B1 (en) * 2008-06-27 2010-09-14 BitGravity, Inc. Managing TCP anycast requests
US20100211987A1 (en) * 2009-02-19 2010-08-19 Pixel8 Networks, Inc. Video deduplication, cache, and virtual private content delivery network
CN101668046B (zh) * 2009-10-13 2012-12-19 成都市华为赛门铁克科技有限公司 资源缓存方法及其装置、系统
US20130007186A1 (en) * 2011-06-30 2013-01-03 Interdigital Patent Holdings, Inc. Controlling content caching and retrieval
KR101383905B1 (ko) * 2011-12-19 2014-04-17 주식회사 솔박스 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치
CN104702702B (zh) * 2012-01-11 2018-03-23 北京奇虎科技有限公司 一种数据下载系统及方法
CN102571959B (zh) * 2012-01-11 2015-05-06 北京奇虎科技有限公司 一种数据下载系统及方法
US20130297934A1 (en) * 2012-05-02 2013-11-07 Nokia Siemens Networks Oy Method and apparatus
JP2014044553A (ja) * 2012-08-27 2014-03-13 Fujitsu Ltd プログラム、情報処理装置および情報処理システム
US9015212B2 (en) * 2012-10-16 2015-04-21 Rackspace Us, Inc. System and method for exposing cloud stored data to a content delivery network
US9576039B2 (en) * 2014-02-19 2017-02-21 Snowflake Computing Inc. Resource provisioning systems and methods
US10218633B2 (en) * 2014-03-28 2019-02-26 Amazon Technologies, Inc. Implementation of a service that coordinates the placement and execution of containers
CN104506637B (zh) * 2014-12-29 2018-03-23 国家电网公司 解决网络拥挤的缓存方法、系统及url转发服务器
CN104935648B (zh) * 2015-06-03 2018-07-17 北京快网科技有限公司 一种高性价比的cdn系统及文件预推、分片缓存的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439913A (zh) * 2009-02-27 2012-05-02 雅塔公司 网络业务管理和负载平衡的系统和方法
CN104580393A (zh) * 2014-12-18 2015-04-29 北京蓝汛通信技术有限责任公司 用于服务器集群系统的扩容方法、装置及服务器集群系统
CN104506620A (zh) * 2014-12-23 2015-04-08 西安电子科技大学 一种可扩展的自动化计算服务平台及其构建方法

Also Published As

Publication number Publication date
US11431791B2 (en) 2022-08-30
US20180278680A1 (en) 2018-09-27
US10911530B2 (en) 2021-02-02
EP3334123B1 (en) 2023-11-15
WO2017084393A1 (zh) 2017-05-26
CN106790324A (zh) 2017-05-31
EP3334123A1 (en) 2018-06-13
EP3334123A4 (en) 2018-10-17
US20210176307A1 (en) 2021-06-10

Similar Documents

Publication Publication Date Title
CN106790324B (zh) 内容分发方法、虚拟服务器管理方法、云平台和系统
US10904597B2 (en) Dynamic binding for use in content distribution
JP5143957B2 (ja) トポロジを意識したキャッシュ協働
JP6984097B2 (ja) エッジプロキシを持つコンテンツデリバリネットワークアーキテクチャ
US9692849B2 (en) Method and node entity for enhancing content delivery network
WO2018000993A1 (zh) 一种分布式存储的方法和系统
JP5828760B2 (ja) キャッシュを最適化するための方法とシステム
KR101228230B1 (ko) 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품
US10394782B2 (en) Chord distributed hash table-based map-reduce system and method
KR20120072907A (ko) 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
US20140324905A1 (en) Computer system, data management method, and program
CN110324406B (zh) 一种获取业务数据的方法和云服务系统
JP2012123544A (ja) 負荷分散装置及びプログラム
US10445296B1 (en) Reading from a site cache in a distributed file system
Makris et al. Load balancing for minimizing the average response time of get operations in distributed key-value stores
CN109347991B (zh) 文件分发方法、装置、设备及介质
KR101690944B1 (ko) 이종 컴퓨터 환경에서 부하 분산을 고려한 분산 캐시 관리 방법 및 장치
CA3163480A1 (en) Systems and methods for storing content items in secondary storage
CN113992653B (zh) 一种基于边缘缓存的cdn-p2p网络的内容下载、预存和替换方法
US20210311957A1 (en) Cross-cloud auto ingest
Rani et al. Efficient cache distribution using hash-routing schemes and nodal clustering for information centric network
CN116633921A (zh) 基于边缘缓存的cdn-p2p网络及缓存方法、缓存放置方法
Juefu et al. Resourse discovery mechanism based on buffer and preselction in grid environment

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