加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

深入了解OpenStack虚拟机【上】

发布时间:2021-01-09 16:37:15 所属栏目:安全 来源:网络整理
导读:《深入了解OpenStack虚拟机【上】》要点: 本文介绍了深入了解OpenStack虚拟机【上】,希望对您有用。如果有疑问,可以联系我们。 前言 假如你已经有了一个OpenStack集群,而且创建了一个虚拟机,那么这个虚拟机到底有多少秘密呢?让我们一起来探索一下. 虚拟

《深入了解OpenStack虚拟机【上】》要点:
本文介绍了深入了解OpenStack虚拟机【上】,希望对您有用。如果有疑问,可以联系我们。

前言

假如你已经有了一个OpenStack集群,而且创建了一个虚拟机,那么这个虚拟机到底有多少秘密呢?让我们一起来探索一下.

虚拟机存放在哪里?

假如我们没有使用Cinder的块存储,那么这台虚拟机在物理硬盘上是存放在哪里呢?这个虚拟机的相关描述和配置存放在哪里,默认情况下,nova.conf配置里面虚拟机的存放路径为/var/lib/nova/instances.

虚拟机磁盘

接下来我们再来看看虚拟机的硬盘,首先我们查看一下大小.

虚拟机硬盘竟然只有2.4M,这不可能吧,一个Linux内核都比这个大.到底是为什么呢?我们使用file命令来一探究竟.

[root@linux-node2 7f94df9a-e547-4f56-9887-bbc52c4e0fff]#file disk

disk: QEMU QCOW Image (v3),has backing file (path/var/lib/nova/instances/_base/564787f2316e4f0baa128b88222464ced),1073741824bytes

使用的是QCOW的镜像格式V3版本,QCOW格式的特点之一就是:支持写时拷贝(COW,copy-on-write),镜像文件只反映底层磁盘的变化.

Copy-on-Write镜像文件

qcow 镜像可以用来保存另一个镜像文件的变化,它并不去修改原始镜像文件,只记录与原始镜像文件的不同即可,这种镜像文件就叫做 copy-on-write 镜像.虽然是一个单独的文件,但它的大部分的数据都来自原始镜像,只有跟原始镜像文件相比有变化的才会被记录下来.

可以通过qemu-img命令获取更详细的内容.

支持写时拷贝(COW,镜像文件只反映底层磁盘的变化;也就是说现在我们看到的disk这个磁盘镜像,是

/var/lib/nova/instances/_base/564787f2316e4f0baa128b88222464ced基础上变化的内容.

下面我们来查看这个后端真正镜像的详细信息.

可以发现,这是一个raw格式的镜像,虚拟大小是39M,实际使用是18M.

?Libvirt.xml

我们知道OpenStack是使用Nova-compute来创建虚拟机,那么nova-compute是使用的libvirt来创建KVM虚拟机,既然是使用libvirt那么在我们/etc/libvirt/qemu下面就应该能看到相应的xml.

[root@linux-node2 ~]# ls /etc/libvirt/qemu/

instance-00000001.xml? networks

我们查看这个xml的前六行.

[root@linux-node2 ~]# head -6/etc/libvirt/qemu/instance-00000001.xml

<!–

WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TOIT ARE LIKELY TO BE

OVERWRITTEN AND LOST. Changes to this xmlconfiguration should be made using:

virsh editinstance-00000001

or other application using the libvirt API.

–>

和之前我们创建KVM虚拟机一样,这个xml是自动生成的,提示你不要修改本xml,如果想修改可以使用? virsh edit instance-00000001.好吧,千万不要使用virsh来试图修改OpenStack创建的虚拟机的xml,因为你修改了没有用,为什么呢?我们继续回到instense目录下.你可以看到以实例ID命名的目录下有一个libvirt.xml.

由于篇幅有限,大家自行查看该文件,从CPU、内存、磁盘、PCI设备等都很完善.

虽然OpenStack帮我们想的很周全,但是就算没有你要的选项也不要试图修改本xml.就像不要使用virsh修改一样.他们的原因只有一个,OpenStack会在虚拟机软重启或者硬重启的时候重新动态的生成libvirt.xml.到时候你所有的修改,就会是曾花一现.

小提示: 如果你想添加自定义的选项,可以看看/usr/lib/python2.6/site-packages/nova/virt/libvirt/driver.py.

明日文章预告

《深入了解OpenStack虚拟机之-Metadata》

分享嘉宾


赵舜东

江湖人称赵班长,曾在武警某部负责指挥自动化的架构和运维工作,2008年退役后一直从事互联网运维工作.曾带团队负责国内某电商的运维工作,SaltStack中国用户组发起人、《saltstack入门与实践》作者,《运维知识体系》作者.

趁现在,关注我们


牛人并不可怕,可怕的是牛人比我们还努力!关注“运维社区(微信ID:cloud-oaas)”公众号,每天利用空闲时间阅读一篇技术原创干货,满满的小幸福.

长按图片,选择“识别图中二维码”,关注我们.

原创声明:本文为赵班长原创,请必须全文转载,包括本行.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!