Ironic 是一个 OpenStack 项目,它提供裸机(而不是虚拟)机器。它可以独立使用,也可以作为 OpenStack 云的一部分使用,并与 OpenStack Identity(keystone)、Compute(nova)、Network(neutron)、Image(一目了然)和 Object(swift)服务集成。
当裸机服务使用计算和网络服务进行适当配置时,可以通过计算服务的 API 预配虚拟机和物理机。但是,由于物理服务器和交换机硬件的不同特性,实例作集是有限的。例如,无法在裸机实例上执行实时迁移。
社区维护利用开源技术的参考驱动程序(例如 PXE 和 IPMI),以涵盖广泛的硬件。Ironic 的可插拔驱动程序架构还允许硬件供应商编写和贡献驱动程序,这些驱动程序可能会提高性能或添加社区驱动程序未提供的功能。
Ironic 服务由以下组件组成:
如图所示。逻辑架构,用户启动实例的请求通过 Nova API 和 Nova Scheduler 传递给 Nova Compute 服务。计算服务将此请求移交给 Ironic 服务,其中请求从 Ironic API 传递给 Conductor,再传递给驱动程序,以成功为用户配置物理服务器。
正如 Nova Compute 服务与各种 OpenStack 服务(如 Glance、Neutron、Swift 等)通信以配置虚拟机实例一样,这里的 Ironic 服务与相同的 OpenStack 服务通信,以满足镜像、网络、磁盘和其他资源需求以配置裸机实例。
PXE 是 Intel 和 Microsoft 开发的 Wired for Management (WfM) 规范的一部分。PXE 使系统的 BIOS 和网络接口卡 (NIC) 能够从网络引导计算机代替磁盘。引导是系统将作系统加载到本地内存中以便处理器可以执行的过程。这种允许系统通过网络启动的功能简化了管理员的服务器部署和服务器管理。
DHCP 是 Internet 协议 (IP) 网络上使用的一种标准化网络协议,用于动态分配网络配置参数,例如接口和服务的 IP 地址。使用 PXE,BIOS 使用 DHCP 获取网络接口的 IP 地址并定位存储网络引导程序 (NBP) 的服务器。
网络引导程序 (NBP): NBP 相当于 GRUB (GRand Unified Bootloader) 或 LILO (LInux LOader) - 传统上用于本地引导的加载器。与硬盘驱动器环境中的启动程序一样,NBP 负责将作系统内核加载到内存中,以便可以通过网络引导作系统。
TFTP 是一种简单的文件传输协议,通常用于在本地环境中的计算机之间自动传输配置或引导文件。在 PXE 环境中,TFTP 用于使用来自 DHCP 服务器的信息通过网络下载 NBP。
IPMI 是系统管理员用来对计算机系统进行带外管理和监控其运行的标准化计算机系统接口。它是一种通过仅使用与硬件而不是作系统的网络连接来管理可能无响应或断电的系统的方法。
Ironic RESTful API 服务用于注册 Ironic 将管理的硬件。云管理员通常注册硬件,指定其属性,例如 MAC 地址和 IPMI 凭据。API 服务可以有多个实例。
Ironic conductor 服务完成了大部分工作。出于安全原因,建议将导体服务放置在隔离的主机上,因为它是唯一需要同时访问数据平面和 IPMI 控制平面的服务。
可以有多个 conductor 服务实例来支持各种类型的驱动程序并管理故障转移。conductor 服务的实例应位于单独的节点上。每个 conductor 本身可以运行许多驱动程序来满足异构硬件场景。如下图所示。
当启动实例请求传入时会发生什么?下图演练了预置裸机实例期间所涉及的步骤。
在部署过程之前必须满足以下先决条件:
要通过 Ironic RESTful API 服务注册的硬件。
下图是裸金属部署步骤:
此过程用于 pxe_*系列驱动程序。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。