虚拟机的创建
虚拟机创建流程
对于nova来说,它最主要的功能就是维护虚拟机的生命周期。以虚拟机创建为例。在创建虚拟机时,它会与其他组件配合,共同完成虚拟机的创建工作。如创建虚拟机所需要的镜像文件,Nova需要通过HTTP方式向glanceclient发送请求,从而获取虚拟机的镜像文件;创建虚拟机网络时,Nova需要通过HTTP方式向neutronclient,从而创建并绑定虚拟机所需要的网络资源;如果需要创建存储磁盘,Nova需要通过Http方式向cinderclient发送请求,创建虚拟机所需要的磁盘。
以上是Nova与其他组件的交互,从以上分析可以看出,Nova与其他组件的交互主要是使用HTTP的方式,在虚拟机的创建时,Nova内部服务之间的流程可以归纳为如下几点:
1.nova-api:主要接受外部(CLI/dashboard)发送来的HTTP请求,进行一系列认证后,再将其转换成内部请求,并通过oslo_message与nova-conductor/nova-compute交互;
2.nova-conductor:主要作为一个数据库代理存在,是nova-compute读写数据库的桥梁,这样做的主要目的是避免nova-compute直接操作数据库而引发安全性问题
3.nova-compute:主要借助计算节点上的Hypervisor对虚拟机进行创建,删除和挂起等操作
4.nova-scheduler:用来筛选计算节点,然后筛选出的计算节点告诉nova-compute,nova-compute就会在这个计算节点上生成libvirt.xml,交由相应的Hypervisor(比如kvm)来创建虚拟机
虚拟机创建的命令行操作
启动一个虚拟机必要的资源是镜像(image),规格(flavor),网络(network)。我们需要首先创建这三种资源
上传镜像
本教程创建虚拟机所使用的镜像为cirros镜像,该镜像所对应的操作系统为一个专门适用于云中搭建虚拟机的微型操作系统,其下载地址为http://download.cirros-cloud.net/,下载镜像之后,在命令行中使用如下命令上传镜像
openstack image create "cirros" --file cirros-0.3.5-x86_64-disk.img --disk-format qcow2 --container-format bare --public
其中 “cirros”为镜像创建后在openstack中的镜像名称,–file后面为镜像文件的地址和镜像文件的名称(若镜像文件在命令行当前目录下,则只需要输入镜像文件名称),–disk-format后面为镜像格式,–container-format后面为图片的容器格式bare