这个图是经典的记录了openstack创建虚拟机的详细流程,总共28个步骤。
1.客户端使用自己的用户名密码请求认证。
2.keystone通过查询在keystone的数据库user表中保存了user的相关信息,包括password加密后的hash值,并返回一个token_id(令牌),和serviceCatalog(一些服务的endpoint地址,cinder、glance-api后面下载镜像和创建块存储时会用到)。
3.客户端带上keystone返回的token_id和创建虚机的相关参数,Post请求nova-api创建虚拟机
4.nova-api接收到请求后,首先使用请求携带的token_id来访问该api,以验证请求是否有效。
5.keystone验证通过后返回更新后的认证信息。
6.nova api检查创建虚拟机参数是否有效与合法。
检查虚拟机name是否符合命名规范,flavor_id是否在数据库中存在,image_uuid是否是正确的uuid格式
检查instance、vcpu、ram的数量是否超过配额。
7.当且仅当所有传参都有效合法时,更新nova数据库,新建一条instance记录