1、引导实例请求通过 Nova API 进入,通过消息队列进入 Nova 调度程序。
2、Nova Scheduler 应用过滤器并查找符合条件的虚拟机监控nova调度程序,还使用flavor的extra_specs(例如 cpu_arch)来匹配目标物理节点。
3、Nova compute 管理选中hypervisor的资源声明。
4、Nova compute 管理器根据 nova引导请求中网络接口在Networking服务中创建(未绑定)租户虚拟接口(VIF)。这里需要注意的是,端口的MAC将随机生成,并且当VIF连接到某个节点以对应于节点网络接口卡时MAC将更新。
5、nova compute创建一个 spawn 任务,它包含所有信息,例如从哪个镜像引导等。它从Nova compute的virt层调用 driver.spawn。在spawn过程中,virt驱动程序执行以下操作: 更新目标ironic节点的deploy镜像,实例UUID,请求的功能和各种flavor属性。通过调用ironic API 验证节点的电源和部署的接口。将之前创建的VIF附加到节点。每个neutron port 可以被附加到任何ironic port和port group,port groups 比 ports有更高的优先级。在Ironic这边,这个工作时由 network interface做的。
6、Nova 的 ironic驱动程序通过 Ironic API 向服务裸机节点的 Ironic conductor 发出部署请求。
7、配置虚拟接口,Neutron API更新DHCP端口以设置 PXE/TFTP选项。在使用neutron网络接口的情况下,ironic在网络服务中创建单独的配置端口,在 flat 网络接口的情况下,nova创建的端口用于配置和部署实例网络。
8、Ironic节点的启动接口准备PXE配置和缓存 deploy kernel和 ramdisk。
9、Ironic 节点通过 Management interfacec发出命令来启动节点的网络引导。
10、Ironic 节点的 Deploy Interface 缓存实例镜像(在 iSCSI 部署接口的情况下),缓存kernel和ramdisk,在netboot的时候需要它。
11、Ironic节点的Power Interface 指示节点的电源接口通电。
12、节点引导部署ramdisk
13、根据确切的驱动程序需求,conductor 将通过iSCSI复制镜像到物理节点。
14、节点的引导接口将 pxe config切换为引用实例镜像,要求 ramdisk agent 软关闭节点电源,如果ramdisk agent 软关闭电源失败,则通过IPMI/BMS呼叫关机裸机节点电源。
15、部署接口会触发网络接口,以便在创建时删除配置端口,并将租户端口绑定到节点。然后给节点上电。
16、裸机节点的 provisioning state更新为active状态。

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐