第 5 章 配置基本 Overcloud
本章介绍了对一个企业级的 OpenStack Platform 环境进行基本配置的步骤。具有基本配置的 Overcloud 不包括定制的功能,但是您可以为基本配置的 Overcloud 添加高级配置选项,或根据您的具体情况对它进行定制。相关信息包括在 第 6 章 为 Overcloud 配置高级的定制环境 中。
在本章使用的示例中,所有节点都是使用 IPMI 作为电源管理的裸机。如需了解关于其它支持的电源管理类型和它们的选项,请参阅 附录 B, 电源管理驱动。
流程
- 在 director 中创建一个节点定义模板并注册空白节点。
- 检查所有节点的硬件。
- 为节点添加标签(tag)来标记为角色。
- 定义额外的节点属性
配置要求
- 第 4 章 安装 Undercloud 中创建的 director 节点
- 一组作为节点的裸机。所需的节点数量由您需要创建的 Overcloud 类型所决定(请参阅 第 3.1 节 “规划节点的实施角色”)。这些机器需要满足每个节点类型对系统的要求。相关信息,请参阅 第 2.4 节 “Overcloud 的配置要求”。这些节点不需要操作系统,director 会把一个 Red Hat Enterprise Linux 7 镜像复制到每个节点。
Provisioning 网络的一个网络连接(被配置为一个原生 VLAM)。所有节点必须都连接到这个网络,并需要满足 第 2.3 节 “网络要求” 中的要求。在本章的示例中,我们使用 192.0.2.0/24 作为 Provisioning 子网,分配的 IP 地址信息如下:
表 5.1. Provisioning 网络 IP 分配信息
节点名
IP 地址
MAC 地址
IPMI IP 地址
Director
192.0.2.1
aa:aa:aa:aa:aa:aa
不需要
Controller
DHCP
bb:bb:bb:bb:bb:bb
192.0.2.205
Compute
DHCP
cc:cc:cc:cc:cc:cc
192.0.2.206
- 所有其它网络类型使用 Provisioning 网络作为 OpenStack 服务。但是,您也可以为其它网络通讯类型创建额外的网络。相关信息,请参阅 第 6.2 节 “分离网络”。
5.1. 为 Overcloud 注册节点
director 需要一个节点定义模板。这个文件(instackenv.json)是一个 JSON 格式的文件,它包括了环境中的节点的硬件信息和电源管理信息。例如,注册两个节点的模板会和以下类似:
{
"nodes":[
{
"mac":[
"bb:bb:bb:bb:bb:bb"
],
"cpu":"4",
"memory":"6144",
"disk":"40",
"arch":"x86_64",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"p@55w0rd!",
"pm_addr":"192.0.2.205"
},
{
"mac":[
"cc:cc:cc:cc:cc:cc"
],
"cpu":"4",
"memory":"6144",
"disk":"40",
"arch":"x86_64",
"pm_type":"pxe_ipmitool",
"pm_user":"admin",
"pm_password":"p@55w0rd!",
"pm_addr":"192.0.2.206"
}
]
}这个模板使用以下属性:
- mac
- 节点上的网络接口的 MAC 地址列表。对于每个系统的 Provisioning NIC,只使用 MAC 地址。
- pm_type
-
使用的电源管理驱动。在这个示例中使用 IPMI 驱动(
pxe_ipmitool)。 - pm_user; pm_password
- IPMI 的用户名和密码。
- pm_addr
- IPMI 设备的 IP 地址。
- cpu
- 节点上的 CPU 数量。(可选)
- memory
- 以 MB 为单位的内存大小。(可选)
- disk
- 以 GB 为单位的硬盘的大小。(可选)
- arch
- 系统架构。(可选)
如需了解更多与所支持的电源管理类型和选项相关的信息,请参阅 附录 B, 电源管理驱动。
在创建完模板后,把这个文件保存到 stack 用户的家目录(/home/stack/instackenv.json),然后把它导入到 director。使用以下命令:
$ openstack baremetal import --json ~/instackenv.json
这会导入模板,并把模板中的每个节点注册到 director。
为所有节点分配内核和 ramdisk 镜像:
$ openstack baremetal configure boot
现在,节点已在 director 中注册并被配置。使用以下命令可以在 CLI 中查看这些节点的列表:
$ ironic node-list
5.2. 检查节点硬件
director 可以在每个节点上运行内省进程。这个进程会使每个节点通过 PXE 引导一个内省代理。这个代理从节点上收集硬件数据,并把信息发送回 director,director 把这些信息保存在运行于 director 上的 OpenStack Object Storage (swift) 服务中。director 使用硬件信息用于不同目的,如进行 profile tagging、benchmarking、手工引导磁盘分配等。
您也可以创建策略文件来在进行内省后自动把节点标记为(tag)配置集(profile)。如需了解更多与创建策略文件并把它们包括在内省过程中的信息,请参阅 附录 C, 自动配置集标记。获得,参阅 第 5.3 节 “为节点添加标签(tag)来标记为配置集” 中的内容把节点手工标记为配置集。
运行以下命令检查每个节点的属性:
$ openstack baremetal introspection bulk start
在一个单独的终端窗口中运行以下命令来监测内省的进程:
$ sudo journalctl -l -u openstack-ironic-inspector -u openstack-ironic-inspector-dnsmasq -u openstack-ironic-conductor -f
确保这个过程成功完成。它可能需要 15 分钟来检查这些裸机节点。
或者,在每个节点上独立进行一个内省操作。把节点设置为管理模式,执行内省操作,然后把节点移出维护模式:
$ ironic node-set-provision-state [NODE UUID] manage $ openstack baremetal introspection start [NODE UUID] $ ironic node-set-provision-state [NODE UUID] provide
5.3. 为节点添加标签(tag)来标记为配置集
在注册并检查完每个节点的硬件后,需要为它们添加标签(tag)来把它们标记为特定的配置集。这些配置集标签会把节点和 flavor 相匹配,从而使 flavor 被分配到一个部署角色。在 Undercloud 的安装过程中,会创建默认的配置集 flavor:compute、control、swift-storage、ceph-storage 和 block-storage,在多数环境中,都可以在不经过修改的情况下使用它们。
如果有大量的节点,可以使用自动为配置集添加标签的功能。相关信息,请参阅 附录 C, 自动配置集标记。
为了通过添加标签把节点标记为特定的配置集,把 profile 选项添加到每个节点的 properties/capabilities 参数中。例如,把环境中的两个节点分别标记为使用 controller 配置集和 compute 配置集,使用以下命令:
$ ironic node-update 58c3d07e-24f2-48a7-bbb6-6843f0e8ee13 add properties/capabilities='profile:compute,boot_option:local' $ ironic node-update 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 add properties/capabilities='profile:control,boot_option:local'
其中的 profile:compute 和 profile:control 选项会把节点标记为相关的配置集。
这些命令同时也设置了 boot_option:local 参数,它定义了每个节点的引导模式。
director 当前还不支持 UEFI 引导模式。
在标记完节点后,检查分配的配置集或可能的配置集:
$ openstack overcloud profiles list
5.4. 为节点定义 Root Disk
一些节点可能会使用多个磁盘。这意味着,director 需要可以区分在 provisioning 时作为 root 磁盘使用的磁盘。以下的几个属性可以被用来帮助 director 区分 root 磁盘:
-
model(字符串):设备 ID。 -
vendor(字符串):设备厂商。 -
serial(字符串):磁盘序列号。 -
wwn(字符串):唯一的存储 ID。 -
hctl(字符串):SCSI 的 Host:Channel:Target:Lun。 -
size(整数):设备的大小(以 GB 为单位)。
在这个示例中,使用磁盘的序列号来指定 root 设备来部署 Overcloud 镜像。
首先,收集 director 通过内省获得的每个节点的硬件信息。这些信息保存在 the OpenStack Object Storage 服务器(swift)中。把这些信息下载到一个新目录中:
$ mkdir swift-data
$ cd swift-data
$ export IRONIC_DISCOVERD_PASSWORD=`sudo grep admin_password /etc/ironic-inspector/inspector.conf | awk '! /^#/ {print $NF}' | awk -F'=' '{print $2}'`
$ for node in $(ironic node-list | awk '!/UUID/ {print $2}'); do swift -U service:ironic -K $IRONIC_DISCOVERD_PASSWORD download ironic-inspector inspector_data-$node; done
这会从内省中下载每个 inspector_data 项中的信息。所有项都会使用节点的 UUID 作为项的名称的一部分:
$ ls -1 inspector_data-15fc0edc-eb8d-4c7f-8dc0-a2a25d5e09e3 inspector_data-46b90a4d-769b-4b26-bb93-50eaefcdb3f4 inspector_data-662376ed-faa8-409c-b8ef-212f9754c9c7 inspector_data-6fc70fe4-92ea-457b-9713-eed499eda206 inspector_data-9238a73a-ec8b-4976-9409-3fcff9a8dca3 inspector_data-9cbfe693-8d55-47c2-a9d5-10e059a14e07 inspector_data-ad31b32d-e607-4495-815c-2b55ee04cdb1 inspector_data-d376f613-bc3e-4c4b-ad21-847c4ec850f8
检查每个节点的磁盘信息。以下信息显示了每个节点的 ID 和磁盘信息:
$ for node in $(ironic node-list | awk '!/UUID/ {print $2}'); do echo "NODE: $node" ; cat inspector_data-$node | jq '.inventory.disks' ; echo "-----" ; done例如,一个节点的数据可能会显示 3 个磁盘:
NODE: 46b90a4d-769b-4b26-bb93-50eaefcdb3f4
[
{
"size": 1000215724032,
"vendor": "ATA",
"name": "/dev/sda",
"model": "WDC WD1002F9YZ",
"wwn": "0x0000000000000001",
"serial": "WD-000000000001"
},
{
"size": 1000215724032,
"vendor": "ATA",
"name": "/dev/sdb",
"model": "WDC WD1002F9YZ",
"wwn": "0x0000000000000002",
"serial": "WD-000000000002"
},
{
"size": 1000215724032,
"vendor": "ATA",
"name": "/dev/sdc",
"model": "WDC WD1002F9YZ",
"wwn": "0x0000000000000003",
"serial": "WD-000000000003"
},
]
在这个例子中,磁盘 2 被设置为 root 设备(序列号为 WD-000000000002)。这需要在节点定义中修改 root_device 参数:
$ ironic node-update 97e3f7b3-5629-473e-a187-2193ebe0b5c7 add properties/root_device='{"serial": "WD-000000000002"}'这将帮助 director 区分特定的磁盘来作为 root 磁盘。当开始创建 Overcloud 时,director 会部署这个节点,把 Overcloud 镜像写入到这个磁盘。
把每个节点的 BIOS 配置为包括从所选 root 磁盘引导。推荐的引导顺序是:网络引导,然后是 root 磁盘引导。
不要使用 name 来指定 root 磁盘,因为这个值可能会在节点引导后改变。
5.5. 完成基本配置
这包括了对 Overcloud 进行基本配置的步骤。现在可以:
- 使用高级配置步骤对环境进行定制。如需了解更多相关信息,请参阅 第 6 章 为 Overcloud 配置高级的定制环境。
- 或部署一个基本的 Overcloud。如需了解更多相关信息,请参阅 第 7 章 创建 Overcloud。
基本的 Overcloud 会使用本地 LVM 存储作为块存储,这并不是一个被支持的配置。我们推荐使用一个外部的存储环境作为块存储。例如,第 6.7 节 “配置 NFS 存储” 介绍了配置一个 NFS 共享作为块存储的方法。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.