CN108540510B - 一种云主机创建方法、装置及云服务系统 - Google Patents
一种云主机创建方法、装置及云服务系统 Download PDFInfo
- Publication number
- CN108540510B CN108540510B CN201710120481.3A CN201710120481A CN108540510B CN 108540510 B CN108540510 B CN 108540510B CN 201710120481 A CN201710120481 A CN 201710120481A CN 108540510 B CN108540510 B CN 108540510B
- Authority
- CN
- China
- Prior art keywords
- target
- node
- image file
- cache node
- level cache
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- 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
Abstract
本发明实施例提供了一种云主机创建方法、装置及云服务系统。该方法应用于云服务系统中的目标计算节点,包括:接收针对目标云主机的创建指令;判断本地是否保存有目标镜像文件;若未保存,从一级缓存节点中确定目标缓存节点;通过目标缓存节点判断一级缓存节点中是否缓存有目标镜像文件;若为是,通过目标缓存节点获得一级缓存节点中缓存的目标镜像文件,并根据目标镜像文件创建目标云主机;若为否,向镜像节点发送获取目标镜像文件的第二请求,以使镜像节点根据第二请求判断二级缓存节点中是否存在目标镜像文件;获得二级缓存节点中缓存的目标镜像文件;根据目标镜像文件创建目标云主机。应用本发明实施例提供的方案可缩短云主机的创建时间。
Description
技术领域
本发明涉及虚拟化技术领域,特别是涉及一种云主机创建方法、装置及云服务系统。
背景技术
在云计算技术中,云主机是通过虚拟化技术在一台物理机上模拟出的多个类似独立主机的部分,它们共享一个物理机的硬件资源,其中,物理机也可称为宿主机。随着虚拟化技术的普及和商业化,越来越多的用户需要在物理机上创建云主机来提高物理机的利用率。
例如,在Openstack(云计算管理平台)架构中,在一台宿主机上创建一台云主机是,首先需要获得该云主机的系统盘镜像文件,在获得上述系统盘镜像文件后,宿主机才可以根据该镜像文件来创建云主机。
具体的,获得上述系统盘镜像文件时,如果宿主机中保存有云主机对应的镜像文件,则直接将该宿主机中保存的镜像文件拷贝为该云主机的系统盘镜像文件;如果该宿主机中未保存该云主机对应的镜像文件,则需要通过OpenStack架构中的Glance服务器来拉取上述系统盘镜像文件。其中,Glance服务器用于提供OpenStack的镜像服务,用来注册、登陆和检索虚拟机镜像。
通常情况下,应用上述方式可以成功创建云主机,但是当并发创建大批量云主机、且宿主机上均无云主机对应的系统盘镜像文件时,宿主机将大量访问Glance服务器,以使Glance服务器拉取对应的镜像文件,导致Glance服务器的压力较大,镜像文件的下载时间较长,使得大批量云主机的创建时间延长甚至创建时间不可控。
发明内容
本发明实施例的目的在于提供一种云主机创建方法、装置及云服务系统,以实现镜像文件的高并发下载,减小镜像文件的下载时间,缩短云主机的创建时间。具体技术方案如下:
为达到上述目的,本发明实施例公开了一种云主机创建方法,应用于云服务系统中的目标计算节点,其中,所述云服务系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,所述方法包括:
接收针对目标云主机的创建指令;
判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;
若未保存,从一级缓存节点中确定目标缓存节点;
通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;
若为是,通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;
若为否,向所述镜像节点发送获取所述目标镜像文件的第二请求,以使所述镜像节点根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;获得二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机。
可选的,通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件的步骤,包括:
向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
接收所述目标缓存节点根据所述第一请求反馈的目标信息;
判断所述目标信息是否为所述目标镜像文件,若为是,判定一级缓存节点中缓存有所述目标镜像文件;
所述通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机的步骤,包括:
将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
可选的,所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件。
可选的,各个一级缓存节点中缓存的镜像文件相同;
所述从一级缓存节点中确定目标缓存节点的步骤,包括:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
可选的,所述预设的计算节点与一级缓存节点的关联关系,按照以下方式生成:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
为达到上述目的,本发明实施例还公开了一种云主机创建装置,应用于云服务系统中的目标计算节点,其中,所述云服务系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,所述装置包括:
接收模块,用于接收针对目标云主机的创建指令;
第一判断模块,用于判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,触发确定模块;
所述确定模块,用于从一级缓存节点中确定目标缓存节点;
第二判断模块,用于通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;若为是,触发第一创建模块;若为否,触发第二创建模块;
所述第一创建模块,用于通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;
所述第二创建模块,用于向所述镜像节点发送获取所述目标镜像文件的第二请求,以使所述镜像节点根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;获得二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机。
可选的,所述第二判断模块,包括:
发送子模块,用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
接收子模块,用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;
判断子模块,用于判断所述目标信息是否为所述目标镜像文件,若为是,判定一级缓存节点中缓存有所述目标镜像文件;
所述第一创建模块,具体用于:
将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
可选的,所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件。
可选的,各个一级缓存节点中缓存的镜像文件相同;
所述确定模块,具体用于:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
可选的,所述预设的计算节点与一级缓存节点的关联关系为:
按照以下方式生成的:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
为达到上述目的,本发明实施例还公开了一种云服务系统,所述系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,其中,
所述计算节点,用于接收针对目标云主机的创建指令;判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,从一级缓存节点中确定目标缓存节点;通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;若为是,通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;若为否,向所述镜像节点发送获取所述目标镜像文件的第二请求;
所述镜像节点,用于接收所述计算节点发送的获取所述目标镜像文件的第二请求;根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;
所述计算节点,还用于获得所述二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机。
可选的,所述计算节点,具体用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
所述目标缓存节点,具体用于接收所述计算节点发送的获取所述目标镜像文件的第一请求;根据所述第一请求,向所述计算节点反馈目标信息;
所述计算节点,具体用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;判断所述目标信息是否为所述目标镜像文件,若为是,将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
可选的,所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件。
可选的,各个一级缓存节点中缓存的镜像文件相同;
所述计算节点,具体用于根据预设的计算节点与一级缓存节点的关联关系,从所述一级缓存节点中确定目标缓存节点。
可选的,所述计算节点,具体用于根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;计算该计算节点的标识信息的目标哈希值H;按照以下表达式计算该计算节点对应的目标取模值M:M=M=mod(H,N),其中,mod()表示取模运算;确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
可选的,所述系统还包括:用于提供数据存储服务的存储节点;
所述一级缓存节点包括:主缓存节点和所述主缓存节点对应的从缓存节点,所述从缓存节点缓存的镜像文件与所述主缓存节点缓存的镜像文件相同;
所述镜像节点,还用于在一级缓存节点和二级缓存节点中均不存在所述目标镜像文件时,从所述存储节点中获得所述目标镜像文件,向所述主缓存节点和/或所述二级缓存节点反馈所述目标镜像文件;
所述主缓存节点,用于接收并缓存所述镜像节点反馈的所述目标镜像文件,还用于向所述从缓存节点反馈所述目标镜像文件;
所述从缓存节点,用于接收并缓存所述主缓存节点反馈的所述目标镜像文件;
所述二级缓存节点,用于接收并缓存所述镜像节点反馈的所述目标镜像文件。
可选的,所述镜像节点,具体用于在一级缓存节点和二级缓存节点中均不存在所述目标镜像文件时,判断所要创建的目标云主机的数量是否大于预设阈值,如果是,向所述主缓存节点反馈所述目标镜像文件,如果否,向所述二级缓存节点反馈所述目标镜像文件。
可选的,所述主缓存节点,还用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
可选的,所述主缓存节点,还用于在确定本地要删除的镜像文件之后,向所述二级缓存节点反馈所述要删除的镜像文件;
所述二级缓存节点,还用于接收并缓存所述要删除的镜像文件。
可选的,所述二级缓存节点,还用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
本发明实施例提供的云主机创建方法、装置及云服务系统,计算节点在接收到针对目标云主机的创建指令后,首先判断本地是否缓存有对应的目标镜像文件,如果没有,则从一级缓存节点获得该目标镜像文件,在一级缓存节点也没有缓存该目标镜像文件的情况下,才向镜像节点请求该目标镜像文件,由镜像节点判断二级缓存节点中是否存在目标镜像文件,如果存在,计算节点从二级缓存节点中获得目标镜像文件。
可见,应用本发明实施例提供的方案,可以降低镜像节点的访问压力,实现镜像文件的高并发下载,减小镜像文件的拉取时间,缩短云主机的创建时间。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种云主机创建方法的流程示意图;
图2为本发明实施例提供的一种云主机创建装置的结构示意图;
图3为本发明实施例提供的一种云服务系统的第一种结构示意图;
图4为本发明实施例提供的一种云服务系统的第二种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
先对本申请文件中涉及到的技术用语进行简单介绍。
Redis缓存是一个高性能的可基于内存亦可持久化的日志型、key-value存储系统,它支持存储的value类型包括string(字符串)、list(链表)、set(集合)和zset(有序集合),为了保证效率,数据通常都是缓存在内存中,同时还可以将内存中的数据保存在本地磁盘中,重启的时候可以再次加载进行使用。在此基础上,Redis缓存技术还可以实现master-slave(主从)同步,即一个master(主节点)可以拥有多个slave(从节点),而一个slave又可以拥有多个slave,将master中的数据同步到master对应的slave中,再由每个slave将数据同步到该slave对应的slave中。
Glance是OpenStack的镜像服务组件,提供虚拟机镜像的发现、注册、取得服务,Glance提供的API(应用程序接口)可以查询虚拟机镜像的元数据、获得镜像。通过Glance,虚拟机镜像可以被存储到多种存储上,比如文件存储或者对象存储。
NAS(Network Attached Storage,网络附属存储)简单说就是连接在网络上、具备资料存储功能的装置,也称为“网络存储器”。它是一种专用数据存储服务器,可以提供NFS(Network File System,网络文件系统)、SMB/CIFS(由微软开发的一种软件程序级的网络传输协议)文件共享。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。
为解决现有技术问题,本发明实施例提供了一种云主机创建方法、装置及云服务系统。下面首先对本发明实施例所提供的一种云主机创建方法进行详细说明。
需要说明的是,本发明实施例所提供的云主机创建方法可以应用于云服务系统中的任一计算节点,其中,该云服务系统可以包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点。
其中,该云服务系统可以是基于Openstack框架的云服务系统,也可以是其他类型的云服务系统,提供镜像服务的镜像节点可以为Glance服务器,提供数据缓存服务的一级缓存节点可以是基于Redis缓存技术的缓存节点,提供数据缓存服务的二级缓存节点可以是基于NAS存储技术的缓存节点,也可以是其他类型的缓存节点,本发明实施例对此均不做限定。
图1为本发明实施例提供的一种云主机创建方法的流程示意图,该方法可以包括:
S101,接收针对目标云主机的创建指令。
其中,该创建指令中至少需要携带目标云主机的标识信息,当然,该指令中还可以携带其他信息,如:创建目标云主机所需的镜像文件的标识信息等,本实施例对此不进行限定。
S102,判断本地是否保存有目标镜像文件,其中,目标镜像文件为创建目标云主机所需的镜像文件;若未保存,执行S103。
例如,目标镜像文件可以是目标云主机的系统盘镜像文件,也可以是其他类型的镜像文件,本实施例对此不做限定。
可以理解的,一台宿主机中可以创建多台云主机,那么,如果该目标计算节点已经创建过该目标云主机,则目标计算节点本地已经保存有该目标镜像文件。又或者,该目标计算节点之前未创建过该目标云主机,但是目标镜像文件被镜像节点预先保存到了该目标计算节点,则目标计算节点本地同样也保存有该目标镜像文件。
因此,在接收到针对目标云主机的创建指令时,可以先判断本地是否保存有该目标云主机对应的目标镜像文件,如果是,则可以直接根据本地存储的目标镜像文件来创建目标云主机,这样就不需要通过镜像节点获得目标镜像文件了,加快了获得目标镜像文件的速度,进而降低了镜像节点的访问压力,缩短了云主机的创建时间。
其中,根据镜像文件创建云主机的具体过程为现有技术,在此不做赘述。
S103,从一级缓存节点中确定目标缓存节点。
由于提供数据缓存服务的一级缓存节点中缓存有不同的云主机对应的镜像文件,因此,当目标计算节点本地未保存目标镜像文件时,可以从云服务系统中的一级缓存节点中获取该目标镜像文件。
可以理解的,在云服务系统可以设置一个一级缓存节点,所有计算节点可以向这一个一级缓存节点获取所需要的镜像文件。但是,这样会导致这一个一级缓存节点的读取压力过大。因此,云服务系统中可以设置多个一级缓存节点,以减轻各个一级缓存节点的读取压力。
可以理解的,当云服务系统中包含多个一级缓存节点时,各个一级缓存节点中缓存的镜像文件可以相同也可以不同。
对于各个一级缓存节点中缓存的镜像文件不同的方式,虽然在一定程度上可以减轻各个一级缓存节点的读取压力,但是对于特殊情况,如某一时刻或短时间内多个计算节点都需要同一个镜像文件、而该镜像文件只存在于其中一个一级缓存节点,该一级缓存节点的读取压力依然较大。
对于各个一级缓存节点中缓存的镜像文件相同的方式,由于所有的一级缓存节点中缓存的镜像文件完全相同,那么,目标计算节点可以从任一个一级缓存节点中获取目标镜像文件。例如,目标计算节点可以在所有的一级缓存节点中随机选择一个作为目标缓存节点。但是,这种随机选择的方式也可能会导致在某一个时间点、较多的计算节点同时向同一个一级缓存节点请求镜像文件,造成该一级缓存节点的读取压力较大。
在实际应用中,可以通过Redis缓存技术的数据同步机制来实现各个一级缓存节点中缓存的镜像文件相同。可以理解的,将其中一个一级缓存节点设置为主缓存节点,其他的一级缓存节点设置为该主缓存节点对应的从缓存节点,则可以利用数据同步机制,使得所有的一级缓存节点中缓存的镜像文件完全相同。具体的,Redis缓存技术的数据同步机制为现有技术,在此不做赘述。
对于各个一级缓存节点中缓存的镜像文件相同的方式,为了均衡各个一级缓存节点的读取压力,在一种优选的实施方式中,从一级缓存节点中确定目标缓存节点的步骤,可以包括:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
可以理解的,将每个计算节点与一个一级缓存节点建立关联关系,则一个一级缓存节点仅与固定个数的计算节点具有关联关系,每个一级缓存节点只需要向固定个数的计算节点提供镜像文件的读取服务,也就不会产生一个一级缓存节点在同一个时刻需要向较多的计算节点提供服务的现象,因此可以减轻各个一级缓存节点的读取压力。
其中,上述预设的计算节点与一级缓存节点的关联关系,可以按照以下方式生成:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
其中,各个计算节点的标识信息可以为计算节点的IP地址(Internet ProtocolAddress、互联网协议地址)、MAC地址(MAC Address,物理地址),等等,还可以是其他的能够唯一标识该计算节点的信息,都是合理的,本发明实施例对此不进行限定。
计算各个计算节点的标识信息的目标哈希值可以利用预设的哈希算法实现,其中,哈希算法的输入值可以是纯数字,也可以是包含数字、字母和符号的字符串,而哈希算法的输出则是一个正整数。由于利用哈希算法计算哈希值为现有技术,此处不进行赘述。
本领域技术人员公知的是,mod(a,b)为MOD函数,该函数用于进行取模运算,其中,a为被除数,b为除数。当a、b均为正整数时,取模运算的结果为a除以b的余数。
可以理解的,对于上述计算目标取模值M的表达式,当N确定后,对于任意一个正整数H按照上述表达式执行取模运算,得到的目标取模值必然为[0,N-1]区间中的某一整数值。
由以上可知,各个一级缓存节点的序号为[0,N-1]区间的整数,且任意两个一级缓存节点的序号均不相同,而目标取模值同样为[0,N-1]区间中的某一整数;所以,对于每个计算节点,当对应的目标取模值确定后,必然存在一个序号为该目标取模值的一级缓存节点,则此时将该一级缓存节点与该计算节点建立关联关系。
示例性的,在云服务系统中一级缓存节点的数量为10,将其中的主缓存节点的序号确定为0、其他从缓存节点的序号依次确定为1~9,对各个计算节点的IP地址执行哈希算法得到对应的目标哈希值H,该目标哈希值H为正整数值,基于目标哈希值H和一级缓存节点的数量N可以计算各个计算节点对应的目标取模值。例如,对计算节点A、B的IP地址执行哈希算法得到的哈希值H分别为54、100,再将哈希值54、100对缓存节点的数量10按照上述表达式执行取模运算得到的取模值分别为4、0,则将计算节点A与序号为4的从缓存节点建立关联关系、计算节点B与序号为0的主存储节点建立关联关系。
当然,还可以按照其他方法建立计算节点与缓存节点之间的关联关系,本实施例对此不进行限定。
另外,应该注意的是,在本实施例中,一级缓存节点的序号是用于确定一级缓存节点与不同目标取模值的对应关系,本实施例可以不限定序号的确定方式,也可以不限定一级缓存节点的具体序号,但必须要指定每一个一级缓存节点与目标取模值的对应关系。
例如:现有8个一级缓存节点,目标取模值必然为[0,7]区间的整数,确定各个一级缓存节点的序号分别为7、12、52、9、18、35、29和77,同时建立对应关系:一级缓存节点7、12、52、9、18、35、29和77分对应目标取模值0、1、2、3、4、5、6和7。所以对于一计算节点,当计算得到该计算节点对应的目标取模值时,可以建立该计算节点与该目标取模值对应的一级缓存节点之间的关联关系,假设该目标取模值为6,则建立该计算节点与序号为29的一级缓存节点之间的关联关系。
再如,现有5个一级缓存节点,目标取模值必然为[0,4]区间的整数,标记各个一级缓存节点分别为缓存节点a、b、c、d和e,同时建立对应关系:标记为a、b、c、d和e的一级缓存节点分别对应目标取模值0、1、2、3和4。所以对于一计算节点,当计算得到该计算节点对应的目标取模值时,可以建立该计算节点与该目标取模值对应的一级缓存节点之间的关联关系,假设目标取模值为3,则建立该计算节点与序号为d的一级缓存节点之间的关联关系。
需要说明的是,每个计算节点只与一个一级缓存节点建立关联关系的方式较为简单,可以达到均衡各个一级缓存节点的读取压力的目的。然而,在另一种实现方式中,也可以将一个计算节点与多个一级缓存节点建立关联关系,这样,当一个一级缓存节点出现故障时,计算节点可以从建立关联关系的其他一级缓存节点中获取镜像文件。
S104、通过目标缓存节点判断一级缓存节点中是否缓存有目标镜像文件;若为是,执行S105,若为否,执行S106。
S105、通过目标缓存节点获得一级缓存节点中缓存的目标镜像文件,并根据目标镜像文件创建目标云主机。
实际应用中,若各个一级缓存节点中缓存的镜像文件均相同,则上述通过目标缓存节点判断一级缓存节点中是否缓存有目标镜像文件的步骤,可以包括:
向目标缓存节点发送获取目标镜像文件的第一请求;
接收目标缓存节点根据第一请求反馈的目标信息;
判断目标信息是否为目标镜像文件,若为是,判定一级缓存节点中缓存有目标镜像文件;
上述通过目标缓存节点获得一级缓存节点中缓存的目标镜像文件,并根据目标镜像文件创建目标云主机的步骤,可以包括:
将目标信息确定为目标镜像文件,并根据目标镜像文件创建目标云主机。
其中,该第一请求中至少需要携带目标镜像文件的标识信息,当然,该请求中还可以携带其他信息,本实施例对此不做限定。
可以理解的,第一请求中携带有目标镜像文件的标识信息,因此目标缓存节点可以根据第一请求中的该标识信息,判断自身是否缓存有目标镜像文件。
当目标缓存节点中缓存有目标镜像文件时,目标缓存节点反馈给目标计算节点的目标信息可以为目标镜像文件本身;当目标缓存节点中未缓存目标镜像文件时,目标缓存节点反馈给目标计算节点的目标信息可以为:目标缓存节点未缓存目标镜像文件的消息。
可以理解的,当目标计算节点接收到目标缓存节点反馈的目标信息后,首先可以判断目标信息是否为镜像文件,如果目标信息不是镜像文件,则可以直接判定目标信息不是目标镜像文件。例如,由于镜像文件是特定类型的文件,其文件格式可以为:ISO、BIN、IMG、GHO等,因此,可以通过判断目标信息是否为特定类型的文件,来判断目标信息是否为镜像文件。
进一步的,如果目标信息是镜像文件,则可以继续判断目标信息中的标识信息是否与目标镜像文件的标识信息相匹配,如果不匹配,则可以判定目标信息不是目标镜像文件,如果匹配,则可以判定目标信息为目标镜像文件。
另外,若各个一级缓存节点中缓存的镜像文件不同,在各个一级缓存节点中可以保存自身以及其他一级缓存节点所缓存的镜像文件信息,则,目标计算节点可以先向目标缓存节点发送获取目标镜像文件的第一请求,目标缓存节点判断自身以及其他一级缓存节点是否缓存有目标镜像文件,如果自身或者其他一级缓存节点缓存有目标镜像文件,则将自身缓存的目标镜像文件反馈给目标计算节点,或者将其他一级缓存节点缓存有目标镜像文件的消息反馈给目标计算节点,这样,目标计算节点就可以获得一级缓存节点中缓存的目标镜像文件,并根据目标镜像文件创建目标云主机。
S106,向镜像节点发送获取目标镜像文件的第二请求,以使镜像节点根据第二请求判断二级缓存节点中是否存在目标镜像文件;获得二级缓存节点中缓存的目标镜像文件;根据目标镜像文件创建目标云主机。
其中,该第二请求中至少需要携带目标镜像文件的标识信息,当然,该请求中还可以携带其他信息,本实施例对此不做限定。
可以理解的,当目标缓存节点反馈了目标镜像文件,则目标计算节点可以根据目标镜像文件创建目标云主机,如果目标缓存节点未反馈目标镜像文件,则目标计算节点还需要向镜像节点请求目标镜像文件。
在实际应用中,二级缓存节点可以用于缓存从所述一级缓存节点中删除的镜像文件。例如,二级缓存节点可以基于NAS存储技术利用SSD(Solid State Drives,固态硬盘)制作。
因此,当一级缓存节点中不存在目标镜像文件时,目标计算节点还可以向镜像节点发送获取目标镜像文件的第二请求,以使镜像节点根据第二请求判断二级缓存节点中是否存在目标镜像文件,若存在,则可以从二级缓存节点中获得目标镜像文件,并根据目标镜像文件创建目标云主机。
一般来说,镜像节点本身不存储镜像文件、而只是作为数据库记录镜像文件的存储位置信息。例如,镜像节点可以记录二级缓存节点中所缓存的镜像文件信息。如果云服务系统还包括存储镜像文件的存储节点,则镜像节点也可以记录各个存储节点中所存储的镜像文件信息。
当镜像节点判断出二级缓存节点中不存在目标镜像文件时,镜像节点可以向目标计算节点反馈目标镜像文件的存储位置,由目标计算节点从存储位置处拉取目标镜像文件,或者,由镜像节点将目标镜像文件从存储位置处拉取到目标计算节点。
但是当多个计算节点需要同一镜像文件时,这种方式会造成较大的网络开销,因此,较佳的,镜像节点将目标镜像文件从存储位置处拉取到一级缓存节点或者二级缓存节点处,再由计算节点从一级缓存节点或者二级缓存节点获得镜像文件。
综上,本实施例提供的云主机创建方法,计算节点在接收到针对目标云主机的创建指令后,首先判断本地是否缓存有对应的目标镜像文件,如果没有,则从一级缓存节点获得该目标镜像文件,在一级缓存节点也没有缓存该目标镜像文件的情况下,才向镜像节点请求该目标镜像文件,由镜像节点判断二级缓存节点中是否存在目标镜像文件,如果存在,计算节点从二级缓存节点中获得目标镜像文件。可见,应用本实施例提供的方案,可以降低镜像节点的访问压力,实现镜像文件的高并发下载,减小镜像文件的拉取时间,缩短云主机的创建时间。
与上述的云主机创建方法相对应,本发明实施例还提供了一种云主机创建装置。
该装置可以应用于云服务系统中的任一计算节点,其中,该云服务系统可以包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,
与图1所示的方法实施例相对应,图2为本发明实施例提供的一种云主机创建装置的结构示意图,该装置可以包括:
接收模块201,用于接收针对目标云主机的创建指令;
第一判断模块202,用于判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,触发确定模块203;
所述确定模块203,用于从一级缓存节点中确定目标缓存节点;
第二判断模块204,用于通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;若为是,触发第一创建模块205;若为否,触发第二创建模块206;
所述第一创建模块205,用于通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;
所述第二创建模块206,用于向所述镜像节点发送获取所述目标镜像文件的第二请求,以使所述镜像节点根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;获得二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机。
具体的,所述第二判断模块204,可以包括:
发送子模块,用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
接收子模块,用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;
判断子模块,用于判断所述目标信息是否为所述目标镜像文件,若为是,判定一级缓存节点中缓存有所述目标镜像文件;
所述第一创建模块205,具体可以用于:
将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
具体的,所述二级缓存节点,可以用于缓存从所述一级缓存节点中删除的镜像文件。
具体的,各个一级缓存节点中缓存的镜像文件可以相同;
所述确定模块203,具体可以用于:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
具体的,所述预设的计算节点与一级缓存节点的关联关系可以为:
按照以下方式生成的:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
综上,本实施例提供的云主机创建装置,计算节点在接收到针对目标云主机的创建指令后,首先判断本地是否缓存有对应的目标镜像文件,如果没有,则从一级缓存节点获得该目标镜像文件,在一级缓存节点也没有缓存该目标镜像文件的情况下,才向镜像节点请求该目标镜像文件,由镜像节点判断二级缓存节点中是否存在目标镜像文件,如果存在,计算节点从二级缓存节点中获得目标镜像文件。可见,应用本实施例提供的方案,可以降低镜像节点的访问压力,实现镜像文件的高并发下载,减小镜像文件的拉取时间,缩短云主机的创建时间。
与上述的云主机创建方法、装置相对应,本发明实施例还提供了一种云服务系统。
图3为本发明实施例提供的一种云服务系统的第一种结构示意图,该云服务系统可以包括:计算节点301、提供数据缓存服务的一级缓存节点302、提供数据缓存服务的二级缓存节点303、提供云主机镜像服务的镜像节点304,其中,
所述计算节点301,可以用于接收针对目标云主机的创建指令;判断本地是否保存有所述目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,从一级缓存节点302中确定目标缓存节点;通过所述目标缓存节点判断一级缓存节点302中是否缓存有所述目标镜像文件;若为是,通过所述目标缓存节点获得一级缓存节点302中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;若为否,向所述镜像节点304发送获取所述目标镜像文件的第二请求;
所述镜像节点304,可以用于接收所述计算节点301发送的获取所述目标镜像文件的第二请求;根据所述第二请求判断二级缓存节点303中是否存在所述目标镜像文件;
所述计算节点301,还可以用于获得所述二级缓存节点303中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机。
具体的,所述计算节点301,具体可以用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
所述目标缓存节点,具体可以用于接收所述计算节点301发送的获取所述目标镜像文件的第一请求;根据所述第一请求,向所述计算节点反馈目标信息;
所述计算节点301,具体可以用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;判断所述目标信息是否为所述目标镜像文件,若为是,将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
具体的,所述二级缓存节点303,可以用于缓存从所述一级缓存节点302中删除的镜像文件。
具体的,各个一级缓存节点302中缓存的镜像文件可以相同;
所述计算节点301,具体可以用于根据预设的计算节点301与一级缓存节点302的关联关系,从所述一级缓存节点302中确定目标缓存节点。
具体的,所述计算节点301,具体可以用于根据一级缓存节点302的数量N,确定各个一级缓存节点302的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点302的序号均不相同;计算该计算节点302的标识信息的目标哈希值H;按照以下表达式计算该计算节点301对应的目标取模值M:M=M=mod(H,N),其中,mod()表示取模运算;确定序号与该计算节点301的目标取模值相同的一级缓存节点302,建立该计算节点301与所确定一级缓存节点302之间的关联关系。
综上,本实施例提供的云主机创建方法,计算节点在接收到针对目标云主机的创建指令后,首先判断本地是否缓存有对应的目标镜像文件,如果没有,则从一级缓存节点获得该目标镜像文件,在一级缓存节点也没有缓存该目标镜像文件的情况下,才向镜像节点请求该目标镜像文件,由镜像节点判断二级缓存节点中是否存在目标镜像文件,如果存在,计算节点从二级缓存节点中获得目标镜像文件。可见,应用本实施例提供的方案,可以降低镜像节点的访问压力,实现镜像文件的高并发下载,减小镜像文件的拉取时间,缩短云主机的创建时间。
如图4所示的本发明实施例提供的云服务系统的第二种结构示意图,在图3所示实施例的基础上,
该云服务系统还可以包括:用于提供数据存储服务的存储节点305;
所述一级缓存节点302可以包括:主缓存节点3021和所述主缓存节点3021对应的从缓存节点3022,所述从缓存节点3022缓存的镜像文件与所述主缓存节点3021缓存的镜像文件相同;
所述镜像节点304,还可以用于在一级缓存节点302和二级缓存节点303中均不存在所述目标镜像文件时,从所述存储节点305中获得所述目标镜像文件,向所述主缓存节点3021和/或所述二级缓存节点303反馈所述目标镜像文件;
所述主缓存节点3021,用于接收并缓存所述镜像节点304反馈的所述目标镜像文件,还用于向所述从缓存节点3022反馈所述目标镜像文件;
所述从缓存节点3022,用于接收并缓存所述主缓存节点3021反馈的所述目标镜像文件;
所述二级缓存节点303,用于接收并缓存所述镜像节点304反馈的所述目标镜像文件。
可以理解的,在一级缓存节点302和二级缓存节点303中均不存在目标镜像文件时,镜像节点304将目标镜像文件从存储节点305拉取到一级缓存节点302和/或二级缓存节点303中,这样,在其它计算节点301也需要该目标镜像文件时,可以直接从一级缓存节点302和/或二级缓存节点303获取,而不需要镜像节点304再次从存储节点305拉取,因此可以降低镜像节点的访问压力,实现镜像文件的高并发下载,减小镜像文件的拉取时间,缩短云主机的创建时间。
可以理解的,在一级缓存节点302中设置主缓存节点3021和从缓存节点3022,将目标镜像文件反馈给主缓存节点3021,再由主缓存节点3021同步给从缓存节点3022,不需要镜像节点向每个一级缓存节点302反馈目标镜像文件,就可以实现各个一级缓存节点302中镜像文件的一致性,同时也可以减小网络开销。
进一步的,所述镜像节点304,具体可以用于在一级缓存节点302和二级缓存节点303中均不存在所述目标镜像文件时,判断所要创建的目标云主机的数量是否大于预设阈值,如果是,向所述主缓存节点3021反馈所述目标镜像文件,如果否,向所述二级缓存节点303反馈所述目标镜像文件。
本领域技术人员可以理解的是,一级缓存节点302的数据读取速度比二级缓存节点303快,例如一级缓存节点302可以基于Redis缓存技术、二级缓存节点303可以基于NAS存储技术实现。由于计算节点301创建云主机具有高并发性,同时会有较多计算节点301需要创建云主机,这些计算节点301要创建的云主机可能相同也可能不同,如果一级缓存节点302中未缓存对应的镜像文件,这些计算节点301需要向镜像节点304请求,则镜像节点304可以知道此时有多少计算节点301请求镜像文件,以及请求每种镜像文件的计算节点301的数量,例如有35个计算节点向镜像节点请求镜像文件,其中请求A镜像文件的计算节点的数量为10、请求B镜像文件的计算节点的数量为25,也就是A镜像文件对应的云主机要创建10个,B镜像文件对应的云主机要创建25个。
需要说明的是,上述“同时会有较多计算节点301需要创建云主机”中的“同时”,可以指同一时刻,也可以指一段时间内,例如计算节点A向镜像节点请求目标镜像文件,当镜像节点判断出二级缓存节点中没有该目标镜像文件时,镜像节点会从存储节点拉取目标镜像文件,而在镜像节点下载目标镜像文件期间可能会有其他计算节点B、C也向镜像节点请求该目标镜像文件,对于镜像节点来说,可以视为计算节点A和计算节点B、C是同时请求目标镜像文件的。
如果二级缓存节点303中也未缓存对应的镜像文件,则镜像节点304可以根据要创建的云主机的数量,将数量较多的云主机对应的镜像文件反馈给一级缓存节点302,将数量较少的云主机对应的镜像文件反馈给二级缓存节点303。
可以理解的,一级缓存节点302基于Redis缓存技术实现,而Redis缓存节点所缓存的镜像文件的数量受限于节点的缓存容量,如单机内存大小。假设一个Redis缓存节点最多可存200G大小的镜像文件,一个Windows镜像文件假设为50G,在云服务系统不包括二级缓存节点303的情况下,如果有用户同时使用5个或以上的windows镜像文件创建云主机,则第五个以及后续镜像文件需要等待前四个镜像文件完成创建任务后,Redis缓存节点将前四个镜像文件删除后再缓存第五个以及后续镜像文件,从而造成Redis缓存节点中镜像文件不停地换入换出,使得Redis缓存节点中镜像文件连续“颠簸”,从而使得云主机创建时间的延长。
因此,为了解决在使用多种不同镜像文件创建云主机的过程中因为缓存容量限制导致的缓存内镜像文件连续“颠簸”问题,在云服务系统中设置二级缓存节点303,对于创建数量较多的云主机对应的镜像文件由一级缓存节点302缓存,创建数量较少的云主机对应的镜像文件由二级缓存节点303缓存,这种方式在一定程度上可以避免一级缓存节点302中镜像文件的连续“颠簸”问题。
可以理解的是,一级缓存节点302和二级缓存节点303能够提供的缓存容量是有限的,为了不影响一级缓存节点302和二级缓存节点303的正常运行,一级缓存节点302和二级缓存节点303中所缓存的数据量不能过大。因此,可以预先设置一级缓存节点302和二级缓存节点303可缓存数据量的最大值。
在这种情况下,所述主缓存节点3021,还可以用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
所述二级缓存节点303,还可以用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
具体的,由于在一级缓存节点302和二级缓存节点303中缓存时间最早的镜像文件被再次获取的概率相对来说比较小,因此可以将缓存时间最早的镜像文件确定为要删除的镜像文件;
还可以根据已缓存的镜像文件的访问频率,将访问频率最小的镜像文件确定为要删除的镜像文件;
还可以根据已缓存的镜像文件的重要程度,将重要程度最低的镜像文件确定为要删除的镜像文件。
当然,本实施例只是以上述为例进行说明,实际应用中,还可以根据其他原则确定要删除的镜像文件,本实施例并不对此进行限定。
示例性的,在Openstack框架中,该云服务系统中的镜像节点为Glance服务器,第一缓存节点为Redis缓存节点,包括Redis主缓存节点和Redis从缓存节点,第二缓存节点为NAS缓存节点,存储节点可以基于对象存储技术实现。Glance服务器还可以包括image-management模块,当计算节点本地、Redis缓存节点、NAS缓存节点上均无目标镜像文件时,Glance服务器会触发image-management模块,如果要创建的目标云主机数量较多,该模块会从存储节点将目标镜像文件拉取到Redis主缓存节点中,如果要创建的目标云主机数量较少,则优先拉取到NAS缓存节点中,计算节点再从Redis缓存节点或者NAS缓存节点获得目标镜像文件。
将目标镜像文件拉取到Redis主缓存节点中,如果Redis主缓存节点中缓存的数据量已达到预设阈值,则Redis主缓存节点再采取LRU(近期最少使用)策略,将已缓存的镜像文件中在最近一段预设时长内未被使用的镜像文件剔除至NAS缓存节点中,再对该目标镜像文件进行缓存。
可以理解的,主缓存节点3021删除要删除的镜像节点、并缓存目标镜像文件之后,通过数据同步机制使得各个从缓存节点也删除对应的镜像文件、缓存目标镜像文件,可以实现主缓存节点3021与从缓存节点3022中的数据同步,即,主缓存节点3021中缓存的镜像文件与从缓存节点3022中缓存的镜像文件相同。
这样,只要一级缓存节点302中缓存有目标镜像文件,则计算节点301从任一个一级缓存节点302均可以获得该目标镜像文件,这种方式可以进一步提高云服务系统中计算节点301并发下载镜像文件的性能。
实际应用中,采用Redis缓存技术对镜像文件进行缓存,并且利用Redis缓存技术的主从同步机制,保证了不同Redis缓存节点上数据的一致性,采用多个Redis缓存节点的方式,使得镜像文件并发下载的能力可以随着Redis从缓存节点数量的增加而线性增加。
进一步的,所述主缓存节点3021,还可以用于在确定本地要删除的镜像文件之后,向所述二级缓存节点303反馈所述要删除的镜像文件;
所述二级缓存节点303,还可以用于接收并缓存所述要删除的镜像文件。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种云主机创建方法,其特征在于,应用于云服务系统中的目标计算节点,其中,所述云服务系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,所述方法包括:
接收针对目标云主机的创建指令;
判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;
若未保存,从一级缓存节点中确定目标缓存节点;
通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;
若为是,通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;
若为否,向所述镜像节点发送获取所述目标镜像文件的第二请求,以使所述镜像节点根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;获得二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机;所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件;
所述云服务系统还包括:用于提供数据存储服务的存储节点;
所述一级缓存节点包括:主缓存节点和所述主缓存节点对应的从缓存节点,所述从缓存节点缓存的镜像文件与所述主缓存节点缓存的镜像文件相同;
在所述向所述镜像节点发送获取所述目标镜像文件的第二请求之后,所述方法还包括:
在所述一级缓存节点和所述二级缓存节点中均不存在所述目标镜像文件时,所述镜像节点从所述存储节点中获得所述目标镜像文件,向所述主缓存节点和/或所述二级缓存节点反馈所述目标镜像文件,以使得所述主缓存节点接收并缓存所述镜像节点反馈的所述目标镜像文件,以及向所述从缓存节点反馈所述目标镜像文件;所述从缓存节点接收并缓存所述主缓存节点反馈的所述目标镜像文件;所述二级缓存节点接收并缓存所述镜像节点反馈的所述目标镜像文件。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件的步骤,包括:
向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
接收所述目标缓存节点根据所述第一请求反馈的目标信息;
判断所述目标信息是否为所述目标镜像文件,若为是,判定一级缓存节点中缓存有所述目标镜像文件;
所述通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机的步骤,包括:
将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
3.根据权利要求1-2中任一项所述的方法,其特征在于,各个一级缓存节点中缓存的镜像文件相同;
所述从一级缓存节点中确定目标缓存节点的步骤,包括:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
4.根据权利要求3所述的方法,其特征在于,所述预设的计算节点与一级缓存节点的关联关系,按照以下方式生成:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
5.一种云主机创建装置,其特征在于,应用于云服务系统中的目标计算节点,其中,所述云服务系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,所述装置包括:
接收模块,用于接收针对目标云主机的创建指令;
第一判断模块,用于判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,触发确定模块;
所述确定模块,用于从一级缓存节点中确定目标缓存节点;
第二判断模块,用于通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;若为是,触发第一创建模块;若为否,触发第二创建模块;
所述第一创建模块,用于通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;
所述第二创建模块,用于向所述镜像节点发送获取所述目标镜像文件的第二请求,以使所述镜像节点根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;获得二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机;所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件;
所述云服务系统还包括:用于提供数据存储服务的存储节点;
所述一级缓存节点包括:主缓存节点和所述主缓存节点对应的从缓存节点,所述从缓存节点缓存的镜像文件与所述主缓存节点缓存的镜像文件相同;
在所述第二创建模块向所述镜像节点发送获取所述目标镜像文件的第二请求之后,在所述一级缓存节点和所述二级缓存节点中均不存在所述目标镜像文件时,所述镜像节点从所述存储节点中获得所述目标镜像文件,向所述主缓存节点和/或所述二级缓存节点反馈所述目标镜像文件,以使得所述主缓存节点接收并缓存所述镜像节点反馈的所述目标镜像文件,以及向所述从缓存节点反馈所述目标镜像文件;所述从缓存节点接收并缓存所述主缓存节点反馈的所述目标镜像文件;所述二级缓存节点接收并缓存所述镜像节点反馈的所述目标镜像文件。
6.根据权利要求5所述的装置,其特征在于,所述第二判断模块,包括:
发送子模块,用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
接收子模块,用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;
判断子模块,用于判断所述目标信息是否为所述目标镜像文件,若为是,判定一级缓存节点中缓存有所述目标镜像文件;
所述第一创建模块,具体用于:
将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
7.根据权利要求5-6中任一项所述的装置,其特征在于,各个一级缓存节点中缓存的镜像文件相同;
所述确定模块,具体用于:
根据预设的计算节点与一级缓存节点的关联关系,从一级缓存节点中确定目标缓存节点。
8.根据权利要求7所述的装置,其特征在于,所述预设的计算节点与一级缓存节点的关联关系为:
按照以下方式生成的:
根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;
计算各个计算节点的标识信息的目标哈希值H;
按照以下表达式计算各个计算节点对应的目标取模值M:
M=mod(H,N),
其中,mod()表示取模运算;
对于每一计算节点,确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
9.一种云服务系统,其特征在于,所述系统包括:计算节点、提供数据缓存服务的一级缓存节点、提供数据缓存服务的二级缓存节点、提供云主机镜像服务的镜像节点,其中,
所述计算节点,用于接收针对目标云主机的创建指令;判断本地是否保存有目标镜像文件,其中,所述目标镜像文件为创建所述目标云主机所需的镜像文件;若未保存,从一级缓存节点中确定目标缓存节点;通过所述目标缓存节点判断一级缓存节点中是否缓存有所述目标镜像文件;若为是,通过所述目标缓存节点获得一级缓存节点中缓存的所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机;若为否,向所述镜像节点发送获取所述目标镜像文件的第二请求;
所述镜像节点,用于接收所述计算节点发送的获取所述目标镜像文件的第二请求;根据所述第二请求判断二级缓存节点中是否存在所述目标镜像文件;
所述计算节点,还用于获得所述二级缓存节点中缓存的所述目标镜像文件;根据所述目标镜像文件创建所述目标云主机;所述二级缓存节点,用于缓存从所述一级缓存节点中删除的镜像文件;
所述系统还包括:用于提供数据存储服务的存储节点;
所述一级缓存节点包括:主缓存节点和所述主缓存节点对应的从缓存节点,所述从缓存节点缓存的镜像文件与所述主缓存节点缓存的镜像文件相同;
所述镜像节点,还用于在一级缓存节点和二级缓存节点中均不存在所述目标镜像文件时,从所述存储节点中获得所述目标镜像文件,向所述主缓存节点和/或所述二级缓存节点反馈所述目标镜像文件;
所述主缓存节点,用于接收并缓存所述镜像节点反馈的所述目标镜像文件,还用于向所述从缓存节点反馈所述目标镜像文件;
所述从缓存节点,用于接收并缓存所述主缓存节点反馈的所述目标镜像文件;
所述二级缓存节点,用于接收并缓存所述镜像节点反馈的所述目标镜像文件。
10.根据权利要求9所述的系统,其特征在于,
所述计算节点,具体用于向所述目标缓存节点发送获取所述目标镜像文件的第一请求;
所述目标缓存节点,具体用于接收所述计算节点发送的获取所述目标镜像文件的第一请求;根据所述第一请求,向所述计算节点反馈目标信息;
所述计算节点,具体用于接收所述目标缓存节点根据所述第一请求反馈的目标信息;判断所述目标信息是否为所述目标镜像文件,若为是,将所述目标信息确定为所述目标镜像文件,并根据所述目标镜像文件创建所述目标云主机。
11.根据权利要求9-10中任一项所述的系统,其特征在于,各个一级缓存节点中缓存的镜像文件相同;
所述计算节点,具体用于根据预设的计算节点与一级缓存节点的关联关系,从所述一级缓存节点中确定目标缓存节点。
12.根据权利要求11所述的系统,其特征在于,
所述计算节点,具体用于根据一级缓存节点的数量N,确定各个一级缓存节点的序号,其中,所述序号为[0,N-1]区间的整数,任意两个一级缓存节点的序号均不相同;计算该计算节点的标识信息的目标哈希值H;按照以下表达式计算该计算节点对应的目标取模值M:M=M=mod(H,N),其中,mod()表示取模运算;确定序号与该计算节点的目标取模值相同的一级缓存节点,建立该计算节点与所确定一级缓存节点之间的关联关系。
13.根据权利要求9所述的系统,其特征在于,
所述镜像节点,具体用于在一级缓存节点和二级缓存节点中均不存在所述目标镜像文件时,判断所要创建的目标云主机的数量是否大于预设阈值,如果是,向所述主缓存节点反馈所述目标镜像文件,如果否,向所述二级缓存节点反馈所述目标镜像文件。
14.根据权利要求9或13所述的系统,其特征在于,
所述主缓存节点,还用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
15.根据权利要求14所述的系统,其特征在于,
所述主缓存节点,还用于在确定本地要删除的镜像文件之后,向所述二级缓存节点反馈所述要删除的镜像文件;
所述二级缓存节点,还用于接收并缓存所述要删除的镜像文件。
16.根据权利要求9或13所述的系统,其特征在于,
所述二级缓存节点,还用于判断本地缓存的数据量是否达到预设阈值,如果否,缓存所述目标镜像文件,如果是,确定本地要删除的镜像文件,删除所述要删除的镜像文件,缓存所述目标镜像文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120481.3A CN108540510B (zh) | 2017-03-02 | 2017-03-02 | 一种云主机创建方法、装置及云服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120481.3A CN108540510B (zh) | 2017-03-02 | 2017-03-02 | 一种云主机创建方法、装置及云服务系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108540510A CN108540510A (zh) | 2018-09-14 |
CN108540510B true CN108540510B (zh) | 2021-11-05 |
Family
ID=63489041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710120481.3A Active CN108540510B (zh) | 2017-03-02 | 2017-03-02 | 一种云主机创建方法、装置及云服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108540510B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109358965B (zh) * | 2018-09-25 | 2022-01-11 | 杭州朗和科技有限公司 | 云计算集群资源调度方法、介质、装置和计算设备 |
CN109407992A (zh) * | 2018-11-01 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种用于创建云硬盘的方法和装置 |
CN109379235B (zh) * | 2018-11-27 | 2019-08-30 | 无锡华云数据技术服务有限公司 | 基于高并发请求场景创建云主机的方法 |
CN112181278B (zh) * | 2019-07-04 | 2023-04-07 | 中移(苏州)软件技术有限公司 | 在云计算系统中创建系统盘的方法、装置、设备及存储介质 |
CN113421557A (zh) * | 2021-06-22 | 2021-09-21 | 广州小鹏汽车科技有限公司 | 语音交互方法、语音交互系统和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307206A (zh) * | 2010-09-25 | 2012-01-04 | 广东电子工业研究院有限公司 | 基于云存储的快速访问虚拟机镜像的缓存系统及其方法 |
CN104361030A (zh) * | 2014-10-24 | 2015-02-18 | 西安未来国际信息股份有限公司 | 一种具有任务分发功能的分布式缓存架构及缓存方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9804965B2 (en) * | 2014-12-03 | 2017-10-31 | Electronics And Telecommunications Research Institute | Virtual machine host server apparatus and method for operating the same |
-
2017
- 2017-03-02 CN CN201710120481.3A patent/CN108540510B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102307206A (zh) * | 2010-09-25 | 2012-01-04 | 广东电子工业研究院有限公司 | 基于云存储的快速访问虚拟机镜像的缓存系统及其方法 |
CN104361030A (zh) * | 2014-10-24 | 2015-02-18 | 西安未来国际信息股份有限公司 | 一种具有任务分发功能的分布式缓存架构及缓存方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108540510A (zh) | 2018-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108540510B (zh) | 一种云主机创建方法、装置及云服务系统 | |
US10789217B2 (en) | Hierarchical namespace with strong consistency and horizontal scalability | |
US9305069B2 (en) | Method and system for uploading data into a distributed storage system | |
US8615485B2 (en) | Method and system for managing weakly mutable data in a distributed storage system | |
CN101819577B (zh) | 维护文件系统客户端目录高速缓存的方法、系统和装置 | |
JP2020038623A (ja) | データを記憶するための方法、装置及びシステム | |
US11561930B2 (en) | Independent evictions from datastore accelerator fleet nodes | |
US11144502B2 (en) | Object store file system format for representing, storing, and retrieving data in an object store according to a structured format | |
CN107562757B (zh) | 基于分布式文件系统的查询、访问方法、装置及系统 | |
US9952940B2 (en) | Method of operating a shared nothing cluster system | |
US11297031B2 (en) | Hierarchical namespace service with distributed name resolution caching and synchronization | |
US11245774B2 (en) | Cache storage for streaming data | |
US9547706B2 (en) | Using colocation hints to facilitate accessing a distributed data storage system | |
US9471586B2 (en) | Intelligent selection of replication node for file data blocks in GPFS-SNC | |
US9110820B1 (en) | Hybrid data storage system in an HPC exascale environment | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
WO2017095820A1 (en) | Methods and devices for acquiring data using virtual machine and host machine | |
CN116467275A (zh) | 共享远程存储方法、装置、系统、电子设备及存储介质 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN112866406B (zh) | 一种数据存储方法、系统、装置、设备及存储介质 | |
US9432238B2 (en) | Communicating large amounts of data over a network with improved efficiency | |
US20230350760A1 (en) | Physical size api for snapshots backed up to object store | |
US10503409B2 (en) | Low-latency lightweight distributed storage system | |
JP7392168B2 (ja) | Cdnにおけるurlリフレッシュ方法、装置、機器及びcdnノード |
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 |