Ironic架构如图7-1所示。它由以下几个部件组成:
图7-1 Ironic架构
1)Ironic API,对外提供restful API服务,暴露Ironic服务能力,是Ironic与外界的操作接口。
2)Ironic Conductor,是Ironic的执行引擎,负责Ironic的核心逻辑执行。Ironic Conductor与Ironic API通过消息队列服务交互。
3)消息队列服务,支持Ironic内部组件通信,这个和OpenStack其他项目使用的消息队列一样。
4)Driver,适配硬件服务器,对服务器进行电源和相关硬件个性化操作。Ironic Conductor也采用了OpenStack一贯的设计风格,Ironic Conductore本身实现了一个框架,对于具体的硬件,使用插件机制来适配。典型的Driver是pxe_ipmitool,即使用IPMI来控制电源,使用PXE来装载系统。
5)数据库,存储Ironic内部信息,包括硬件的注册信息及硬件状态等。
图7-1描述了Ironic与OpenStack其他组件的交互关系,用户创建实例,创建请求会通过nova-api、nova-scheduler传递到nova-compute,nova-compute再将请求通过Ironic API传递到Ironic Conductor,Ironic Conductor通过驱动器为用户在物理服务器上部署系统。下一节介绍Ironic的运行原理,将详细描述这个过程。