Ironic概念及架构

[背景]

 Ironic是OpenStack中提供裸机部署服务的组件,最初由Nova裸机驱动(Nova baremetal drive)发展而来。Ironic可以被看做是裸机管理程序的API(bare metal hypervisor API)以及与其交互的一组插件。

与裸机(bare metal machines)部署相对应的是OpenStack提供的虚拟机(virtual machines)部署服务。在Nova看来,二者是一样的,都是通过创建server instance来触发。区别在于Nova compute底层使用的驱动不同,默认情况下Nova提供虚拟机部署服务,使用的是LibvirtDriver,而当Nova提供裸机部署服务时,要使用IronicDriver。


[适用场景]

  • 高性能计算集群
  • 需要访问不能虚拟化的硬件设备的计算任务
  • 数据库托管(一些数据库在hypervisor中运行效率差)
  • 单租户,专用硬件的性能,安全性,可靠性和其他监管要求
  • 或者,快速部署云基础架构

[整体架构]

概念架构

[逻辑架构]

Ironic 逻辑架构

[组件]

  • Ironic API,一个RESTful API服务,管理员和其他服务通过API与Ironic进行交互
  • Ironic Conductor, 完成Ironic服务的绝大部分工作,通过API对外开放其功能,与Ironic API通过RPC进行交互;负责与其他组件进行交互
  • Dirvers,真正管理物理机的模块,通过一系列的驱动来支持不同的硬件
  • Database,用来存储资源信息
  • 消息队列


[部署过程]

  1. 部署物理机的请求通过 Nova API 进入Nova;
  2. Nova Scheduler 根据请求参数中的信息(指定的镜像和硬件模板等)选择合适的物理节点;
  3. Nova 创建一个 spawn 任务,并调用 Ironic API 部署物理节点,Ironic 将此次任务中所需要的硬件资源保留,并更新数据库;
  4. Ironic 与 OpenStack 的其他服务交互,从 Glance 服务获取部署物理节点所需的镜像资源,并调用 Neutron 服务为物理机创建网路端口;
  5. Ironic 开始部署物理节点,PXE driver 准备 tftp bootloader,IPMI driver 设置物理机启动模式并将机器上电;
  6. 物理机启动后,通过 DHCP 获得 Ironic Conductor 的地址并尝试通过 tftp 协议从 Conductor 获取镜像,Conductor 将部署镜像部署到物理节点上后,通过 iSCSI 协议将物理节点的硬盘暴露出来,随后写入用户镜像,成功部署用户镜像后,物理节点的部署就完成了

猜你喜欢

转载自blog.csdn.net/z770816239/article/details/55657217