端口组支持¶
Bare Metal 服务支持通过 configdrive 在实例中静态配置端口组(绑定)。请参阅 内核关于绑定的文档,了解为什么它可能有用以及如何在 Linux 中设置它。以下部分描述了如何在 Bare Metal 服务中使用它们。
交换机端配置¶
如果需要在 ironic 部署中需要端口组,则需要在交换机上进行配置。 这需要手动完成,并且在交换机上配置的模式和属性必须与在 ironic 端配置的模式和属性相对应,因为绑定模式和属性在您的交换机上可能命名不同,或者其可能的值与 内核关于绑定的文档 中描述的不同。请参阅您的交换机配置文档以获取更多详细信息。
如果需要通过 (i)PXE 启动部署 ramdisk,则无法使用需要端口组的配置和清理。 如果您的交换机或所需的端口组配置不支持端口组回退,该回退将允许端口组成员单独使用,则需要在 ironic 中将端口组的 standalone_ports_supported 值设置为 False,因为默认情况下它是 True。
物理网络¶
如果端口组中的任何端口都有物理网络,则该端口组中的所有端口都必须具有相同的物理网络。
为了更改端口组中端口的物理网络,必须首先将所有端口从端口组中删除,然后再更改它们的物理网络(为相同的值),然后将它们添加回端口组。
有关在 Bare Metal 服务中使用物理网络的更多信息,请参阅 物理网络。
Bare Metal 服务中的端口组配置¶
端口组配置在 ironic API 微版本 1.26 中受支持,以下 CLI 命令为了完整性而指定它。
创建端口组时,必须指定其所属的节点,以及可选地,其名称、地址、模式、属性以及是否支持回退到独立端口
baremetal port group create \ --node $NODE_UUID --name test --address fa:ab:25:48:fd:ba --mode 802.3ad \ --property miimon=100 --property xmit_hash_policy="layer2+3" \ --support-standalone-ports
可以使用
baremetal port group set命令更新端口组,有关更多详细信息,请参阅其帮助。如果未指定地址,则部署实例上的端口组地址将与连接到端口组的 neutron 端口的地址相同。 如果 neutron 端口未连接,则不会配置端口组。
注意
在独立模式下,必须手动配置端口组。 可以通过在镜像中静态配置或生成 configdrive 并将其添加到节点的
instance_info来完成。有关如何通过 configdrive 配置绑定的更多信息,请参阅 cloud-init 文档 和 代码。要使绑定配置生效,需要 cloud-init 版本 0.7.7 或更高版本。以下是配置通过 configdrive 进行绑定的简单示例
启动实例时,需要添加用户数据文件以通过
--user-data选项配置绑定。 例如{ "networks": [ { "type": "physical", "name": "eth0", "mac_address": "fa:ab:25:48:fd:ba" }, { "type": "physical", "name": "eth1", "mac_address": "fa:ab:25:48:fd:ab" }, { "type": "bond", "name": "bond0", "bond_interfaces": [ "eth0", "eth1" ], "mode": "active-backup" } ] }
如果在独立模式下未显式设置端口组地址,则将按照 内核关于绑定的文档 中描述的过程自动设置它。
在接口附加期间,端口组比端口具有更高的优先级,因此它们将首先使用。(目前尚不可能在接口附加请求中指定所需的端口组或端口)。 没有端口的端口组将被忽略。
模式和属性值在 内核关于绑定的文档 中描述。 默认端口组模式为
active-backup,可以通过在 ironic API 服务配置文件中设置DEFAULT.default_portgroup_mode配置选项来更改此默认值。将端口与创建的端口组关联。
可以在端口创建时完成
baremetal port create \ --node $NODE_UUID --address fa:ab:25:48:fd:ba --port-group test
或者通过更新现有端口
baremetal port set $PORT_UUID --port-group $PORT_GROUP_UUID
在更新端口时,与端口关联的节点必须处于
enroll、manageable或inspecting状态。 端口组可以具有与单个端口相同或不同的地址。启动一个实例(或直接启动节点,在独立 ironic 的情况下),提供一个具有 cloud-init 版本 0.7.7 或更高版本并支持绑定的镜像。
部署完成后,您可以通过在实例中运行以下命令来检查端口组是否已正确设置
cat /proc/net/bonding/bondX
其中 X 是 cloud-init 为每个配置的端口组自动生成的数字,顺序不确定。 它从 0 开始,并且对于每个配置的端口组递增 1。
Windows 上的链路聚合/组队¶
端口组支持 Windows Server 镜像,这些镜像可以通过 构建 Windows 镜像 指令创建。
您可以使用 脚本文件 在 Configuration 的 Instance 中自定义实例,以及选择 Configuration Drive 选项。 然后 ironic virt 驱动程序将生成网络元数据并添加所有其他信息,例如绑定模式、传输哈希策略、MII 链路监控间隔以及绑定由哪些链路组成。 InstanceMetadata 中的信息随后将用于生成 config drive。