在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