跳转到: 导航, 搜索

Ironic/Drivers/iLODrivers/master

目录

iLO 驱动程序(主分支)

概述

iLO驱动程序能够利用HPE ProLiant服务器中iLO管理引擎的特性。iLO驱动程序面向配备iLO 4管理引擎的HPE ProLiant Gen8和Gen9系统。从Pike版本开始,iLO驱动程序开始支持配备iLO 5管理引擎的ProLiant Gen10系统。iLO5符合Redfish API,因此硬件类型redfish也是这种硬件的一种选择,但它将缺乏iLO特定的特性。

要启用 Gen10 系统并获取有关 Ironic 中 Gen10 特性支持的详细信息,请查看此部分 在 Ironic 中启用 ProLiant Gen10 系统

ProLiant硬件受ilo硬件类型和以下经典驱动程序的支持

   Note: From Rocky release iLO drivers also support ilo5 hardware type for ProLiant Gen10 and later systems only.
   Note: All HPE ProLiant servers support reference hardware type ipmi. HPE ProLiant Gen10 servers also support hardware type redfish.

iscsi_iloagent_ilo驱动程序通过使用iLO虚拟媒体启动裸机节点,提供安全增强的无PXE部署。这些驱动程序通过管理通道发送管理信息,并将其与用于部署的数据通道分开。

iscsi_iloagent_ilo驱动程序使用从diskimage-builder构建的部署ramdisk。iscsi_ilo驱动程序从ironic conductor部署,并支持实例的网络启动和本地启动。agent_ilo从裸机节点部署,并支持实例的网络启动和本地启动。

pxe_ilo驱动程序使用PXE/iSCSI进行部署(就像普通的PXE驱动程序一样),并从ironic conductor部署。此外,它支持自动设置nova flavor的extra spec请求的启动模式。此驱动程序不需要iLO高级许可证。

硬件类型ilo和基于iLO的经典驱动程序支持HPE服务器的功能,例如

  • UEFI安全启动
  • 基于证书的iLO验证
  • 基于硬件的安全磁盘擦除,使用Smart Storage Administrator (SSA) CLI
  • 通过硬件检查进行服务器属性的带外发现
  • 带内RAID配置
  • 固件配置和安全固件更新


除了上述功能外,ilo5 还支持以下功能

  • 带外 RAID 支持

硬件接口

ilo 硬件类型支持所有标准的 部署网络救援raid存储 接口。

除了标准接口外,ilo 硬件类型还支持以下 ilo 接口

  • bios - ilono-bios。它们可以通过 ironic.conf 中的 enabled_bios_interfaces 选项启用
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_bios_interfaces = ilo,no-bios
    Note: ilo is the default bios interface for ilo hardware type.
  • boot - ilo-virtual-mediailo-pxe。它们可以通过 ironic.conf 中的 enabled_boot_interfaces 选项启用
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_boot_interfaces = ilo-virtual-media,ilo-pxe
    Note: ilo-virtual-media is the default boot interface for ilo hardware type.
  • console - ilono-console。默认值为 ilo。可以通过 ironic.conf 中的 enabled_console_interfaces 选项启用它们
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_console_interfaces = ilo,no-console
    Note: To use ilo console interface you need to enable iLO feature 'IPMI/DCMI over LAN Access' on iLO4 and iLO5 management engine.
  • inspect - iloinspector。它们可以通过 ironic.conf 中的 enabled_inspect_interfaces 选项启用
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_inspect_interfaces = ilo,inspector
   Note: ilo is the default inspect interface for ilo hardware type. Ironic Inspector needs to be configured to use inspector as the inspect interface.
  • management - ilo。它可以通过 ironic.conf 中的 enabled_management_interfaces 选项启用
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_management_interfaces = ilo
  • power - ilo。它可以通过 ironic.conf 中的 enabled_power_interfaces 选项启用
   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_power_interfaces = ilo

ilo5 硬件类型支持 ilo 硬件类型支持的所有标准和 ilo 接口,如上所述,但除 raid 标准接口外。以下是 raid 接口的详细信息

  • raid - ilo5no-raid。可以通过 ironic.conf 中的 enabled_raid_interfaces 选项启用它
   [DEFAULT]
   enabled_hardware_types = ilo5
   enabled_raid_interfaces = ilo5, no-raid
  
    Note: ilo5 is the default raid interface for ilo5 hardware type.

可以使用以下命令注册具有 ilo 硬件类型的 ProLiant 节点

   openstack baremetal node create --os-baremetal-api-version=1.38 \
           --driver ilo \
           --deploy-interface direct \
           --raid-interface agent \
           --driver-info ilo_address=<ilo-ip-address> \
           --driver-info ilo_username=<ilo-username> \
           --driver-info ilo_password=<ilo-password> \
           --driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso>

可以使用以下命令注册具有 ilo5 硬件类型的 ProLiant 节点

   openstack baremetal node create \
           --driver ilo5 \
           --deploy-interface direct \
           --raid-interface ilo5 \
           --driver-info ilo_address=<ilo-ip-address> \
           --driver-info ilo_username=<ilo-username> \
           --driver-info ilo_password=<ilo-password> \
           --driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso> \
           --driver-info ilo_rescue_iso=<glance-uuid-of-rescue-iso>

请参阅 启用驱动程序和硬件类型,以获取有关硬件类型的详细说明。

要启用与所有 iLO 经典驱动程序提供的相同功能集,请在 ironic.conf 中应用以下配置

   [DEFAULT]
   enabled_hardware_types = ilo
   enabled_bios_interfaces = ilo
   enabled_boot_interfaces = ilo-virtual-media,ilo-pxe
   enabled_power_interfaces = ilo
   enabled_console_interfaces = ilo
   enabled_raid_interfaces = agent
   enabled_management_interfaces = ilo
   enabled_inspect_interfaces = ilo

可以使用以下命令注册具有与经典驱动程序相同功能集,但使用ilo硬件类型的节点

  • iscsi_ilo:
       openstack baremetal node create --os-baremetal-api-version=1.31 \
           --driver ilo \
           --deploy-interface iscsi \
           --boot-interface ilo-virtual-media \
           --driver-info ilo_address=<ilo-ip-address> \
           --driver-info ilo_username=<ilo-username> \
           --driver-info ilo_password=<ilo-password> \
           --driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso>
  • pxe_ilo:
       openstack baremetal node create --os-baremetal-api-version=1.31 \
           --driver ilo \
           --deploy-interface iscsi \
           --boot-interface ilo-pxe \
           --driver-info ilo_address=<ilo-ip-address> \
           --driver-info ilo_username=<ilo-username> \
           --driver-info ilo_password=<ilo-password> \
           --driver-info deploy_kernel=<glance-uuid-of-pxe-deploy-kernel> \
           --driver-info deploy_ramdisk=<glance-uuid-of-deploy-ramdisk>
  • agent_ilo:
       openstack baremetal node create --os-baremetal-api-version=1.31 \
           --driver ilo \
           --deploy-interface direct \
           --boot-interface ilo-virtual-media \
           --driver-info ilo_address=<ilo-ip-address> \
           --driver-info ilo_username=<ilo-username> \
           --driver-info ilo_password=<ilo-password> \
           --driver-info ilo_deploy_iso=<glance-uuid-of-deploy-iso>

先决条件

  • proliantutils是一个python包,包含用于管理HPE ProLiant硬件的一组模块。在Ironic conductor节点上安装proliantutils模块。最低版本要求为2.4.0。


  $ pip install "proliantutils>=2.4.0"


  • ipmitool 命令必须存在于运行 ironic-conductor 的服务节点上。在大多数 Linux 发行版上,这作为 ipmitool 包的一部分提供。源代码可在 http://ipmitool.sourceforge.net/ 上找到。

iLO驱动程序的不同配置

配置 Glance 镜像服务

1. 使用其存储后端配置 Glance 镜像服务为 Swift。有关配置说明,请参见 [4]_。

2. 为 Swift 中的 Glance 用户设置临时 URL 密钥。例如,如果您已将 Glance 配置为用户 `glance-swift 和租户为 service,则运行以下命令:

   swift --os-username=service:glance-swift post -m temp-url-key:mysecretkeyforglance

3. 填写 /etc/ironic/ironic.conf 中的 [glance] 部分所需的参数。通常,您需要填写以下详细信息。

   [glance]
   swift_temp_url_key=mysecretkeyforglance
   swift_endpoint_url=https://10.10.1.10:8080
   swift_api_version=v1
   swift_account=AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
   swift_container=glance

可以通过运行以下命令检索这些详细信息

  $ swift --os-username=service:glance-swift stat -v | grep -i url
  StorageURL:     http://10.10.1.10:8080/v1/AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
  Meta Temp-Url-Key: mysecretkeyforglance

4. Swift 必须使用在 Ironic 中配置的相同管理员凭据进行访问。例如,如果 Ironic 在 /etc/ironic/ironic.conf 中配置了以下凭据

   [keystone_authtoken]
   admin_password = password
   admin_user = ironic
   admin_tenant_name = service

确保 keystone_authtoken 中的 auth_version 为 2。然后,以下命令应该可以工作。

   $ swift --os-username ironic --os-password password --os-tenant-name service --auth-version 2 stat
                        Account: AUTH_22af34365a104e4689c46400297f00cb
                     Containers: 2
                        Objects: 18
                          Bytes: 1728346241
   Objects in policy "policy-0": 18
     Bytes in policy "policy-0": 1728346241
              Meta Temp-Url-Key: mysecretkeyforglance
                    X-Timestamp: 1409763763.84427
                     X-Trans-Id: tx51de96a28f27401eb2833-005433924b
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes

5. 重新启动 Ironic conductor 服务。

   $ service ironic-conductor restart

Conductor 上的 Web 服务器配置

HTTP(S) Web服务器可以通过多种方式配置。对于Ubuntu上的apache Web服务器,请参阅此处

需要在 /etc/ironic/ironic.conf 中设置以下配置变量

use_web_server_for_images 在 [ilo] 部分

  [ilo]
  use_web_server_for_images = True
  http_url and http_root in [deploy] section:
  [deploy]
  # Ironic compute node's http root path. (string value)
  http_root=/httpboot
  # Ironic compute node's HTTP server URL. Example:
  # http://192.1.2.3:8080 (string value)
  http_url=http://192.168.0.2:8080

use_web_server_for_images:如果变量设置为false,iscsi_iloagent_ilo使用Swift容器来托管中间FAT镜像和启动ISO。如果变量设置为true,这些驱动程序使用本地Web服务器来托管中间文件。use_web_server_for_images的默认值为False

http_url:此变量的值将作为前缀添加到生成的中间文件中,以生成附加到虚拟媒体的 URL。

http_root:这是 ironic conductor 复制中间软盘镜像和启动 ISO 的目录位置。

为增强安全性,强烈建议使用HTTPS而不是HTTP Web服务器配置。如果启用了HTTPS Web服务器,iscsi_iloagent_ilo将通过加密通道发送实例的configdrive。

启用 Swift 中的 HTTPS

iLO驱动程序iscsi_iloagent_ilo使用Swift存储启动镜像和管理信息(用于Ironic conductor配置裸机硬件)。默认情况下,Swift中未启用HTTPS。HTTPS需要加密Swift与Ironic conductor之间以及Swift与裸机(通过虚拟媒体)之间的所有通信。可以通过以下方式之一启用它

     cd /etc/swift
     openssl req -new -x509 -nodes -out cert.crt -keyout cert.key
  • 将以下行添加到 /etc/swift/proxy-server.conf 下的 [DEFAULT]:
     bind_port = 443   693
     cert_file = /etc/swift/cert.crt   694
     key_file = /etc/swift/cert.key    695
  • 重新启动 Swift 代理服务器。

独立 iLO 驱动程序的 Web 服务器配置

  • 设置 Web 服务器,该服务器提供部署 ramdisk,位于 ironic-conductor 主机之外。此 Web 服务器应可供 conductor 节点访问。
  • 上传部署 ramdisk 镜像,以便上述步骤中的 Web 服务器可以正确提供它们。
  • 在每个 conductor 上设置 Web 服务器。此步骤仅适用于 agent_iloiscsi_ilo


必须创建镜像(参见 :ref:`BuildingDibBasedDeployRamdisk`)并使其可通过 HTTP(S) URL 下载。本文档不描述 HTTP(S) 服务器的安装或配置,但是,

  • 如果使用 [i]PXE,则网络引导加载程序必须能够启动请求以下载内核和 ramdisk 镜像,而 ironic-conductor 必须能够将文件写入“http_root”,这些文件将从“http_url”提供。
  • 部署代理必须能够启动请求从“http_url”下载实例镜像。

独立 iLO 驱动程序的必要条件

  • iLO 4 高级许可证需要安装在 iLO 上才能启用虚拟介质功能。
  • conductor 上的本地 Web 服务器 - ilo 驱动程序使用 conductor 节点上的 Web 服务器来存储临时 FAT 镜像以及启动 ISO 镜像。需要在每个 conductor 节点上进行配置。
  • HTTP(s) Web 服务器 - 使用 ilo 驱动程序时,包含 agent/deploy ramdisk 的镜像将由 iLO 直接从 HTTP(s) Web 服务器获取。此 Web 服务器不需要位于 conductor 节点上。有关更多信息,请参阅 `基于 HTTP(s) 的部署`__。
  • 请参阅 `独立 iLO 驱动程序的 Web 服务器配置`_

配置独立 iLO 驱动程序

1. 在 /etc/ironic/ironic.conf[deploy] 部分中添加 http_urlhttp_root。例如

   http_url = https://10.10.1.10:8080/httpboot/
   http_root = /opt/stack/data/ironic/httpboot/

这些决定了 conductor 上的 Web 服务器如何提供镜像。http_url 是用于提供镜像的 URL 前缀。http_root 是 Web 服务器在 http_url 处提供的磁盘上的路径。

2. 重新启动 Ironic conductor 服务

   $ service ironic-conductor restart

与 Glance 镜像服务的需求

  • iLO 4 高级许可证需要安装在 iLO 上才能启用虚拟介质功能。
  • Swift 对象存储服务 - ilo 驱动程序使用 Swift 来存储临时 FAT 镜像/启动 ISO。
  • 配置了 Swift 作为其后端的 Glance 镜像服务 - 使用 ilo 驱动程序时,包含 agent/deploy ramdisk 的镜像将由 iLO 直接从 Swift 获取。

驱动程序

iscsi_ilo 驱动程序

概述

iscsi_ilo 驱动程序作为 HP ProLiant 服务器的 pxe_ipmitoolpxe_ipminative 驱动程序的替代方案推出。iscsi_ilo 使用 iLO 中的虚拟介质功能来启动裸机节点,而不是使用 PXE 或 iPXE。

目标用户
  • 不想在其数据中心使用 PXE/TFTP 协议的用户。
  • 对 PXE 驱动程序的安全问题感到担忧,并希望拥有安全增强的无 PXE 部署机制的用户 - PXE 驱动程序以明文形式将管理信息传递到裸机节点。但是,如果 Swift 代理服务器具有 HTTPS 端点(有关更多信息,请参阅 启用 Swift 中的 HTTPS),则 iscsi_ilo 驱动程序通过 HTTPS 通过 Swift 端点来增强安全性,从而传递管理信息。管理信息和启动镜像将通过加密的管理网络通过 iLO 虚拟介质进行检索。
已测试平台

此驱动程序应适用于配备 iLO 3 的 HPE ProLiant Gen7 服务器、配备 iLO 4 的 Gen8 和 Gen9 服务器以及配备 iLO 5 的 Gen10 服务器。

它已使用以下服务器进行了测试

  • ProLiant DL380 G7
  • ProLiant SL230s Gen8
  • ProLiant DL320e Gen8
  • ProLiant DL380e Gen8
  • ProLiant DL580e Gen8
  • ProLiant BL460c Gen8
  • ProLiant DL180 Gen9 UEFI
  • ProLiant DL360 Gen9 UEFI
  • ProLiant DL380 Gen9 UEFI
  • ProLiant BL460c Gen9
  • ProLiant XL450 Gen9 UEFI
  • ProLiant DL360 Gen10
  • ProLiant DL325 Gen10 Plus
  • ProLiant DL385 Gen10 Plus
特性
  • 使用虚拟介质进行无 PXE 部署。
  • 自动检测当前启动模式。
  • 如果 nova flavor 的 extra spec 请求 UEFI 启动模式,则自动设置所需的启动模式。
  • 支持从虚拟介质启动实例以及从磁盘本地启动。默认情况下是从虚拟介质启动。
  • UEFI 启动
  • UEFI 安全启动
  • 如果 Swift 代理服务器具有 HTTPS 端点,则通过安全、加密的管理网络(虚拟介质)传递管理信息。有关更多信息,请参阅 启用 Swift 中的 HTTPS。通过数据网络使用 iSCSI 进行配置,因此该驱动程序具有相同的性能,并具有安全增强功能。它将管理信息与数据通道隔离。
  • 远程控制台(基于 IPMI)
  • 硬件传感器
  • 适用于资源受限的机器(内存较少)。
  • 本地启动(BIOS 和 UEFI)
  • 支持部署整个磁盘镜像。
  • 支持带外硬件检查。
  • 节点清理。
  • 独立 iLO 驱动程序。
需求
  • iLO 4iLO 5 高级许可证需要安装在 iLO 上才能启用虚拟介质启动功能。
  • Swift 对象存储服务或 conductor 上的 HTTP(s) Web 服务器 - iLO 驱动程序使用 Swift/HTTP(s) Web 服务器(位于 conductor 节点上)来存储临时 FAT 镜像以及启动 ISO 镜像。
  • 配置了 Swift 作为其后端的 Glance 镜像服务或 HTTP(s) Web 服务器 - 使用 iscsi_ilo 驱动程序时,包含 deploy ramdisk 的镜像将由 iLO 直接从 Swift/HTTP(s) Web 服务器获取。
部署过程
  • 管理员为 iscsi_ilo 驱动程序配置 Proliant 裸机节点。配置的 Ironic 节点将在其 driver_info 中具有 ilo_deploy_iso 属性。这将包含 Glance UUID 或 ISO 部署 ramdisk 镜像的 HTTP(s) 位置。
  • Ironic 收到请求以在裸机节点上部署 Glance/HTTP(s) 镜像。
  • iscsi_ilo 驱动程序关闭裸机节点。
  • 如果 ilo_deploy_iso 是 Glance UUID,则驱动程序为 deploy ramdisk 镜像生成 swift-temp-url,并将其作为 iLO 上的虚拟介质 CDROM 附加。如果 ilo_deploy_iso 是 HTTP(s) URL,则驱动程序将其直接作为 iLO 上的虚拟介质 CDROM 附加。
  • 驱动程序创建一个包含 deploy ramdisk 参数的小型 FAT32 镜像。此镜像上传到 Swift/HTTP(s) Web 服务器,其 swift-temp-url/HTTP(s) URL 作为 iLO 上的虚拟介质软盘附加。
  • 驱动程序将节点设置为从 CDROM 一次性启动。
  • 驱动程序打开裸机节点。
  • 包含 deploy 内核/ramdisk 的部署内核/ramdisk 在裸机节点上启动。ramdisk 通过 iSCSI 暴露本地磁盘,并请求 Ironic conductor 完成部署。
  • Ironic conductor 上的驱动程序将 glance/HTTP(s) 镜像写入裸机节点的磁盘。
  • 如果请求本地启动,Ironic conductor 会要求部署 ramdisk 安装启动加载程序。
  • 如果它是 netboot(默认),则驱动程序将部署镜像的启动内核/ramdisk 捆绑到 ISO 中,然后将其上传到 Swift/HTTP(s) Web 服务器。此 ISO 镜像将用于启动部署的实例。
  • 驱动程序重新启动节点。
  • 对于 netboot,在第一次和后续重新启动时,iscsi_ilo 驱动程序将 Swift/HTTP(s) 中的此启动 ISO 镜像作为虚拟介质 CDROM 附加,然后将 iLO 设置为从中启动。如果将 boot_option 设置为 local,则从磁盘启动实例。
配置和启用驱动程序

注意:创建 HTTP(s) Web 服务器并将镜像上传到 HTTP(s) Web 服务器的步骤不在 Ironic 的范围内。

1. 从 diskimage-builder [3]_ 准备一个 ISO 部署 ramdisk 镜像。可以通过将 iso 元素添加到 ramdisk-image-create 命令来完成。此命令创建部署内核/ramdisk 以及包含部署内核和 ramdisk 的可启动 ISO 镜像。以下命令在当前工作目录中创建名为 deploy-ramdisk.kerneldeploy-ramdisk.initramfsdeploy-ramdisk.iso 的文件

   pip install "diskimage-builder"
   ramdisk-image-create -o deploy-ramdisk ubuntu deploy-ironic iso

2. 将此镜像上传到 Glance:

   glance image-create --name deploy-ramdisk.iso --disk-format iso --container-format bare < deploy-ramdisk.iso

3. 将 iscsi_ilo 添加到 /etc/ironic/ironic.conf 中的 enabled_drivers 列表中。例如::

   enabled_drivers = fake,pxe_ssh,pxe_ipmitool,iscsi_ilo

如果使用 HTTP(s) Web 服务器

4. 在 /etc/ironic/ironic.conf[deploy] 部分中添加 http_urlhttp_root。例如::

   http_url = http://10.10.1.10:8080/httpboot/
   http_root = /opt/stack/data/ironic/httpboot/

如果使用其存储后端为 Swift 的 Glance 镜像服务

5. 将 Glance 镜像服务配置为使用 Swift 作为其存储后端。有关配置说明,请参阅 此处

6. 为 Swift 中的 Glance 用户设置 temp-url 密钥。例如,如果您已将 Glance 配置为用户 glance-swift 和租户为 service,则运行以下命令:

   swift --os-username=service:glance-swift post -m temp-url-key:mysecretkeyforglance

7. 填写 /etc/ironic/ironic.conf[glance] 部分中所需的参数。通常需要填写以下详细信息:

   [glance]
   swift_temp_url_key=mysecretkeyforglance
   swift_endpoint_url=http://10.10.1.10:8080
   swift_api_version=v1
   swift_account=AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
   swift_container=glance

可以通过运行以下命令检索这些详细信息

  $ swift --os-username=service:glance-swift stat -v | grep -i url
  StorageURL:     http://10.10.1.10:8080/v1/AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
  Meta Temp-Url-Key: mysecretkeyforglance


8. Swift 必须使用在 Ironic 中配置的相同管理员凭据进行访问。例如,如果 Ironic 在 /etc/ironic/ironic.conf 中配置了以下凭据:

   [keystone_authtoken]
   admin_password = password
   admin_user = ironic
   admin_tenant_name = service
   auth_version = 2

那么,以下命令应该可以工作:

   $ swift --os-username ironic --os-password password --os-tenant-name service --auth-version 2 stat
                        Account: AUTH_22af34365a104e4689c46400297f00cb
                     Containers: 2
                        Objects: 18
                          Bytes: 1728346241
   Objects in policy "policy-0": 18
     Bytes in policy "policy-0": 1728346241
              Meta Temp-Url-Key: mysecretkeyforglance
                    X-Timestamp: 1409763763.84427
                     X-Trans-Id: tx51de96a28f27401eb2833-005433924b
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes

最后

8. 重新启动 Ironic conductor 服务。

   $ service ironic-conductor restart
在 Ironic 中注册 Proliant 节点

配置为 iLO 驱动程序的节点应将 driver 属性设置为 iscsi_ilo。以下配置值也需要在 driver_info 中需要

  • ilo_address:iLO 的 IP 地址或主机名。
  • ilo_username:具有管理员权限的 iLO 用户名。
  • ilo_password:上述 iLO 用户的密码。
  • ilo_deploy_iso:deploy ramdisk ISO 镜像的 Glance UUID 或 HTTP(s) URL。
  • ca_file:(可选)用于验证 iLO 的 CA 证书文件。
  • client_port:(可选)如果在 iLO 上使用自定义端口,则用于 iLO 操作的端口。默认使用的端口是 443。
  • client_timeout:(可选)iLO 操作的超时时间。默认超时时间为 60 秒。
  • console_port:(可选)节点用于控制台访问的 UDP 端口。Ironic conductor 节点上的任何未使用的端口均可使用。


注意:

  • 要将 SSL 证书更新到 iLO,您可以参考 http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=c04530504 。您可以使用 iLO 主机名或 IP 地址作为生成证书签名请求 (CSR) 时的“通用名称 (CN)”。在将节点注册到 Bare Metal 服务时,使用与 ilo_address 相同的值,以避免与主机名不匹配相关的 SSL 证书验证错误。
  • 如果未在节点的 driver_info 中提供 ca_fileclient_portclient_timeout 的配置值,则将使用 ironic.conf 的 [ilo] 部分中定义的相应配置变量。


例如,您可以运行如下命令来注册 ProLiant 节点

 ironic node-create -d iscsi_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password>  -i ilo_deploy_iso=<glance-uuid-of-deploy-iso>
启动模式

iscsi_ilo 驱动程序支持自动检测启动模式(传统 BIOS 或 UEFI)以及从 BIOS 设置为 UEFI 的启动模式。有关详细信息,请参阅下面的注释。

  • 如果未提供启动模式设置,iscsi_ilo 驱动程序将保留部署实例上裸机节点的当前启动模式。
  • 可以通过将 boot_mode:biosboot_mode:uefi 添加到 Ironic 节点 properties 字段中的 capabilities 属性来提供特定启动模式的要求。然后 iscsi_ilo 驱动程序将以指定的启动模式部署和配置实例。

例如,要使 Proliant 裸机节点始终以 UEFI 模式启动,请运行以下命令:

  ironic node-update <node-id> add properties/capabilities='boot_mode:uefi'

注意:

  • 我们建议在支持 UEFI 和传统模式的系统上设置 boot_mode 属性,如果用户希望在 Nova 中选择具有适当启动模式的裸机节点,则设置此属性。适用于 Gen8(仅 ProLiant DL580)和 Gen9 系统。
  • iscsi_ilo 驱动程序自动将启动模式从 BIOS 设置为 UEFI,如果 nova boot 中请求的启动模式为 UEFI。但是,如果用户希望以传统模式部署节点,则需要在 Gen8(仅 ProLiant DL580)和 Gen9 服务器上预配置启动模式为 Legacy。
  • 在 Kilo 中已启用 UEFI 启动模式的自动启动 ISO 创建。还支持手动创建 UEFI 启动模式的启动 ISO。对于后者,需要单独构建部署镜像的启动 ISO,并且 Glance 中的部署镜像的 boot_iso 属性应包含启动 ISO 的 Glance UUID。
   disk-image-create ubuntu baremetal iso
  • 可以通过使用 ComputeCapabilitesFilter 从 nova 请求特定的启动模式。例如,可以在 flavor 中如下设置:
  nova flavor-key ironic-test-3 set capabilities:boot_mode="uefi"
  nova boot --flavor ironic-test-3 --image test-image instance-1

agent_ilo 驱动程序

概述

agent_ilo 驱动程序作为 HP ProLiant 服务器的 agent_ipmitoolagent_ipminative 驱动程序的替代方案推出。agent_ilo 驱动程序使用 HP ProLiant 裸机服务器中的虚拟介质功能来启动裸机节点上的 Ironic Python Agent (IPA),而不是使用 PXE。有关 IPA 的更多信息,请参阅 https://wiki.openstack.org/wiki/Ironic-python-agent

目标用户
  • 不想在其数据中心使用 PXE/TFTP 协议的用户。
已测试平台

此驱动程序应适用于配备 iLO 3 的 HPE ProLiant Gen7 服务器、配备 iLO 4 的 Gen8 和 Gen9 服务器以及配备 iLO 5 的 Gen10 服务器。

它已使用以下服务器进行了测试

  • ProLiant DL380 G7
  • ProLiant SL230s Gen8
  • ProLiant DL320e Gen8
  • ProLiant DL380e Gen8
  • ProLiant DL580e Gen8
  • ProLiant BL460c Gen8
  • ProLiant DL180 Gen9 UEFI
  • ProLiant DL360 Gen9 UEFI
  • ProLiant DL380 Gen9 UEFI
  • ProLiant BL460c Gen9
  • ProLiant XL450 Gen9 UEFI
  • ProLiant DL360 Gen10
  • Synergy 480 Gen9
  • ProLiant DL325 Gen10 Plus
  • ProLiant DL385 Gen10 Plus
特性
  • 使用 Ironic Python Agent 进行无 PXE 部署。
  • 远程控制台(基于 IPMI)
  • 硬件传感器
  • 自动检测当前启动模式。
  • 如果 nova flavor 的 extra spec 请求 UEFI 启动模式,则自动设置所需的启动模式。
  • UEFI 启动
  • UEFI 安全启动
  • 支持从虚拟介质启动实例以及从磁盘本地启动。
  • 支持部署整个磁盘镜像和分区镜像。
  • 本地启动(BIOS 和 UEFI)
  • 将管理信息与数据通道隔离。
  • 支持带外硬件检查。
  • 节点清理。
  • 独立 iLO 驱动程序。
  • 支持为配置为 VLAN 类型网络的节点实例进行租户网络隔离。
需求
  • iLO 4iLO 5 高级许可证需要安装在 iLO 上才能启用虚拟介质启动功能。
  • Swift 对象存储服务或 conductor 上的 HTTP(s) Web 服务器 - iLO 驱动程序使用 Swift/HTTP(s) Web 服务器(位于 conductor 节点上)来存储临时 FAT 镜像以及启动 ISO 镜像。
  • 配置了 Swift 作为其后端的 Glance 镜像服务或 HTTP(s) Web 服务器 - 使用 agent_ilo 驱动程序时,包含 agent 的镜像将由 iLO 直接从 Swift/HTTP(s) Web 服务器获取。
部署过程
  • 管理员为 agent_ilo 驱动程序配置 Proliant 裸机节点。配置的 Ironic 节点将在其 driver_info 中具有 ilo_deploy_iso 属性。这将包含包含 agent 的 ISO 部署 agent 镜像的 Glance UUID/HTTP(s) URL。
  • Ironic 收到请求以在裸机节点上部署 Glance/HTTP(s) 镜像。
  • 驱动程序关闭裸机节点。
  • 如果 ilo_deploy_iso 是 Glance UUID,则驱动程序为 deploy agent 镜像生成 swift-temp-url,并将其作为 iLO 上的虚拟介质 CDROM 附加。如果 ilo_deploy_iso 是 HTTP(s) URL,则驱动程序将其直接作为 iLO 上的虚拟介质 CDROM 附加。
  • 驱动程序创建一个包含 agent ramdisk 参数的小型 FAT32 镜像。此镜像上传到 Swift/HTTP(s),其 swift-temp-url/HTTP(s) URL 作为 iLO 上的虚拟介质软盘附加。
  • 驱动程序将节点设置为从 CDROM 一次性启动。
  • 驱动程序打开裸机节点。
  • 包含 agent 的部署内核/ramdisk 在裸机节点上启动。agent ramdisk 与 Ironic conductor 通信,直接从 Swift/HTTP(s) 下载镜像,并将镜像写入节点上的选定磁盘。
  • 驱动程序将节点设置为永久从磁盘启动,然后重新启动节点。
配置和启用驱动程序

1. 使用 [5]_ 中的 iso-image-create 脚本准备包含 agent 的 ISO 部署 Ironic Python Agent 镜像。以下命令将在以下目录 UPLOAD 中创建一个名为 ipa-ramdisk.iso 的文件:

   $ pip install "diskimage-builder"
   $ disk-image-create -o ipa-ramdisk fedora ironic-agent iso

2. 将 IPA ramdisk 镜像上传到 Glance:

   glance image-create --name ipa-ramdisk.iso --disk-format iso --container-format bare < ipa-ramdisk.iso

3. 将 Glance 镜像服务配置为使用 Swift 作为其存储后端。请参阅 [4]_ 获取配置说明。4. 为 Swift 中的 Glance 用户设置 temp-url 密钥。例如,如果您已将 Glance 配置为用户 glance-swift 和租户为 service,则运行以下命令:

   swift --os-username=service:glance-swift post -m temp-url-key:mysecretkeyforglance

5. 填写 /etc/ironic/ironic.conf[glance] 部分中所需的参数。通常需要填写以下详细信息:

   [glance]
   swift_temp_url_key=mysecretkeyforglance
   swift_endpoint_url=http://10.10.1.10:8080
   swift_api_version=v1
   swift_account=AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
   swift_container=glance
 The details can be retrieved by running the below command:::
  $ swift --os-username=service:glance-swift stat -v | grep -i url
  StorageURL:     http://10.10.1.10:8080/v1/AUTH_51ea2fb400c34c9eb005ca945c0dc9e1
  Meta Temp-Url-Key: mysecretkeyforglance

6. Swift 必须使用在 Ironic 中配置的相同管理员凭据进行访问。例如,如果 Ironic 在 /etc/ironic/ironic.conf 中配置了以下凭据:

   [keystone_authtoken]
   admin_password = password
   admin_user = ironic
   admin_tenant_name = service
   auth_version = 2

那么,以下命令应该可以工作:

   $ swift --os-username ironic --os-password password --os-tenant-name service --auth-version 2 stat
                        Account: AUTH_22af34365a104e4689c46400297f00cb
                     Containers: 2
                        Objects: 18
                          Bytes: 1728346241
   Objects in policy "policy-0": 18
     Bytes in policy "policy-0": 1728346241
              Meta Temp-Url-Key: mysecretkeyforglance
                    X-Timestamp: 1409763763.84427
                     X-Trans-Id: tx51de96a28f27401eb2833-005433924b
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes


7. 将 agent_ilo 添加到 /etc/ironic/ironic.conf 中的 enabled_drivers 列表中。例如::

   enabled_drivers = fake,pxe_ssh,pxe_ipmitool,agent_ilo

8. 重新启动 Ironic conductor 服务:

   $ service ironic-conductor restart
在 Ironic 中注册 Proliant 节点

配置为 iLO 驱动程序的节点应将 driver 属性设置为 agent_ilo。以下配置值也需要在 driver_info 中需要

  • ilo_address:iLO 的 IP 地址或主机名。
  • ilo_username:具有管理员权限的 iLO 用户名。
  • ilo_password:上述 iLO 用户的密码。
  • ilo_deploy_iso:包含 agent 的 deploy agent ISO 镜像的 Glance UUID。
  • ca_file:(可选)用于验证 iLO 的 CA 证书文件。
  • client_port:(可选)如果在 iLO 上使用自定义端口,则用于 iLO 操作的端口。默认使用的端口是 443。
  • client_timeout:(可选)iLO 操作的超时时间。默认超时时间为 60 秒。
  • console_port:(可选)节点用于控制台访问的 UDP 端口。Ironic conductor 节点上的任何未使用的端口均可使用。


注意:

  • 要将 SSL 证书更新到 iLO,您可以参考 http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=c04530504 。您可以使用 iLO 主机名或 IP 地址作为生成证书签名请求 (CSR) 时的“通用名称 (CN)”。在将节点注册到 Bare Metal 服务时,使用与 ilo_address 相同的值,以避免与主机名不匹配相关的 SSL 证书验证错误。
  • 如果未在节点的 driver_info 中提供 ca_fileclient_portclient_timeout 的配置值,则将使用 ironic.conf 的 [ilo] 部分中定义的相应配置变量。

例如,您可以运行如下命令来注册 ProLiant 节点

 ironic node-create -d agent_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password>  -i ilo_deploy_iso=<glance-uuid-of-deploy-iso>
启动模式

agent_ilo 驱动程序支持自动检测启动模式(传统 BIOS 或 UEFI)以及从 BIOS 设置为 UEFI 的启动模式。有关详细信息,请参阅下面的注释。

  • 如果未提供启动模式设置,agent_ilo 驱动程序将保留部署实例上的当前启动模式。
  • 可以通过将 boot_mode:biosboot_mode:uefi 添加到 Ironic 节点 properties 字段中的 capabilities 属性来提供特定启动模式的要求。然后 agent_ilo 驱动程序将部署并配置实例到适当的启动模式。

例如,要使 Proliant 裸机节点以 UEFI 模式启动,请运行以下命令:

  ironic node-update <node-id> add properties/capabilities='boot_mode:uefi'

注意:

  • 我们建议在支持 UEFI 和传统模式的系统上设置 boot_mode 属性,如果用户希望在 Nova 中选择具有适当启动模式的裸机节点,则设置此属性。适用于 ProLiant DL580 Gen8 和 Gen9 系统。
  • agent_ilo 驱动程序自动将启动模式从 BIOS 设置为 UEFI,如果 nova boot 中请求的启动模式为 UEFI。但是,如果用户希望以传统模式部署节点,则需要在 Gen8(仅 ProLiant DL580)和 Gen9 服务器上预配置启动模式为 Legacy。
  • 可以通过使用 ComputeCapabilitesFilter 从 nova 请求特定的启动模式。例如,可以在 flavor 中如下设置:
  nova flavor-key ironic-test-3 set capabilities:boot_mode="uefi"
  nova boot --flavor ironic-test-3 --image test-image instance-1

pxe_ilo 驱动程序

概述

pxe_ilo 驱动程序使用 PXE/iSCSI(就像 pxe_ipmitool 驱动程序一样)来部署镜像,并使用 iLO 来对裸机节点执行所有管理操作(而不是使用 IPMI)。

目标用户
  • 希望在其环境中对部署使用 PXE/iSCSI 或 iLO 中没有高级许可证的用户。
  • 不希望手动在裸机节点上配置启动模式和启动设备的用户。
  • 希望使用 iLO 驱动程序增值功能(例如启动模式管理、带外节点清理和硬件内省)的用户。
已测试平台

此驱动程序应适用于配备 iLO 3 的 HPE ProLiant Gen7 服务器、配备 iLO 4 的 Gen8 和 Gen9 服务器以及配备 iLO 5 的 Gen10 服务器。

它已使用以下服务器进行了测试

  • ProLiant DL380 G7
  • ProLiant SL230s Gen8
  • ProLiant DL320e Gen8
  • ProLiant DL380e Gen8
  • ProLiant DL580e Gen8
  • ProLiant BL460c Gen8
  • ProLiant DL180 Gen9 UEFI
  • ProLiant DL360 Gen9 UEFI
  • ProLiant DL380 Gen9 UEFI
  • ProLiant BL460c Gen9
  • ProLiant XL450 Gen9 UEFI
  • ProLiant DL360 Gen10
  • ProLiant DL325 Gen10 Plus
  • ProLiant DL385 Gen10 Plus
特性
  • 自动检测当前启动模式。
  • 如果 nova flavor 的 extra spec 请求 UEFI 启动模式,则自动设置所需的启动模式。
  • 远程控制台(基于 IPMI)
  • 硬件传感器
  • UEFI 启动
  • UEFI 安全启动
  • 本地启动(BIOS 和 UEFI)
  • 支持部署整个磁盘镜像和分区镜像。
  • 支持从 PXE 启动实例以及从磁盘本地启动。
  • 将管理信息与数据通道隔离。
  • 支持带外硬件检查。
  • 节点清理
  • 独立 iLO 驱动程序。
需求

无。

配置和启用驱动程序

1. 从 diskimage-builder [3] 准备一个 ISO 部署 ramdisk 镜像。以下命令在当前工作目录中创建名为 deploy-ramdisk.kerneldeploy-ramdisk.initramfs 的文件:

   ramdisk-image-create -o deploy-ramdisk ubuntu deploy-ironic

2. 将此镜像上传到 Glance:

   glance image-create --name deploy-ramdisk.kernel --disk-format aki --container-format aki < deploy-ramdisk.kernel
   glance image-create --name deploy-ramdisk.initramfs --disk-format ari --container-format ari < deploy-ramdisk.initramfs

7. 将 pxe_ilo 添加到 /etc/ironic/ironic.confenabled_drivers 列表。

   enabled_drivers = fake,pxe_ssh,pxe_ipmitool,pxe_ilo

8. 重新启动 Ironic conductor 服务:

   service ironic-conductor restart
在 Ironic 中注册 Proliant 节点

配置为 iLO 驱动程序的节点应将 driver 属性设置为 pxe_ilo。以下配置值也需要在 driver_info

  • ilo_address:iLO 的 IP 地址或主机名。
  • ilo_username:具有管理员权限的 iLO 用户名。
  • ilo_password:上述 iLO 用户的密码。
  • pxe_deploy_kernel:部署内核的 Glance UUID。
  • pxe_deploy_ramdisk:部署 ramdisk 的 Glance UUID。
  • ca_file:部署 ramdisk 的 Glance UUID。
  • client_port:(可选)如果在 iLO 上使用自定义端口,则用于 iLO 操作的端口。默认使用的端口是 443。
  • client_timeout:(可选)iLO 操作的超时时间。默认超时时间为 60 秒。
  • console_port:(可选)节点用于控制台访问的 UDP 端口。Ironic conductor 节点上的任何未使用的端口均可使用。


注意:

  • 要将 SSL 证书更新到 iLO,您可以参考 http://h20564.www2.hpe.com/hpsc/doc/public/display?docId=c04530504 。您可以使用 iLO 主机名或 IP 地址作为生成证书签名请求 (CSR) 时的“通用名称 (CN)”。在将节点注册到 Bare Metal 服务时,使用与 ilo_address 相同的值,以避免与主机名不匹配相关的 SSL 证书验证错误。
  • 如果未在节点的 driver_info 中提供 ca_fileclient_portclient_timeout 的配置值,则将使用 ironic.conf 的 [ilo] 部分中定义的相应配置变量。


例如,您可以运行如下命令来注册 ProLiant 节点

 ironic node-create -d pxe_ilo -i ilo_address=<ilo-ip-address> -i ilo_username=<ilo-username> -i ilo_password=<ilo-password>
 -i deploy_kernel=<glance-uuid-of-pxe-deploy-kernel> -i deploy_ramdisk=<glance-uuid-of-deploy-ramdisk>
启动模式

pxe_ilo 驱动程序支持自动检测启动模式(传统 BIOS 或 UEFI)以及从 BIOS 到 UEFI 的启动模式设置。有关详细信息,请参阅下面的注释。

  • 如果未提供启动模式设置,pxe_ilo 驱动程序将保留部署实例上的当前启动模式。
  • 可以通过将 boot_mode:biosboot_mode:uefi 添加到 Ironic 节点 properties 字段中的 capabilities 属性来提供特定启动模式的要求。然后 pxe_ilo 驱动程序将以适当的启动模式部署和配置实例:
  ironic node-update <NODE-ID> add properties/capabilities='boot_mode:uefi'

注意:

  • 我们建议在支持 UEFI 和传统模式的系统上设置 boot_mode 属性,如果用户希望在 Nova 中选择具有适当启动模式的裸机节点,则设置此属性。适用于 ProLiant DL580 Gen8 和 Gen9 系统。
  • pxe_ilo 驱动程序会自动将启动模式从 BIOS 更改为 UEFI,如果 nova boot 中请求的启动模式为 UEFI。但是,如果用户希望以传统模式部署节点,则需要在 DL580 Gen8 和 Gen9 服务器上预配置启动模式为传统模式。
  • 可以通过使用 ComputeCapabilitesFilter 从 nova 请求特定的启动模式。例如,可以在 flavor 中如下设置:
  nova flavor-key ironic-test-3 set capabilities:boot_mode="uefi"
  nova boot --flavor ironic-test-3 --image test-image instance-1

UEFI 安全启动支持

  • 以下驱动程序支持 UEFI 安全启动部署
    • iscsi_ilo
    • agent_ilo
    • pxe_ilo


测试平台:此功能在具有 iLO 4 的 HP Proliant Gen9 服务器及更高版本上可用。它已使用以下服务器进行了测试

  • ProLiant DL360 Gen9 UEFI
  • ProLiant DL380 Gen9 UEFI


可以通过在 Ironic 节点的 properties 字段中的 capabilities 参数中添加 secure_boot 参数来在 Ironic 中配置 UEFI 安全启动模式。

secure_boot 是一个布尔参数,其值为 truefalse

要启用节点上的 secure_boot,请将其添加到 capabilities 中,如下所示:

 ironic node-update <node-uuid> add properties/capabilities='secure_boot:true'

或者,也可以使用硬件检查来填充安全启动功能。

具有 secure_boot 设置为 true 的节点可以通过在 Nova flavor 中添加 extra_spec 来请求:

 nova flavor-key ironic-test-3 set capabilities:secure_boot="true"
 nova boot --flavor ironic-test-3 --image test-image instance-1

如果 extra_spec 中使用 capabilities 如上所示,Nova 调度器(ComputeCapabilitiesFilter)将仅匹配在 properties/capabilities 中适当设置了 secure_boot 的 Ironic 节点。它将过滤掉其余节点。

Nova 中的上述匹配机制可用于异构环境,其中既有支持 UEFI 安全启动的机器,也有不支持的机器,并且操作员希望为用户提供有关安全启动的选择。如果 flavor 不包含 secure_boot,则 Nova 调度器将不会将安全启动模式视为放置标准,因此用户可能会获得与用户指定的 flavor 匹配的安全启动功能机器,但部署将不会使用其安全启动功能。只有通过 flavor 明确指定,才会发生安全启动部署

使用元素 ubuntu-signedfedoradiskimage-builder_ 构建签名的 ubuntu 部署 iso 和用户镜像。以下命令在当前工作目录中创建名为 deploy-ramdisk.kerneldeploy-ramdisk.initramfsdeploy-ramdisk.iso 的文件

   pip install "diskimage-builder"
   ramdisk-image-create -o deploy-ramdisk ubuntu-signed deploy-ironic iso

以下命令在当前工作目录中创建名为 cloud-image-boot.isocloud-image.initrdcloud-image.vmlinuzcloud-image.qcow2 的文件

   disk-image-create -o cloud-image ubuntu-signed baremetal iso

注意:

  • 在实例镜像启动时启用 UEFI 安全启动。裸机部署以 UEFI 启动模式进行。
  • 在 UEFI 安全启动中,数字签名的引导加载程序应能够验证启动过程中内核的数字签名。这要求引导加载程序包含内核的数字签名。对于 iscsi_ilo 驱动程序,建议用户镜像的 boot_iso 属性包含引导 ISO 的 Glance UUID。如果用户镜像的 Glance 中未更新 boot_iso 属性,它将使用部署 iso 中的引导加载程序创建 boot_iso。只有当引导加载程序已签名并且可以验证用户镜像内核的数字签名时,此 boot_iso 才能在 UEFI 安全启动环境中引导用户镜像。
  • 对于 pxe_ilo 驱动程序,在部署分区镜像的情况下,请确保在部署期间使用的已签名 grub2 引导加载程序可以验证实例分区镜像中的内核的数字签名。如果已签名的 grub2 无法验证实例分区镜像中的内核,则启动将失败。

支持从 iSCSI 卷启动 UEFI

使用 Gen9(UEFI 固件版本 1.40 或更高版本)Gen10 HPE Proliant 服务器,该驱动程序支持基于固件的 iSCSI cinder 卷的 UEFI 启动。

此功能要求节点配置为以 UEFI 启动模式启动,并且用户镜像应为 UEFI 可启动镜像,并且需要在交换机配置中启用 PortFast 以实现立即生成树转发状态,从而不会花费太多时间将 iSCSI 目标设置为持久设备。

当处于 BIOS 启动模式时,驱动程序不支持此功能。如果节点配置为 ilo-pxe 启动接口,并且裸机上配置的启动模式为 BIOS,则使用 ipxe 执行从卷启动 iscsi。有关更多详细信息,请参阅 从卷启动

要使用此功能,请将裸机的启动模式配置为 UEFI,并使用 从卷启动 中给定的步骤配置相应的 ironic 节点。在配置为 BIOS 和 UEFI 启动模式的节点的云环境中,虚拟媒体驱动程序仅支持 UEFI 启动模式,并且同时尝试使用 bios 卷进行 iscsi 启动将导致错误。

硬件检查

以下驱动程序支持硬件检查

  • pxe_ilo
  • iscsi_ilo
  • agent_ilo
  • 可以使用以下命令启动检查
    • 将节点移动到可管理状态
   ironic node-set-provision-state <node_UUID> manage
    • 启动检查
   ironic node-set-provision-state <node_UUID> inspect

注意

  • 仅当存储上预配置了 RAID 时,RIBCL/RIS 才会返回磁盘大小。如果存储是直连存储,则 RIBCL/RIS 无法获取磁盘大小。
    • SNMPv3 检查获取所有类型存储的磁盘大小。如果 RIBCL/RIS 无法获取磁盘大小并且请求了 SNMPv3 检查,则 proliantutils 会执行 SNMPv3 检查以获取磁盘大小。如果 proliantutils 无法获取磁盘大小,则会引发错误。此功能在 proliantutils 版本 >= 2.2.0 中可用。
    • iLO 必须使用 SNMPv3 身份验证详细信息进行更新。有关设置 iLO 上的身份验证详细信息,请参阅 `http://h20566.www2.hpe.com/hpsc/doc/public/display?docId=c03334051' 中的“`SNMPv3 身份验证`”部分。驱动程序信息中需要提供以下参数才能进行 SNMPv3 检查
      • ``snmp_auth_user`` :SNMPv3 用户。
      • ``snmp_auth_prot_password`` :身份验证协议密码。
      • ``snmp_auth_priv_password`` :隐私协议密码。
    • 以下参数是 SNMPv3 检查的可选参数
      • ``snmp_auth_protocol`` :身份验证协议。有效值为“MD5”和“SHA”。iLO 默认值为“MD5”。
      • ``snmp_auth_priv_protocol`` :隐私协议。有效值为“AES”和“DES”。iLO 默认值为“DES”。
  • 对于 nic_capacity 能够被发现,iLO 固件版本 应该为 2.10 或更高版本。

检查过程将发现以下基本属性(用于调度部署的属性)

  • memory_mb:内存大小
  • cpus:CPU 数量
  • cpu_arch:CPU 架构
  • local_gb:磁盘大小


硬件检查还可以发现 iLO 驱动程序的以下额外功能

  • ilo_firmware_version:iLO 固件版本
  • rom_firmware_version:系统 ROM 固件版本
  • secure_boot:是否支持安全启动。可能的值为“true”或“false”。如果服务器支持安全启动,则返回的值为“true”。
  • server_model:服务器型号
  • pci_gpu_devices:连接到裸机的 GPU 设备数量。
  • nic_capacity:嵌入式 NIC 适配器的最大速度。


操作员可以在 nova flavor 中指定这些功能,以便选择节点进行调度

 nova flavor-key my-baremetal-flavor set capabilities:server_model="<in> Gen8"
 nova flavor-key my-baremetal-flavor set capabilities:pci_gpu_devices="> 0"
 nova flavor-key my-baremetal-flavor set capabilities:nic_capacity="10Gb"
 nova flavor-key my-baremetal-flavor set capabilities:ilo_firmware_version="<in> 2.10"
 nova flavor-key my-baremetal-flavor set capabilities:secure_boot="true"

以上只是在 nova flavor 中使用功能的示例。

启用 Swift 中的 HTTPS

iLO 驱动程序 iscsi_iloagent_ilo 使用 Swift 存储引导镜像和管理信息。默认情况下,Swift 中未启用 HTTPS。HTTPS 需要加密 Ironic Conductor 和 Swift 代理服务器之间的所有通信,从而防止窃听网络数据包。可以通过以下方式之一启用它

   cd /etc/swift
   openssl req -new -x509 -nodes -out cert.crt -keyout cert.key
    • 将以下行添加到 /etc/swift/proxy-server.conf 下的 [DEFAULT] 中
 bind_port = 443
 cert_file = /etc/swift/cert.crt
 key_file = /etc/swift/cert.key
    • 重新启动 Swift 代理服务器。

节点清理支持

  • 以下驱动程序支持节点清理
    • pxe_ilo
    • iscsi_ilo
    • agent_ilo

Ironic 提供两种节点清理模式:自动手动自动清理在第一次将工作负载分配给节点以及在硬件从一个工作负载回收到另一个工作负载时自动执行,而 手动清理必须由操作员调用。

自动清理

默认情况下启用节点自动清理。可以在 ironic.conf 中更改此设置。(在 Mitaka 之前,此选项名为“clean_nodes”)

   [conductor]
   automated_clean=true

或者

   [conductor]
   automated_clean=false

节点设置为清理状态的情况如下 -

在删除现有实例期间,即节点从 ACTIVE -> AVAILABLE 状态移动时
   ironic node-set-provision-state <node-uuid> deleted
或在节点从 MANAGEABLE -> AVAILABLE 状态移动时
   ironic node-set-provision-state <node-uuid> provide

目前,支持的带外 iLO 自动清理操作是

  • reset_bios_to_default:将系统 ROM / BIOS 设置重置为默认值。此清理步骤仅在 Gen9 及更高版本的服务器上受支持。默认情况下,优先级为 10 启用。
  • reset_secure_boot_keys_to_default:将安全启动密钥重置为制造商的默认值。此步骤仅在 Gen9 及更高版本的服务器上受支持。默认情况下,优先级为 20 启用。
  • reset_ilo_credential:重置 iLO 密码,如果 ‘ilo_change_password’ 作为节点驱动程序信息的一部分指定。默认情况下,优先级为 30 启用。
  • clear_secure_boot_keys:清除所有安全启动密钥。此步骤仅在 Gen9 及更高版本的服务器上受支持。默认情况下,此步骤已禁用。
  • reset_ilo:重置 iLO。默认情况下,此步骤已禁用。


此外,agent_ilo 驱动程序支持带内自动清理操作 erase_devices。它在 HPE Proliant 服务器上执行 Sanitize Erase。如果使用从 Ocata 版本构建的 diskimage-builder 创建的 ramdisk,则此步骤仅支持 Proliant 服务器上的清理磁盘擦除,否则它将执行 Ironic Python Agent 中可用的 erase_devices 实现。默认情况下,此步骤已禁用。有关更多信息,请参阅 清理磁盘擦除支持

您还需要配置 清理网络。要禁用或更改特定自动清理步骤的优先级,需要更新 ironic.conf 中的相应配置选项。

   [ilo]
   clean_priority_reset_ilo=0
   clean_priority_reset_bios_to_default=10
   clean_priority_reset_secure_boot_keys_to_default=20
   clean_priority_clear_secure_boot_keys=0
   clean_priority_reset_ilo_credential=30
   [deploy]
   erase_devices_priority=0
   

要禁用特定的自动清理步骤,请将步骤的优先级更新为 0。有关节点自动清理的更多信息,请参阅 自动清理

手动清理

在启动手动清理时,操作员指定要执行的清理步骤。只有当节点处于 MANAGEABLE 状态时,才能执行手动清理。手动清理完成后,节点将再次置于 MANAGEABLE 状态。只有当 REST API 请求启动它在 API 版本 1.15 及更高版本中可用时,才能执行手动清理。因此,从命令行您需要执行

   ironic --ironic-api-version 1.15 node-set-provision-state --clean-steps input_manual_clean_steps.json <node-uuid> clean

目前,支持的带外 iLO 手动清理操作是

  • activate_license:
激活 iLO 高级许可证。这是与管理界面关联的带外手动清理步骤。请注意,由于它们需要已经激活此类型的高级许可证才能使用虚拟媒体进行引导以开始清理操作,因此虚拟媒体驱动程序(如 iscsi_ilo 和 agent_ilo)无法执行此操作。虚拟媒体是一项高级功能。如果已经激活了高级许可证,并且用户希望覆盖当前的许可证密钥,例如在交付带有灵活数量套件的激活密钥或完成激活密钥协议 (AKA) 之后,则这些驱动程序仍然可以用于执行此清理步骤。
有关用法,请参阅 将 iLO 高级许可证作为手动清理步骤激活
   Note: This feature is not applicable to Synergy 480 Gen9 machines because the Synergy machines are installed with the Advanced iLO license by default.
  • update_firmware:
更新设备的固件。也是与管理界面关联的带外步骤。支持固件更新的设备是:ilocpldpower_picbioschassis。某些设备的固件无法通过此方法更新,例如:存储控制器、主机总线适配器、磁盘驱动器固件、网络接口和 Onboard Administrator (OA)。请参阅下表了解上述组件的常用说明。
装置 描述
ilo HPE ProLiant 服务器的 BMC
cpld 系统可编程逻辑设备
power_pic 电源管理控制器
bios HPE ProLiant 系统 ROM
chassis 系统底盘设备
有关用法,请参阅 将固件更新作为手动清理步骤启动

有关节点手动清理的更多信息,请参阅 手动清理

激活 iLO 高级许可证作为手动清理步骤

iLO 驱动程序可以将 iLO Advanced 许可证密钥作为手动清理步骤激活。只有当节点处于 MANAGEABLE 状态时,才能启动任何手动清理步骤。手动清理完成后,节点将再次置于 MANAGEABLE 状态。用户可以按照 手动清理 中的步骤来启动节点上的手动清理操作。以下是在通过 ironic 客户端执行 iLO 高级许可证激活作为手动清理步骤的说明

   ironic node-set-provision-state <node-uuid> manage
   ironic --ironic-api-version latest node-set-provision-state --clean-steps /home/deray/license_activation_clean_step.json <node-uuid> clean

包含 activate_license 作为唯一清理步骤的手动清理步骤示例(或 license_activation_clean_step.json 文件的典型内容)

   [{
     "interface": "management",
     "step": "activate_license",
     "args": {
       "ilo_license_key": "ABC12-XXXXX-XXXXX-XXXXX-YZ345"
     }
   }]

activate_license 清理步骤的不同属性的含义如下

属性 描述
接口 清理步骤的接口,这里是 management
step 清理步骤的名称,这里是 activate_license
参数 传递给清理步骤的关键字参数条目(<name>:<value>)
args.ilo_license_key 要激活企业功能的 iLO Advanced 许可证密钥。这是必需的。
启动固件更新作为手动清理步骤

iLO 驱动程序可以将安全固件更新作为手动清理步骤调用。只有当节点处于 MANAGEABLE 状态时,才能启动任何手动清理步骤。手动清理完成后,节点将再次置于 MANAGEABLE 状态。用户可以按照 手动清理 中的步骤来启动节点上的手动清理操作。以下是在通过 ironic 客户端执行基于 iLO 的固件更新作为手动清理步骤的说明

   ironic node-set-provision-state <node-uuid> manage
   ironic --ironic-api-version latest node-set-provision-state --clean-steps /home/deray/firmware_update_clean_step.json <node-uuid> clean

包含 update_firmware 作为唯一清理步骤的手动清理步骤示例(或 firmware_update_clean_step.json 文件的典型内容)

   [{
     "interface": "management",
     "step": "update_firmware",
     "args": {
       "firmware_update_mode": "ilo",
       "firmware_images":[
         {
           "url": "file:///firmware_images/ilo/1.5/CP024444.scexe",
           "checksum": "a94e683ea16d9ae44768f0a65942234d",
           "component": "ilo"
         },
         {
           "url": "swift://firmware_container/cpld2.3.rpm",
           "checksum": "<md5-checksum-of-this-file>",
           "component": "cpld"
         },
         {
           "url": "http://my_address:port/firmwares/bios_vLatest.scexe",
           "checksum": "<md5-checksum-of-this-file>",
           "component": "bios"
         },
         {
           "url": "https://my_secure_address_url/firmwares/chassis_vLatest.scexe",
           "checksum": "<md5-checksum-of-this-file>",
           "component": "chassis"
         },
         {
           "url": "file:///home/ubuntu/firmware_images/power_pic/pmc_v3.0.bin",
           "checksum": "<md5-checksum-of-this-file>",
           "component": "power_pic"
         }
       ]
     }
   }]

update_firmware 清理步骤的不同属性的含义如下

属性 描述
接口 清理步骤的接口,这里是 management
step 清理步骤的名称,这里是 update_firmware
参数 传递给清理步骤的关键字参数条目(<name>:<value>)
args.firmware_update_mode 带外固件更新的模式(或机制)。支持的值是 ilo。这是必需的。
args.firmware_images 要刷写的镜像的有序字典列表。这是必需的。

每个固件镜像块都由一个字典(JSON)表示,形式如下

   {
     "url": <url of firmware image file>,
     "checksum": <md5 checksum of firmware image file to verify the image>,
     "component": <device on which firmware image will be flashed>
   }

固件镜像块中的所有字段都是必需的。

  • 支持的不同固件 url 方案是:filehttphttpsswift
注意:此功能假定在使用 file url 方案时,文件路径位于控制节点的 conductor 上。
注意:swift url 方案假定 service 项目的 swift 帐户。service 项目(租户)是在 Keystone 系统中创建的特殊项目,专供核心 OpenStack 服务使用。当 Ironic 使用 Swift 进行存储时,帐户通常是 service,容器通常是 ironic,并且 ilo 驱动程序为其自身目的使用名为 ironic_ilo_container 的容器。
注意:在使用扩展名为 .rpm 的固件文件时,请确保 conductor 上存在 rpm2cpiocpio 命令,因为它们用于从软件包中提取固件镜像。
  • 可以更新的固件组件包括:ilocpldpower_picbioschassis
  • 固件镜像将按照操作员给定的顺序更新。如果在处理提供的固件镜像列表中的任何镜像时发生任何错误,则不会发生任何固件更新。处理错误可能发生在镜像下载、镜像校验和验证或镜像提取期间。逻辑是处理每个固件文件并仅在所有文件都成功处理后才在设备上更新它们。如果在更新(上传和刷写)过程中更新失败,则列表中的剩余更新(如果有)将被中止。但是,建议对失败进行分类和修复,并重新尝试手动清理步骤 update_firmware 以进行中止的 firmware_images
固件已成功更新的设备将开始使用其新更新的固件运行。
  • 作为整个过程的故障排除指南,请仔细检查 Ironic conductor 日志,查看是否有任何固件处理或更新相关的错误,这些错误可能有助于根本原因分析或了解事情停留在哪里或失败的原因。然后您可以修复或绕过并再次尝试。更新失败的常见原因是固件镜像文件的 HPE 安全数字签名检查失败。
  • 要计算图像文件的 md5 校验和,用户可以使用以下命令
   $ md5sum image.rpm
   66cdb090c80b71daa21a67f06ecd3f33  image.rpm
RAID 支持

iLO 驱动程序支持带内 RAID 功能。有关更多信息,请参阅 https://docs.openstack.org/developer/ironic/deploy/raid.html#raid。成功配置 RAID 后,Bare Metal 服务使用以下信息更新节点

  • 节点 properties/local_gb 设置为根卷的大小。
  • 节点 properties/root_device 填充了根卷的 wwn 详细信息。它由 iLO 驱动程序用作配置期间的根设备提示。
  • 根卷的 RAID 级别作为 raid_level 功能添加到节点 capabilities 参数中的 properties 字段中。操作员可以在 nova flavor 中指定 raid_level 功能,以选择用于调度的节点
   nova flavor-key ironic-test set capabilities:raid_level="1+0"
   nova boot --flavor ironic-test --image test-image instance-1
磁盘擦除支持

磁盘擦除是 iLO 驱动程序支持的带内清理步骤。当代理 ramdisk 包含来自 proliantutils 版本 2.2.0 或更高版本的 Proliant Hardware Manager 时,它受支持。如果不支持擦除,则它将回退到 Ironic Python Agent 中可用的 erase_devices 实现。此清理步骤作为自动化清理的一部分执行,默认情况下已禁用。

此带内清理步骤需要从版本 2.60-19.0 开始的 ssacli 实用程序才能在物理磁盘上执行擦除。有关 ssacli 实用程序的更多信息,请参阅 ssacli 文档

   Note: Inband clean step for RAID configuration and Disk Erase on HPE P/E-Class SR Gen10 controllers and above will require ssacli version to be ssacli-3.10-3.0 and above.

要创建带有 Proliant Hardware Manager 的代理 ramdisk,请在 DIB 中使用 proliant-tools 元素:

   disk-image-create -o proliant-agent-ramdisk ironic-agent fedora proliant-tools

有关使用 DIB 中 proliant-tools 元素创建带有 proliant-tools 元素的代理 ramdisk 的更多信息,请参阅 proliant-tools

BIOS 配置支持

iloilo5 硬件类型支持 ilo BIOS 接口。该支持包括提供手动清理步骤“apply_configuration”和“factory_reset”来管理节点上支持的 BIOS 设置。

   Note: Prior to the Stein release the user is required to reboot the node manually in order for the settings to take into effect. Starting with the Stein
   release, iLO drivers reboot the node after running the clean steps related to BIOS configuration. The BIOS settings are cached and the clean step 
   is marked as success only if all the requested settings are applied without any failure. If application of any of the settings fails, the clean step is
   marked as failed and the settings are not cached.
配置

以下是受支持的 BIOS 设置及其简要描述。有关详细描述,请参阅 HPE Integrated Lights-Out REST API Documentation <https://hewlettpackard.github.io/ilo-rest-api-docs>。

  • AdvancedMemProtection:使用 ECC(纠错码)配置额外的内存保护。允许的值为 AdvancedEccOnlineSpareAdvancedEccMirroredAdvancedEcc
  • AutoPowerOn:配置服务器在向系统施加交流电源时自动上电。允许的值为 AlwaysPowerOnAlwaysPowerOffRestoreLastState
  • BootMode:选择系统的启动模式。允许的值为 UefiLegacyBios
  • BootOrderPolicy:配置系统在未找到可启动设备时尝试启动设备的策略。允许的值为 RetryIndefinitelyAttemptOnceResetAfterFailed
  • CollabPowerControl:启用操作系统请求处理器频率更改,即使服务器上配置为动态节能模式的电源调节器选项也是如此。允许的值为 EnabledDisabled
  • DynamicPowerCapping:配置系统 ROM 在启动过程中执行电源校准的时间。允许的值为 EnabledDisabledAuto
  • DynamicPowerResponse:启用系统 BIOS 以根据处理器工作负载控制处理器性能和功耗状态。允许的值为 FastSlow
  • IntelligentProvisioning:启用或禁用智能配置功能。允许的值为 EnabledDisabled
  • IntelPerfMonitoring:公开可与 Intel 性能监视工具包一起使用的某些芯片组设备。允许的值为 EnabledDisabled
  • IntelProcVtd:支持此选项的虚拟机监控程序或操作系统可以使用 Intel 虚拟化技术提供的硬件功能进行定向 I/O。允许的值为 EnabledDisabled
  • IntelQpiFreq:将 QPI 链路频率设置为较低的速度。允许的值为 AutoMinQpiSpeed
  • IntelTxt:修改 Intel TXT 支持的选项。允许的值为 EnabledDisabled
  • PowerProfile:设置要使用的电源配置文件。允许的值为 BalancedPowerPerfMinPowerMaxPerfCustom
  • PowerRegulator:确定如何调节功耗。允许的值为 DynamicPowerSavingsStaticLowPowerStaticHighPerfOsControl
  • ProcAes:启用或禁用处理器中的高级加密标准指令集 (AES-NI)。允许的值为 EnabledDisabled
  • ProcCoreDisable:使用 Intel 的 Core 多处理 (CMP) 技术禁用处理器核心。允许的值为从 024 的整数。
  • ProcHyperthreading:启用或禁用 Intel 超线程技术。允许的值为 EnabledDisabled
  • ProcNoExecute:保护您的系统免受恶意代码和病毒的侵害。允许的值为 EnabledDisabled
  • ProcTurbo:如果处理器有可用的功率并且在温度规格范围内,则启用处理器过渡到高于处理器额定速度的频率使用 Turbo Boost 技术。允许的值为 EnabledDisabled
  • ProcVirtualization:启用或禁用支持此选项的虚拟机监控程序或操作系统使用 Intel 虚拟化技术提供的硬件功能。允许的值为 EnabledDisabled
  • SecureBootStatus:安全启动配置的当前状态。允许的值为 EnabledDisabled
   Note: This setting is read-only and can't be modified with apply_configuration clean step.
 
  • Sriov:如果启用,SR-IOV 支持使虚拟机监控程序能够创建 PCI-express 设备的虚拟实例,从而可能提高性能。如果启用,BIOS 会将额外的资源分配给 PCI-express 设备。允许的值为 EnabledDisabled
  • ThermalConfig:选择系统的风扇冷却解决方案。允许的值为 OptimalCoolingIncreasedCoolingMaxCooling
  • ThermalShutdown:控制系统对警告级别热事件的反应。允许的值为 EnabledDisabled
  • TpmState:当前 TPM 设备的狀態。允许的值为 NotPresentPresentDisabledPresentEnabled
   Note: This setting is read-only and can't be modified with apply_configuration clean step.
  • TpmType:当前 TPM 设备的类型。允许的值为 NoTpmTpm12Tpm20Tm10
   Note: This setting is read-only and can't be modified with apply_configuration clean step.
  • UefiOptimizedBoot:启用或禁用系统 BIOS 使用本机 UEFI 图形驱动程序进行启动。允许的值为 EnabledDisabled
  • WorkloadProfile:更改工作负载配置文件以适应您所需的工作负载。允许的值为 GeneralPowerEfficientComputeGeneralPeakFrequencyComputeGeneralThroughputComputeVirtualization-PowerEfficientVirtualization-MaxPerformanceLowLatencyMissionCriticalTransactionalApplicationProcessingHighPerformanceComputeDecisionSupportGraphicProcessingI/OThroughputCustom
 Note: This setting is only applicable to ProLiant Gen10 servers with iLO 5 management systems.

救援模式支持

ilo 硬件类型支持救援功能。救援操作可用于将节点启动到救援 ramdisk,以便救援用户可以访问该节点。请参阅 救援模式,了解更多详细信息。

支持注入 NMI

ilo 管理接口支持将非屏蔽中断 (NMI) 注入到裸机。可以使用以下命令将 NMI 注入到服务器

 openstack baremetal node inject nmi <node>

可以使用以下命令通过计算服务注入 NMI

 openstack server dump create <server>

支持软电源操作

ilo 电源接口支持对裸机执行软关机和软重启操作。可以使用以下命令对服务器执行软电源操作

 openstack baremetal node reboot --soft [--power-timeout <power-timeout>] <node>
   Note: The configuration [conductor]soft_power_off_timeout is used as a default timeout value when no timeout is provided while invoking hard or soft
   power operations.
   Note: Server POST state is used to track the power status of HPE ProLiant Gen9 servers and beyond.

带外 RAID 支持

对于 Gen10 HPE Proliant 服务器及更高版本,ilo5 硬件类型支持基于固件的 RAID 配置作为清理步骤。此功能要求节点配置为 ilo5 硬件类型,并且其 raid 接口配置为 ilo5。有关更多信息,请参阅 RAID 配置

RAID 配置成功后,Bare Metal 服务将使用以下信息更新节点

  • 节点 properties/local_gb 设置为根卷的大小。
  • 节点 properties/root_device 填充了根卷的 WWN 详细信息。它由 iLO 驱动程序用作配置期间的根设备提示。

稍后,根卷的 raid 级别值可以添加到 baremetal-with-RAID10(raid 级别 10 的 RAID10)资源类中。因此,需要更新 flavor 以请求资源类来使用所选节点创建服务器

 openstack baremetal node set test_node --resource-class baremetal-with-RAID10
 openstack flavor set --property resources:CUSTOM_BAREMETAL_WITH_RAID10=1 test-flavor
 openstack server create --flavor test-flavor --image test-image instance-1
   Note: Supported raid levels for ilo5 hardware type are: 0, 1, 5, 6, 10, 50, 60

IPv6 支持

在 proliantutils>=2.8.0 中支持 IPv6 后,可以使用 iLO IPv6 地址将节点注册到裸机服务。

 openstack baremetal node create --driver ilo  --deploy-interface direct --driver-info ilo_address=2001:0db8:85a3:0000:0000:8a2e:0370:7334 \
     --driver-info ilo_username=test-user --driver-info ilo_password=test-password --driver-info ilo_deploy_iso=test-iso --driver-info ilo_rescue_iso=test-iso
   Note: No configuration changes (in e.g. ironic.conf) are required in order to support IPv6.

在 Ironic 中启用 ProLiant Gen10 系统

HPE Gen10 服务器 呈现了新的计算体验。Gen10 服务器是基础设施现代化的关键,可加速混合世界(传统 IT、公有云和私有云)中的业务洞察力。

这些服务器符合 Redfish APIproliantutils 库使用 Redfish 协议与此硬件通信。与 Gen10 服务器通信所需的 proliantutils 库的最低版本是 2.4.0。所有 iLO 驱动程序及其功能都受此硬件的支持。由于 Gen10 系统符合 Redfish 标准,因此参考硬件类型 redfish 也适用于 Gen10 系统,但它将缺少 iLO 特定的功能。

   Note: The S-Class software RAID is not supported by Linux in Gen10. Therefore, while provisioning a Gen10 node, make sure the controller is set to AHCI mode.

有关 Gen10 系统中的已知问题,请参阅 Gen10 已知问题 部分。

实例镜像

所有 iLO 驱动程序都支持部署整个磁盘镜像。整个磁盘镜像可以是以下类型之一

1. 仅 BIOS 镜像。仅具有 MBR 分区的镜像,并且仅在 BIOS 启动模式下启动。

2. 仅 UEFI 镜像。具有 GPT 分区的镜像,并且仅在 UEFI 启动模式下启动。

3. 混合镜像。同时具有 GPT 和 MBR 分区的镜像,并且可以在 BIOS 和 UEFI 启动模式下启动。

4. 签名 UEFI 镜像。 UEFI 镜像,其中启动加载程序和内核已签名,可用于 UEFI 安全启动环境。

一些 Linux 发行版提供整个磁盘镜像。示例包括:

1. Ubuntu - https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-uefi1.img

2. CoreOS - http://stable.release.core-os.net/amd64-usr/current/coreos_production_openstack_image.img.bz2

3. OpenSuse - https://susestudio.com(它允许您通过浏览器构建镜像)

下表总结了整个磁盘镜像的功能

镜像类型 启动模式 Config Drive UEFI 安全启动
仅 BIOS BIOS Yes 不适用
仅 UEFI UEFI Yes
UEFI 签名 UEFI Yes Yes
混合 BIOS 和 UEFI 请参阅下面的注释 如果已签名,则可以

注意:Ironic 的 Config Drive 功能可能无法在所有全盘镜像上工作,尤其是在混合镜像中,在创建 config drive 分区时,分区信息可能会丢失,导致配置失败或实例无法启动。

并非所有 Linux 发行版都支持混合镜像(可以在 BIOS 和 UEFI 启动模式下启动的单个镜像)。如果镜像只能在特定启动模式下启动,则用户需要在 nova flavor 的 extra_spec 中添加 'boot_mode' 功能。可以通过 ComputeCapabilitesFilter 从 nova 请求特定的启动模式。例如:-

 nova flavor-key ironic-test-3 set capabilities:boot_mode="uefi"
 nova boot --flavor ironic-test-3 --image test-image instance-1

对于 pxe-ilo 驱动程序,要在 UEFI 启动模式下部署全盘镜像,用户需要在 nova flavor 的 extra_spec 中添加 boot_option="local" 功能。例如:-

 nova flavor-key ironic-test-3 set capabilities:boot_mode="uefi" capabilities:boot_option="local" 
 nova boot --flavor ironic-test-3 --image test-image instance-1

已知问题

序号 固件版本 已知问题 解决方案
1 BIOS 系统 ROM 版本 1.20 在 Gen9 服务器上部署失败,因为 iLO 不会遵守一次性启动设备设置,而是尝试从持久启动设备启动。 这是由于 BIOS 系统 ROM 中的缺陷造成的。从 2015 年 5 月 13 日的固件版本 1.32_03-05-2015 开始提供修复。
2 Smart Array SAS 驱动程序 v8.03 基于 Fedora 的 IPA 部署 ramdisk ISO 在出现“error: can't allocate initrd”错误时无法启动,如果基于 P220 的智能阵列控制器连接到 ProLiant 服务器。 这是 P220 基于智能阵列的固件中的 Fishman 驱动程序问题。该缺陷已提交到 Fishman 固件。驱动程序补丁将很快提供。
3 iLO 版本 2.20 使用 iLO 驱动程序中的任何一个在 Gen9 服务器上部署都可能失败,并在 conductor 日志中出现“Invalid Device Choice”错误,同时设置持久启动设备。此问题仅在 Gen9 服务器运行 iLO 固件版本 2.20 时发生 此问题在于 iLO 固件,如果在 Gen9 服务器上使用 RIBCL 更新 UEFI 启动模式下的持久启动设备,则会以上述错误消息失败。可以通过以下方法之一解决此问题:-

A. 将 iLO 固件版本降级到 2.10 或升级到高于 2.20 的版本

B. 将 python 包 'proliantutils' 升级到版本大于或等于 2.1.3。此问题已通过增强 'proliantutils' 以使用 HP REST 接口来更新 Gen9 服务器的持久启动设备而得到解决。

  $ sudo pip install "proliantutils>=2.1.3"
4 不适用 Openstack 文档 (https://docs.openstack.org/developer/ironic/) 没有记录 在 Swift 中启用 HTTPS 请参阅 iLO 驱动程序 wiki 的 在 Swift 中启用 HTTPS 部分 (https://wiki.openstack.org/wiki/Ironic/Drivers/iLODrivers/Kilo#Enabling_HTTPS_in_Swift) 以获取有关如何启用它的信息和步骤。
5 不适用 当 OpenStack 环境中启用 SSL 并且要附加到 iLO 虚拟媒体的镜像基于 'https' 时,iLO 无法读取/使用这些镜像启动。 iLO 固件版本可能不支持 SSL 服务器上启用的密码。请参阅 iLO 固件文档,以确保使用的密码受支持 http://h10032.www1.hp.com/ctg/Manual/c03334051。 建议您也参考正在使用的 iLO 固件版本的“发行说明”以获取更多详细信息。
6 不适用 在运行手动清理步骤 apply_configuration 时,如果提供了只读设置或无效的允许设置值,iLO 将简单地忽略,并且清理步骤不会标记为失败。 有关更多信息,请参阅并跟踪此问题 <https://bugs.launchpad.net/silva/+bug/1783944>_ 。
Gen10 已知问题和解决方法(如果可用)
序号 组件(带有固件版本) 已知问题 解决方案
1 --- --- ---
2 --- --- ---