佛山网站建设公司排行/杭州网站seo
nova-compute创建虚机分为几大步:
-
为 instance 准备资源
-
创建 instance 的镜像文件
-
创建 instance 的 XML 定义文件
-
创建虚拟网络并启动虚拟机
1 为 instance 准备资源
nova-compute会根据flavor准备内存,cpu和硬盘
网络资源也会提前分配
2. 创建 instance 的镜像文件
nova-compute的计算节点会先从glance那将image下载到计算节点上(一般位置:/var/lib/nova/instance/_base,设置/etc/nova/nova.conf 的instances_path和base_dir_name属性),如果计算节点上已经以前下载过,文件目录中存在此image,就不需要下载,这个是nova的镜像缓存机制的体现。命名的方式是对应的image id的SHA 1的哈希值,格式为raw
nova-compute以下载到计算节点的image为backing file为instance创建映像。
可以看到
-
image(ID为 ee48c499-7ff2-4acd-b1c2-afc40dca456c)是 qcow2 格式,nova-compute 将其下载,然后通过 qemu-img 转换成 raw 格式。 转换的原因是下一步需要将其作为 instance 的镜像文件的 backing file,而 backing file不能是 qcow2 格式。
-
image 的存放目录是 /opt/stack/data/nova/instances/_base,这是由 /etc/nova/nova.conf 的下面两个配置选项决定的。
instances_path = /opt/stack/data/nova/instances base_dir_name = _base
-
下载的 image 文件被命名为 8f3062a04740678e47769eff135041a6e9ed1182,这是 image id 的 SHA1 哈希值。
为 instance 创建镜像文件
有了 image 之后,instance 的镜像文件直接通过 qemu-img 命令创建,backing file 就是下载的 image。
-
image,指的是 Glance 上保存的镜像,作为 instance 运行的模板。 计算节点将下载的 image 存放在 /opt/stack/data/nova/instances/_base 目录下。
-
镜像文件,指的是 instance 启动盘所对应的文件
-
二者的关系是:image 是镜像文件 的 backing file。image 不会变,而镜像文件会发生变化。比如安装新的软件后,镜像文件会变大。
因为英文中两者都叫 “image”,为避免混淆,我们用 “image” 和 “镜像文件” 作区分。
3.创建 instance 的 XML 定义文件
创建的 XML 文件会保存到该 instance 目录 /var/lib/nova/instances/f1e22596-6844-4d7a-84a3-e41e6d7618ef,命名为 libvirt.xml
4.创建虚拟网络并启动虚拟机
接下来便是为 instance 创建虚拟网络设备
本环境用的是 linux-bridge 实现的虚拟网络,在 Neutron 章节我们会详细讨论 OpenStack 虚拟网络的不同实现方式。
一切就绪,接下来可以启动 instance 了。
至此,instance 已经成功启动。