背景
html
最近上马新项目 OpenCOS,有带外管理和云设施快速部署的需求,故而找到并研究 Ironic.
node
Ironic 概况
web
截止此文撰写日期,Ironic 仍是 openstack 的孵化项目,准备在下个版本 Juno 中毕业,也有可能会变动。数据库
Ironic 功能概述api
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)远程控制。
spa
3)baremetal instance : 经过 nova(openstack 计算组件) api 建立的虚拟机,不过虚拟机的规格参数定制的,包括类型flavor/image,还有其余的运行配置,会在后文中介绍。
操作系统
4)driver : 驱动,经过业内通用的技术,包括 PXE 、IPMI 等来覆盖大多数的硬件,还支持可插拔的架构,使得厂商可自行定制的驱动。
5)deploy image : kernel 和 ramdisk 映像文件,供 PXE 使用。
Ironic 架构(摘自官网)
后语
介绍下 Ironic 的前世此生。
物理机和虚拟机管理有不少地方很是类似,好比物理机和虚拟机都须要开机关机,安装部署,添加和删除,为了不重复造轮子,他们在nova中实现了一个物理机的driver,这样把物理机管理作为计算资源管理的一个子集了。
后来发现有以下不合适的地方:1)nova 项目有 2 个数据库;2)物理机的信息,如 chassis/node 等经过 nova api 来获取;3)流程,诸如驱动的发现;
比较好的办法是当完成这些操做的时候,向nova去注册信息,做为nova中的可用的资源,最后经过nova boot去调用这些资源。
通过屡次讨论,社区将 baremetal 从 nova 中剥离出来,新成立了 Ironic 项目。
参考文献
http://docs.openstack.org/developer/ironic/
https://wiki.openstack.org/wiki/Ironic