裸机置备
安装和配置裸机置备服务(ironic)
摘要
第 1 章 裸机置备服务(ironic)功能 复制链接链接已复制到粘贴板!
您可以使用裸机置备服务(ironic)组件为云用户置备和管理物理机作为裸机实例。要置备和管理裸机实例,裸机置备服务与 overcloud 中的以下 Red Hat OpenStack Platform (RHOSP)服务交互:
- 计算服务(nova)为虚拟机实例管理提供调度、租户配额和面向用户的 API。裸机置备服务为硬件管理提供管理 API。
- Identity 服务(keystone)提供请求身份验证,并帮助裸机置备服务定位其他 RHOSP 服务。
- Image 服务(glance)管理磁盘和实例镜像以及镜像元数据。
- 网络服务(neutron)提供 DHCP 和网络配置,并调配实例在引导时连接到的虚拟或物理网络。
- Object Storage 服务(swift)为某些驱动程序公开临时镜像 URL。
裸机置备服务组件
裸机置备服务由名为 ironic-* 的服务组成。以下服务是核心裸机置备服务:
- 裸机置备 API (
ironic-api) - 此服务为用户提供外部 REST API。API 通过远程过程调用(RPC)将应用程序请求发送到裸机置备编排器。
- 裸机置备编排器(
ironic-conductor) 此服务使用驱动程序来执行以下裸机节点管理任务:
- 添加、编辑和删除裸机节点。
- 使用 IPMI、Redfish 或其他特定于供应商的协议打开和关闭裸机节点。
- 置备、部署和清理裸机节点。
- 裸机置备检查器(
ironic-inspector) - 此服务发现调度裸机实例所需的裸机节点的硬件属性,并为发现的以太网 MAC 创建裸机置备服务端口。
- 裸机置备数据库
- 此数据库跟踪硬件信息和状态。
- 消息队列
-
所有服务都使用此消息传递服务相互通信,包括在
ironic-api和ironic-conductor之间实现 RPC。 - 裸机置备代理(
ironic-python-agent) -
此服务在临时 ramdisk 中运行,以提供
ironic-conductor和ironic-inspector服务,具有远程访问、带外硬件控制和硬件内省。
置备裸机实例
裸机置备服务使用 iPXE 将物理计算机调配为裸机实例。下图显示了当云用户使用默认驱动程序启动一个新的裸机实例时,RHOSP 服务如何在置备过程中交互。
第 2 章 裸机置备的要求 复制链接链接已复制到粘贴板!
为了提供可以启动裸机实例的 overcloud,您的 Red Hat OpenStack Platform (RHOSP)环境必须具有所需的硬件和网络配置。
2.1. 硬件要求 复制链接链接已复制到粘贴板!
要提供给您的云用户使用的裸机的硬件要求取决于操作系统。有关 Red Hat Enterprise Linux 安装的硬件要求的详情,请查看 Red Hat Enterprise Linux 产品文档。
要提供给您的云用户进行置备的所有裸机都必须具有以下功能:
- 用于连接到裸机网络的 NIC。
-
一个电源管理接口,如 Redfish 或 IPMI,它连接到可从
ironic-conductor服务访问的网络。默认情况下,ironic-conductor在所有 Controller 节点上运行,除非您使用可组合角色并在其他位置运行ironic-conductor。 - 裸机网络上的 PXE 引导。在部署中的所有其他 NIC 中禁用 PXE 引导。
2.2. 网络要求 复制链接链接已复制到粘贴板!
裸机网络必须是专用网络,供裸机置备服务用于以下操作:
- overcloud 上裸机的配置和管理。
- 在节点未置备时清理裸机节点。
- 对裸机的租户访问权限。
裸机网络提供 DHCP 和 PXE 引导功能来发现裸机系统。此网络必须在中继接口上使用原生 VLAN,以便裸机置备服务能够提供 PXE 引导和 DHCP 请求。
overcloud 中的裸机置备服务是为可信租户环境而设计的,因为裸机机器可直接访问 Red Hat OpenStack Platform (RHOSP)环境的 control plane 网络。因此,默认的裸机网络对 ironic-conductor 服务使用扁平网络。
默认扁平置备网络可以在客户环境中引入安全问题,因为租户可能会干扰 control plane 网络。要防止这种风险,您可以为无法访问 control plane 的裸机置备服务配置自定义可组合裸机置备网络。
置备必须取消标记裸机网络,还必须访问裸机置备 API。control plane 网络(也称为 director 置备网络)始终没有被标记。可以标记其他网络。
托管裸机置备服务的 Controller 节点必须有权访问裸机网络。
裸机机器配置为 PXE 引导的 NIC 必须能够访问裸机网络。
裸机网络由 OpenStack 操作器创建。云用户可以直接访问公共 OpenStack API 和裸机网络。使用默认扁平裸机网络,云用户也具有对 control plane 的间接访问权限。
裸机置备服务使用裸机网络来清理节点。
2.2.1. 默认裸机网络 复制链接链接已复制到粘贴板!
在默认的裸机置备服务部署架构中,裸机网络与 control plane 网络分开。裸机网络是一个扁平网络,也是租户网络。此网络必须路由到 control plane 上的裸机置备服务,称为 director 置备网络。如果您定义了隔离的裸机网络,裸机节点将无法 PXE 引导。
默认裸机网络架构图
2.2.2. 自定义可组合裸机网络 复制链接链接已复制到粘贴板!
当您在裸机置备服务部署架构中使用自定义可组合裸机网络时,裸机网络是一个自定义可组合网络,无法访问 control plane。如果要限制对 control plane 的访问,请使用自定义可组合裸机网络。
第 3 章 使用裸机置备服务部署 overcloud 复制链接链接已复制到粘贴板!
要使用裸机置备服务(ironic)部署 overcloud,您必须创建和配置裸机网络,并将 overcloud 配置为启用裸机置备。
创建裸机网络。您可以重复使用 Controller 节点上的 provisioning 网络接口来创建扁平网络,也可以创建自定义网络:
配置 overcloud 以启用裸机置备:
如果使用 Open Virtual Network (OVN),则裸机置备服务只支持 ironic-overcloud.yaml 文件中定义的 DHCP 代理,即 neutron-dhcp-agent。OVN 上的内置 DHCP 服务器无法置备裸机节点,或为置备网络提供 DHCP。要启用 iPXE 链加载,您必须在 dnsmasq 中设置 --dhcp-match 标签,这不受 OVN DHCP 服务器的支持。
前提条件
- 您的环境满足最低要求。如需更多信息,请参阅裸机置备的要求。
3.1. 配置默认扁平网络 复制链接链接已复制到粘贴板!
要使用默认的扁平裸机网络,您可以重复使用 Controller 节点上的 provisioning 网络接口,以便为裸机置备服务(ironic)创建桥接。
流程
-
以
stack用户的身份登录 undercloud。 Source
stackrc文件:source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
/home/stack/templates/nic-configs/controller.yaml文件,以重复利用 Controller 节点eth1上的 provisioning 网络接口,以便为裸机网络创建一个桥接:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在创建裸机网络时,您无法通过重新使用 provisioning 网络来标记裸机网络。
将
br-baremetal添加到network-environment.yaml文件中的NeutronBridgeMappings参数:parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
baremetal添加到network-environment.yaml文件中的NeutronFlatNetworks参数指定的网络列表中:parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetal
parameter_defaults: NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal NeutronFlatNetworks: datacentre,baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
3.2. 配置自定义 IPv4 置备网络 复制链接链接已复制到粘贴板!
创建自定义 IPv4 调配网络,以通过 IPv4 来置备和部署 overcloud。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
network_data.yaml文件复制到环境文件目录中:cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在您的
network_data.yaml文件中为 overcloud 置备添加新网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ipv4_subnet_address> 替换为 IPv4 子网的 IPv4 地址。 -
将
<ipv4_mask> 替换为 IPv4 子网的 IPv4 网络掩码。 -
将
<ipv4_start_address> 和 <ipv4_end_address> 替换为您要用于地址分配的 IPv4 范围。
-
将
在
ServiceNetMap配置中配置IronicApiNetwork和IronicNetwork,以使用新的 IPv4 置备网络:ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioning
ServiceNetMap: IronicApiNetwork: oc_provisioning IronicNetwork: oc_provisioningCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将新网络作为接口添加到本地 Controller NIC 配置文件中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roles_data.yaml文件复制到环境文件目录中:cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将控制器的新网络添加到您的
roles_data.yaml文件中:networks: ... OcProvisioning: subnet: oc_provisioning_subnetnetworks: ... OcProvisioning: subnet: oc_provisioning_subnetCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果还没有存在,在您的
roles_data.yaml文件的Ironic角色中包括IronicInspector服务:ServicesDefault: OS::TripleO::Services::IronicInspector
ServicesDefault: OS::TripleO::Services::IronicInspectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
3.3. 配置自定义 IPv6 置备网络 复制链接链接已复制到粘贴板!
创建自定义 IPv6 置备网络,以在 IPv6 上置备和部署 overcloud。
流程
-
以
stack用户的身份登录 undercloud。 Source
stackrc文件:source ~/stackrc
[stack@director ~]$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
network_data.yaml文件复制到环境文件目录中:cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在您的
network_data.yaml文件中为 overcloud 置备添加新的 IPv6 网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ipv6_subnet_address> 替换为 IPv6 子网的 IPv6 地址。 -
将
<ipv6_prefix> 替换为 IPv6 子网的 IPv6 网络前缀。 -
将
<ipv6_start_address> 和 <ipv6_end_address> 替换为您要用于地址分配的 IPv6 范围。 -
将
<ipv6_gw_address> 替换为网关的 IPv6 地址。
-
将
在环境文件目录中创建新文件
network_environment_overrides.yaml:touch /home/stack/templates/network_environment_overrides.yaml
$ touch /home/stack/templates/network_environment_overrides.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
network_environment_overrides.yaml文件中配置IronicApiNetwork和IronicNetwork以使用新的 IPv6 置备网络:ServiceNetMap: IronicApiNetwork: oc_provisioning_ipv6 IronicNetwork: oc_provisioning_ipv6
ServiceNetMap: IronicApiNetwork: oc_provisioning_ipv6 IronicNetwork: oc_provisioning_ipv6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
IronicIpVersion参数设置为6:parameter_defaults: IronicIpVersion: 6
parameter_defaults: IronicIpVersion: 6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
RabbitIPv6、MysqlIPv6和RedisIPv6参数:parameter_defaults: RabbitIPv6: True MysqlIPv6: True RedisIPv6: True
parameter_defaults: RabbitIPv6: True MysqlIPv6: True RedisIPv6: TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将新网络作为接口添加到本地 Controller NIC 配置文件中:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
roles_data.yaml文件复制到环境文件目录中:cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
(undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在您的
roles_data.yaml文件中为 Controller 角色添加新网络:networks: ... - OcProvisioningIPv6
networks: ... - OcProvisioningIPv6Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果还没有存在,在您的
roles_data.yaml文件的Ironic角色中包括IronicInspector服务:ServicesDefault: OS::TripleO::Services::IronicInspector
ServicesDefault: OS::TripleO::Services::IronicInspectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow
后续步骤
3.4. 配置 overcloud 以启用裸机置备 复制链接链接已复制到粘贴板!
使用位于 /usr/share/openstack-tripleo-heat-templates/environments/services 目录中的一个默认模板,在启用了裸机置备服务(ironic)的情况下部署 overcloud:
-
对于使用 OVS 的部署:
ironic.yaml -
对于使用 OVN 的部署:
ironic-overcloud.yaml
您可以创建一个本地环境文件来覆盖部署所需的默认配置。
流程
-
在本地目录中创建环境文件,为您的部署配置裸机置备服务,如
ironic-overrides.yaml。 可选:配置在置备前以及置备间要在裸机上执行的清理类型:
parameter_defaults: IronicCleaningDiskErase: <cleaning_type>
parameter_defaults: IronicCleaningDiskErase: <cleaning_type>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<cleaning_type> 替换为以下值之一:-
full:(默认)执行完整清理。 -
元数据:仅清理分区表。这种类型的清理可显著加快清理过程。但是,由于在多租户环境中部署安全性较低,因此仅在可信租户环境中使用此选项。
-
可选:在默认驱动程序中添加附加驱动程序:
parameter_defaults: IronicEnabledHardwareTypes: ipmi,idrac,ilo,[additional_driver_1],...,[additional_driver_n]
parameter_defaults: IronicEnabledHardwareTypes: ipmi,idrac,ilo,[additional_driver_1],...,[additional_driver_n]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 用您要启用的额外驱动程序替换
[additional_driver_1],(可选)以及直到[additional_driver_n]。要启用裸机内省,请将以下配置添加到本地裸机置备服务环境文件
ironic-overrides.yaml中:parameter_defaults: IronicInspectorSubnets: - ip_range: <ip_range> IPAImageURLs: '["http://<ip_address>:<port>/agent.kernel", "http://<ip_address>:<port>/agent.ramdisk"]' IronicInspectorInterface: '<baremetal_interface>'parameter_defaults: IronicInspectorSubnets: - ip_range: <ip_range> IPAImageURLs: '["http://<ip_address>:<port>/agent.kernel", "http://<ip_address>:<port>/agent.ramdisk"]' IronicInspectorInterface: '<baremetal_interface>'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ip_range> 替换为您的环境的 IP 范围,例如192.168.0.100、192.168.0.120。 -
将
<ip_address>:<port> 替换为托管 IPA 内核和 ramdisk 的 web 服务器的 IP 地址和端口。要使用您在 undercloud 上使用的同一镜像,请将 IP 地址设置为 undercloud IP 地址,并将端口设为8088。如果省略此参数,则必须在每个 Controller 节点上包含替代方案。 -
将
<baremetal_interface>替换为裸机网络接口,例如br-baremetal。
-
将
将您的新角色和自定义虚拟环境文件添加到带有其他环境文件的堆栈中,并部署 overcloud:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<default_ironic_template> 替换为ironic.yaml或ironic-overcloud.yaml,具体取决于部署的网络服务机制驱动程序。
注意将环境文件传递给
openstack overcloud deploy命令的顺序非常重要,因为后续文件中的配置具有优先权。因此,在 overcloud 上启用和配置裸机置备的环境文件必须在任何网络配置文件后传递给 命令。-
将
3.5. 测试裸机置备服务 复制链接链接已复制到粘贴板!
您可以使用 OpenStack Integration Test Suite 来验证 Red Hat OpenStack 部署。如需更多信息,请参阅 OpenStack Integration Test Suite 指南。
裸机置备服务的其他验证方法:
配置 shell 以管理用户访问身份:
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
nova-compute服务是否在 Controller 节点上运行:openstack compute service list -c Binary -c Host -c Status
$ openstack compute service list -c Binary -c Host -c StatusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您更改了默认的 ironic 驱动程序,请确保启用了所需的驱动程序:
openstack baremetal driver list
$ openstack baremetal driver listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 确保列出了 ironic 端点:
openstack catalog list
$ openstack catalog listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 其他资源 复制链接链接已复制到粘贴板!
- Director 安装和使用指南中的部署命令选项
- Overcloud 的 IPv6 网络
- Overcloud 参数指南中的裸机 (ironic) 参数
第 4 章 部署后配置裸机置备服务 复制链接链接已复制到粘贴板!
使用裸机置备服务(ironic)部署 overcloud 后,您必须为裸机工作负载准备 overcloud。要为裸机工作负载准备 overcloud,并让您的云用户创建裸机实例,请完成以下任务:
- 配置网络服务(neutron),以与裸机置备服务集成。
- 配置节点清理。
- 创建裸机类别和资源类。
- 可选:创建裸机镜像。
- 将物理计算机添加为裸机节点。
- 可选:配置 Redfish 虚拟介质引导。
- 可选:创建主机聚合来分隔物理和虚拟置备。
4.1. 为裸机置备配置网络服务 复制链接链接已复制到粘贴板!
您可以配置 Networking 服务(neutron)来与裸机置备服务(ironic)集成。您可以使用以下方法之一配置裸机网络:
-
为裸机置备编排器服务
ironic-conductor创建单个扁平裸机网络。此网络必须路由到 control plane 网络上的裸机置备服务。 - 创建自定义可组合网络,以在 overcloud 中实施裸机置备服务。
4.1.1. 配置网络服务,以便与扁平网络上的裸机置备服务集成 复制链接链接已复制到粘贴板!
您可以通过为裸机置备编排器服务 ironic-conductor 创建单一裸机网络,将网络服务(neutron)配置为与裸机置备服务(ironic)集成。此网络必须路由到 control plane 网络上的裸机置备服务。
步骤
-
以
root用户身份登录托管 Networking 服务(neutron)的节点。 提供 overcloud 凭证文件:
source ~/<credentials_file>
# source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
创建扁平网络,以置备裸机实例:
openstack network create \ --provider-network-type flat \ --provider-physical-network <provider_physical_network> \ --share <network_name>
# openstack network create \ --provider-network-type flat \ --provider-physical-network <provider_physical_network> \ --share <network_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
provider_physical_network> 替换为您实现虚拟网络的物理网络名称,该网络被配置为network-environment.yaml文件中的NeutronBridgeMappings参数。 -
将
<network_name> 替换为这个网络的名称。
-
将 <
在扁平网络上创建子网:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
;network_name> 替换为您在上一步中创建的 provisioning 网络的名称。 -
将 <
network_cidr> 替换为子网所代表的 IP 地址块的无类别域间路由(CIDR)表示。您以 <start_ip> 开头并以 <gt; 结尾的范围中指定的 IP 地址块必须是在 <end_ip&network_cidr>指定的 IP 地址块中。 -
使用充当新子网的网关的路由器接口的 IP 地址或主机名替换
<gateway_ip>。这个地址必须在由 <network_cidr> 指定的 IP 地址块内,但由范围指定的 IP 地址块之外,以 <start_ip> 开头并以 <end_ip> 结尾。 -
将
<start_ip> 替换为 IP 地址,该地址表示从其分配浮动 IP 地址的新子网中 IP 地址范围的开头。 -
将
<end_ip> 替换为 IP 地址,该地址表示从其分配浮动 IP 地址的新子网中 IP 地址范围的末尾。 -
将
<subnet_name> 替换为子网的名称。
-
将 <
为网络和子网创建一个路由器,以确保网络服务提供元数据请求:
openstack router create <router_name>
# openstack router create <router_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<router_name> 替换为路由器的名称。
-
将
将子网附加到新路由器,以启用来自
cloud-init的元数据请求,以及要配置的节点:openstack router add subnet <router_name> <subnet>
# openstack router add subnet <router_name> <subnet>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<router_name> 替换为路由器的名称。 -
将 &
lt;subnet> 替换为在第 4 步中创建的裸机子网的 ID 或名称。
-
将
4.1.2. 配置网络服务,以在自定义可组合网络上与裸机置备服务集成 复制链接链接已复制到粘贴板!
您可以通过创建自定义可组合网络以在 overcloud 中实施裸机置备服务(neutron),将网络服务(neutron)配置为与裸机置备服务(ironic)集成。
步骤
- 登录 undercloud 主机。
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
检索托管裸机置备服务的提供商网络的 UUID:
openstack network show <network_name> -f value -c id
(overcloud)$ openstack network show <network_name> -f value -c idCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
network_name> 替换为您要用于裸机实例置备的提供商网络的名称。
-
将 <
-
打开本地环境文件,为您的部署配置裸机置备服务,如
ironic-overrides.yaml。 配置网络,以用作裸机实例置备网络:
parameter_defaults: IronicProvisioningNetwork: <network_uuid>
parameter_defaults: IronicProvisioningNetwork: <network_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<network_uuid> 替换为在第 3 步中获取的提供商网络的 UUID。
-
将
查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要应用裸机实例置备网络配置,请将裸机置备环境文件添加到带有其他环境文件的堆栈中,并部署 overcloud:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<default_ironic_template> 替换为ironic.yaml或ironic-overcloud.yaml,具体取决于部署的网络服务机制驱动程序。
-
将
4.2. 清理裸机节点 复制链接链接已复制到粘贴板!
裸机置备服务会清理节点,以准备它们以进行置备。您可以使用以下方法之一清理裸机节点:
- 自动 :您可以将 overcloud 配置为在取消置备节点时自动执行节点清理。
- 手动:您可以根据需要手动清理单个节点。
4.2.1. 配置自动节点清理 复制链接链接已复制到粘贴板!
自动裸机节点清理在注册节点后运行,并在节点达到 可用置备状态 之前。每次节点未置备时都会运行自动清理。
默认情况下,Bare Metal Provisioning 服务使用名为 provisioning 的网络来清理节点。但是,网络名称在网络服务(neutron)中不是唯一的,因此项目有可能创建具有相同名称的网络,这会导致与裸机置备服务冲突。要避免冲突,请使用网络 UUID 来配置节点清理网络。
流程
- 登录 undercloud 主机。
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
检索托管裸机置备服务的提供商网络的 UUID:
openstack network show <network_name> -f value -c id
(overcloud)$ openstack network show <network_name> -f value -c idCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将 <
;network_name> 替换为您要用于裸机节点清理网络的网络名称。
-
将 <
-
打开本地环境文件,为您的部署配置裸机置备服务,如
ironic-overrides.yaml。 配置网络,以用作节点清理网络:
parameter_defaults: IronicCleaningNetwork: <network_uuid>
parameter_defaults: IronicCleaningNetwork: <network_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<network_uuid> 替换为在第 3 步中获取的提供商网络的 UUID。
-
将
查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要应用节点清理网络配置,请将裸机置备环境文件添加到带有其他环境文件的堆栈中,并部署 overcloud:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<default_ironic_template> 替换为ironic.yaml或ironic-overcloud.yaml,具体取决于部署的网络服务机制驱动程序。
-
将
4.2.2. 手动清理节点 复制链接链接已复制到粘贴板!
您可以根据需要手动清理特定的节点。节点清理有两种模式:
- 仅元数据清理:从节点上的所有磁盘中删除分区。清理的元数据模式比完全清理更快,但安全性较低,因为它仅擦除分区表。仅在可信租户环境中使用此模式。
- full clean :使用 ATA 安全清除或清除所有磁盘删除所有数据。完成完全清理可能需要几小时时间。
流程
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
检查节点的当前状态:
openstack baremetal node show \ -f value -c provision_state <node>
$ openstack baremetal node show \ -f value -c provision_state <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node> 替换为要清理的节点的名称或 UUID。
-
将
如果节点不处于
manageable状态,则将其设置为manageable:openstack baremetal node manage <node>
$ openstack baremetal node manage <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 清理节点:
openstack baremetal node clean <node> \ --clean-steps '[{"interface": "deploy", "step": "<clean_mode>"}]'$ openstack baremetal node clean <node> \ --clean-steps '[{"interface": "deploy", "step": "<clean_mode>"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node> 替换为要清理的节点的名称或 UUID。 将
<clean_mode> 替换为要在节点上执行的清理类型:-
erase_devices:执行完整清理。 -
erase_devices_metadata:仅执行元数据清理。
-
-
将
等待清理完成,然后检查节点的状态:
-
可管理:清理成功,节点已准备好调配。 -
清理失败:清理失败。检查last_error字段,以了解故障原因。
-
4.3. 创建用于启动裸机实例的类别 复制链接链接已复制到粘贴板!
您必须创建可供您的云用户用于请求裸机实例的类别。您可以使用资源类来指定应将哪些裸机节点用于使用特定类别启动的裸机实例。您可以使用标识节点上的硬件资源的资源类标记裸机节点,如 GPU。云用户可以选择 GPU 资源类的类别,以便为 vGPU 工作负载创建实例。计算调度程序使用资源类来识别适合实例的主机裸机节点。
流程
提供 overcloud 凭证文件:
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为裸机实例创建类别:
openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> baremetal
(overcloud)$ openstack flavor create --id auto \ --ram <ram_size_mb> --disk <disk_size_gb> \ --vcpus <no_vcpus> baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ram_size_mb>替换为裸机节点的 RAM,以 MB 为单位。 -
将
<disk_size_gb>替换为裸机节点中的磁盘大小(以 GB 为单位)。 将
<no_vcpus>替换为裸机节点中的 CPU 数量。注意这些属性不可用于调度实例。但是,计算调度程序使用磁盘大小来确定根分区大小。
-
将
检索节点列表来识别它们的 UUID:
openstack baremetal node list
(overcloud)$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用自定义裸机资源类标记每个裸机节点:
openstack baremetal node set \ --resource-class baremetal.<CUSTOM> <node>
(overcloud)$ openstack baremetal node set \ --resource-class baremetal.<CUSTOM> <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<CUSTOM> 替换为标识资源类用途的字符串。例如,设置为GPU以创建自定义 GPU 资源类,您可以使用它来标记您要为 GPU 工作负载指定的裸机节点。 -
将
<node>替换为裸机节点的 ID。
-
将
将裸机实例的类别与自定义资源类关联:
openstack flavor set \ --property resources:CUSTOM_BAREMETAL_<CUSTOM>=1 \ baremetal
(overcloud)$ openstack flavor set \ --property resources:CUSTOM_BAREMETAL_<CUSTOM>=1 \ baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要确定与裸机节点的资源类对应的自定义资源类的名称,请将资源类转换为大写,将每个标点标记替换为下划线,并将前缀替换为
CUSTOM_。注意类别只能请求一个裸机资源类实例。
设置以下类别属性,以防止计算调度程序使用裸机类别属性来调度实例:
openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 baremetal
(overcloud)$ openstack flavor set \ --property resources:VCPU=0 \ --property resources:MEMORY_MB=0 \ --property resources:DISK_GB=0 baremetalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新类别是否具有正确的值:
openstack flavor list
(overcloud)$ openstack flavor listCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 创建用于启动裸机实例的镜像 复制链接链接已复制到粘贴板!
包括裸机置备服务的 overcloud (ironic)需要两组镜像:
-
部署镜像:部署镜像是
代理。ramdisk和agent.kernel镜像,裸机置备代理(ironic-python-agent)需要通过网络引导 RAM 磁盘,并将 overcloud 节点的用户镜像复制到磁盘。作为 undercloud 安装的一部分安装部署镜像。有关更多信息,请参阅 获取 overcloud 节点的镜像。 User images:云用户用来调配其裸机实例的镜像。用户镜像包括一个
kernel镜像,一个ramdisk镜像和一个main镜像。主镜像是根分区,也可以是整个磁盘镜像:- 完整磁盘镜像:包含分区表和引导装载程序的镜像。
- 根分区镜像:仅包含操作系统的 root 分区。
兼容全磁盘 RHEL 客户机镜像应该无需修改即可工作。要创建自己的自定义磁盘镜像,请参阅创建和管理 镜像指南中的创建 镜像。
4.4.1. 上传部署镜像到镜像服务 复制链接链接已复制到粘贴板!
您必须将 director 安装的部署镜像上传到镜像服务。部署镜像由以下两个镜像组成:
-
内核镜像:
/tftpboot/agent.kernel -
ramdisk 镜像:
/tftpboot/agent.ramdisk
这些镜像安装在主目录中。如需有关如何安装部署镜像的更多信息,请参阅 获取 overcloud 节点的镜像。
流程
- 提取镜像并将其上传到镜像服务:
4.5. 将物理机添加为裸机节点 复制链接链接已复制到粘贴板!
使用以下方法之一注册裸机节点:
- 准备包含节点详情的清单文件,将该文件导入到裸机置备服务,并使节点可用。
-
将物理计算机注册为裸机节点,然后手动添加其硬件详细信息并为每个以太网 MAC 地址创建端口。您可以在具有
overcloudrc文件的任何节点上执行这些步骤。
4.5.1. 使用清单文件注册裸机节点 复制链接链接已复制到粘贴板!
使用节点详情准备清单文件,将该文件导入到裸机置备服务(ironic)中,并使节点可用。
前提条件
- 包括裸机置备服务的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
创建包含节点详情的清单文件
overcloud-nodes.yaml。您可以使用一个文件注册多个节点。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<ipmi_ip> 替换为裸机控制器的地址。 -
将 &
lt;user> 替换为您的用户名。 -
将 &
lt;password> 替换为您的密码。 -
可选:将
<property>: <value> 替换为您要配置的 IPMI 属性以及属性值。有关可用属性的详情,请参考 智能平台管理接口(IPMI)电源管理驱动程序。 -
将
<cpu_count> 替换为 CPU 数量。 -
将
<cpu_arch> 替换为 CPU 的架构类型。 -
将
<memory> 替换为 MiB 中的内存量。 -
将
<root_disk> 替换为 GiB 中根磁盘的大小。只有当机器有多个磁盘时才需要。 -
将
<serial> 替换为您要用于部署的磁盘的序列号。 -
将
<mac_address> 替换为用于 PXE 引导的 NIC 的 MAC 地址。 - --driver-info <property>=<value>
-
将
获取
overcloudrc文件:source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将清单文件导入到裸机置备服务中:
openstack baremetal create overcloud-nodes.yaml
$ openstack baremetal create overcloud-nodes.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 节点现在处于
注册状态。指定部署内核和在每个节点上部署 ramdisk:
openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>
$ openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为节点的名称或 ID。 -
将
<kernel_file> 替换为.kernel镜像的路径,例如file:///var/lib/ironic/httpboot/agent.kernel。 -
将
<initramfs_file> 替换为.initramfs镜像的路径,如file:///var/lib/ironic/httpboot/agent.ramdisk。
-
将
可选:为每个节点指定 IPMI 密码套件:
openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为节点的名称或 ID。 将
<version> 替换为节点上要使用的密码套件版本。设置为以下有效值之一:-
3- 节点使用带有 SHA1 密码套件的 AES-128。 -
17- 节点使用带有 SHA256 密码套件的 AES-128。
-
-
将
将节点的置备状态设置为
available:openstack baremetal node manage <node> openstack baremetal node provide <node>
$ openstack baremetal node manage <node> $ openstack baremetal node provide <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果启用了的节点清理,Bare Metal Provisioning 服务会清理节点。
在节点上设置本地引导选项:
openstack baremetal node set <node> --property capabilities="boot_option:local"
$ openstack baremetal node set <node> --property capabilities="boot_option:local"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查节点是否已注册:
openstack baremetal node list
$ openstack baremetal node listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注册节点及其状态之间可能会有延迟。
4.5.2. 手动注册裸机节点 复制链接链接已复制到粘贴板!
将物理计算机注册为裸机节点,然后手动添加其硬件详细信息并为每个以太网 MAC 地址创建端口。您可以在具有 overcloudrc 文件的任何节点上执行这些步骤。
前提条件
- 包括裸机置备服务的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
-
必须使用
IronicEnabledHardwareTypes参数启用新节点的驱动程序。有关支持的驱动程序的更多信息,请参阅 裸机驱动程序。
流程
-
以
stack用户身份登录 undercloud 主机。 提供 overcloud 凭证文件:
source ~/overcloudrc
(undercloud)$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新节点:
openstack baremetal node create --driver <driver_name> --name <node_name>
$ openstack baremetal node create --driver <driver_name> --name <node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<driver_name> 替换为驱动程序的名称,如ipmi。 -
将
<node_name> 替换为新裸机节点的名称。
-
将
- 请注意在创建节点时分配给节点的 UUID。
为每个注册的节点将引导选项设置为
local:openstack baremetal node set \ --property capabilities="boot_option:local" <node>
$ openstack baremetal node set \ --property capabilities="boot_option:local" <node>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<node>替换为裸机节点的 UUID。为节点驱动程序指定部署内核和部署 ramdisk:
openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>
$ openstack baremetal node set <node> \ --driver-info deploy_kernel=<kernel_file> \ --driver-info deploy_ramdisk=<initramfs_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的 ID。 -
将
<kernel_file> 替换为.kernel镜像的路径,例如file:///var/lib/ironic/httpboot/agent.kernel。 -
将
<initramfs_file> 替换为.initramfs镜像的路径,如file:///var/lib/ironic/httpboot/agent.ramdisk。
-
将
更新节点属性以匹配节点上的硬件规格:
openstack baremetal node set <node> \ --property cpus=<cpu> \ --property memory_mb=<ram> \ --property local_gb=<disk> \ --property cpu_arch=<arch>
$ openstack baremetal node set <node> \ --property cpus=<cpu> \ --property memory_mb=<ram> \ --property local_gb=<disk> \ --property cpu_arch=<arch>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的 ID。 -
将
<cpu> 替换为 CPU 数量。 -
将 &
lt;ram> 替换为 RAM (以 MB 为单位)。 -
将
<disk>替换为磁盘大小(以 GB 为单位)。 -
将 &
lt;arch> 替换为 architecture 类型。
-
将
可选:为每个节点指定 IPMI 密码套件:
openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>
$ openstack baremetal node set <node> \ --driver-info ipmi_cipher_suite=<version>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的 ID。 将
<version> 替换为节点上要使用的密码套件版本。设置为以下有效值之一:-
3- 节点使用带有 SHA1 密码套件的 AES-128。 -
17- 节点使用带有 SHA256 密码套件的 AES-128。
-
-
将
可选:指定每个节点的 IPMI 详情:
openstack baremetal node set <node> \ --driver-info <property>=<value>
$ openstack baremetal node set <node> \ --driver-info <property>=<value>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的 ID。 -
将
<property> 替换为您要配置的 IPMI 属性。有关可用属性的详情,请参考 智能平台管理接口(IPMI)电源管理驱动程序。 -
将
<value> 替换为属性值。
-
将
可选:如果您有多个磁盘,请设置根设备提示来通知部署 ramdisk 哪个磁盘用于部署:
openstack baremetal node set <node> \ --property root_device='{"<property>": "<value>"}'$ openstack baremetal node set <node> \ --property root_device='{"<property>": "<value>"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的 ID。 将
<property> 和 <value> 替换为您要用于部署的磁盘详情,如root_device='{"size": "128"}'RHOSP 支持以下属性:
-
model(字符串):设备识别码。 -
vendor(字符串):设备厂商。 -
serial(字符串):磁盘序列号。 -
hctl(字符串):SCSI 的 Host:Channel:Target:Lun。 -
size(整数):设备的大小(以 GB 为单位)。 -
wwn(字符串):唯一的存储 ID。 -
wwn_with_extension(字符串):唯一存储 ID 附加厂商扩展名。 -
wwn_vendor_extension(字符串):唯一厂商存储标识符。 -
rotational(布尔值):旋转磁盘设备为 true (HDD),否则为 false (SSD)。 name(字符串):设备名称,例如: /dev/sdb1 仅对具有持久名称的设备使用此属性。注意如果您指定多个属性,该设备必须与所有这些属性匹配。
-
-
将
通过在 provisioning 网络中创建带有 NIC 的 MAC 地址的端口来通知节点网卡的裸机置备服务:
openstack baremetal port create --node <node_uuid> <mac_address>
$ openstack baremetal port create --node <node_uuid> <mac_address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node>替换为裸机节点的唯一 ID。 -
将
<mac_address> 替换为用于 PXE 引导的 NIC 的 MAC 地址。
-
将
验证节点的配置:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证输出
Result表示以下内容:-
false:接口验证失败。如果提供的原因缺少instance_info参数[\'ramdisk'、\'kernel' 和 \'image_source'],这可能是因为计算服务在部署进程开始时填充缺少的参数,因此此时尚未设置它们。如果您使用整个磁盘镜像,则可能需要设置image_source来传递验证。 -
true:接口已通过验证。 -
None: 接口不支持您的驱动。
-
4.5.3. 裸机节点置备状态 复制链接链接已复制到粘贴板!
裸机节点在其生命周期内会经历几个置备状态。在节点上执行的 API 请求和编排器事件启动转换。置备状态有两个类别: "stable" 和 "in transition"。
使用下表了解节点的调配状态,以及可用于将节点从一个置备状态转换到另一个调配状态的操作。
| 状态 | 类别 | 描述 |
|---|---|---|
|
| 稳定 | 每个节点的初始状态。有关注册节点的详情,请参考 将物理机添加为裸机节点。 |
|
| 过渡过程中 |
Bare Metal Provisioning 服务使用节点注册过程中提供的 |
|
| 稳定 |
当裸机置备服务验证它可以管理该节点时,该节点会过渡到 manageable 状态。您可以使用以下命令将节点从
在将节点转换为以下失败状态之一后,您必须将节点移到
当您需要更新节点时,将节点移到 |
|
| 过渡过程中 |
裸机置备服务使用节点内省来更新硬件派生的节点属性,以反映硬件的当前状态。节点过渡到 |
|
| 过渡过程中 |
指示异步检查正在进行的调配状态。如果节点检查成功,节点将过渡到 |
|
| 稳定 |
表示节点检查失败的置备状态。您可以使用以下命令将节点从 check
|
|
| 过渡过程中 |
处于
|
|
| 过渡过程中 |
处于
您可以通过运行 |
|
| 稳定 |
成功预配置和清理节点后,它们会被移到
|
|
| 过渡过程中 |
处于
|
|
| 过渡过程中 |
处于
您可以通过运行 |
|
| 稳定 |
表示节点部署失败的置备状态。您可以使用以下命令将节点从
|
|
| 稳定 |
处于
|
|
| 过渡过程中 |
当节点处于 delete 状态时,Bare Metal Provisioning 服务会删除活动的工作负载,并在节点部署或救援期间 |
|
| 稳定 |
如果节点删除失败,节点将移到
|
|
| 过渡过程中 |
您可以使用 |
|
| 过渡过程中 |
处于
|
|
| 过渡过程中 |
处于
您可以通过运行 |
|
| 稳定 |
表示节点救援的置备状态。您可以使用以下命令将节点从
|
|
| 稳定 |
处于
|
|
| 过渡过程中 |
处于 |
|
| 稳定 |
表示节点 unrescue 操作失败的置备状态。您可以使用以下命令将节点从
|
4.6. 配置 Redfish 虚拟介质引导 复制链接链接已复制到粘贴板!
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
您可以使用 Redfish 虚拟介质引导,向节点的 Baseboard Management Controller (BMC) 提供引导镜像,以便 BMC 可将镜像插入到其中一个虚拟驱动器中。然后,节点可以从虚拟驱动器引导到镜像中存在的操作系统。
Redfish 硬件类型支持通过虚拟介质引导部署、救援和用户镜像。裸机置备服务(ironic)使用与节点关联的内核和 ramdisk 镜像,在节点部署时为 UEFI 或 BIOS 引导模式构建可引导的 ISO 镜像。虚拟介质引导的主要优点是可以消除 PXE 的 TFTP 镜像传输阶段,并使用 HTTP GET 或其他方法。
4.6.1. 使用 Redfish 虚拟介质引导部署裸机服务器 复制链接链接已复制到粘贴板!
该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
要通过虚拟介质使用 redfish 硬件类型引导节点,请将引导接口设置为 redfish-virtual-media,对于 UEFI 节点,请定义 EFI 系统分区 (ESP) 镜像。然后将注册节点配置为使用 Redfish 虚拟介质引导。
前提条件
-
在
undercloud.conf文件的enabled_hardware_types参数中启用 redfish 驱动程序。 - 注册并登记的裸机节点。
- Image Service (glance) 中的 IPA 和实例镜像。
- 对于 UEFI 节点,还必须在 Image Service (glance) 中有一个 EFI 系统分区镜像 (ESP)。
- 裸机类型。
- 用于清理和置备的网络。
已安装 Sushy 库:
sudo yum install sushy
$ sudo yum install sushyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
将 Bare Metal 服务 (ironic) 引导接口设置为
redfish-virtual-media:openstack baremetal node set --boot-interface redfish-virtual-media $NODE_NAME
$ openstack baremetal node set --boot-interface redfish-virtual-media $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$NODE_NAME替换为节点的名称。对于 UEFI 节点,将引导模式设置为
uefi:openstack baremetal node set --property capabilities="boot_mode:uefi" $NODE_NAME
$ openstack baremetal node set --property capabilities="boot_mode:uefi" $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$NODE_NAME替换为节点的名称。注意对于 BIOS 节点,请不要完成此步骤。
对于 UEFI 节点,定义 EFI 系统分区 (ESP) 镜像:
openstack baremetal node set --driver-info bootloader=$ESP $NODE_NAME
$ openstack baremetal node set --driver-info bootloader=$ESP $NODE_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$ESP替换为 glance 镜像 UUID 或 ESP 镜像的 URL,并将$NODE_NAME替换为节点的名称。注意对于 BIOS 节点,请不要完成此步骤。
在裸机节点上创建一个端口,并将端口与裸机节点上 NIC 的 MAC 地址关联:
openstack baremetal port create --pxe-enabled True --node $UUID $MAC_ADDRESS
$ openstack baremetal port create --pxe-enabled True --node $UUID $MAC_ADDRESSCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$UUID替换为裸机节点的 UUID,并将$MAC_ADDRESS替换为裸机节点上 NIC 的 MAC 地址。创建新的裸机服务器:
openstack server create \ --flavor baremetal \ --image $IMAGE \ --network $NETWORK \ test_instance$ openstack server create \ --flavor baremetal \ --image $IMAGE \ --network $NETWORK \ test_instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
$IMAGE和$NETWORK替换为您要使用的镜像和网络的名称。
4.7. 使用主机聚合来分隔物理和虚拟调配 复制链接链接已复制到粘贴板!
OpenStack Compute 使用主机聚合来对可用性区域进行分区,并将具有特定共享属性的节点分组在一起。在调配实例时,计算调度程序会将类别上的属性与分配给主机聚合的属性进行比较,并确保实例在正确的聚合和正确的主机上置备:在物理机或虚拟机上。
完成本节中的步骤以执行以下操作:
-
将属性
baremetal添加到您的类别中,并将它设为true或false。 -
使用匹配的
baremetal属性为裸机主机和计算节点创建单独的主机聚合。分组为聚合的节点将继承此属性。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
在
baremetal类别上将 baremetal 属性设为true。openstack flavor set baremetal --property baremetal=true
$ openstack flavor set baremetal --property baremetal=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在虚拟实例使用的类别上将
baremetal属性设置为false:openstack flavor set FLAVOR_NAME --property baremetal=false
$ openstack flavor set FLAVOR_NAME --property baremetal=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
baremetal-hosts的主机聚合:openstack aggregate create --property baremetal=true baremetal-hosts
$ openstack aggregate create --property baremetal=true baremetal-hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将每个 Controller 节点添加到
baremetal-hosts聚合中:openstack aggregate add host baremetal-hosts HOSTNAME
$ openstack aggregate add host baremetal-hosts HOSTNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您使用
NovaIronic服务创建了可组合角色,请将带有此服务的所有节点添加到baremetal-hosts聚合中。默认情况下,只有 Controller 节点具有NovaIronic服务。创建名为
virtual-hosts的主机聚合:openstack aggregate create --property baremetal=false virtual-hosts
$ openstack aggregate create --property baremetal=false virtual-hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将每个 Compute 节点添加到
virtual-hosts聚合中:openstack aggregate add host virtual-hosts HOSTNAME
$ openstack aggregate add host virtual-hosts HOSTNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在部署 overcloud 时没有添加以下计算过滤器调度程序,请将它添加到
_/etc/nova/nova.conf_文件中的scheduler_default_filters下的现有列表中:AggregateInstanceExtraSpecsFilter
AggregateInstanceExtraSpecsFilterCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 管理裸机节点 复制链接链接已复制到粘贴板!
部署包含裸机置备服务的 overcloud 后,您可以在注册的裸机节点上置备物理机器,并在 overcloud 中启动裸机实例。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
5.1. 启动裸机实例 复制链接链接已复制到粘贴板!
您可以从命令行或从 OpenStack 控制面板启动实例。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
5.1.1. 使用命令行界面启动实例 复制链接链接已复制到粘贴板!
您可以使用 OpenStack 客户端 CLI 创建裸机实例。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
将 shell 配置为以管理用户身份访问 Identity 服务(keystone):
source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建裸机实例:
openstack server create \ --nic net-id=<network_uuid> \ --flavor baremetal \ --image <image_uuid> \ myBareMetalInstance
$ openstack server create \ --nic net-id=<network_uuid> \ --flavor baremetal \ --image <image_uuid> \ myBareMetalInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<network_uuid>替换为您创建的网络的唯一标识符,以用于裸机置备服务。 -
将
<image_uuid>替换为包含实例需要的软件配置集的镜像的唯一标识符。
-
将
检查实例的状态:
openstack server list --name myBareMetalInstance
$ openstack server list --name myBareMetalInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1.2. 使用仪表板启动实例 复制链接链接已复制到粘贴板!
使用仪表板图形用户界面部署裸机实例。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
- 登录到位于 http[s]://DASHBOARD_IP/dashboard 的仪表板。
- 点 Project > Compute > Instances
单击 Launch Instance。
-
在 Details 选项卡中,指定 Instance Name 并选择
1作为 Count。 -
在 Source 选项卡中,从 Select Boot Source 中选择一个
镜像,然后点+(加)符号来选择操作系统磁盘镜像。您选择要移到 Allocated 的镜像。 -
在 Flavor 选项卡中,选择
baremetal。 -
在网络选项卡中,使用
+(加)和-(减)按钮,将所需的网络从 Available 移到 Allocated。确保此处选择了您为裸机置备服务创建的共享网络。 - 如果要为安全组分配实例,在 Security Groups 选项卡中,使用箭头将组移到 Allocated。
-
在 Details 选项卡中,指定 Instance Name 并选择
- 单击 Launch Instance。
5.2. 在裸机置备服务中配置端口组 复制链接链接已复制到粘贴板!
本发行版本中提供了裸机节点的端口组功能 作为技术预览,因此不受红帽完全支持。它应该仅用于测试,不应在生产环境中部署。有关技术预览功能的更多信息,请参阅覆盖范围详细信息。
端口组(bonds)提供了一种将多个网络接口聚合到一个 'bonded' 接口的方法。端口组配置始终优先于单个端口配置。
如果端口组具有物理网络,则该端口组中的所有端口都必须具有相同的物理网络。裸机置备服务使用 configdrive 来支持实例中端口组的配置。
裸机置备服务 API 版本 1.26 支持端口组配置。
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
5.2.1. 在交换机上手动配置端口组 复制链接链接已复制到粘贴板!
要在裸机部署中配置端口组,您必须手动在交换机上配置端口组。您必须确保交换机上的模式和属性与裸机端的模式和属性对应,因为命名在交换机上可能会有所不同。
如果您需要使用 iPXE 引导部署,则无法使用端口组进行置备和清理。
使用端口组回退时,端口组中的所有端口可以在连接失败时回退到单独的交换机端口。根据交换机是否支持端口组回退,您可以使用 --support-standalone-ports 和-- unsupport-standalone-ports 选项。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
5.2.2. 在裸机置备服务中配置端口组 复制链接链接已复制到粘贴板!
创建一个端口组,将多个网络接口聚合到一个 绑定接口 中。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
通过指定它所属的节点、名称、地址、模式、属性,以及它是否支持回退到独立端口的节点来创建端口组。
openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-ports
# openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-portsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以使用
openstack baremetal port group set命令来更新端口组。如果没有指定地址,则部署的实例端口组地址与 OpenStack 网络端口相同。如果没有附加 neutron 端口,则端口组配置会失败。
在接口附加过程中,端口组的优先级高于端口,因此会首先使用。目前,无法在接口附加请求中指定端口组或端口。没有任何端口的端口组将被忽略。
注意您必须在镜像中手动配置独立模式的端口组,或者通过生成
configdrive并将其添加到节点的instance_info中。确保您有cloud-init版本 0.7.7 或更高版本,以便端口组配置正常工作。将端口与端口组关联:
在端口创建过程中:
openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group test
# openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在端口更新过程中:
openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUID
# openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUIDCopy to Clipboard Copied! Toggle word wrap Toggle overflow
通过提供具有
cloud-init或支持绑定的镜像来引导实例。要检查端口组是否已正确配置,请运行以下命令:
cat /proc/net/bonding/bondX
# cat /proc/net/bonding/bondXCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
X是cloud-init为每个配置的端口组自动生成的数字,从0开始,每个配置的端口组以 1 开始。
5.3. 确定主机到 IP 地址映射 复制链接链接已复制到粘贴板!
使用以下命令来确定将哪些 IP 地址分配给哪个主机和裸机节点。通过这些命令,您可以在不直接访问主机的情况下从 undercloud 查看主机到 IP 映射。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
运行以下命令以显示每个主机的 IP 地址:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要过滤特定主机,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要将主机映射到裸机节点,请运行以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. 连接和分离虚拟网络接口 复制链接链接已复制到粘贴板!
裸机置备服务具有一个 API,可用于管理虚拟网络接口之间的映射。例如,OpenStack 网络服务中的接口和您的物理接口(NIC)。您可以为每个裸机置备节点配置这些接口,将虚拟网络接口(VIF)设置为物理网络接口(PIF)映射逻辑。要配置接口,请使用 openstack baremetal node vif* 命令。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
列出当前连接到裸机节点的 VIF ID:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 附加 VIF 后,裸机置备服务会使用物理端口的实际 MAC 地址更新 OpenStack 网络服务中的虚拟端口。检查这个端口地址:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建
baremetal-0节点的网络中创建一个新端口:openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extra
$ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extraCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从实例中删除端口:
openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
$ openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查列表中是否不再存在 IP 地址:
openstack server list
$ openstack server listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查附加到节点的 VIFs 是否存在:
openstack baremetal node vif list baremetal-0 openstack port list
$ openstack baremetal node vif list baremetal-0 $ openstack port listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 添加新创建的端口:
openstack server add port overcloud-baremetal-0 baremetal-0-extra
$ openstack server add port overcloud-baremetal-0 baremetal-0-extraCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证新 IP 地址显示新端口:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 VIF ID 是否为新端口的 UUID:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 OpenStack 网络端口 MAC 地址是否已更新,并与裸机置备服务端口之一匹配:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新引导裸机节点,以便它可识别新的 IP 地址:
openstack server reboot overcloud-baremetal-0
$ openstack server reboot overcloud-baremetal-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 分离或附加接口后,裸机操作系统会删除、添加或修改已更改的网络接口。当您替换端口时,DHCP 请求会获取新的 IP 地址,但这可能需要一些时间,因为旧的 DHCP 租期仍然有效。要立即启动这些更改,请重启裸机主机。
5.5. 为裸机置备服务配置通知 复制链接链接已复制到粘贴板!
您可以配置裸机置备服务(ironic),以显示服务内发生的不同事件通知。外部服务可以将这些通知用于计费目的,监控数据存储和其他用途。要为裸机置备服务启用通知,您必须在 ironic.conf 配置文件中设置以下选项。
先决条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
-
[DEFAULT]部分中的notification_level选项决定发送通知的最低优先级级别。您可以将此选项的值设置为debug、info、warning、error或critical。如果将选项设为warning,则发送带有优先级级别warning,error, 或critical的所有通知,但不发送优先级为debug或info的通知。如果没有设置这个选项,则不会发送通知。每个可用通知的优先级级别如下所述。 -
[oslo_messaging_notifications]部分中的transport_url选项决定了发送通知时使用的消息总线。如果没有设置,则使用用于 RPC 的默认传输。
所有通知都会在消息总线的 ironic_versioned_notifications 主题上发出。通常,遍历消息总线的每种消息都与描述消息内容的主题相关联。
5.6. 配置自动电源故障恢复 复制链接链接已复制到粘贴板!
Bare Metal Provisioning 服务(ironic)有一个字符串字段 fault,记录电源、清理和救援节点失败。
| 故障 | Description |
|---|---|
| 电源故障 | 由于电源同步失败超过最大重试次数,所以该节点处于维护模式。 |
| 清理失败 | 由于清理操作失败,节点处于维护模式。 |
| rescue abort 失败 | 由于在 rescue abort 期间清理操作失败,所以该节点处于维护模式。 |
| none | 没有故障。 |
编排器定期检查此字段的值。如果编排器检测到 电源失败 状态,并可成功恢复节点电源,则该节点会从维护模式中删除,并恢复到操作。
如果 Operator 手动将节点置于维护模式,则编排器不会自动将节点从维护模式中删除。
默认间隔为 300 秒,但您可以使用 hieradata 配置此间隔为 director。
前提条件
- 包括裸机置备服务的成功的 overcloud 部署。有关更多信息,请参阅使用 裸机置备服务部署 overcloud。
流程
包含以下 hieradata 以配置自定义恢复间隔:
ironic::conductor::power_failure_recovery_interval
ironic::conductor::power_failure_recovery_intervalCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要禁用自动电源故障恢复,请将值设为
0。
5.7. 内省 overcloud 节点 复制链接链接已复制到粘贴板!
执行 overcloud 节点的内省,以识别和存储 director 中的节点的规格。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
overcloudrc凭证文件:source ~/overcloudrc
$ source ~/overcloudrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行 introspection 命令:
openstack baremetal introspection start [--wait] <NODENAME>
$ openstack baremetal introspection start [--wait] <NODENAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <NODENAME> 替换为您要检查的节点的名称或 UUID。
检查内省状态:
openstack baremetal introspection status <NODENAME>
$ openstack baremetal introspection status <NODENAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <NODENAME> 替换为节点的名称或 UUID。
后续步骤
提取内省数据:
openstack baremetal introspection data save <NODE-UUID>
$ openstack baremetal introspection data save <NODE-UUID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <NODENAME> 替换为节点的名称或 UUID。
第 6 章 配置裸机节点,以启用从可引导卷创建裸机实例 复制链接链接已复制到粘贴板!
此功能在 Red Hat OpenStack Platform 17.0 中已弃用。RHOSP 17.0 中提供了程序错误修正和支持,但不会进行新的功能增强。
您可以在块存储服务(cinder)中创建卷,并将这些卷连接到使用裸机置备服务(ironic)创建的裸机实例。
要让您的云用户从可引导卷创建裸机实例,请完成以下任务:
- 配置每个裸机节点,以启用从可引导卷中启动裸机实例。
- 在引导磁盘中配置 iSCSI 内核参数。
6.1. 先决条件 复制链接链接已复制到粘贴板!
裸机置备服务(ironic)通过 iSCSI 接口将裸机节点连接到块存储卷。因此,overcloud 必须使用块存储服务(cinder)的 iSCSI 后端进行部署。要为块存储服务启用 iSCSI 后端,请将
CinderEnableIscsiBackend参数设置为true并部署 overcloud。注意您不能在 Red Hat Ceph Storage 后端中使用块存储卷引导功能。
6.2. 配置节点以从可引导卷创建裸机实例 复制链接链接已复制到粘贴板!
您必须配置每个裸机节点,使其能够从可引导卷启动裸机实例。
流程
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
为每个裸机节点将
iscsi_boot功能设置为true:openstack baremetal node set --property capabilities=iscsi_boot:true <node_uuid>
$ openstack baremetal node set --property capabilities=iscsi_boot:true <node_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<node_uuid> 替换为裸机节点的 ID。
-
将
为每个裸机节点将
storage-interface设置为cinder:openstack baremetal node set --storage-interface cinder <node_uuid>
$ openstack baremetal node set --storage-interface cinder <node_uuid>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为节点创建 iSCSI 连接器:
openstack baremetal volume connector create --node <node_uuid> \ --type iqn --connector-id <connector_id>
$ openstack baremetal volume connector create --node <node_uuid> \ --type iqn --connector-id <connector_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<connector_id> 替换为每个节点的唯一 ID,例如iqn.2010-10.org.openstack.node<NUM>,其中<NUM> 是每个节点的递增数字。
-
将
6.3. 在引导磁盘中配置 iSCSI 内核参数 复制链接链接已复制到粘贴板!
您必须将实例镜像配置为在内核中启用 iSCSI 引导。
流程
-
以
stack用户身份登录 undercloud 主机。 查找
stackrcundercloud 凭证文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 从 Red Hat Enterprise Linux 产品软件下载页面,以 QCOW2 格式下载 Red Hat Enterprise Linux KVM 镜像。
-
将镜像复制到 undercloud 上的
/home/stack/目录中。 挂载 QCOW2 镜像,并以
root用户身份访问它:加载
nbd内核模块:sudo modprobe nbd
$ sudo modprobe nbdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 QCOW 镜像连接到
/dev/nbd0:sudo qemu-nbd --connect=/dev/nbd0 <image>
$ sudo qemu-nbd --connect=/dev/nbd0 <image>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 NBD 中的分区:
sudo fdisk /dev/nbd0 -l
$ sudo fdisk /dev/nbd0 -lCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新的 Red Hat Enterprise Linux QCOW2 镜像只包含一个分区,它通常在 NBD 上命名为
/dev/nbd0p1。为镜像创建挂载点:
mkdir /tmp/mountpoint
$ mkdir /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载镜像:
sudo mount /dev/nbd0p1 /tmp/mountpoint/
$ sudo mount /dev/nbd0p1 /tmp/mountpoint/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 挂载您的
dev目录,以便镜像能够访问主机上的设备信息:sudo mount -o bind /dev /tmp/mountpoint/dev
$ sudo mount -o bind /dev /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将根目录改为挂载点:
sudo chroot /tmp/mountpoint /bin/bash
$ sudo chroot /tmp/mountpoint /bin/bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在镜像上配置 iSCSI:
注意此步骤中的一些命令可能会报告以下错误:
lscpu: cannot open /proc/cpuinfo: No such file or directory
lscpu: cannot open /proc/cpuinfo: No such file or directoryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这个错误并不重要,您可以忽略这个错误。
将
resolv.conf文件移到临时位置:mv /etc/resolv.conf /etc/resolv.conf.bak
# mv /etc/resolv.conf /etc/resolv.conf.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个临时
resolv.conf文件来解析 Red Hat Content Delivery Network 的 DNS 请求。这个示例在名称服务器中使用8.8.8.8:echo "nameserver 8.8.8.8" > /etc/resolv.conf
# echo "nameserver 8.8.8.8" > /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将挂载的镜像注册到 Red Hat Content Delivery Network 中:
subscription-manager register
# subscription-manager registerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当命令提示您时,输入您的用户名和密码。
附加包含 Red Hat Enterprise Linux 的订阅:
subscription-manager list --all --available subscription-manager attach --pool <POOLID>
# subscription-manager list --all --available # subscription-manager attach --pool <POOLID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<POOLID> 替换为订阅的池 ID。禁用默认软件仓库:
subscription-manager repos --disable "*"
# subscription-manager repos --disable "*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 Red Hat Enterprise Linux 软件仓库:
Red Hat Enterprise Linux 7:
subscription-manager repos --enable "rhel-7-server-rpms"
# subscription-manager repos --enable "rhel-7-server-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Enterprise Linux 8:
subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"
# subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
安装
iscsi-initiator-utils软件包:yum install -y iscsi-initiator-utils
# yum install -y iscsi-initiator-utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 取消注册挂载的镜像:
subscription-manager unregister
# subscription-manager unregisterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 恢复原始
resolv.conf文件:mv /etc/resolv.conf.bak /etc/resolv.conf
# mv /etc/resolv.conf.bak /etc/resolv.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查挂载的镜像上的内核版本:
rpm -qa kernel
# rpm -qa kernelCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,如果输出是
kernel-3.10.0-1062.el7.x86_64,则内核版本为3.10.0-1062.el7.x86_64。请注意这个内核版本用于下一步。注意新的 Red Hat Enterprise Linux QCOW2 镜像只安装了一个内核版本。如果安装了多个内核版本,请使用最新的版本。
将
network和iscsidracut 模块添加到 initramfs 镜像中:dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>
# dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<KERNELVERSION> 替换为您从rpm -qa 内核获取的版本号。以下示例使用3.10.0-1062.el7.x86_64作为内核版本:dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
# dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从挂载的镜像退出回您的主机操作系统:
exit
# exitCopy to Clipboard Copied! Toggle word wrap Toggle overflow
卸载镜像:
从临时挂载点卸载
dev目录:sudo umount /tmp/mountpoint/dev
$ sudo umount /tmp/mountpoint/devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 从挂载点卸载镜像:
sudo umount /tmp/mountpoint
$ sudo umount /tmp/mountpointCopy to Clipboard Copied! Toggle word wrap Toggle overflow 断开 QCOW2 镜像与
/dev/nbd0/的连接:sudo qemu-nbd --disconnect /dev/nbd0
$ sudo qemu-nbd --disconnect /dev/nbd0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在镜像中重建
grub菜单配置:安装
libguestfs-tools软件包:sudo yum -y install libguestfs-tools
$ sudo yum -y install libguestfs-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果在 undercloud 上安装
libguestfs-tools软件包,请禁用iscsid.socket,以避免与 undercloud 上的tripleo_iscsid服务的端口冲突:sudo systemctl disable --now iscsid.socket
$ sudo systemctl disable --now iscsid.socketCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
libguestfs后端设置为直接使用 QEMU:export LIBGUESTFS_BACKEND=direct
$ export LIBGUESTFS_BACKEND=directCopy to Clipboard Copied! Toggle word wrap Toggle overflow 更新镜像上的 grub 配置,并在引导磁盘上设置
rd.iscsi.firmware=1内核参数:guestfish -a /tmp/images/{{ dib_image }} -m /dev/sda3 sh "mount /dev/sda2 /boot/efi && rm /boot/grub2/grubenv && /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg && cp /boot/grub2/grub.cfg /boot/efi/EFI/redhat/grub.cfg && grubby --update-kernel=ALL --args=\"rd.iscsi.firmware=1\" && cp /boot/grub2/grubenv /boot/efi/EFI/redhat/grubenv && echo Success"$ guestfish -a /tmp/images/{{ dib_image }} -m /dev/sda3 sh "mount /dev/sda2 /boot/efi && rm /boot/grub2/grubenv && /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg && cp /boot/grub2/grub.cfg /boot/efi/EFI/redhat/grub.cfg && grubby --update-kernel=ALL --args=\"rd.iscsi.firmware=1\" && cp /boot/grub2/grubenv /boot/efi/EFI/redhat/grubenv && echo Success"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将支持 iSCSI 的镜像上传到镜像服务(glance):
openstack image create --disk-format qcow2 --container-format bare \ --file <image> <image_name>
$ openstack image create --disk-format qcow2 --container-format bare \ --file <image> <image_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<image> 替换为启用了 iSCSI 的镜像的名称,如rhel-server-7.7-x86_64-kvm.qcow2。 -
将
<image_ref> 替换为用于引用镜像的名称,如rhel-server-7.7-iscsi。
-
将
6.4. 从可引导卷创建裸机实例 复制链接链接已复制到粘贴板!
要验证裸机节点是否可以托管从可引导卷创建的裸机实例,请创建可引导卷并启动实例。
流程
提供 overcloud 凭证文件:
source ~/<credentials_file>
$ source ~/<credentials_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<credentials_file> 替换为您的凭证文件的名称,如overcloudrc。
-
将
从启用了 iSCSI 的实例镜像创建卷:
openstack volume create --size 10 --image <image_ref> --bootable myBootableVolume
$ openstack volume create --size 10 --image <image_ref> --bootable myBootableVolumeCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<image_ref> 替换为要写入卷的镜像的名称或 ID,如rhel-server-7.7-iscsi。
-
将
创建使用引导卷的裸机实例:
openstack server create --flavor baremetal --volume myBootableVolume --key default myBareMetalInstance
$ openstack server create --flavor baremetal --volume myBootableVolume --key default myBareMetalInstanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 7 章 对裸机置备服务进行故障排除 复制链接链接已复制到粘贴板!
诊断包含裸机置备服务(ironic)的环境中的问题。
7.1. PXE 引导错误 复制链接链接已复制到粘贴板!
使用以下故障排除过程来评估和补救您可能在 PXE 引导时遇到的问题。
Permission Denied 错误
如果裸机节点的控制台返回 Permission Denied 错误,请确保已将适当的 SELinux 上下文应用到 /httpboot 和 /tftpboot 目录:
semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?" restorecon -r -v /httpboot semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?" restorecon -r -v /tftpboot
# semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?"
# restorecon -r -v /httpboot
# semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?"
# restorecon -r -v /tftpboot
引导过程冻结了 /pxelinux.cfg/XX-XX-XX-XX-XX
在节点的控制台中,如果您收到 IP 地址,但进程停止,您可能会在 ironic.conf 文件中使用错误的 PXE 引导模板。
grep ^pxe_config_template ironic.conf pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
$ grep ^pxe_config_template ironic.conf
pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
默认模板是 pxe_config.template,因此可以轻松地省略 i,并且意外输入 ipxe_config.template。
7.2. 裸机节点启动后的登录错误 复制链接链接已复制到粘贴板!
当您使用配置过程中设置的 root 密码时,无法登录到节点,表示您没有引导到部署的镜像。您可以登录到 deploy-kernel/deploy-ramdisk 镜像,系统尚未加载正确的镜像。
要解决这个问题,请验证 Compute 或 Bare Metal Provisioning 服务节点上的 /httpboot/pxelinux.cfg/MAC_ADDRESS 中的 PXE 引导配置文件,并确保此文件中列出的所有 IP 地址对应于裸机网络上的 IP 地址。
裸机置备服务节点使用的唯一网络是裸机网络。如果其中一个端点不在网络上,端点无法访问裸机置备服务节点,作为引导过程的一部分。
例如,您的文件中的内核行如下:
kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=ipmi boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac} ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=ipmi boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
上例 内核行 中的值 | 对应的信息 |
|---|---|
| http://192.168.200.2:8088 |
|
| 5a6cdbe3-2c90-4a90-b3c6-85b449b30512 |
|
| deploy_kernel |
这是在镜像服务中复制为 |
| http://192.168.200.2:6385 |
|
| ipmi | 此节点的裸机置备服务使用的 IPMI 驱动程序。 |
| deploy_ramdisk |
这是在镜像服务中部署 ramdisk 镜像,该镜像服务被复制为 |
如果 /httpboot/pxelinux.cfg/MAC_ADDRESS 和 ironic.conf 文件之间没有对应的值:
-
更新
ironic.conf文件中的值 - 重启裸机置备服务
- 重新部署裸机实例
7.3. 部署节点上的引导到磁盘错误 复制链接链接已复制到粘贴板!
对于某些硬件,您可能会遇到部署节点的问题,其中节点在连续引导操作期间无法从磁盘引导,作为部署的一部分。这通常是因为 BMC 不遵循节点上 director 请求的持久引导设置。相反,节点会从 PXE 目标引导。
在这种情况下,您必须在节点的 BIOS 中更新引导顺序。将 HDD 设置为第一个引导设备,然后 PXE 作为后续选项,以便节点默认从磁盘启动,但可以根据需要在内省或部署期间从网络引导。
这个错误主要适用于使用 LegacyBIOS 固件的节点。
7.4. 裸机置备服务没有收到正确的主机名 复制链接链接已复制到粘贴板!
如果裸机置备服务没有收到正确的主机名,这意味着 cloud-init 失败。要解决此问题,请将裸机子网连接到 OpenStack 网络服务中的路由器。此配置可以正确地将请求路由到 meta-data 代理。
7.5. 执行裸机置备服务命令时无效 OpenStack Identity 服务凭证 复制链接链接已复制到粘贴板!
如果您无法验证身份服务,请检查 ironic.conf 文件中的 identity_uri 参数,并确保从 keystone AdminURL 中删除 /v2.0。例如,将 identity_uri 设置为 http://IP:PORT。
7.6. 硬件介绍 复制链接链接已复制到粘贴板!
节点注册详情不正确可能会导致注册的硬件出现问题。确保正确输入属性名称和值。当您错误地输入属性名称时,系统会在节点详情中添加属性,但忽略它们。
使用 openstack baremetal node set 命令更新节点详情。例如,将节点注册到 2 GB 的内存大小更新为 2 GB:
openstack baremetal node set --property memory_mb=2048 NODE_UUID
$ openstack baremetal node set --property memory_mb=2048 NODE_UUID
7.7. iDRAC 问题故障排除 复制链接链接已复制到粘贴板!
- Redfish 管理界面无法设置引导设备
当您将
idrac-redfish管理界面与某些 iDRAC 固件版本搭配使用,并尝试在使用 UEFI 引导的裸机服务器上设置引导设备时,i iDRAC 会返回以下错误:Unable to Process the request because the value entered for the parameter Continuous is not supported by the implementation.
Unable to Process the request because the value entered for the parameter Continuous is not supported by the implementation.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您遇到这个问题,请将节点上的
driver-info中的force_persistent_boot_device参数设置为Never:openstack baremetal node set --driver-info force_persistent_boot_device=Never ${node_uuid}openstack baremetal node set --driver-info force_persistent_boot_device=Never ${node_uuid}Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 关闭时超时
在关闭电源和超时时,有些服务器可能会太慢。默认重试计数为
6,这会导致 30 秒超时。要将超时时间增加到 90 秒,在 undercloud hieradata 覆盖文件中将ironic::agent::rpc_response_timeout值设置为18,并重新运行openstack undercloud install命令:ironic::agent::rpc_response_timeout: 18
ironic::agent::rpc_response_timeout: 18Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 供应商透传超时
当 iDRAC 无法执行厂商 passthrough 命令时,这些命令需要很长时间且超时:
openstack baremetal node passthru call --http-method GET \ aed58dca-1b25-409a-a32f-3a817d59e1e0 list_unfinished_jobs Timed out waiting for a reply to message ID 547ce7995342418c99ef1ea4a0054572 (HTTP 500)
openstack baremetal node passthru call --http-method GET \ aed58dca-1b25-409a-a32f-3a817d59e1e0 list_unfinished_jobs Timed out waiting for a reply to message ID 547ce7995342418c99ef1ea4a0054572 (HTTP 500)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要增加消息传递的超时持续时间,增加 undercloud hieradata 覆盖文件中的
ironic::default::rpc_response_timeout参数的值并重新运行openstack undercloud install命令:ironic::default::rpc_response_timeout: 600
ironic::default::rpc_response_timeout: 600Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.8. 配置服务器控制台 复制链接链接已复制到粘贴板!
overcloud 节点的控制台输出并不总是发送到服务器控制台。如果要在服务器控制台中查看此输出,您必须将 overcloud 配置为为您的硬件使用正确的控制台。使用以下方法之一执行此配置:
-
修改每个 overcloud 角色的
KernelArgsheat 参数。 -
自定义 director 用于置备 overcloud 节点的
overcloud-hardened-uefi-full.qcow2镜像。
前提条件
- 成功安装 undercloud。如需更多信息,请参阅 Director 安装和使用 指南。
- overcloud 节点已准备好进行部署。
在部署过程中使用 heat 修改 KernelArgs
-
以
stack用户身份登录 undercloud 主机。 查找
stackrc凭证文件:source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建环境文件
overcloud-console.yaml:parameter_defaults: <role>Parameters: KernelArgs: "console=<console-name>"parameter_defaults: <role>Parameters: KernelArgs: "console=<console-name>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;role> 替换为您要配置的 overcloud 角色的名称,并将 <console-name> 替换为您要使用的控制台 ID。例如,使用以下代码片段,将默认角色中的所有 overcloud 节点配置为使用tty0:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在部署命令中包含
overcloud-console-tty0.yaml文件,并使用-e选项。
修改 overcloud-hardened-uefi-full.qcow2 镜像
-
以
stack用户身份登录 undercloud 主机。 查找
stackrc凭证文件:source stackrc
$ source stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
overcloud-hardened-uefi-full.qcow2镜像中的内核参数,为您的硬件设置正确的控制台。例如,将控制台设置为tty1:virt-customize --selinux-relabel -a overcloud-hardened-uefi-full.qcow2 --run-command 'grubby --update-kernel=ALL --args="console=tty1"'
$ virt-customize --selinux-relabel -a overcloud-hardened-uefi-full.qcow2 --run-command 'grubby --update-kernel=ALL --args="console=tty1"'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将镜像导入到 director:
openstack overcloud image upload --image-path overcloud-hardened-uefi-full.qcow2
$ openstack overcloud image upload --image-path overcloud-hardened-uefi-full.qcow2Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 部署 overcloud。
验证
从 undercloud 登录到 overcloud 节点:
ssh tripleo-admin@<IP-address>
$ ssh tripleo-admin@<IP-address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<IP-address> 替换为 overcloud 节点的 IP 地址。检查
/proc/cmdline文件的内容,并确保将console=参数设置为您要使用的控制台的值:[tripleo-admin@controller-0 ~]$ cat /proc/cmdline BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-4.18.0-193.29.1.el8_2.x86_64 root=UUID=0ec3dea5-f293-4729-b676-5d38a611ce81 ro console=tty0 console=ttyS0,115200n81 no_timer_check crashkernel=auto rhgb quiet
[tripleo-admin@controller-0 ~]$ cat /proc/cmdline BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-4.18.0-193.29.1.el8_2.x86_64 root=UUID=0ec3dea5-f293-4729-b676-5d38a611ce81 ro console=tty0 console=ttyS0,115200n81 no_timer_check crashkernel=auto rhgb quietCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第 8 章 裸机驱动程序 复制链接链接已复制到粘贴板!
您可以将裸机节点配置为使用裸机置备服务中启用的其中一个驱动程序。每个驱动程序都包括置备方法和电源管理类型。有些驱动程序需要额外的配置。本节中描述的每个驱动程序使用 PXE 进行置备。驱动程序通过其电源管理类型列出。
您可以通过在 ironic.yaml 文件中配置 IronicEnabledHardwareTypes 参数来添加驱动程序。默认情况下启用 ipmi 和 redfish。
有关支持的插件和驱动程序的完整列表,请参阅 Red Hat OpenStack Platform 中的组件、插件和驱动程序支持。
8.1. 智能平台管理接口(IPMI)电源管理驱动程序 复制链接链接已复制到粘贴板!
IPMI 是一种提供带外远程管理功能的接口,包括电源管理和服务器监控。要使用此电源管理类型,所有裸机置备服务节点都需要一个连接到共享裸机网络的 IPMI。IPMI 电源管理器驱动程序使用 ipmitool 实用程序远程管理硬件。您可以使用以下 driver_info 属性为节点配置 IPMI 电源管理器驱动程序:
| 属性 | Description | 等同的 ipmitool 选项 |
|---|---|---|
|
| (必需)节点的 IP 地址或主机名。 |
|
|
| IPMI 用户名。 |
|
|
|
IPMI 密码。密码被写入一个临时文件。您可以使用 |
|
|
| IPMIv2 身份验证的十六进制 Kg 密钥。 |
|
|
| 远程 IPMI RMCP 端口。 |
|
|
| IPMI 特权级别。设置为以下有效值之一:
|
|
|
| IPMI 协议的版本。设置为以下有效值之一:
|
|
|
| 桥接的类型。与嵌套的机箱管理控制器(CMC)一起使用。设置为以下有效值之一:
| 不适用 |
|
|
桥接请求的目的地频道。仅在 |
|
|
|
网桥请求的目的地地址。仅在 |
|
|
|
桥接请求的传输频道。仅在 |
|
|
|
网桥请求的传输地址。仅在 |
|
|
|
网桥请求的本地 IPMB 地址。仅在 |
|
|
|
设置为 | 不适用 |
|
|
设置为 | 不适用 |
|
| 要在节点上使用的 IPMI 密码套件版本。设置为以下有效值之一:
| 不适用 |
8.2. Redfish 复制链接链接已复制到粘贴板!
由分布式管理任务组(DMTF)开发的 IT 基础架构的标准 RESTful API。您可以使用以下 driver_info 属性来配置到 Redfish 的 Bare Metal Provisioning serive (ironic)连接:
| 属性 | Description |
|---|---|
|
|
(必需)Red Hat Redfish 控制器的 IP 地址。该地址必须包含 URL 的授权部分。如果没有包括该方案,则默认为 |
|
|
Redfish 驱动程序与之交互的系统资源的规范路径。该路径必须包含 root 服务、版本以及与 |
|
| Redfish 用户名。 |
|
| Redfish 密码。 |
|
|
布尔值、CA_BUNDLE 文件的路径,或者带有可信 CA 证书的目录。如果将此值设置为 |
|
| Redfish HTTP 客户端验证方法。设置为以下有效值之一:
|
8.3. Dell Remote Access Controller (DRAC) 复制链接链接已复制到粘贴板!
DRAC 是一个提供带外远程管理功能的接口,包括电源管理和服务器监控。要使用此电源管理类型,所有裸机置备服务节点都需要连接到共享裸机置备网络的 DRAC。启用 idrac 驱动程序,并在节点的 driver_info 中设置以下信息:
-
drac_address- DRAC NIC 的 IP 地址。 -
drac_username- DRAC 用户名。 -
drac_password- DRAC 密码。 -
可选:
drac_port- 用于 WS-Management 端点的端口。默认值为端口443。 -
可选:
drac_path- 用于 WS-Management 端点的路径。默认路径为/wsman。 -
可选:
drac_protocol- 用于 WS-Management 端点的协议。有效值:http,https.默认协议是https。
8.4. 集成远程管理控制器(iRMC) 复制链接链接已复制到粘贴板!
Fujitsu 中的 iRMC 是一个提供带外远程管理功能的接口,包括电源管理和服务器监控。要在裸机置备服务节点上使用此电源管理类型,节点需要连接到共享 Bare Metal 网络的 iRMC 接口。启用 irmc 驱动程序,并在节点的 driver_info 中设置以下信息:
-
irmc_address- iRMC 接口 NIC 的 IP 地址。 -
irmc_username- iRMC 用户名。 -
irmc_password- iRMC 密码。
要使用 IPMI 设置引导模式或 SCCI 来获取传感器数据,您必须完成以下额外步骤:
在
ironic.conf文件中启用 sensor 方法:openstack-config --set /etc/ironic/ironic.conf \ irmc sensor_method METHOD
$ openstack-config --set /etc/ironic/ironic.conf \ irmc sensor_method METHODCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 METHOD 替换为
scci或ipmitool。如果启用了 SCCI,请安装
python-scciclient软件包:dnf install python-scciclient
# dnf install python-scciclientCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启裸机编排器服务:
systemctl restart openstack-ironic-conductor.service
# systemctl restart openstack-ironic-conductor.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
要使用 iRMC 驱动程序,需要 iRMC S4 或更高版本。
8.5. Integrated Lights-Out (iLO) 复制链接链接已复制到粘贴板!
iLO 是惠普提供的一个远程电源功能的接口,这些功能包括电源管理和服务器监控。要使用此电源管理类型,所有裸机节点都需要一个连接到共享裸机网络的 iLO 接口。启用 ilo 驱动程序,并在节点的 driver_info 中设置以下信息:
-
ilo_address- iLO 接口 NIC 的 IP 地址。 -
ilo_username- iLO 用户名。 -
ilo_password- iLO 密码。
您还必须安装 python-proliantutils 软件包并重启 Bare Metal conductor 服务:
dnf install python-proliantutils systemctl restart openstack-ironic-conductor.service
# dnf install python-proliantutils
# systemctl restart openstack-ironic-conductor.service