5.5. 配置部署接口
当您置备裸机节点时,overcloud 上的裸机置备服务(ironic)会将基础操作系统镜像写入裸机节点上的磁盘。默认情况下,部署接口将镜像挂载到 iSCSI 挂载上,然后将镜像复制到每个节点上的磁盘。或者,您可以使用直接部署,将 HTTP 位置的磁盘镜像直接写入裸机节点上的磁盘。
部署接口在置备过程中具有重要角色。部署接口编配部署,并定义将镜像传送到目标磁盘的机制。
前提条件
-
依赖在运行
ironic-conductor
的裸机服务节点上配置的软件包。 - 将 OpenStack Compute (nova)配置为使用裸机服务端点。
- 为可用的硬件创建类别,nova 必须从正确的类别引导新节点。
镜像必须在镜像服务(glance)中提供:
- bm-deploy-kernel
- bm-deploy-ramdisk
- user-image
- user-image-vmlinuz
- user-image-initrd
- 用于注册 Ironic API 服务的硬件。
工作流
使用以下示例工作流来了解标准部署流程。根据您使用的 ironic 驱动程序接口,一些步骤可能会有所不同:
- Nova 调度程序从 Nova API 接收引导实例请求。
- Nova 调度程序标识相关的虚拟机监控程序,并确定目标物理节点。
- Nova 计算管理器将声明所选虚拟机监控程序的资源。
- Nova 计算管理器根据 nova 引导请求指定的网络接口在网络服务中创建未绑定租户虚拟接口(VIFs)。
Nova 计算从 Nova 计算 virt 层调用
driver.spawn
,以创建含有所有必要信息的 generate 任务。在生成过程中,virt 驱动程序完成以下步骤。- 使用部署镜像、实例 UUID、请求的功能和类别属性的信息,更新目标 ironic 节点。
- 调用 ironic API,以验证目标节点的电源和部署接口。
- 将 VIFs 附加到节点。每个 neutron 端口可以附加到任何 ironic 端口或组。端口组的优先级高于端口。
- 生成配置驱动器。
- Nova ironic virt 驱动程序使用 Ironic API 对裸机节点的服务,使用 Ironic API 部署请求。
- 虚拟接口插入,Neutron API 会更新 DHCP 来配置 PXE/TFTP 选项。
- ironic 节点引导接口准备(i) PXE 配置,并缓存部署内核和 ramdisk。
- ironic 节点管理接口发出命令,以启用节点的网络引导。
- 如果需要,ironic 节点部署接口会缓存实例镜像、内核和 ramdisk。
- ironic 节点电源接口指示节点电源。
- 节点启动部署 ramdisk。
- 使用 iSCSI 部署时,编排器将 iSCSI 上的镜像复制到物理节点。使用直接部署,部署 ramdisk 从临时 URL 下载镜像。这个 URL 必须是兼容 Swift API 的对象存储或 HTTP URL。
- 节点引导接口会切换 PXE 配置以引用实例镜像,并指示 ramdisk 代理软关闭节点。如果软电源失败,则裸机节点使用 IPMI/BMC 关闭。
- 部署接口指示网络接口删除所有调配端口,将租户端口绑定到节点,并打开节点电源。
新裸机节点的置备状态现在为 。
5.5.1. 在 overcloud 上配置直接部署接口
iSCSI 部署接口是默认部署接口。但是,您可以启用直接部署接口,将 HTTP 位置的镜像下载到目标磁盘。
您的 overcloud 节点内存 tmpfs
必须至少有 8GB RAM。
流程
创建或修改自定义环境文件
/home/stack/templates/direct_deploy.yaml
,并指定IronicEnabledDeployInterfaces
和IronicDefaultDeployInterface
参数。parameter_defaults: IronicEnabledDeployInterfaces: direct IronicDefaultDeployInterface: direct
如果您使用 iscsi 注册节点,请在
IronicEnabledDeployInterfaces
参数中保留iscsi
值:parameter_defaults: IronicEnabledDeployInterfaces: direct,iscsi IronicDefaultDeployInterface: direct
默认情况下,每个节点上的 Bare Metal Provisioning 服务(ironic)代理都包含通过 HTTP 链接存储在对象存储服务(swift)中的镜像。或者,ironic 可以通过
ironic-conductor
HTTP 服务器将此镜像直接流传输到节点。要更改提供镜像的服务,请在/home/stack/templates/direct_deploy.yaml
文件中将IronicImageDownloadSource
设置为http
:parameter_defaults: IronicEnabledDeployInterfaces: direct IronicDefaultDeployInterface: direct IronicImageDownloadSource: http
在您的 overcloud 部署中包含自定义环境:
$ openstack overcloud deploy \ --templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic.yaml \ -e /home/stack/templates/direct_deploy.yaml \ ...
等待部署完成。
如果您没有指定 IronicDefaultDeployInterface
或想要使用不同的部署接口,请在创建或更新节点时指定部署接口:
$ openstack baremetal node create --driver ipmi --deploy-interface direct $ openstack baremetal node set <NODE> --deploy-interface direct