在OpenStack平台上创建一个VM实例,在OpenStack组件间一般会经历以下过程:

以某个有创建VM权限的账户登录到OpenStack环境(Web环境或者命令行环境);
账户发起创建VM的请求,Keystone认证通过后发给该账户token;
账户凭token调用nova-api创建VM;
nova-api将账户户要创建的VM资源信息发给nova-scheduler,由nova-scheduler调度VM承载机器;
承载机器上的nova-compute从nova-conductor处获得flavor,并向glance-api请求镜像;
glance-api从glance-registry处获取镜像位置等信息,并反馈给承载机器上的nova-compute;
nova-compute向neutron-server发起网络创建请求;
neutron-plugins根据neutron-server发出的消息查找被建网络的资源信息,并传达给neutron-agents去创建;
neutron-server将neutron-agents的创建结果反馈给承载机器上的nova-compute;
承载机器上的nova-compute向cinder-api发起持久存储请求,并传达到cinder-scheduler处,由cinder-scheduler调度承载机器;
cinder-scheduler调度的承载机器的cinder-volume调用后端存储驱动,创建持久化存储设备,并将创建结果反馈给cinder-api;
至此,创建VM所需要的计算、系统镜像、网络、存储等资源具备;
nova-compute调用KVM、XEN、VMware等hypervisor创建VM实例;
至此,用户便可启动并测试新创建的VM实例,进行恰当的配置后便可使用。
 

创建VM实例时,Glance中必须先存储有目标镜像,通过LinuxOS官网获得的ISO格式镜像是不能直接用于OpenStack环境的,一般我们会把ISO镜像安装到某个虚拟机中进行定制、删除MAC地址记录文件后导出为qcow2格式,并上传到Glance中存储。

 

示例:创建CentOS官云镜像VM实例

到CentOS官网下载qcow2格式的云镜像,http://cloud.centos.org/centos/7/images/
执行自定义的环境变量脚本,内容大致如下:

export OS_TENANT_NAME=adminTenant

export OS_USERNAME=admin

export OS_PASSWORD=openstack

export OS_AUTH_URL=http://****

执行命令:

wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1802.qcow2c

将CentOS云镜像上传到Glance
glance image-create --name centos71802 --disk-format qcow2 --container-format bare --is-public True --file /images/CentOS-7-x86_64-GenericCloud-1802.qcow2c

查看Glance中存储的镜像
glance image-list

查看系统服务状态
nova service-list

查看网络资源
nova network-list

查看镜像资源
nova image-list

查看Flavor约束
nova flavor-list

配置防火墙,打开SSH和ICMP
nova secgroup-list

nova secgroup-add-rule 安全组 tcp 22 22 0.0.0.0/0

nova secgroup-add-rule 安全组 icmp -1 -1 0.0.0.0/0

nova secgroup-list-rules 安全组

获取keypair
nova keypair-list

创建VM实例
nova boot --image 镜像值 --flavor 模板值 --nic net-id=网络值 --security-groups 安全组值 --availability-zone 宿主机的主机名和ZONE名 --key-name 用户名 实例名

查看VM实例的创建情况
nova list 

获取VNC控制台命令
nova get-vnc-console 实例名 novnc

 

至此便可通过Web页面访问VM实例了,登录时使用创建VM时的用户名和密码。

 

                 

                                                                                                                  孟伯,20200306

                                                                                        交流联系:微信 1807479153 ,QQ 1807479153