Openstack 从云硬盘(卷)中创建虚拟机_openstack volume create-程序员宅基地

技术标签: java  运维  openstack  云计算  

目录

1 系统分区引导方式

2 从卷中创建虚拟机

3 实践

4 参考文档


1 系统分区引导方式

当启动Openstack虚拟机时,系统分区创建方式有以下五种:

  • 从虚拟机镜像引导:需要用户从Glance镜像库中指定一个镜像,并将其拷贝到临时磁盘;
  • 从虚拟机快照引导:需要用户指定一个虚拟机快照,并将其拷贝临时磁盘来系统分区;
  • 从Volume卷引导:需要用户来指定Cinder 卷,直接挂载为虚拟机系统分区,无需拷贝,因为卷是可引导磁盘,操作系统所需文件已经保存;
  • 从虚拟机镜像引导并挂载新建的Volume卷:需要用户从Glance镜像库中指定一个镜像,镜像内容会被拷贝到一个新创建的Cinder卷中,随后将其挂载为虚拟机的系统盘;
  • 从Volume卷快照引导并挂载新建的Volume卷:需要用户指定Cinder卷的快照,快照将被拷贝到一个新创建的Cinder卷中,随后将其挂载为虚拟机的系统盘。

后面三种与Volume卷相关的三种引导方式,通常系统分区的声明周期通常都比虚拟机的生命周期还要长,因为虚拟机停止时,卷没有被删除。与前两种方式对比,从卷中引导虚拟机系统具有更快的配置和启动速度。Nova存储后端配置为本地文件存储的话,性能方面要弱很多,因为不支持虚拟机的在线迁移,如果存储后端对接共享存储集群(NFS、Ceph等)可以支持虚拟机的在线迁移,因为虚拟机系统分区可以从多次存储节点上并发访问。

2 从卷中创建虚拟机

在通常情况下,从虚拟机镜像或虚拟机快照中创建虚拟机已经足够了,但有些时候我们想要持久化存储的系统盘时而临时盘时,从卷中启动虚拟机将变的非常有用,另外从卷中启动还有以下优点:

  • 可以不受云主机类型中磁盘配额的限制(甚至可以指定一个零磁盘的类型)
  • 持久化的卷生命周期比虚拟机实例的声明周期还要长
  • 可以从卷中直接创建镜像,无论卷是否已经挂载到虚拟机上

3 实践

3.1 创建可启动的卷

(1)从现存的镜像或快照中创建可启动的卷

从镜像创建可启动卷。传入“–image”参数可将一个卷设置为可启动。

1

2

$ openstack image list #找到需要指定镜像或快照的UUID

$ openstack volume create --image 619060dd-010f-4d99-9a4c-96f97ae71644 --size 20 bootable_volume

格式:–image IMAGE_ID –size SIZE_IN_GB VOLUME_NAME

(2)从现存的虚拟机实例构建可启动的卷

首先创建一个卷,这里需要预估好目标虚拟机的大小

1

$ openstack volume create --size 20 my-volume

然后挂载到正在运行的虚拟机上,创建分区,创建文件系统,挂载的指定目录

拷贝当前虚拟机的操作系统到上面卷上,可以采用常规的备份方式,例如dd或rsync拷贝

1

# dd if=/dev/sda1 of=/dev/sdb1

1

# rsync -Pa / /mnt/ --exclude=/mnt/ --exclude=/mnt/* --exclude=/tmp/* --exclude=/proc/*

然后再修改卷属性为可启动即可。

1

$ openstack volume set --property set-bootable=true my-volume

对比这两种方法,还是第一种方法较为简单,从现有虚拟机上创建快照,然后采用第一种方法制作可启动卷即可。

3.2 启动虚拟机

从可启动的卷启动虚拟机的方式

1

2

$ openstack server create --flavor cpu1_mem1_disk4 --volume 5b9ba543-bef2-48de-a17e-201716ac700c <span class="se">\</span>

  --nic net-id=e416b526-a2cb-4676-a8b0-f32a7c97ece8 myInstanceFromVolume01

格式:–volume VOLUME_ID为可启动卷ID。

从镜像启动实例并连接非启动卷的方式

1

2

3

$ openstack server create --flavor cpu1_mem1_disk4 --nic net-id=e416b526-a2cb-4676-a8b0-f32a7c97ece8 \

--image 619060dd-010f-4d99-9a4c-96f97ae71644 --block-device-mapping vda=e64b80a5-4592-45d2-8a11-343f2df86e27:::0 \

myInstanceFromVolume02

格式:–flavor 需要指定云主机类型的,但磁盘大小不受限制,这里磁盘类型为4GB,小于20GB仍可以创建,–image 这里必须要指定启动卷所对应的镜像UUID –block-device-mapping  <dev-name=mapping> dev-name为块设备名称,maping格式为<id>:<type>:<size(GB)>:<delete_on_terminate> (optional
extension),即id为可启动卷的UUID,type为类型,size(GB)为以GB计的卷大小,与卷大小一致,delete_on_terminate为是否终止虚拟机时删除卷,0或false为不删除,1或true为删除。

3.3 其他

利用卷启动虚拟具有一些其他新改变:

  • 给现有虚拟机快照会生成卷的快照
  • 可以通过扩展卷的方式给虚拟机系统盘扩容

4 参考文档

Booting an Instance from a Volume - Docs

云硬盘启动与镜像启动源码分析及差异-云技术学习-About云开发-梭伦科技

OpenStack4j - Compute / Servers

OpenStack Docs: 从硬盘启动实例

http://netapp.github.io/openstack-deploy-ops-guide/icehouse/content/section_nova-deployment-choices.html

OpenStack 存储热迁移

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhangjiewanwansui/article/details/127720224

智能推荐

Matlab之随机森林TreeBagger-程序员宅基地

文章浏览阅读8.9k次,点赞5次,收藏32次。MATLAB之随机森林TreeBaggerTreeBagger1 方法:2 属性:TreeBaggerTreeBagger用来创建一个袋装决策树的集合。1 方法:appendcompacterrorfillproxgrowTreesmargnmdsproxmeanMarginoobMarginoobMeanMarginoobPredictpredict2 属性:OOBPermutedPredictorDeltaError:大小为1×Nvars的数值数组,包含每个预测变量(_treebagger

Openwrt:创建编译IPK软件包_openwrt makefile-程序员宅基地

文章浏览阅读7.5k次,点赞7次,收藏22次。一、概述openwrt 一个比较重要的特点就是它采用 ipk 包的形式安装软件。有点像是 windows 下面的安装包一样,用户只需用简单的命令就可以将 ipk 安装包安装到 openwrt 系统中,非常方便。ipk包..._openwrt makefile

30、JAVA进阶——Socket编程_java socket编程-程序员宅基地

文章浏览阅读1.9w次,点赞151次,收藏508次。一、Socket知识1. Socket概述2. Socket通信原理3. java.net包二、基于TCP协议的Socket编程1.Socket类和ServerSocket类2.使用Socket编程实现登录功能三、基于UDP协议的Socket编程1.DatagramPacket类和DatagramSocket类2.使用Socket编程实现客户咨询_java socket编程

RC2加密算法在CSharp的应用----完善版_c#加密-程序员宅基地

文章浏览阅读1.1k次。作者BLOG:HTTP://blog.csdn.net/curllion -----互相学习using System;using System.Security.Cryptography;using System.Text;using System.IO;using System.Windows.Forms;namespace Curllion{ public class Cry_c#加密

C语言常见编译错误及分析_local function definitions are illegal-程序员宅基地

文章浏览阅读2.4w次,点赞24次,收藏159次。目录 绪论第一安装错误:[1]Error spawning cl.exe[2]fatal error C1083: Cannot open include file:第二打开编译器失败,提示不能打开第三cannot execute program解决方案第四连接Link.exe错误解决方案第五 error C2143: syntax error : missing ')' before 'return'解决方案第六涉及`scanf`输出结果为空的错误解决方案第七error C2065: 'a' : u.._local function definitions are illegal

EGE——罗盘时钟_ege画旋转表盘指针-程序员宅基地

文章浏览阅读649次。【代码】EGE——罗盘时钟。_ege画旋转表盘指针

随便推点

算法导论-----排序的9种实现(C/C++)_算法导论代码-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏18次。目录A、冒泡排序B、选择排序C、插入排序D、折半插入排序E、归并排序F、快速排序G、希尔排序堆排序、基数排序、桶排序后续补充。。。。。A、冒泡排序冒泡排序有很多种实现方式。下面总结常见的几种,并对冒泡排序进行改进。 冒泡排序1//冒泡升序排序1,强烈推荐,好记void BubbleSort(int arr[],int length) { int tmp; in_算法导论代码

pygame教程笔记_add game folder-程序员宅基地

文章浏览阅读732次。pygame教程安装pygameGame Development 1-1: Getting Started with PygameGame Development 1-2: Working with SpritesGame Development 1-3: More About SpritesPygame Shmup Part 1: Player Sprite and ControlsPygame..._add game folder

kali安装超详细教程_kali安装教程-程序员宅基地

kali安装教程:选择debian 8.x,自定义依赖软件包和配置文件,移除已安装的软件包。

C语言:求给定正整数n以内的素数之积。(n<28)_6-9 求正整数n以内的素数之积-程序员宅基地

文章浏览阅读1w次,点赞10次,收藏40次。#include "stdio.h"#include"conio.h"void TestFunc(); long fun(int n){ /**********Begin**********/ long i,k;long s=1; for(i=2;i<=n;i++) {for(k=2;k<i;k++) if(i%k==0)break; if(k==i)s=s*i; }return s; /********** E_6-9 求正整数n以内的素数之积

ES(Elasticsearch)中间件_es中间件-程序员宅基地

文章浏览阅读3.2k次。文章目录配置连接ES全文搜索引擎:全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。官网地址:连接:配置连接ESspring: elasticsearch: rest: uris: 127.0.0.1:9200 read-timeout: 30s connection-timeout: 5s..._es中间件

AgileEAS.NET SOA中间件平台简易入门_agileeas.net soa配置oracle数据库-程序员宅基地

文章浏览阅读3.5k次。首先说明此平台来自魏琼东大神,可被商业使用,但是不开源的哈。AgileEAS.NET SOA中间件平台 下载闲话少说,直接步入正题。一、数据库的配置打开\agileeas.net.5.0\bin\dotnet\目录下的EAS.DbInitializer.exe文件进行数据连接配置如图。点击下一步点击完成,弹出的框选择是(如果原来数据库中有重要数据,记得先备份_agileeas.net soa配置oracle数据库

推荐文章

热门文章

相关标签