• 背景

    最近上马新项目 OpenCOS,有带外管理和云设施快速部署的需求,故而找到并研究 Ironic.

  • Ironic 概况

    截止此文撰写日期,Ironic 还是 openstack 的孵化项目,准备在下个版本 Juno 中毕业,也有可能会变更。

  • Ironic 功能概述

        Ironic 提供裸机管理服务。相对于传统的虚拟环境来说,在物理硬件上先跑 HostOS(hypervisor,例如 xen、kvm),再在其上跑 GuestOS(VM即虚拟机)。而 Ironic 则是直接在物理硬件上跑虚拟机,不借助 hypervisor。更直白的来说,就是平常说的装机,PXE 网络新安装一个操作系统。

        此处先介绍下几个关键的术语:

        1)baremetal host/compute host : 分别运行 ironic 服务(api 和 conductor)和 nova-compute 服务,一般都安装在一个服务器上。

        2)baremetal node : 1)控制的可运行 baremetal instance 的服务器,可为全新服务器或已安装 OS 的服务器,此处的控制是通过驱动(IPMI或SSH)远程控制。

        3)baremetal instance : 通过 nova(openstack 计算组件) api 创建的虚拟机,不过虚拟机的规格参数定制的,包括类型flavor/image,还有其他的运行配置,会在后文中介绍。

        4)driver : 驱动,通过业内通用的技术,包括 PXE 、IPMI 等来覆盖大多数的硬件,还支持可插拔的架构,使得厂商可自行定制的驱动。

        5)deploy image : kernel 和 ramdisk 映像文件,供 PXE 使用。

  • Ironic 架构(摘自官网)

OpenStack的管理界面_python

OpenStack的管理界面_OpenStack的管理界面_02

  • 后语

        介绍下 Ironic 的前世今生。

       物理机和虚拟机管理有很多地方非常相似,比如物理机和虚拟机都需要开机关机,安装部署,添加和删除,为了避免重复造轮子,他们在nova中实现了一个物理机的driver,这样把物理机管理做为计算资源管理的一个子集了。

        后来发现有如下不合适的地方:1)nova 项目有 2 个数据库;2)物理机的信息,如 chassis/node 等通过 nova api 来获取;3)流程,诸如驱动的发现;

        比较好的办法是当完成这些操作的时候,向nova去注册信息,作为nova中的可用的资源,最后通过nova boot去调用这些资源。

        经过多次讨论,社区将 baremetal 从 nova 中剥离出来,新成立了 Ironic 项目。