来源于问题:OpenStack ironic组件如何管理物理机?
Ironic是OpenStack裸机管理服务(baremetal as service),裸机即没有安装任何操作系统的物理服务器。虽然ironic支持standalone部署模式,但通常会协同OpenStack其他服务共同工作,具体分工如下:
- Keystone:认证与授权。
- Glance:为裸机提供镜像服务,保存OS安装介质。
- Nova:负责裸机调度,提供裸机服务。
- Ironic:裸机管理,包括裸机信息录入、硬件信息自动发现等。
- Neutron:裸机网络管理和配置。
- Swift:保存ConfigDrive数据,后面细讲。
以上,比较容易混淆的是Ironic组件和Nova组件的分工,Ironic是裸机管理,可以类同为企业的IT资产管理系统,而Nova是提供裸机服务的,可以认为是给用户分配物理服务器的。底层技术实现上,Ironic是Nova的其中一种ComputeDrive,和Libvirt平行,一个裸机node对应Nova的一个Hypervisor实例。
通常用户只需要和Nova交互,只有管理员才需要与Ironic交互。创建裸机和创建虚拟机完全一样,都是调用nova boot API,指定flavor、image、network等参数。如果平台既有裸机又有虚拟机,nova-scheduler怎么知道调度的是虚拟机还是裸机呢?答案是通过flavor的extra specs过滤,裸机录入时会指定一些硬件特性,如cpu-arch、boot-option