iRMC 驱动

概述

iRMC 驱动支持通过 ServerView Common Command Interface (SCCI) 控制 FUJITSU PRIMERGY。对 FUJITSU PRIMERGY 服务器的支持包括 irmc 硬件类型以及特定于该硬件类型的若干硬件接口。

先决条件

硬件类型

对于 FUJITSU PRIMERGY 服务器,可以使用 irmc 硬件类型。有关启用 irmc 硬件类型的信息,请参阅 启用硬件类型

硬件接口

对于 irmc 硬件类型,将覆盖以下硬件接口的选择

  • bios

    支持 irmcno-bios。默认值为 irmc

  • boot

    支持 irmc-virtual-mediairmc-pxepxe。默认值为 irmc-virtual-mediairmc-virtual-media 启动接口支持使用 IPA (Ironic Python Agent) 进行基于虚拟介质的部署。

    警告

    我们已弃用在与 irmc 硬件类型一起使用的 pxe 启动接口。未来将删除对此接口的支持。请改用 irmc-pxeirmc-pxe 启动接口是在 Pike 中引入的。

  • console

    支持 ipmitool-socatipmitool-shellinaboxno-console。默认值为 ipmitool-socat

  • inspect

    支持 irmcinspectorno-inspect。默认值为 irmc

    注意

    Ironic Inspector 需要存在并已配置才能将 inspector 作为检查接口使用。

  • management

    仅支持 irmc

  • power

    支持 irmc,它默认通过 ServerView Common Command Interface (SCCI) 启用电源控制。还支持 ipmitool

  • raid

    支持 irmcno-raidagent。默认值为 no-raid

对于其他硬件接口,irmc 硬件类型支持 Bare Metal 参考接口。有关硬件接口的更多详细信息以及如何启用所需的接口,请参阅 启用硬件接口

这是一个完整的配置示例,其中为 irmc 硬件类型启用了大多数支持的硬件接口。

[DEFAULT]
enabled_hardware_types = irmc
enabled_bios_interfaces = irmc
enabled_boot_interfaces = irmc-virtual-media,irmc-pxe
enabled_console_interfaces = ipmitool-socat,ipmitool-shellinabox,no-console
enabled_deploy_interfaces = direct
enabled_inspect_interfaces = irmc,inspector,no-inspect
enabled_management_interfaces = irmc
enabled_network_interfaces = flat,neutron
enabled_power_interfaces = irmc
enabled_raid_interfaces = no-raid,irmc
enabled_storage_interfaces = noop,cinder
enabled_vendor_interfaces = no-vendor,ipmitool

这是一个使用 irmc 硬件类型注册节点的命令示例。

baremetal node create \
   --bios-interface irmc \
   --boot-interface irmc-pxe \
   --deploy-interface direct \
   --inspect-interface irmc  \
   --raid-interface irmc

节点配置

通过 driver_info 进行配置

  • 通过设置以下 ironic 节点对象的属性,为 irmc 硬件类型配置每个节点

    • driver_info/irmc_address 属性设置为 iRMC 的 IP 地址主机名

    • driver_info/irmc_username 属性设置为具有管理员权限的 iRMC 的 用户名

    • driver_info/irmc_password 属性设置为 irmc_username密码

    注意

    配备 iRMC S6 2.00 或更高版本固件的富士通服务器默认禁用局域网上的 IPMI。但是,用户可以通过 BMC 设置启用 IPMI。为了处理此更改,irmc 硬件类型首先尝试 IPMI,如果 IPMI 操作失败,irmc 硬件类型将使用富士通服务器的 Redfish API 来提供 Ironic 功能。因此,如果用户部署配备 iRMC S6 2.00 或更高版本的富士通服务器,则需要在 driver_info 中设置 Redfish 相关参数。

    • driver_info/redifsh_address 属性设置为 iRMC 的 IP 地址主机名。您可以将其前缀设置为协议(例如 https://)。如果您未提供协议,Ironic 会假定 HTTPS(即添加 https:// 前缀)。配备 S6 2.00 或更高版本的 iRMC 仅支持通过 Redfish API 进行 HTTPS 连接。

    • driver_info/redfish_username 为 iRMC 的具有管理权限的用户名

    • driver_info/redfish_passwordredfish_username 的密码

    • driver_info/redfish_verify_ca 接受 driver_info/irmc_verify_ca 中接受的值

    • driver_info/redfish_auth_typebasicsessionauto 之中的一个

  • 如果 [irmc] 部分的 port/etc/ironic/ironic.confdriver_info/irmc_port 中设置为 443,则 driver_info/irmc_verify_ca 将生效

    driver_info/irmc_verify_ca 属性采用以下 4 个值之一(默认值为 True

    • True:设置为 True 时,iRMC 驱动程序使用的证书文件由 requests Python 模块确定。

      driver_info/irmc_verify_ca 的值传递给 requests Python 模块中定义的函数的 verify 参数。因此,将使用哪个证书取决于 requests 模块的行为。(可能是由 certifi Python 模块提供的证书)

    • False:设置为 False 时,iRMC 驱动程序在通过 HTTPS 与 iRMC 连接期间不会使用证书文件验证服务器证书。只需停止验证服务器证书,但执行 HTTPS。

      警告

      设置为 False 时,用户必须注意这可能会导致易受攻击的情况。在 HTTPS 连接期间停止验证服务器证书意味着它无法防止中间人攻击。设置为 False 时,Ironic 用户必须在安全方面注意基础设施环境。(例如,确保 Ironic 调度程序和 iRMC 之间的网络是安全的)

    • 表示包含证书文件的目录的文件系统路径:在这种情况下,iRMC 驱动程序使用存储在指定目录中的证书文件。Ironic 调度程序必须能够访问该目录。为了使 iRMC 识别证书文件,Ironic 用户必须运行 openssl rehash <path_to_dir>

    • 表示证书文件的文件系统路径:在这种情况下,iRMC 驱动程序使用指定的证书文件。Ironic 调度程序必须可以访问该文件。

  • 如果使用 irmc-virtual-media 启动接口,还需要以下属性

    • driver_info/deploy_iso 属性为部署 ISO 文件名、Glance UUID 或 Image Service URL。

    • instance info/boot_iso 属性为启动 ISO 文件名、Glance UUID 或 Image Service URL。这与 ramdisk 部署接口一起使用。

    注意

    在 Xena 版本之前,deploy_isoboot_iso 属性分别称为 irmc_deploy_isoirmc_boot_iso

  • 如果启用了 irmc 检查接口并且需要 SNMPv3 检查,还需要以下属性

    • driver_info/irmc_snmp_user 属性为 SNMPv3 用户名。应在 iRMC 服务器端为此用户启用 SNMPv3 功能。

    • driver_info/irmc_snmp_auth_password 属性为身份验证协议密码。密码长度应至少为 8 个字符。

    • driver_info/irmc_snmp_priv_password 属性为隐私协议密码。密码长度应至少为 8 个字符。

通过 properties 进行配置

  • 通过设置以下 ironic 节点对象的属性,为 irmc 硬件类型配置每个节点

    • properties/capabilities 属性为 boot_mode:uefi,如果需要 UEFI 启动,或者为 boot_mode:bios,如果需要传统 BIOS。如果未设置此项,则 ironic.conf[default] 部分的 default_boot_mode 将被使用。

    • properties/capabilities 属性为 secure_boot:true,如果需要 UEFI 安全启动。有关更多信息,请参阅 UEFI 安全启动支持

通过 ironic.conf 进行配置

  • 通过在 /etc/ironic/ironic.conf[irmc] 部分中设置以下配置选项来配置所有节点

    • port:用于 iRMC 操作的端口;80 或 443。默认值为 443。可选。

      注意

      由于 iRMC S6 2.00,iRMC 固件不支持通过 HTTP 连接到 REST API。如果您部署使用 iRMS S6 2.00 及更高版本的服务器,请将 port 设置为 443。

      irmc 硬件类型提供名为 verify_stepverify_http_https_connection_and_fw_version,用于检查与 iRMC REST API 的 HTTP(S) 连接。如果成功建立 HTTP(S) 连接,则会获取并缓存 iRMC 固件版本。如果与 iRMC REST API 的 HTTP(S) 连接失败,Ironic 节点的状态将变为 enroll,并在日志消息中放置建议。此验证步骤的默认优先级为 10。

      如果操作员更新节点的 iRMC 固件版本,则操作员应运行 cache_irmc_firmware_version 节点供应商传递方法,以更新存储在 driver_internal_info/irmc_fw_version 中的 iRMC 固件版本。

    • auth_method: iRMC 操作的身份验证方法,可以是 basicdigest。默认值为 basic。可选。

    • client_timeout: iRMC 操作的超时时间(秒)。默认值为 60。可选。

    • sensor_method: 传感器数据检索方法,可以是 ipmitoolscci。默认值为 ipmitool。可选。

  • 如果启用了 irmc-virtual-media 启动接口,则需要以下选项

    • remote_image_share_root: Ironic conductor 节点的 NFSCIFS 根路径。默认值为 /remote_image_share_root

    • remote_image_server: 远程镜像服务器的 IP 地址。

    • remote_image_share_type: 虚拟介质的共享类型,可以是 NFSCIFS。默认值为 CIFS

    • remote_image_share_name: remote_image_server 的共享名称。默认值为 share

    • remote_image_user_name: remote_image_server 的用户名。

    • remote_image_user_password: remote_image_user_name 的密码。

    • remote_image_user_domain: remote_image_user_name 的域名。

  • 如果启用了 irmc inspect 接口,则需要以下选项

    • snmp_version: SNMP 协议版本,可以是 v1v2cv3。默认值为 v2c。可选。

    • snmp_port: SNMP 端口。默认值为 161。可选。

    • snmp_community: 版本 v1v2c 所需的 SNMP community。默认值为 public。可选。

    • snmp_security: 版本 v3 所需的 SNMP security 名称。可选。

    • snmp_auth_proto: SNMPv3 身份验证协议。如果使用 iRMC S4 或 S5,此选项的有效值为仅为 sha。如果使用 iRMC S6,有效值为 sha256sha384sha512。默认值为 sha。可选。

    • snmp_priv_proto: SNMPv3 隐私协议。有效值和默认值均为 aes。未来我们将添加更多受支持的有效值。可选。

      警告

      在使用 SNMPv3 inspection 时,我们已弃用 snmp_security 选项。对该选项的支持将在未来删除。相反,如果需要 SNMPv3 inspection,请为每个节点设置 driver_info/irmc_snmp_user 参数。

通过 driver_info 覆盖 ironic.conf 配置

  • 可以通过设置 ironic 节点对象的以下属性来进一步配置每个节点,这些属性会覆盖 [irmc] 部分的 /etc/ironic/ironic.conf 中的参数值

    • driver_info/irmc_port 属性覆盖 port

    • driver_info/irmc_auth_method 属性覆盖 auth_method

    • driver_info/irmc_client_timeout 属性覆盖 client_timeout

    • driver_info/irmc_sensor_method 属性覆盖 sensor_method

    • driver_info/irmc_snmp_version 属性覆盖 snmp_version

    • driver_info/irmc_snmp_port 属性覆盖 snmp_port

    • driver_info/irmc_snmp_community 属性覆盖 snmp_community

    • driver_info/irmc_snmp_security 属性覆盖 snmp_security

    • driver_info/irmc_snmp_auth_proto 属性覆盖 snmp_auth_proto

    • driver_info/irmc_snmp_priv_proto 属性覆盖 snmp_priv_proto

适用于 irmc 硬件类型的可选功能

UEFI 安全启动支持

硬件类型 irmc 支持安全启动部署,请参阅 UEFI 安全启动模式 以了解详细信息。

警告

使用 pxe 启动接口时,不支持安全启动功能。

节点清理支持

硬件类型 irmc 支持节点清理。有关节点清理的更多信息,请参阅 节点清理

支持的**自动化**清理操作

支持的自动化清理操作是

  • restore_irmc_bios_config: 从备份数据恢复裸机节点的 BIOS 设置。如果启用了此清理步骤,则在部署之前会自动备份裸机节点的 BIOS 设置。默认情况下,此清理步骤被禁用,优先级为 0。将其优先级设置为正整数以启用它。推荐值为 10

    警告

    pxe 启动接口与 irmc 硬件类型一起使用时,不支持此清理步骤。如果使用 irmc 硬件类型,则需要选择 irmc-pxeirmc-virtual-media 作为启动接口,才能使此清理步骤生效。

自动化清理步骤的配置选项列在 ironic.conf 中的 [irmc] 部分下

clean_priority_restore_irmc_bios_config = 0

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

从远程卷启动

硬件类型 irmc 支持基于通用 PXE 的远程卷启动,使用以下启动接口

  • irmc-pxe

  • pxe

此外,硬件类型 irmc 支持不使用 PXE 的远程卷启动。这在使用 irmc-virtual-media 启动接口时可用。此功能通过 iRMC 的 API 配置节点从远程卷启动。它支持 iSCSI 和 FibreChannel。

配置

除了配置通用驱动程序以 远程卷启动 之外,iRMC 驱动程序还需要以下配置

  • 有必要将物理端口 ID 设置为网络端口和卷连接器。应注册所有卡,包括未用于卷启动的卡。

    物理端口 ID 的格式为:<Card Type><Slot No>-<Port No>,其中

    • <Card Type>: 可以是 LANFCCNA

    • <Slot No>: 0 表示板载插槽。使用 1 到 9 表示附加插槽。

    • <Port No>: 从 1 开始的端口号。

    这些 ID 在节点的 driver_info[irmc_pci_physical_ids] 中指定。此值是一个字典。键是资源的 UUID(端口或卷连接器),其值为物理端口 ID。例如

    {
      "1ecd14ee-c191-4007-8413-16bb5d5a73a2":"LAN0-1",
      "87f6c778-e60e-4df2-bdad-2605d53e6fc0":"CNA1-1"
    }
    

    可以使用以下命令进行设置

    baremetal node set $NODE_UUID \
    --driver-info irmc_pci_physical_ids={} \
    --driver-info irmc_pci_physical_ids/$PORT_UUID=LAN0-1 \
    --driver-info irmc_pci_physical_ids/$VOLUME_CONNECTOR_UUID=CNA1-1
    
  • 对于 iSCSI 启动,需要具有 iqnip 类型两种类型的卷连接器。目前不支持 DHCP 配置。

  • 对于 iSCSI,需要存储网络的大小。此值应在节点的 driver_info[irmc_storage_network_size] 中指定。它必须是一个小于 32 的正整数。例如,如果存储网络是 10.2.0.0/22,请使用以下命令

    baremetal node set $NODE_UUID --driver-info irmc_storage_network_size=22
    

支持的硬件

该驱动程序支持 富士通 ServerView Virtual-IO Manager 支持的 PCI 控制器、光纤通道卡和融合网络适配器。

硬件检查支持

硬件类型 irmc 通过 irmc inspect 接口提供 iRMC 特定的硬件检查。

注意

SNMP 需要在 ServerView® iRMC S4 Web Server(网络设置SNMP 部分)中启用。

配置

iRMC 驱动程序中的硬件检查支持需要以下配置

  • 有必要在 ironic 配置中设置 gpu_idsfpga_ids 选项在 [irmc] 部分。

    gpu_idsfpga_ids<vendorID>/<deviceID> 列表,其中

    • <vendorID>: 以 ‘0x’ 开头的 4 个十六进制数字。

    • <deviceID>: 以 ‘0x’ 开头的 4 个十六进制数字。

    以下是 gpu_idsfpga_ids 的示例值

    gpu_ids = 0x1000/0x0079,0x2100/0x0080
    fpga_ids = 0x1000/0x005b,0x1100/0x0180
    
  • python-scciclient 包需要 pyghmi 版本 >= 1.0.22 和 pysnmp 版本 >= 4.2.3。它们由 conductor 服务在 conductor 上使用。最新的 pyghmi 版本可以从 这里 下载,pysnmp 可以从 这里 下载。

支持的属性

检查过程将发现以下属性

  • memory_mb: 内存大小

  • cpu_arch:cpu 架构

  • local_gb: 磁盘大小

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

  • irmc_firmware_version: iRMC 固件版本

  • rom_firmware_version: ROM 固件版本

  • server_model: 服务器型号

  • pci_gpu_devices: 连接到裸机 GPU 设备的数量。

检查还可以为 iRMC 驱动程序设置/取消节点特性,具有以下 CPU 类型

  • CUSTOM_CPU_FPGA: 裸机包含 fpga cpu 类型。

注意

  • 只有激活了 FUJITSU PRIMERGY 服务器的 eLCM 许可证,才能返回磁盘大小。如果未激活许可证,则硬件检查将无法获取此值。

  • 在检查之前,如果服务器处于关机状态,它将自动打开。系统将在开始检查之前等待几秒钟。检查完成后,电源状态将恢复到以前的状态。

操作员可以在计算服务 flavor 中指定这些功能,例如

openstack flavor set baremetal-flavor-name --property capabilities:irmc_firmware_version="iRMC S4-8.64F"

openstack flavor set baremetal-flavor-name --property capabilities:server_model="TX2540M1F5"

openstack flavor set baremetal-flavor-name --property capabilities:pci_gpu_devices="1"

有关更多详细信息和示例,请参阅 功能发现

操作员可以在计算服务 flavor 中添加一个特性,例如

baremetal node add trait $NODE_UUID CUSTOM_CPU_FPGA

有效的特性不得超过 255 个字符。标准特性在 os_traits 库中定义。自定义特性必须以 CUSTOM_ 前缀开头,并使用以下字符:A-Z、0-9 和 _。

RAID 配置支持

硬件类型 irmc 通过 irmc raid 接口提供 iRMC RAID 配置。

注意

  • RAID 实现适用于 irmc 硬件类型,基于 eLCM 许可证和 SDCard。否则,生命周期管理中的 SP(服务平台)必须可用。

  • RAID 实现仅支持富士通服务器中的 RAIDAdapter 0。

配置

iRMC 驱动程序中的 RAID 配置支持需要以下配置

  • 有必要将 ironic 配置设置为节点 JSON 文件选项

    $ baremetal node set <node-uuid-or-name> \
      --target-raid-config <JSON file containing target RAID configuration>
    

    以下是 JSON 文件的示例值

    {
        "logical_disks": [
            {
                "size_gb": 1000,
                "raid_level": "1"
        ]
    }
    

    或者

    {
        "logical_disks": [
            {
                "size_gb": 1000,
                "raid_level": "1",
                "controller": "FTS RAID Ctrl SAS 6G 1GB (D3116C) (0)",
                "physical_disks": [
                    "0",
                    "1"
                ]
            }
        ]
    }
    

注意

iRMC 驱动程序中 RAID 1+0 和 5+0 不支持在创建 RAID 配置期间 target_raid_config 中的 physical_disks 属性。请参阅以下示例

{
  "logical_disks":
    [
      {
        "size_gb": "MAX",
        "raid_level": "1+0"
      }
    ]
}

有关更多详细信息和示例,请参阅 RAID 配置

支持的属性

使用 iRMC 驱动程序的 RAID 配置支持 JSON 文件中的以下参数

  • size_gb:是 Ironic 中的必需属性。

  • raid_level:是 Ironic 中的必需属性。目前,iRMC 服务器支持以下 RAID 级别:0、1、5、6、1+0 和 5+0。

  • controller:是 RAID 接口读取的控制器的名称。

  • physical_disks:是 LogicalDrive 中每个 RAID 阵列的特定值,操作员希望将其与 raid_level 一起设置。

RAID 配置支持作为手动清理步骤。

注意

  • 应用创建/删除 RAID 配置后,iRMC 服务器将通电,FGI(前台初始化)将在 iRMC 服务器中处理 RAID 配置,因此在 iRMC 服务器上创建 RAID 后,操作将在通电和断电时完成。

有关更多详细信息和示例,请参阅 RAID 配置

BIOS 配置支持

硬件类型 irmc 通过 irmc bios 接口提供 iRMC BIOS 配置。

警告

irmc bios 接口不支持 factory_reset

python-scciclient0.10.0 版本开始,获得的 BIOS 设置可能不是最新的。如果您想获得最新的 BIOS 设置,则需要删除 iRMC 中的现有 BIOS 配置文件。例如

curl -u user:pass -H "Content-type: application/json" -X DELETE -i http://192.168.0.1/rest/v1/Oem/eLCM/ProfileManagement/BiosConfig

配置

iRMC 驱动程序中的 BIOS 配置支持以下设置

  • boot_option_filter:指定可以从哪些驱动器启动。它支持以下选项:UefiAndLegacyLegacyOnlyUefiOnly

  • check_controllers_health_status_enabled:UEFI FW 检查控制器健康状态。它支持以下选项:truefalse

  • cpu_active_processor_cores:活动处理器核心的数量 1…n。选项 0 表示所有可用的处理器核心都处于活动状态。

  • cpu_adjacent_cache_line_prefetch_enabled:处理器加载请求的缓存行和相邻的缓存行。它支持以下选项:truefalse

  • cpu_vt_enabled:支持基于虚拟化扩展的平台硬件和多个软件环境的虚拟化,以支持使用虚拟计算机的多个软件环境。它支持以下选项:truefalse

  • flash_write_enabled:可以写入系统 BIOS。可以进行 Flash BIOS 更新。它支持以下选项:truefalse

  • hyper_threading_enabled:超线程技术允许单个物理处理器核心显示为多个逻辑处理器。它支持以下选项:truefalse

  • keep_void_boot_options_enabled:启动选项不会从“启动选项优先级”列表中删除。它支持以下选项:truefalse

  • launch_csm_enabled:指定是否执行兼容性支持模块 (CSM)。它支持以下选项:truefalse

  • os_energy_performance_override_enabled:防止操作系统覆盖任何设置的节能策略。它支持以下选项:truefalse

  • pci_aspm_support:使用主动状态电源管理 (ASPM) 来电源管理 PCI Express 链路,从而消耗更少的功率。它支持以下选项:DisabledAutoL0LimitedL1onlyL0Force

  • pci_above_4g_decoding_enabled:指定是否可以将 4GB 地址边界之上的内存资源分配给 PCI 设备。它支持以下选项:truefalse

  • power_on_source:指定系统上电源由 BIOS 或 ACPI 操作系统管理。它支持以下选项:BiosControlledAcpiControlled

  • single_root_io_virtualization_support_enabled:已激活单根 IO 虚拟化支持。它支持以下选项:truefalse

BIOS 配置支持作为手动清理步骤。有关更多详细信息和示例,请参阅 BIOS 配置

支持的平台

此驱动程序支持 FUJITSU PRIMERGY RX M4 服务器及更高版本。

当使用 irmc 电源接口时,软重启(优雅重置)和软关机(优雅关机)仅在安装 ServerView 代理 时可用。有关更多详细信息,请参阅 iRMC S4 手册

RAID 配置功能支持配备 RAID-Ctrl-SAS-6G-1GB(D3116C) 控制器及更高版本的 FUJITSU PRIMERGY 服务器。有关支持使用 OOB-RAID 配置的详细控制器,请参阅 iRMC RAID 配置白皮书