CN108322490A - 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 - Google Patents
虚拟机配置及部署分布式云服务系统的方法、装置和服务器 Download PDFInfo
- Publication number
- CN108322490A CN108322490A CN201710031612.0A CN201710031612A CN108322490A CN 108322490 A CN108322490 A CN 108322490A CN 201710031612 A CN201710031612 A CN 201710031612A CN 108322490 A CN108322490 A CN 108322490A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- target virtual
- address
- target
- configuration
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0846—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on copy from other elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
Abstract
本申请实施例提供了一种虚拟机配置及部署分布式云服务系统的方法、装置和服务器,其中,所述在云平台上部署分布式云服务系统的方法包括:生成目标虚拟机;向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。本申请实施例可以使得分布式云服务系统能够在国内大规模部署,即使在IaaS厂商不支持metadata‑server的写入的情况下,目标虚拟机仍然可以进行服务发现,获得配置信息,避免了目标虚拟机对IaaS层的环境的依赖,保证了虚拟机之间可以正常通讯。
Description
技术领域
本申请涉及云平台的技术领域,特别是涉及一种在云平台上部署分布式云服务系统的方法、一种部署分布式云服务系统的过程中进行虚拟机配置的方法、一种在云平台上部署分布式云服务系统的装置、一种部署分布式云服务系统的过程中进行虚拟机配置的装置和一种服务器。
背景技术
Cloud Foundry(简称CF)是一个开源PaaS(Platform-as-a-Service,平台即服务)平台,支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。
Bosh是一个可以对各种分布式系统进行部署管理、生命周期管理、监控管理、资源管理的工具,支持在云环境上大规模部署Cloud Foundry。
Cloud Foundry可以用Bosh灵活地部署在AWS,OpenStack等多种IaaS(Infrastructure as a Service,基础设施即服务)平台上,但一直没有一个通用的在指定云平台上大规模部署Cloud Foundry的方法。
进一步的,Bosh管理VM(Virtual Machine,虚拟机)的通讯机制时,存在一个服务发现的问题。Bosh新创建的VM在启动时,需要向一个Bosh组件Registry(注册组件)请求配置信息,但VM第一次启动时,如何知道Registry组件的地址。
在现有技术中,在创建用于部署Registry组件的VM时,Bosh通过CPI(CloudProvider Interface,云提供商接口)把Registry组件的IP地址写入到底层IaaS提供的metadata-server(元数据服务器)中,VM可以自由访问metadata-server,读取Registry组件的地址,这种方法可以很好的解决Registry服务发现的问题,但对底层IaaS的依赖非常严重,如果IaaS厂商不支持metadata-server的写入,这种方法就无法正常工作。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种在云平台上部署分布式云服务系统的方法、一种部署分布式云服务系统的过程中进行虚拟机配置的方法和相应的一种在云平台上部署分布式云服务系统的装置、一种部署分布式云服务系统的过程中进行虚拟机配置的装置、一种服务器。
本申请实施例公开了一种在云平台上部署分布式云服务系统的方法,所述方法包括:
生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
优选地,在所述创建目标虚拟机的步骤之前,还包括:
完成所述云平台上的部署准备,包括:
获取镜像文件;
部署云服务提供商接口CPI组件。
优选地,所述获取镜像文件的步骤包括:
创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
从所述系统实例中导出所述镜像文件;
在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
优选地,所述创建目标虚拟机的步骤包括:
接收输入的镜像标识;
查找与所述镜像标识对应的镜像文件;
基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
优选地,在所述创建目标虚拟机的步骤之后,还包括:
基于所述目标虚拟机的标识生成配置文件;
将所述配置文件向注册组件注册。
本申请实施例还公开了一种部署分布式云服务系统的过程中进行虚拟机配置的方法,所述方法包括:
目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
接收任一关联虚拟机返回的所述注册组件的服务地址;
基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
优选地,在所述接收任一关联虚拟机返回的所述注册组件的服务地址之后,还包括:
停止所述广播。
优选地,在所述基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息的步骤之后,还包括:
采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
优选地,所述方法还包括:
接收部署指令;
基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
优选地,所述向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求的步骤包括:
采用指定通信协议封装所述地址获取请求;
调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
本申请实施例还公开了一种在云平台上部署分布式云服务系统的装置,所述装置包括:
目标虚拟机生成模块,用于生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
配置信息发送模块,用于向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
部署指令发送模块,用于向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
优选地,所述装置还包括:
部署准备模块,用于完成所述云平台上的部署准备,包括:
镜像文件获取子模块,用于获取镜像文件;
CPI组件部署子模块,用于部署云服务提供商接口CPI组件。
优选地,所述镜像文件获取子模块包括:
镜像文件生成单元,用于创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
镜像文件导出单元,用于从所述系统实例中导出所述镜像文件;
镜像文件导入单元,用于在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
优选地,所述目标虚拟机创建模块包括:
镜像标识接收子模块,用于接收输入的镜像标识;
镜像文件查找子模块,用于查找与所述镜像标识对应的镜像文件;
虚拟机创建子模块,用于基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
优选地,所述装置还包括:
配置文件生成模块,用于基于所述目标虚拟机的标识生成配置文件;
注册模块,用于将所述配置文件向注册组件注册。
本申请实施例还公开了一种部署分布式云服务系统的过程中进行虚拟机配置的装置,所述装置包括:
关联虚拟机确定模块,用于确定与目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
广播模块,用于向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
地址接收模块,用于接收任一关联虚拟机返回的所述注册组件的服务地址;
配置信息请求模块,用于基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
优选地,所述装置还包括:
停止广播模块,用于停止所述广播。
优选地,所述装置还包括:
启动配置模块,用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
优选地,所述装置还包括:
部署指令接收模块,用于接收部署指令;
云系统安装模块,用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
优选地,所述广播模块包括:
封装子模块,用于采用指定通信协议封装所述地址获取请求;
请求广播子模块,用于调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
本申请实施例还公开了一种服务器,包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,其中,所述一个或多个模块具有如下功能:
生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
本申请实施例还公开了一种服务器,包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,其中,所述一个或多个模块具有如下功能:
目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
接收任一关联虚拟机返回的所述注册组件的服务地址;
基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
本申请实施例包括以下优点:
在本申请实施例中,在云平台上部署分布式云服务系统的过程中,在新生成一个目标虚拟机以后,该目标虚拟机可以确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,并基于该配置信息启动所述代理机,完成目标虚拟机的配置,随后,可以向目标虚拟机发送部署指令,以促使目标虚拟机根据该部署指令,在目标虚拟机中安装所述分布式云服务系统。通过本申请实施例,使得分布式云服务系统能够在国内大规模部署,即使在IaaS厂商不支持metadata-server的写入的情况下,目标虚拟机仍然可以进行服务发现,获得配置信息,避免了目标虚拟机对IaaS层的环境的依赖,保证了虚拟机之间可以正常通讯。
附图说明
图1是本申请的一种在云平台上部署分布式云服务系统的方法实施例一的步骤流程图;
图2是本申请的一种在云平台上部署分布式云服务系统的方法实施例二的步骤流程图;
图3是本申请的一种部署分布式云服务系统的过程中进行虚拟机配置的方法实施例的步骤流程图;
图4是本申请的一种在云平台上部署分布式云服务系统的装置实施例的结构框图;
图5是本申请的一种部署分布式云服务系统的过程中进行虚拟机配置的装置实施例的结构框图;
图6是本申请一个实施例的服务器的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,示出了本申请的一种在云平台上部署分布式云服务系统的方法实施例一的步骤流程图,可以包括如下步骤:
步骤101,生成目标虚拟机;
所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
步骤102,向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
步骤103,向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
在本申请实施例中,在云平台上部署分布式云服务系统的过程中,在新生成一个目标虚拟机以后,该目标虚拟机可以确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,并基于该配置信息启动所述代理机,完成目标虚拟机的配置,随后,可以向目标虚拟机发送部署指令,以促使目标虚拟机根据该部署指令,在目标虚拟机中安装所述分布式云服务系统。通过本申请实施例,使得分布式云服务系统能够在国内大规模部署,即使在IaaS厂商不支持metadata-server的写入的情况下,目标虚拟机仍然可以进行服务发现,获得配置信息,避免了目标虚拟机对IaaS层的环境的依赖,保证了虚拟机之间可以正常通讯。
参照图2,示出了本申请一种在云平台上部署分布式云服务系统的方法实施例二的步骤流程图。
在本申请实施例中,云平台可以为位于底层IaaS层的云平台,IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户,例如,阿里云平台等。
应用于本申请实施例中,该云平台可以包括IaaS厂商不支持metadata-server的写入的平台。
分布式云服务系统可以为位于PaaS层的云平台,PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,例如,分布式云服务系统可以为Cloud Foundry(简称CF)。以下以分布式云服务系统为Cloud Foundry为例对本申请实施例进行说明。
Cloud Foundry分布式部署依赖于BOSH,BOSH是将分布式系统的部署步骤进行定义和编排的服务器,是一个可以对各种分布式系统进行版本管理、部署管理、生命周期管理、监控管理、资源管理的开源工具,支持在云环境上大规模部署Cloud Foundry。
可以通过BOSH CLI(Command Line Interface,命令行接口,即指令界面,一个ruby工具,其中,ruby是一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言)与BOSH服务器交互。
可以采用BOSH将Cloud Foundry的各组件部署到分布的节点上(在虚拟化环境中,节点即虚拟机),在部署过程中,本申请实施例具体可以包括如下步骤:
步骤201,完成所述云平台上的部署准备;
在具体实现中,BOSH开始部署CF之前,首先需要完成云平台上的部署准备。
在本申请实施例的一种优选实施例中,该部署准备可以包括获取镜像文件。
具体的,镜像文件,即Stemcell镜像文件,是IaaS层定制化的操作系统镜像模板,是虚拟机的镜像。
stemcell可以包括一个操作系统(例如ubuntu)和预装Bosh agent(代理)的虚拟机(VM)模板和一些配置文件。在云平台上,VM可以用从VM模板clone(克隆)的方法创建。由BOSH stemcell创建的VM在开始时是相同的,启动后,VM被配置成不同的CPU/memory/storage/network,并且安装不同的软件包。这样由同样stemcell模板创建的VM变得不一样了。
其中,Bosh Agent运行在已经创建出的VM上,每个Bosh创建的虚拟机都一个Agent,它是Bosh在VM上的代理。在使用BOSH部署Cloud Foundry的过程中,VM之间的通讯依赖于每个镜像中预装好的Bosh Agent。在本申请实施例的一种优选实施例中,获取镜像文件的步骤可以包括如下子步骤:
子步骤S11,创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
在本申请实施例中,可以首先创建一个纯净的系统实例(例如,虚拟机),并基于该系统实例创建Stemcell文件。
具体的,可以在该系统实例上预装部署代理机Bosh Agent等组件,随后导出该系统实例的操作系统,结合配置文件生成Stemcell文件。
子步骤S12,从所述系统实例中导出所述镜像文件;
在具体实现中,可以利用Linux脚本导出该系统实例中的镜像文件。
子步骤S13,在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识;
本申请实施例的云平台可以包括导入镜像功能,通过该功能,用户可以自定义镜像文件。
可以采用该导入镜像功能导入子步骤S12中导出的镜像文件,导入镜像文件以后,输出的结果是云平台上的用户自定义的镜像文件,该镜像文件预装了需要的Bosh Agent和相应配置文件。
在本申请实施例中,在云平台中导入镜像文件后,云平台可以为该镜像文件分配一个全局的ImageId(镜像标识),并向用户显示该ImageId。
通过在本申请实施例中为每个镜像文件关联一个预设的全局的ImageId,则云平台在生成配置文件的压缩包时,可以不需要在压缩包中包含体积庞大的镜像文件,只需要在Stemcell压缩包所包含的配置文件中,关联镜像标识即可,BOSH在使用Stemcell时就可以根据镜像标识找到对应的镜像文件,完成VM的创建。
本申请实施例中的获取镜像文件的方法,适配特定云环境,在云平台上使用更加方便、友好。而镜像文件本身存储在云平台的存储系统中,部署过程中省去了下载、传输镜像文件的时间和风险;后续Stemcell的版本管理和Bug修复,也不需要重新制作镜像文件,利用云平台中自定义镜像的功能,可以很方便地在云上修改、保存镜像文件。
在本申请实施例的一种优选实施例中,部署准备还可以包括部署云服务提供商接口CPI组件。
CPI是一系列管理IaaS资源的功能性接口,基于指定云平台的OpenAPI,CPI实现了BOSH对指定云平台的虚拟机相关资源的管理功能。
在实际中,可以根据云平台和CloudFoundry的要求,编写代码完成部署用的关键CPI组件。
本申请实施例中的指定云平台的Bosh CPI可以用Ruby语言编写。
具体而言,在云上部署Cloud Foundry,CPI通过云服务商提供的OpenAPI实现。CPI可以包括四部分,分别为stemcell管理、vm管理、disk管理、snapshot管理,每部分包括的接口详述如下:
1、stemcell管理
1.1create_stemcell
生成stemcell的接口,返回ImageId(镜像标识),供vm管理部分使用。
1.2delete_stemcell,删除stemcell的接口。
2、vm管理
2.1create_vm
创建虚拟机的接口,可以调用指定云平台的OpenAPI创建虚拟机,创建虚拟机所需要的参数配置从manifest中读取,返回InstanceId(虚拟机标识)。
2.2delete_vm
删除虚拟机的接口,可以调用指定云平台的OpenAPI删除指定虚拟机,在删除虚拟机时,需要传入InstanceId参数。
2.3has_vm
判断虚拟机是否存在的接口,可以调用指定云平台的OpenAPI查询指定虚拟机是否存在,需要传入InstanceId参数。
2.4reboot_vm
重启虚拟机的接口,可以调用指定云平台的OpenAPI重启指定虚拟机,需要传入InstanceId参数。
2.5current_vm_id
查询当前vm的InstanceId的接口,可以调用指定云平台OpenAPI查询当前vm的InstanceId。
3、disk管理
3.1create_disk
创建磁盘的接口,可以调用指定云平台OpenAPI创建磁盘,创建磁盘所需要的参数配置从manifest中读取,返回DiskId(磁盘标识)。
3.2delete_disk
删除磁盘的接口,可以调用指定云平台的OpenAPI删除指定磁盘,需要传入DiskId参数。
3.3has_disk
判断磁盘是否存在的接口,可以调用指定云平台OpenAPI查询指定磁盘是否存在,需要传入DiskId参数。
3.4attach_disk
磁盘挂载接口,可以调用指定云平台的OpenAPI把指定磁盘挂载到指定虚拟机上,需要传入DiskId和InstanceId参数。
3.5detach_disk
卸载磁盘的接口,可以调用指定云平台的OpenAPI把指定磁盘从指定虚拟机上卸载,需要传入DiskId和InstanceId参数。
4、snapshot管理
4.1snapshot_disk
可以调用指定云平台的OpenAPI指定的磁盘打快照,需要传入DiskId参数,返回SnapshotId(快照标识)。
4.2delete_snapshot
可以调用指定云平台的OpenAPI删除磁盘快照,需要传入SnapshotId参数。
当然,除了上述部署准备以外,该部署准备还可以包括确定软件信息Releases和部署清单Deployment Manifest、部署micro-bosh系统等操作。
Releases文件包含一系列软件和配置,用于安装到目标系统中,配置文件可以包含例如IP地址、商品号、用户名、口令、域名等。这些参数根据部署清单文件(DeploymentManifest)中的属性来确定。
BOSH Release是所有部署Bosh需要的组件的一个集合压缩包,可以包括Bosh源代码、配置文件、运行脚本。
Deployment Manifest可以为JSON(JavaScript Object Notation,是一种轻量级的数据交换格式)信息,定义了部署时所需的实际参数值,存储在BOSH中的注册组件Registry中。在部署过程中,BOSH用这些实际参数值替换release中的参数,使得软件按计划好的配置来运行。例如,在部署分布式BOSH系统时,Deployment manifest包括了所有部署Bosh需要的信息,包括从哪里拿到Bosh和CPI Release、部署Bosh的虚拟机的配置信息、部署哪些组件等,配置好manifest,Bosh-init读取manifest配置项内容,就可以一键部署、更新BOSH。
在部署CF时,Deployment manifest包括了所以部署CF需要的信息,包括从哪里拿到CF和CPI Release、部署CF需要多少虚拟机、虚拟机的配置信息、部署哪些组件、访问CF的证书配置等,配置好manifest,Bosh CLI读取manifest配置项内容,就可以一键部署、更新分布式系统CF。
由于Cloud Foundry的生产集群规模庞大,因此针对其开发的部署工具BOSH结构上必须是多节点的。既然BOSH是分布式的,那么其自身必须是分布式部署的,因此,可以通过微部署服务器micro-bosh进行部署。
Micro-bosh是跑在单节点上的,但包含了BOSH的所有组件,它适合部署规模较小的集群,比如BOSH。这样,就出现了micro-bosh到bosh,bosh在到cloud foundry的过程。
在具体实现中,可以使用bosh-init工具,结合CPI组件、stemcell镜像,基于当前BOSH工具所在的虚拟机创建micro-bosh系统。
Bosh-init是一个单机版Bosh的开源部署工具,用户配置Deployment manifest文件,准备好指定云平台上需要的CPI Release、Bosh Release和相应的云环境,就可以进行micro-bosh系统的部署。
步骤202,生成目标虚拟机;
当上述部署准备完成以后,Stemcells、Releases以及Deployment Manifest将被用BOSH CLI工具上传到micro-bosh。然后,基于micro-bosh部署分布式云服务系统CF。
在本申请实施例的一种优选实施例中,步骤202可以包括如下子步骤:
子步骤S21,接收输入的镜像标识;
子步骤S22,查找与所述镜像标识对应的镜像文件;
子步骤S23,基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
具体的,由于镜像文件存储在云平台的存储系统中,并且与镜像标识相关联,在部署CF的过程中,当部署一个release的任务需要创建虚拟机时,用户在云平台中输入镜像标识即可,micro-bosh获得用户输入的镜像标识以后,可以在存储系统中匹配该镜像标识,获得与该镜像标识对应的镜像文件。
micro-bosh获得镜像文件以后,调用CPI的OpenAPI(开放式接口)create_vm接口在当前网络环境创建目标VM,release将被部署到目标VM上,目标VM从stemcell克隆过来,其已经包含了BOSH agent。在micro-bosh创建目标VM的过程中,还可以为该目标VM分配目标VM的标识agent-id,该标识是目标个VM在通讯中的标识。
在本申请实施例的一种优选实施例中,本申请实施例还可以包括如下步骤:
基于所述目标虚拟机的标识生成配置文件;将所述配置文件向注册组件注册。
当micro-bosh生成agent-id以后,可以根据该agent-id以及Deploymentmanifest生成配置文件,其中,配置信息是一种json信息。
随后,micro-bosh可以通过ruby语言的avahi-client在Registry组件中注册目标VM的该配置信息。
需要说明的是,当完成部署准备以后,如果在release中的一些package(package是源代码和编译安装脚本的集合)需要编译,可以创建几个临时VM来编译它们。编译完成后,BOSH将编译好的二进制代码放在内部的blobstore(存储系统),将临时VM销毁。
运行在目标VM中的Bosh Agent在启动过程中需要从注册组件中读取配置信息,以使虚拟机分配不同的角色。在本申请实施例中,当创建目标VM以后,目标VM需要向micro-bosh中的Registry请求与该目标VM的release对应的配置信息,此时,目标VM存在一个服务发现的问题,以获取注册组件的服务地址。
在本申请实施例的一种优选实施例中,目标VM通过如下方式获取注册组件的服务地址:
确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息。
具体的,关联VM可以为与目标VM处于同一子网中,并且已经经过注册过程的VM,包括部署了BOSH以及Cloud Foundry的VM,每个关联VM已经获得过注册组件的服务地址。
确定目标VM以后,可以确定该目标VM所处的局域网,然后获取该局域网中的所有VM,并从该局域网中的所有VM中筛选出部署了BOSH和Cloud Foundry的VM,作为与该目标VM关联的关联VM。
在具体实现中,与目标VM对应的关联VM可以有一个或多个。
由于在同一个子网里面,所有VM访问的Registry是同一个,其服务地址(Registry-endpoint)相同。因此,目标VM确定了与其处于同一子网的关联VM以后,在BoshAgent进程启动的过程中,可以以广播的方式向其关联的关联VM发送地址获取请求,以向关联VM请求Registry的服务地址。
在实现中,目标VM可以采用指定通信协议封装地址获取请求,并调用指定的接口,以广播的方式向一个或多个关联虚拟机发出服务地址获取请求。
作为一种示例,该指定通信协议可以包括RTF2771(Rich Text Format,富文本格式)、zeroconf(零配置网络)协议;该指定的接口可以包括golang版本的avahi-client接口。
在实际中,该地址获取请求用JSON格式的封装方式进行封装后广播出去。
关联VM接收到目标VM广播的服务地址获取请求以后,可以将其已经发现的服务地址发送至目标VM,使得目标VM能正常工作。
在本申请实施例的一种优选实施例中,当目标VM接收到任一关联VM发送的服务地址以后,就可以停止上述广播。
当目标VM获得服务地址以后,就可以根据服务地址找到注册组件,然后从注册组件中请求与目标VM对应的配置信息。
步骤103,向所述目标虚拟机发送配置信息;
具体的,目标VM向注册组件发送的请求可以包括agent-id,注册组件可以根据agent-id查找对应的配置信息发送至目标VM。
目标VM得到配置信息以后,可以采用该配置信息启动其内运行的代理机,并完成目标VM的配置。
步骤104,向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
当目标VM创建并配置完毕以后,micro-bosh可以通过agent-id和目标VM进行通信。
作为一种示例,上述通信可以包括向目标VM发送部署命令、管理目标虚拟机的生命周期的指令。
例如,micro-bosh可以向目标VM中的agent发送指令,这些指令告诉agent来安装软件包。安装过程中,agent可能从micro-bosh下载软件包并安装。当安装完成后,agent运行启动脚本来启动目标VM中的任务。
为使本领域技术人员更好地理解本申请实施例,以下通过具体的示例来说明本申请实施例。
1.假设前期准备都已经完成,现在已经部署好Bosh和Bosh-CLI。
2.Bosh-CLI和Bosh交互,发出部署CF的命令。
3.Bosh通过CPI,调用接口创建VM,其中也运行着BOSH Agent。同时以json格式向Registry组件注册这个VM的Bosh-agant启动需要的配置信息。
4.Bosh通过调用ruby语言的avahi-client的接口,采用RTF2771,zeroconf协议,注册Registry服务地址。
5.新创建的VM启动系统后,需要启动Bosh-agent才能正常工作,通过调用golang版本的avahi-client的接口,采用RTF2771,zeroconf协议,以广播的方式向当前局域网所有VM请求Registry地址。
6.局域网中的VM收到广播请求,返回Registry-endpoint,VM拿到返回的第一个信息就停止广播。
7.Bosh-agent成功启动,VM通过agent-id和Bosh进行通讯。
根据本申请实施例,使得Cloud Foundry能够在国内的云厂商大规模部署,并且,本申请实施例的虚拟机配置方法,解决了在云上部署CloudFoundry的配置服务问题,使得虚拟机获得配置信息不再依赖于IaaS层的环境,保证了虚拟机之间可以正常通讯。
参照图3,示出了本申请的一种部署分布式云服务系统的过程中进行虚拟机配置的方法实施例的步骤流程图,本申请实施例可以基于虚拟机侧进行说明,可以包括如下步骤:
步骤301,目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机;
所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机。
步骤302,向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
步骤303,接收任一关联虚拟机返回的所述注册组件的服务地址;
步骤304,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
在本申请实施例的一种优选实施例中,在步骤303之后,还可以包括如下步骤:停止所述广播。
在本申请实施例的一种优选实施例中,在步骤304之后,还可以包括如下步骤:
采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
在本申请实施例的一种优选实施例中,本申请实施例还包括:
接收部署指令;
基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
在本申请实施例的一种优选实施例中,所述步骤302可以包括如下子步骤:
采用指定通信协议封装所述地址获取请求;
调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
对于图3的实施例而言,由于其与图2的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图4,示出了本申请的一种在云平台上部署分布式云服务系统的装置实施例的结构框图,具体可以包括如下模块:
目标虚拟机确定模块401,用于生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
配置信息发送模块402,用于向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
部署指令发送模块403,用于向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
在本申请的一个实施例中,所述装置还包括:
部署准备模块,用于完成所述云平台上的部署准备,包括:
镜像文件获取子模块,用于获取镜像文件;
CPI组件部署子模块,用于部署云服务提供商接口CPI组件。
在本申请的一个实施例中,所述镜像文件获取子模块可以包括如下单元:
镜像文件生成单元,用于创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
镜像文件导出单元,用于从所述系统实例中导出所述镜像文件;
镜像文件导入单元,用于在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
在本申请的一个实施例中,所述目标虚拟机创建模块401可以包括如下子模块:
镜像标识接收子模块,用于接收输入的镜像标识;
镜像文件查找子模块,用于查找与所述镜像标识对应的镜像文件;
虚拟机创建子模块,用于基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
在本申请的一个实施例中,所述在还包括:
配置文件生成模块,用于基于所述目标虚拟机的标识生成配置文件;
注册模块,用于将所述配置文件向注册组件注册。
参照图5,示出了本申请的一种部署分布式云服务系统的过程中进行虚拟机配置的装置实施例的结构框图,具体可以包括如下模块:
关联虚拟机确定模块501,用于确定与目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
广播模块502,用于向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
地址接收模块503,用于接收任一关联虚拟机返回的所述注册组件的服务地址;
配置信息请求模块504,用于基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
在本申请的一个实施例中,所述装置还包括如下模块:
停止广播模块,用于停止所述广播。
在本申请的一个实施例中,所述装置还可以包括如下模块:
启动配置模块,用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
在本申请的一个实施例中,所述装置还可以包括如下模块:
部署指令接收模块,用于接收部署指令;
云系统安装模块,用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
在本申请的一个实施例中,所述广播模块502可以包括如下子模块:
封装子模块,用于采用指定通信协议封装所述地址获取请求;
请求广播子模块,用于调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图6是本申请实施例提供的一种服务器结构示意图。该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储的或持久存储的。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,中央处理器622可以在服务器600上执行以下操作的指令:
生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
可选地,该一个或多个模块可以具有如下功能:
完成所述云平台上的部署准备,包括:
获取镜像文件;
部署云服务提供商接口CPI组件。
可选地,该一个或多个模块可以具有如下功能:
创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
从所述系统实例中导出所述镜像文件;
在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
可选地,该一个或多个模块可以具有如下功能:
接收输入的镜像标识;
查找与所述镜像标识对应的镜像文件;
基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
可选地,该一个或多个模块可以具有如下功能:
基于所述目标虚拟机的标识生成配置文件;
将所述配置文件向注册组件注册。
图6是本申请实施例提供的一种服务器结构示意图。该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)622(例如,一个或一个以上处理器)和存储器632,一个或一个以上存储应用程序642或数据644的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器632和存储介质630可以是短暂存储的或持久存储的。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器622可以设置为与存储介质630通信,在服务器600上执行存储介质630中的一系列指令操作。
服务器600还可以包括一个或一个以上电源626,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口658,一个或一个以上键盘656,和/或,一个或一个以上操作系统641,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。其中,中央处理器622可以在服务器600上执行以下操作的指令:
目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
接收任一关联虚拟机返回的所述注册组件的服务地址;
基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
可选地,该一个或多个模块可以具有如下功能:
停止所述广播。
可选地,该一个或多个模块可以具有如下功能:
采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置
可选地,该一个或多个模块可以具有如下功能:
接收部署指令;
基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
可选地,该一个或多个模块可以具有如下功能:
采用指定通信协议封装所述地址获取请求;
调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、对象或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、对象或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、对象或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种部署分布式云服务系统的方法、一种部署分布式云服务系统的过程中进行虚拟机配置的方法和相应的一种部署分布式云服务系统的装置、一种部署分布式云服务系统的过程中进行虚拟机配置的装置、一种服务器,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (22)
1.一种在云平台上部署分布式云服务系统的方法,其特征在于,所述方法包括:
生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
2.根据权利要求1所述的方法,其特征在于,在所述创建目标虚拟机的步骤之前,还包括:
完成所述云平台上的部署准备,包括:
获取镜像文件;
部署云服务提供商接口CPI组件。
3.根据权利要求2所述的方法,其特征在于,所述获取镜像文件的步骤包括:
创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
从所述系统实例中导出所述镜像文件;
在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
4.根据权利要求3所述的方法,其特征在于,所述创建目标虚拟机的步骤包括:
接收输入的镜像标识;
查找与所述镜像标识对应的镜像文件;
基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
5.根据权利要求4所述的方法,其特征在于,在所述创建目标虚拟机的步骤之后,还包括:
基于所述目标虚拟机的标识生成配置文件;
将所述配置文件向注册组件注册。
6.一种部署分布式云服务系统的过程中进行虚拟机配置的方法,其特征在于,所述方法包括:
目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
接收任一关联虚拟机返回的所述注册组件的服务地址;
基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
7.根据权利要求6所述的方法,其特征在于,在所述接收任一关联虚拟机返回的所述注册组件的服务地址之后,还包括:
停止所述广播。
8.根据权利要求6或7所述的方法,其特征在于,在所述基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息的步骤之后,还包括:
采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收部署指令;
基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
10.根据权利要求6或7所述的方法,其特征在于,所述向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求的步骤包括:
采用指定通信协议封装所述地址获取请求;
调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
11.一种在云平台上部署分布式云服务系统的装置,其特征在于,所述装置包括:
目标虚拟机生成模块,用于生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
配置信息发送模块,用于向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
部署指令发送模块,用于向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
12.根据权利要求11所述的装置,其特征在于,还包括:
部署准备模块,用于完成所述云平台上的部署准备,包括:
镜像文件获取子模块,用于获取镜像文件;
CPI组件部署子模块,用于部署云服务提供商接口CPI组件。
13.根据权利要求12所述的装置,其特征在于,所述镜像文件获取子模块包括:
镜像文件生成单元,用于创建新的系统实例,并在所述系统实例中预装部署代理机,生成镜像文件;
镜像文件导出单元,用于从所述系统实例中导出所述镜像文件;
镜像文件导入单元,用于在所述云平台中导入所述镜像文件,并生成所述镜像文件对应的镜像标识。
14.根据权利要求13所述的装置,其特征在于,所述目标虚拟机创建模块包括:
镜像标识接收子模块,用于接收输入的镜像标识;
镜像文件查找子模块,用于查找与所述镜像标识对应的镜像文件;
虚拟机创建子模块,用于基于所述镜像文件,调用指定的虚拟机创建接口创建目标虚拟机,并生成所述目标虚拟机的标识。
15.根据权利要求14所述的装置,其特征在于,还包括:
配置文件生成模块,用于基于所述目标虚拟机的标识生成配置文件;
注册模块,用于将所述配置文件向注册组件注册。
16.一种部署分布式云服务系统的过程中进行虚拟机配置的装置,其特征在于,所述装置包括:
关联虚拟机确定模块,用于确定与目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
广播模块,用于向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
地址接收模块,用于接收任一关联虚拟机返回的所述注册组件的服务地址;
配置信息请求模块,用于基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
17.根据权利要求16所述的装置,其特征在于,还包括:
停止广播模块,用于停止所述广播。
18.根据权利要求16或17所述的装置,其特征在于,还包括:
启动配置模块,用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置。
19.根据权利要求18所述的装置,其特征在于,所述装置还包括:
部署指令接收模块,用于接收部署指令;
云系统安装模块,用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
20.根据权利要求16或17所述的装置,其特征在于,所述广播模块包括:
封装子模块,用于采用指定通信协议封装所述地址获取请求;
请求广播子模块,用于调用指定的接口,以广播的方式向所述关联虚拟机发出服务地址获取请求。
21.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,其中,所述一个或多个模块具有如下功能:
生成目标虚拟机,所述目标虚拟机包括运行在其上的代理机,所述目标虚拟机用于确定与所述目标虚拟机处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,并向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求,当所述目标虚拟机接收到任一关联虚拟机返回的所述注册组件的服务地址时,基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息;
向所述目标虚拟机发送配置信息,所述目标虚拟机用于采用所述配置信息启动所述代理机,并完成所述目标虚拟机的配置;
向所述目标虚拟机发送部署指令,所述目标虚拟机用于基于所述部署指令,在所述目标虚拟机中安装所述分布式云服务系统。
22.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;和
一个或多个模块,所述一个或多个模块存储于所述存储器中并被配置成由所述一个或多个处理器执行,其中,所述一个或多个模块具有如下功能:
目标虚拟机确定处于同一子网中的并且已部署分布式云服务系统的至少一个关联虚拟机,所述目标虚拟机为新创建的未部署分布式云服务系统的虚拟机;
向所述至少一个关联虚拟机广播用于获取注册组件的服务地址的地址获取请求;
接收任一关联虚拟机返回的所述注册组件的服务地址;
基于所述服务地址向所述注册组件请求所述目标虚拟机的配置信息,以进行所述目标虚拟机的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710031612.0A CN108322490B (zh) | 2017-01-17 | 2017-01-17 | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710031612.0A CN108322490B (zh) | 2017-01-17 | 2017-01-17 | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108322490A true CN108322490A (zh) | 2018-07-24 |
CN108322490B CN108322490B (zh) | 2021-08-27 |
Family
ID=62891981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710031612.0A Active CN108322490B (zh) | 2017-01-17 | 2017-01-17 | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108322490B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039765A (zh) * | 2018-08-28 | 2018-12-18 | 新华三技术有限公司 | 网络配置方法及装置 |
CN110868340A (zh) * | 2019-11-27 | 2020-03-06 | 紫光华山科技有限公司 | 测试方法、装置、可重构测试仪及控制器 |
CN110990127A (zh) * | 2019-12-23 | 2020-04-10 | 深信服科技股份有限公司 | 虚拟机自动部署方法、装置、设备及存储介质 |
CN112114939A (zh) * | 2020-09-04 | 2020-12-22 | 青岛海信网络科技股份有限公司 | 一种分布式系统部署设备和方法 |
CN112910934A (zh) * | 2019-11-19 | 2021-06-04 | 新汉智能系统股份有限公司 | 快速部署云服务的方法 |
CN113076171A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 虚拟机装机方法及装置 |
CN113553139A (zh) * | 2021-07-28 | 2021-10-26 | 瑞幸咖啡信息技术(厦门)有限公司 | 容器云环境下的混合多云管理方法、系统、设备及介质 |
CN113805899A (zh) * | 2021-08-25 | 2021-12-17 | 浪潮卓数大数据产业发展有限公司 | 一种软件自动部署方法 |
WO2022062661A1 (zh) * | 2020-09-25 | 2022-03-31 | 北京金山云网络技术有限公司 | 操作通知方法和装置、存储介质和电子装置 |
CN114500540A (zh) * | 2022-04-14 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 一种云数据中心的数据传输方法和装置 |
CN114721728A (zh) * | 2022-03-07 | 2022-07-08 | 阿里巴巴(中国)有限公司 | 基于云应用的处理方法、电子设备和存储介质 |
CN115344275A (zh) * | 2022-08-15 | 2022-11-15 | 广州鼎甲计算机科技有限公司 | 操作系统的镜像文件生成方法、装置和计算机设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164648A (zh) * | 2011-12-19 | 2013-06-19 | 国际商业机器公司 | 用于身份联邦配置的设置的方法和装置 |
CN103810023A (zh) * | 2014-03-06 | 2014-05-21 | 中国科学院信息工程研究所 | 一种云平台中分布式应用的智能部署方法及系统 |
CN105045663A (zh) * | 2015-08-24 | 2015-11-11 | 湖南昇云科技有限公司 | 快速部署虚拟机的方法与系统 |
US20150350379A1 (en) * | 2014-06-03 | 2015-12-03 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
-
2017
- 2017-01-17 CN CN201710031612.0A patent/CN108322490B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164648A (zh) * | 2011-12-19 | 2013-06-19 | 国际商业机器公司 | 用于身份联邦配置的设置的方法和装置 |
CN103810023A (zh) * | 2014-03-06 | 2014-05-21 | 中国科学院信息工程研究所 | 一种云平台中分布式应用的智能部署方法及系统 |
US20150350379A1 (en) * | 2014-06-03 | 2015-12-03 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
CN105045663A (zh) * | 2015-08-24 | 2015-11-11 | 湖南昇云科技有限公司 | 快速部署虚拟机的方法与系统 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109039765A (zh) * | 2018-08-28 | 2018-12-18 | 新华三技术有限公司 | 网络配置方法及装置 |
CN109039765B (zh) * | 2018-08-28 | 2022-02-25 | 新华三技术有限公司 | 网络配置方法及装置 |
CN112910934A (zh) * | 2019-11-19 | 2021-06-04 | 新汉智能系统股份有限公司 | 快速部署云服务的方法 |
CN110868340A (zh) * | 2019-11-27 | 2020-03-06 | 紫光华山科技有限公司 | 测试方法、装置、可重构测试仪及控制器 |
CN110868340B (zh) * | 2019-11-27 | 2021-11-02 | 紫光华山科技有限公司 | 测试方法、装置、可重构测试仪及控制器 |
CN110990127B (zh) * | 2019-12-23 | 2023-05-12 | 深信服科技股份有限公司 | 虚拟机自动部署方法、装置、设备及存储介质 |
CN110990127A (zh) * | 2019-12-23 | 2020-04-10 | 深信服科技股份有限公司 | 虚拟机自动部署方法、装置、设备及存储介质 |
CN113076171A (zh) * | 2020-01-03 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 虚拟机装机方法及装置 |
CN113076171B (zh) * | 2020-01-03 | 2023-12-19 | 阿里巴巴集团控股有限公司 | 虚拟机装机方法及装置 |
CN112114939A (zh) * | 2020-09-04 | 2020-12-22 | 青岛海信网络科技股份有限公司 | 一种分布式系统部署设备和方法 |
WO2022062661A1 (zh) * | 2020-09-25 | 2022-03-31 | 北京金山云网络技术有限公司 | 操作通知方法和装置、存储介质和电子装置 |
CN113553139A (zh) * | 2021-07-28 | 2021-10-26 | 瑞幸咖啡信息技术(厦门)有限公司 | 容器云环境下的混合多云管理方法、系统、设备及介质 |
CN113805899A (zh) * | 2021-08-25 | 2021-12-17 | 浪潮卓数大数据产业发展有限公司 | 一种软件自动部署方法 |
CN113805899B (zh) * | 2021-08-25 | 2024-01-26 | 浪潮卓数大数据产业发展有限公司 | 一种软件自动部署方法 |
CN114721728A (zh) * | 2022-03-07 | 2022-07-08 | 阿里巴巴(中国)有限公司 | 基于云应用的处理方法、电子设备和存储介质 |
CN114500540B (zh) * | 2022-04-14 | 2022-08-02 | 阿里巴巴(中国)有限公司 | 一种云数据中心的数据传输方法和装置 |
CN114500540A (zh) * | 2022-04-14 | 2022-05-13 | 阿里巴巴(中国)有限公司 | 一种云数据中心的数据传输方法和装置 |
CN115344275A (zh) * | 2022-08-15 | 2022-11-15 | 广州鼎甲计算机科技有限公司 | 操作系统的镜像文件生成方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108322490B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108322490A (zh) | 虚拟机配置及部署分布式云服务系统的方法、装置和服务器 | |
US20210314223A1 (en) | Managing Virtual Network Functions | |
CN105468362B (zh) | 应用部署方法和云计算系统 | |
US10452372B2 (en) | Method and deployment module for managing a container to be deployed on a software platform | |
JP5669861B2 (ja) | プラットフォーム間での仮想イメージのポーティング | |
US9229759B2 (en) | Virtual machine provisioning using replicated containers | |
CN105630684B (zh) | 软件开发工具包识别方法和装置 | |
US20170155569A1 (en) | Test case based virtual machine (vm) template generation | |
US20130185715A1 (en) | Management of inter-dependent configurations of virtual machines in a cloud | |
CN109547509B (zh) | 一种跨平台部署的方法和系统 | |
KR20180137554A (ko) | 패치 업그레이드 기반 파일 처리 방법 및 디바이스, 단말기, 및 저장 매체 | |
CN113301116A (zh) | 微服务应用跨网络通信方法、装置、系统及设备 | |
US9747091B1 (en) | Isolated software installation | |
CN106569880B (zh) | 一种Android应用间动态共享资源的方法及系统 | |
EP3149603B1 (en) | Customized configuration of cloud-based applications prior to deployment | |
CN111399840B (zh) | 一种模块开发方法及装置 | |
CN112486547A (zh) | 多租户场景下的应用程序更新方法、装置及电子设备 | |
WO2019056187A1 (zh) | 应用部署方法、装置及系统 | |
US20200218566A1 (en) | Workload migration | |
US9411618B2 (en) | Metadata-based class loading using a content repository | |
CN112035122A (zh) | 一种接口部署方法、系统及存储介质 | |
WO2015117278A1 (zh) | 时钟中断信号的获取方法和nfv功能实体 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN108370329B (zh) | 管理功能对象的管理方法及装置 | |
CN116755788A (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 |