4.7. 为裸机实例启用 ISO 引导
默认部署接口是直接部署,可将磁盘镜像直接写入裸机节点上的磁盘。如果要使用 PXE、iPXE 或 Virtual Media 引导实例,您还可以从 RAM 磁盘或 ISO 镜像启用引导裸机实例,并将内存用于本地存储。这对高级科学和临时工作负载非常有用,其中不需要将镜像写入本地存储或需要。
-
通过 Compute 服务(nova)不支持 ISO 引导。因此,使用
openstack server create命令创建实例时无法使用 ISO 引导。只有在机器使用openstack baremetal node deploy <uuid> 命令直接置备为裸机节点时,才支持 ISO 引导。 - 自动清理裸机节点仍然被执行,这意味着部署之间任何本地存储的内容都会被擦除。
ISO 引导的限制
- 网络引导不支持配置驱动器,仅适用于 Redfish 虚拟介质。
- 磁盘镜像内容不会写入裸机节点。
- 您必须具有使用所有所需配置创建自定义 RAM 磁盘镜像的权限。
- 在使用 iPXE 引导时,裸机节点必须继续获得 iPXE 网络资源的网络访问权限。这与大多数租户网络启用的配置不同,因为此访问仅限于调配和清理网络。
-
使用带有 iPXE 引导接口的 ISO 引导时,您只能从提供的 ISO 文件引导内核和 RAM 磁盘。在操作系统引导后,任何其他内容(如额外 RAM 磁盘内容或安装程序软件包文件)都不可用。因此,要将 ISO 引导用于操作系统安装,您必须使用标准
ramdisk部署接口以及instance_info和kernel_append_params参数,以传递任意设置,如初始 RAM 磁盘的镜像 URL 来加载数据。这是 iPXE 的限制,以及释放 iPXE 分配内存的操作系统的整体引导过程。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:$ source ~/stackrc-
打开用于配置
IronicEnabledDeployInterfaces参数的环境文件,或创建新的环境文件来配置启用的部署接口,如deploy_interfaces.yaml。 将
ramdisk添加为部署接口以启用 RAM 磁盘和 ISO 引导:parameter_defaults: IronicEnabledDeployInterfaces: direct,ramdisk可选: 默认情况下,每个节点上的裸机置备服务(ironic)代理都会通过 HTTP 链接获取存储在 Object Storage Service (swift)中的镜像。或者,裸机置备服务可以通过
ironic-conductorHTTP 服务器将此镜像直接流传输到节点。要更改提供镜像的服务,将镜像下载源设置为http:parameter_defaults: IronicEnabledDeployInterfaces: direct,ramdisk IronicImageDownloadSource: http使用其他环境文件将部署接口环境文件添加到堆栈中,并部署 overcloud:
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -e /home/stack/templates/deploy_interface.yaml- 等待部署完成。
验证
提供 overcloud 凭证文件:
$ source ~/<credentials_file>-
将
<credentials_file> 替换为您的凭据文件的名称,如overcloudrc。
-
将
指定
ramdisk作为从 ISO 镜像引导的裸机实例部署接口:$ openstack baremetal node set --deploy-interface ramdisk提示您可以通过在
openstack baremetal node create命令中添加--deploy-interface ramdisk来创建裸机实例时,配置部署接口。有关如何创建裸机实例的详情,请参考 手动注册裸机节点。更新裸机节点以引导 ISO 镜像:
$ openstack baremetal node set <node_UUID> \ --instance-info boot_iso=<boot_iso_url>-
将 <
;node_UUID> 替换为您要从 ISO 镜像引导的裸机节点的 UUID。 将
<boot_iso_url> 替换为引导 ISO 文件的 URL。您可以使用以下方法之一指定引导 ISO 文件 URL:- HTTP 或 HTTPS URL
- 文件路径 URL
- 镜像服务(glance)对象 UUID
-
将 <
将裸机节点部署为 ISO 镜像:
$ openstack baremetal node deploy <node_UUID>