CN107515773A - 一种基于Openstack快速创建虚拟机的方法 - Google Patents
一种基于Openstack快速创建虚拟机的方法 Download PDFInfo
- Publication number
- CN107515773A CN107515773A CN201610424145.3A CN201610424145A CN107515773A CN 107515773 A CN107515773 A CN 107515773A CN 201610424145 A CN201610424145 A CN 201610424145A CN 107515773 A CN107515773 A CN 107515773A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- system volume
- volume
- created
- backup
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000004913 activation Effects 0.000 claims abstract 2
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 238000013508 migration Methods 0.000 abstract description 2
- 230000005012 migration Effects 0.000 abstract description 2
- 230000002085 persistent effect Effects 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 8
- 239000000796 flavoring agent Substances 0.000 description 4
- 235000019634 flavors Nutrition 0.000 description 4
- 239000003818 cinder Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- 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
-
- 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
Abstract
本发明涉及一种云计算创建虚拟机的方法,尤其涉及一种基于Openstack创建虚拟机实例的方法。本发明主要的技术方案是:实施部署的时候在ceph上创建一个系统卷池和系统卷备份池,基于该环境,在创建虚拟机时根据选择的镜像在系统卷池中找到对应的系统卷,直接从该系统卷启动系统,虚拟机机启动成功后,根据对应的系统卷备份重新在系统卷池中生成一个系统卷供下次创建虚拟机使用。本发明的有益效果是,用户可以快速的创建出虚拟机,既可以方便的进行虚拟机的备份和迁移又能够保证存储的无限扩展,操作简单,数据持久性高。
Description
技术领域
本发明涉及一种云计算创建虚拟机的方法,尤其涉及一种基于Openstack快速创建虚拟机的方法,主要用于方便用户对大规模数据中心的自动化管理和运维。
背景技术
OpenStack是一个开源的云计算管理平台项目,提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
结合说明书附图1,针对现有技术中openstack+ceph(分布式存储系统)创建虚拟机实例的实施过程进行概述:
命令下发过程略,当创建命令发送到计算节点后nova根据创建实例的flavor规定的root目录大小去ceph上创建出一块相应大小的存储空间作为系统卷。然后Nova会去glance下载指定的镜像到该计算节点。接着将镜像上传到ceph上创建的存储上去。把这块存储作为虚拟机的系统盘从启动创建出一个虚拟机实例。Nova从glance下载镜像到本地,然后再把镜像上传到ceph(分布式存储)上面,镜像文件的两次拷贝,和分布式存储传输的网络带宽都会严重影响到虚拟机创建的时间。
结合说明书附图2,进一步详述Openstack基于分布式存储创建虚拟机的流程。用户选择镜像,虚拟机规格,网络。下发创建虚拟机的请求(检查是否超配额,检查镜像,规格类型,权限,选择合适的计算节点。)到计算节点nova接收到创建虚拟机的命令,根据规格向cinder发送创建该规格大小的系统卷,此时cinder会调用到ceph的driver通过ceph的rbd命令创建出系统卷返回给nova。接下来nova会根据选择的镜像向glance请求下载镜像到本地(下载过程比较耗时)。下载完成后nova就会将下载到本地(计算节点)的镜像上传到之前在ceph上创建的系统卷里面(此过程也比较耗时)。上传完成后nova从该系统卷启动虚拟机。到此虚拟机创建完成。
实施阶段实施根据用户需求,上传镜像到glance,然后通过cinder在ceph上根据image,创建出系统卷,再根据系统卷在备份池中创建出系统卷备份,然后创建配置文件记录下image-->系统卷-->系统卷备份的关系。
发明内容
针对现有技术中创建虚拟机需要拷贝两次镜像文件,影响创建时间的问题,本发明提出一种基于Openstack和分布式存储快速创建出虚拟机实例的方法。
该方法不仅能够省去两次镜像文件拷贝的时间还省去了创建系统卷带来的时间消耗。而且避免了计算节点和存储节点之间网络带宽可能带来的瓶颈。
本发明为了解决上述问题采用的技术方案是:实施部署的时候在ceph上创建一个系统卷池和系统卷备份池,然后在系统卷池根据支持的镜像创建出系统卷同时在系统卷备份池中创建出对应卷的备份卷(自己系统中记录下镜像对应系统卷和系统卷备份的对应关系)。
结合说明书附图3,对本发明所述方法的创建虚拟机的流程进行阐述:
创建虚拟机时根据选择的镜像在系统卷池中找到对应的系统卷直接从该系统卷启动系统(从该系统卷启动的虚拟机设置为当该虚拟机删除的时候直接删除该系统卷)。虚拟机机启动成功后,根据对应的系统卷备份重新在系统卷池中生成一个系统卷供下次创建虚拟机使用。
本发明所述的方法创建一个虚拟机所消耗的时间只是根据镜像找到对应的系统卷直接启动虚拟机。根据系统卷备份在系统卷池中创建一个系统卷供下次创建使用的过程也是在虚拟机启动成功后再去做所以这个拷贝的时间也不会影响虚拟机创建的时间。
通过本发明所述的创建虚拟机的方法,用户可以更加快速的创建出虚拟机,系统卷放在分布式存储上然后挂载到某个计算节点运行,这样也可以方便的进行虚拟机的备份和迁移。而且保证存储的无限扩展,无单点故障,简单.可依赖和极高的数据持久性。
本发明基于现有技术优化后的流程:
步骤一、用户请求创建虚拟机。
计算节点nova接收到创建虚拟机的命令,程序系统根据用户选择的镜像查找在ceph上系统实施阶段已经创建好的系统卷。系统卷ID返回给nova。
步骤二、从该系统卷启动虚拟机。到此虚拟机创建完成。
这个过程大大缩短了创建虚拟机的创建时间,因为镜像的上传,下载,系统卷的创建在实施的时候已经完成。而且从卷备份创建下次启动的系统盘也是通过异步请求完成,不会影响到本次虚拟机创建的时间。
附图说明
说明书附图1,为现有技术中创建虚拟机实例流程图;
说明书附图2,为现有技术基于分布式存储创建虚拟机的流程;
说明书附图3,为本发明所述方法中创建虚拟机的系统流程图;
说明书附图4,为本发明基于Openstack的环境部署图;
说明书附图5,为本发明所述方法中创建虚拟机的操作流程图。
具体实施实施方式
结合说明书附图4,首先搭建一套openstack+ceph(分布式存储)的环境,在ceph中创建系统卷池,和系统卷备份池。根据用户需要支持的镜像在系统卷池中创建对应镜像系统卷,然后对应在系统卷备份池中clone一个该系统卷的备份卷,在配置文件中配置哪个镜像对应哪个系统卷对应哪个系统卷备份,到此环境实施完成。
划分系统卷池,和系统卷备份池的意义在于。用户创建虚拟机启动完成后系统可以异步从系统卷备份池中对应的镜像给系统卷池clone出一个新的系统盘供下次启动时使用。而不影响本次的启动。
结合说明书附图5对本发明的创建步骤进行详述:
步骤一、计算节点nova接收到创建虚拟机的命令;
步骤二、系统根据客户的需求选择系统镜像,所述的系统镜像文件为系统内以及实施备案过的镜像文件;
步骤三、,程序系统根据用户选择的镜像查找在ceph上系统实施阶段已经创建好的系统卷,返回该系统卷ID。
步骤四、启动云主机,即通过调用openstack创建虚拟机的接口设置从该系统卷启动。
调用novaclient创建虚拟机的方法:
def create(self, name, image, flavor, meta=None, files=None,
reservation_id=None, min_count=None,
max_count=None, security_groups=None, userdata=None,
key_name=None, availability_zone=None,
block_device_mapping=None, block_device_mapping_v2=None,
nics=None, scheduler_hints=None,
config_drive=None, disk_config=None, **kwargs):
# TODO(anthony): indicate in doc string if param is an extension
# and/or optional
"""
Create (boot) a new server.//创建虚拟机
:param name: Something to name the server.
:param image: The :class:`Image` to boot with.
:param flavor: The :class:`Flavor` to boot onto.
:param meta: A dict of arbitrary key/value metadata to store for this
server. A maximum of five entries is allowed, and both
keys and values must be 255 characters or less.
:param files: A dict of files to overrwrite on the server upon boot.
Keys are file names (i.e. ``/etc/passwd``) and values
are the file contents (either as a string or as a
file-like object). A maximum of five entries isallowed,
and each file must be 10k or less.
:param reservation_id: a UUID for the set of servers being requested.
:param min_count: (optional extension) The minimum number of
servers to launch.
:param max_count: (optional extension) The maximum number of
servers to launch.
:param security_groups: A list of security group names
:param userdata: user data to pass to be exposed by the metadata
server this can be a file type object as well or a
string.
:param key_name: (optional extension) name of previously created
keypair to inject into the instance.
:param availability_zone: Name of the availability zone for instance
placement.
:param block_device_mapping: (optional extension) A dict of block
device mappings for this server.
:param block_device_mapping_v2: (optional extension) A dict of block
device mappings for this server.
:param nics: (optional extension) an ordered list of nics to be
added to this server, with information about
connected networks, fixed IPs, port etc.
:param scheduler_hints: (optional extension) arbitrary key-valuepairs
specified by the client to help boot an instance
:param config_drive: (optional extension) value for config drive
either boolean, or volume-id
:param disk_config: (optional extension) control how the disk is
partitioned when the server is created. possible
values are 'AUTO' or 'MANUAL'.
"""
if not min_count:
min_count = 1
if not max_count:
max_count = min_count
if min_count > max_count:
min_count = max_count
boot_args = [name, image, flavor]
boot_kwargs = dict(
meta=meta, files=files, userdata=userdata,
reservation_id=reservation_id, min_count=min_count,
max_count=max_count, security_groups=security_groups,
key_name=key_name, availability_zone=availability_zone,
scheduler_hints=scheduler_hints, config_drive=config_drive,
disk_config=disk_config, **kwargs)
if block_device_mapping:
resource_url = "/os-volumes_boot"
boot_kwargs['block_device_mapping'] = block_device_mapping
elif block_device_mapping_v2:
resource_url = "/os-volumes_boot"
boot_kwargs['block_device_mapping_v2'] = block_device_mapping_v2
else:
resource_url = "/servers"
if nics:
boot_kwargs['nics'] = nics
response_key = "server"
return self._boot(resource_url, response_key, *boot_args,
**boot_kwargs)
通过 block_device_mapping={‘vda’:volume_id} 参数指定从你选择的系统卷启动。
步骤五,若启动成功后,启动完成后调用异步线程,根据系统卷备份重新创建出一个新的系统卷。修改配置文件中镜像对应系统卷(新创建的系统卷)对应系统卷备份。修改完成后下次用户创建该image的虚拟机就会从这个新的系统卷上启动。
若启动失败,返回错误码。
根据这样的方案,每次启动一个新的虚拟机就会为下次启动虚拟机创建一个新的卷。从而缩短虚拟机的启动时间。
Claims (3)
1.一种基于Openstack快速创建虚拟机的方法,
其特征在于,搭建openstack+ceph的环境,在ceph中创建系统卷池和系统卷备份池,然后在系统卷池根据支持的镜像创建出系统卷,同时在系统卷备份池中创建出对应卷的备份卷,基于该环境,在创建虚拟机时根据选择的镜像在系统卷池中找到对应的系统卷,直接从该系统卷启动系统,虚拟机机启动成功后,根据对应的系统卷备份重新在系统卷池中生成一个系统卷供下次创建虚拟机使用。
2.一种基于Openstack快速创建虚拟机的方法,其特征在于,其创建虚拟机操作步骤如下:
步骤一、计算节点nova接收到创建虚拟机的命令;
步骤二、系统根据客户的需求选择系统镜像,所述的系统镜像文件为系统内以及实施备案过的镜像文件;
步骤三、程序系统根据用户选择的镜像查找在ceph上系统实施阶段已经创建好的系统卷,返回该系统卷ID;
步骤四、系统启动云主机,即通过调用openstack创建虚拟机的接口设置从该系统卷启动;
步骤五,若启动成功后,启动完成后调用异步线程,根据系统卷备份重新创建出一个新的系统卷。
3.修改配置文件中镜像对应系统卷,即新创建的系统卷,对应系统卷备份,修改完成后下次用户创建该image的虚拟机就会从这个新的系统卷上启动若启动失败,返回错误码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610424145.3A CN107515773A (zh) | 2016-06-16 | 2016-06-16 | 一种基于Openstack快速创建虚拟机的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610424145.3A CN107515773A (zh) | 2016-06-16 | 2016-06-16 | 一种基于Openstack快速创建虚拟机的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107515773A true CN107515773A (zh) | 2017-12-26 |
Family
ID=60720944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610424145.3A Pending CN107515773A (zh) | 2016-06-16 | 2016-06-16 | 一种基于Openstack快速创建虚拟机的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107515773A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144527A (zh) * | 2018-07-26 | 2019-01-04 | 郑州云海信息技术有限公司 | 在openstack平台中安装操作系统的方法和装置 |
CN109358965A (zh) * | 2018-09-25 | 2019-02-19 | 杭州朗和科技有限公司 | 云计算集群资源调度方法、介质、装置和计算设备 |
CN110413378A (zh) * | 2019-07-30 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种云计算下的计算资源创建方法和系统 |
CN111045778A (zh) * | 2018-10-11 | 2020-04-21 | 华为技术有限公司 | 一种虚拟机的创建方法、装置、服务器及存储介质 |
CN111104367A (zh) * | 2019-12-13 | 2020-05-05 | 浪潮云信息技术有限公司 | 一种基于openstack卷启动虚拟机创建私有镜像的方法 |
CN113051026A (zh) * | 2019-12-27 | 2021-06-29 | 中移(苏州)软件技术有限公司 | 一种虚拟机创建方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096596A (zh) * | 2010-11-29 | 2011-06-15 | 华中科技大学 | 一种基于虚拟机内存模板的云计算服务Cache系统 |
US20120191929A1 (en) * | 2011-01-21 | 2012-07-26 | Hitachi, Ltd. | Method and apparatus of rapidly deploying virtual machine pooling volume |
CN103067425A (zh) * | 2011-10-20 | 2013-04-24 | 中国移动通信集团公司 | 虚拟机创建方法、虚拟机管理系统及相关设备 |
CN104580519A (zh) * | 2015-01-29 | 2015-04-29 | 福建师范大学福清分校 | 一种快速部署openstack云计算平台的方法 |
CN104699508A (zh) * | 2015-03-25 | 2015-06-10 | 南京大学 | 云计算平台中快速部署和更新虚拟环境系统及其方法 |
-
2016
- 2016-06-16 CN CN201610424145.3A patent/CN107515773A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096596A (zh) * | 2010-11-29 | 2011-06-15 | 华中科技大学 | 一种基于虚拟机内存模板的云计算服务Cache系统 |
US20120191929A1 (en) * | 2011-01-21 | 2012-07-26 | Hitachi, Ltd. | Method and apparatus of rapidly deploying virtual machine pooling volume |
CN103067425A (zh) * | 2011-10-20 | 2013-04-24 | 中国移动通信集团公司 | 虚拟机创建方法、虚拟机管理系统及相关设备 |
CN104580519A (zh) * | 2015-01-29 | 2015-04-29 | 福建师范大学福清分校 | 一种快速部署openstack云计算平台的方法 |
CN104699508A (zh) * | 2015-03-25 | 2015-06-10 | 南京大学 | 云计算平台中快速部署和更新虚拟环境系统及其方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144527A (zh) * | 2018-07-26 | 2019-01-04 | 郑州云海信息技术有限公司 | 在openstack平台中安装操作系统的方法和装置 |
CN109358965A (zh) * | 2018-09-25 | 2019-02-19 | 杭州朗和科技有限公司 | 云计算集群资源调度方法、介质、装置和计算设备 |
CN111045778A (zh) * | 2018-10-11 | 2020-04-21 | 华为技术有限公司 | 一种虚拟机的创建方法、装置、服务器及存储介质 |
CN111045778B (zh) * | 2018-10-11 | 2023-09-12 | 华为技术有限公司 | 一种虚拟机的创建方法、装置、服务器及存储介质 |
CN110413378A (zh) * | 2019-07-30 | 2019-11-05 | 上海金融期货信息技术有限公司 | 一种云计算下的计算资源创建方法和系统 |
CN111104367A (zh) * | 2019-12-13 | 2020-05-05 | 浪潮云信息技术有限公司 | 一种基于openstack卷启动虚拟机创建私有镜像的方法 |
CN111104367B (zh) * | 2019-12-13 | 2023-08-18 | 浪潮云信息技术股份公司 | 一种基于openstack卷启动虚拟机创建私有镜像的方法 |
CN113051026A (zh) * | 2019-12-27 | 2021-06-29 | 中移(苏州)软件技术有限公司 | 一种虚拟机创建方法、装置及存储介质 |
CN113051026B (zh) * | 2019-12-27 | 2022-12-13 | 中移(苏州)软件技术有限公司 | 一种虚拟机创建方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515773A (zh) | 一种基于Openstack快速创建虚拟机的方法 | |
JP6621543B2 (ja) | ハイブリッドアプリケーションの自動更新 | |
CN108829459B (zh) | 基于Nginx服务器的配置方法、装置、计算机设备和存储介质 | |
EP2871817B1 (en) | Combined cloud storage disk client, server and system, and combined cloud storage disk service serving method | |
CN107357896A (zh) | 数据库集群的扩容方法、装置、系统和数据库集群系统 | |
US8606880B2 (en) | Use of wireless devices' external storage | |
JP2000503785A (ja) | ネットワークディレクトリを更新または変更するための方法ならびにその装置 | |
US20070150492A1 (en) | Method and system for allocating file in clustered file system | |
CN103020223B (zh) | 文件共享处理方法、装置和系统 | |
CN111857873A (zh) | 一种实现云原生容器网络的方法 | |
CN103873290A (zh) | 一种用于评估应用的性能的方法和系统 | |
US11102297B1 (en) | System and method for wireless device access to external storage | |
CN105930233B (zh) | 对指定公有云账户的数据进行分别自动备份的方法及系统 | |
JP4743726B1 (ja) | サーバ復旧システム | |
CN105978981B (zh) | 基于公有云存储账户的数据备份的线性扩容方法及系统 | |
CN111371579A (zh) | 云平台部署方法、装置、服务器及存储介质 | |
CN111651305A (zh) | 一种虚拟机备份方法、组件及云计算系统 | |
CN105824723A (zh) | 一种对公有云存储账户的数据进行备份的方法及系统 | |
CN109634522A (zh) | 一种资源管理的方法、装置及计算机存储介质 | |
CN111444157A (zh) | 分布式文件系统及数据访问方法 | |
CN113821170A (zh) | 一种分布式存储系统,一种访问方法及组件 | |
CN112948055A (zh) | 一种基于云计算的创新型课程实验自动管理方法及系统 | |
KR101638689B1 (ko) | 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템 | |
CN109558082B (zh) | 分布式文件系统 | |
US20110185134A1 (en) | Temporary state service protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171226 |