从生成文件对比两种创建虚拟机的方式:boot from image和boot from bootable-volume
1. 创建bootable-volume(参考:http://docs.openstack.org/grizzly/openstack-compute/admin/content/instance-creation.html)
# nova image-list
+--------------------------------------+----------------------------+--------+--------------------------------------+
| ID | Name | Status | Server |
+--------------------------------------+----------------------------+--------+--------------------------------------+
| 66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e | Cirros | ACTIVE | |
+--------------------------------------+----------------------------+--------+--------------------------------------+
# cinder create --image-id 66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e --display-name my-bootable-vol 1
+----------------------------+--------------------------------------------------------+
| Property | Value |
+----------------------------+--------------------------------------------------------+
| attachments | [ ] |
| availability_zone | nova |
| bootable | false |
| created_at | 2013-12-19T02:45:06.333752 |
| display_description | None |
| display_name | my-bootable-vol |
| id | d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c |
| image_id | 66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e |
| metadata | {} |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| volume_type | None |
+----------------------------+---------------------------------------------------------+
# nova boot --flavor 1 --block_device_mapping vda=d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c:::0 boot-from-vol-test
创建完成。可以从dashboard看到instance已经启动。需要注意的是,此处没有设置网络相关信息,因此默认启动会为instance添加多个子网地址。且网络连接有问题。
2. 对比常规启动与从volume启动后产生的文件(默认配置)
2.1 常规启动boot from image
计算节点上的/var/lib/nova/instances/$INSTANCE-ID/下,分别有
# ls
console.log disk libvirt.xml
三个文件。
其中,disk文件为如下类型:
# file disk
disk: QEMU QCOW Image (v2), has backing file (path /var/lib/nova/instances/_base/0e8a303db3b94bc744faf3c6564e1f056), 41126400 bytes
查看0e8a303db3b94bc744faf3c6564e1f0567b3c6ca:
# file 0e8a303db3b94bc744faf3c6564e1f0567b3c6ca
0e8a303db3b94bc744faf3c6564e1f0567b3c6ca: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 0, startsector 16065, 64260 sectors, code offset 0x48
此时查看该instance启动时所选择的image文件情况。在控制节点/var/lib/glance/images/下:
# file 66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e
66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e: QEMU QCOW Image (v2), 41126400 bytes
将文件转化为raw格式:
#qemu-img convert -f qcow2 66a81a2c-617f-40ee-b1cb-4a3bd4a82c6e -O raw cirros.raw
查看cirros.raw:
# file cirros.raw
cirros.raw: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 0, startsector 16065, 64260 sectors, code offset 0x48
这下,instance启动时的文件及其与使用的image文件之间的关系与存放方式就清楚啦。
2.2 boot from bootable-volume
在dashboard里查到boot-from-vol-test的ID为327d741d-b335-45c2-b212-5a460df82da8。
# ls /var/lib/nova/instances/327d741d-b335-45c2-b212-5a460df82da8
console.log libvirt.xml
咦?里面没有disk文件。那所启动的系统数据究竟在哪里呢?当然是在volume上。
文章开头使用cinder create创建的my-bootable-vol的ID为d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c。
# cat /var/lib/cinder/volumes/volume-d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c
<target iqn.2010-10.org.openstack:volume-d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c>
backing-store /dev/cinder-volumes/volume-d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c
IncomingUser FxNZkBj8nF3HawSYnB8E ZeqGgjDXkSNR4c7gBt4L
</target>
只要对虚拟机做有效操作,都可以看到/dev/cinder-volumes/volume-d586ebfa-6d5b-4e11-a3ea-1a6bbc15810c对应的/dev/dm-6发生改变。
从生成文件对比两种创建虚拟机的方式:boot from image和boot from bootable-volume的更多相关文章
- 09 Python两种创建类的方式
第一种比较普遍的方式: class Work(): def __init__(self,name): self.name = name w = Work('well woker') 这样就简单创建了一 ...
- 32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式
属性域分为两类,一种是范围域,一种是编码的值,下面将两个一起介绍,其中涉及到的编码,名称,只是试验,并非真实情况. 一.首先新建一个文件型地理数据库,将数据导入或者是新建要素类都可以 二.打开ArcT ...
- 黑马程序员——JAVA基础之简述多线程,两种创建多线程的方式
------- android培训.java培训.期待与您交流! ---------- 多线程: 进程和线程: 进程:是一个正在执行中的程序.每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者 ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- Springboot 创建的maven获取resource资源下的文件的两种方式
Springboot 创建的maven项目 打包后获取resource下的资源文件的两种方式: 资源目录: resources/config/wordFileXml/wordFileRecord.xm ...
- 合并BIN文件的两种方法(转)
源:http://blog.chinaunix.net/uid-20745340-id-1878803.html 合并BIN文件的两种方法 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一 ...
- cocos2dx 帧动画的两种创建方式
看了好几天cocos2dx的帧动画,现在才有点眉目,为了高效期间我们一般会用到 精灵帧缓存(CCSpriteFrameCache) 和动画缓存(CCAnimationCache) .大体的操作步骤: ...
- MySQL命令执行sql文件的两种方法
MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...
- [转载]C#读写txt文件的两种方法介绍
C#读写txt文件的两种方法介绍 by 大龙哥 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char ...
随机推荐
- java.time.format.DateTimeFormatter
Java的日期与时间 DateTimeFormatter类是Java 8中日期时间功能里,用于解析和格式化日期时间的类,位于java.time.format包下. 1.预定义的DateTimeFo ...
- java_Ninja实战过程
使用Ninja马上两年了,之前多多少少的都是跟着项目模仿着写,今年上半年准备从一个小项目开始从始至终走一遍; 首先官网:http://www.ninjaframework.org; github: h ...
- Bootstrap学习5--bootstrap中的模态框(modal,弹出层)
bootstrap中的模态框(modal),不同于Tooltips,模态框以弹出对话框的形式出现,具有最小和最实用的功能集. 务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 b ...
- activiti--6-------------------------------------连线(一般数据库表的查询顺序)
一.流程图 二.这次把流程图和Java类放在一个包下 三.代码 package com.xingshang.f_sequenceFlow; import java.io.InputStream; im ...
- Python socket TCPServer Demo
#coding:utf-8 from SocketServer import TCPServer,BaseRequestHandler import traceback class MyBaseReq ...
- 【leetcode刷题笔记】Simplify Path
Given an absolute path for a file (Unix-style), simplify it. For example,path = "/home/", ...
- P4045 [JSOI2009]密码
题目 P4045 [JSOI2009]密码 做法 AC自动机+状压+爆搜 建AC自动机是显然的,顺便预处理\(lst_i\)表示\(i\)结点以哪些串结束(二进制) 然后跑状压\(dp[i][j][k ...
- 同步异步阻塞非阻塞Reactor模式和Proactor模式 (目前JAVA的NIO就属于同步非阻塞IO)
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- grunt小教程
本人的博客写了grunt的小教程,从零开始,一步一步的通过例子讲解,希望喜欢的同学给我的github上加颗星,谢谢! github地址: https://github.com/manlili/grun ...
- BZOJ 4199 [Noi2015]品酒大会:后缀数组 + 并查集
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4199 题意: 给你一个长度为n的字符串s,和一个长为n的数组v. 对于每个整数r∈[0,n ...