在完成前面所有的操作之后就可以启动实例了,当然可以在dashboard中操作。下面就介绍命令行中的操作。
首先加载demo的环境变量,source demo-openrc.sh
创建密钥对:
查看密钥对;
首先查看创建实例的一些资源:
1、查看大小类型,可以理解为分区类型
2、查看镜像列表
3、查看网络列表
4、查看安全组列表
5、启动一个实例
查看实例列表:
允许实例使用虚拟控制台
nova get-vnc-console demo-instance1 novnc
要想PING通实例还需要设置安全组的规则:
nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0
nova secgroup-add-rule default tcp 22 22 0.0.0.0/0
然后生成浮动IP
neutron floatingip-create ext-net
将生成的浮动IP绑定到实例上
nova floating-ip-associate demo-instance1 10.20.0.102
查看实例;
nova list
可以看见实例与一个浮动IP绑定
然后PING这个浮动IP就相当于ping实例了。如果可以ping同则表示openstack基本搭建完成。
启动实例的全过程解析:
首先在dashboard或命令行中请求创建实例,会发生接下来的事情:
1、首先登录dashboard会向keystone请求认证,包括用户名,密码
2、keystone向dashboard返回认证结果,若成功则显示dashboard的界面
3、用户在dashboard发起创建实例的请求,dashboard将请求交给nova-api
4、nova-api向keystone请求认证干用户在该租户中是否有权限创建实例
5、keystone将认证结果返回给nova-api
6、nova-api查询数据库中这种类型的实例是否已达到上限
7、数据库返回结果给nova-api
8、nova-api将请求发送到消息队列中
9、nova-sheduler在消息队列中读取请求
10、nova-sheduler查询数据库中的计算节点信息
11、数据库返回当前openstack中计算节点的信息
12、nova-sheduler经过调度算法,将任务分配某个计算节点,并将任务发送到消息队列中
13、nova-compute在消息队列中读取任务
14、nova-compute将创建实例需要的资源的服务访问接口请求传送给消息队列
15、消息队列将查询请求交给nova-conductor
16、nova-conductor将请求交给nova-db
17、nova-db将查询结果返回给nova-conductor
18、nova-conductor将查询结果发送到消息队列中
19、nova-compute从消息队列中获取各服务的访问端口,然后去连接glance-api
20、glance-api通过keystone认证
21、glance-api将镜像传递给nova-compute
22、nova-compute请求neutron-api
23、neutron-api通过keystone认证
24、neutron-api将IP地址返回给nova-compute
25、nova-compute请求cinder-api
26、cinder-api通过keystone认证
27、cinder-api将实例的块存储返回给nova-compute
28、nova-compute将创建实例的任务交给系统的虚拟驱动完成实例的创建