Nova初始版本主要考虑的是对Hypervisor的支持,依赖虚拟化提供的能力,对虚拟机的生命周期进行管理。到F版本时,OpenStack社区开始讨论Nova针对裸机的支持,主要推动者是几家日本公司。借鉴虚拟机的管理思想,实现对裸机自动化地安装部署操作系统。
在代码实现上,在G版本中将此部分对裸机支持的代码合入Nova中,通过给Nova提供一个驱动器形式,提供对裸机的直接部署管理。这个驱动器称为baremetal驱动器,与libvirt驱动器是并列的关系。baremetal驱动器管理的是裸机,libvirt驱动器管理的是KVM虚拟机。
由于裸机管理这部分代码需要一个单独的数据库,Nova本身就有一个数据库,一个项目维护两个数据库不合适。另外Nova添加进baremetal后,本身也增加了大量的冗余代码。由于以上这些原因,在后续版本中,社区开发人员将这部分代码独立出来,单独成立一个子项目Ironic进行孵化,预计在K版本中将成为核心项目。同时,baremetal驱动器本身在J版本中已经不再维护。
Ironic项目成立后,迅速在社区吸引了大家的注意,也获得了巨头的大力支持。HP和Redhat提出的TripleO项目,即通过OpenStack维护OpenStack,核心就是依赖Ironic来部署系统。