5.8. 将虚拟网络接口(VIF)附加到裸机实例
要将裸机实例附加到裸机网络接口,云用户可以使用 Compute 服务(nova)或裸机置备服务(ironic)。
计算服务:云用户使用
openstack server add network命令。如需更多信息 ,请参阅将网络附加到实例。注意===
- 在使用计算服务时,您必须在创建实例时明确声明端口。当 Compute 服务向裸机置备服务发出请求以创建实例时,计算服务会尝试记录要在裸机置备服务中附加的用户的所有 VIF 来生成元数据。
- 在使用 Compute 服务时,您无法指定要附加 VIF 的物理端口。如果要明确声明要映射到哪个端口,则使用裸机置备服务来创建附加。===
-
裸机置备服务:云用户使用
openstack baremetal node vif attach命令将 VIF 附加到裸机实例。有关虚拟网络接口(VIF)的更多信息,请参阅 裸机置备服务虚拟网络接口(VIF)。
以下流程使用裸机置备服务将裸机实例附加到网络。裸机置备服务使用通过网络服务创建的端口的 UUID 创建 VIF 附加。
流程
从您的工作站访问
OpenStackClientpod 的远程 shell:$ oc rsh -n openstack openstackclient检索您要将 VIF 附加到的裸机实例的 UUID:
$ openstack server list检索您要附加到节点的 VIF 的 UUID:
$ openstack port list可选:检索您要映射 VIF 的裸机端口的 UUID:
$ openstack baremetal port list将 VIF 附加到裸机实例:
$ openstack baremetal node vif attach [--port-uuid <port_uuid>] \ <node> <vif_id>-
可选:将 <
port_uuid> 替换为要附加 VIF 的裸机端口的 UUID。 -
将 &
lt;node> 替换为您要附加 VIF 的裸机实例的名称或 UUID。 -
将
<vif_id> 替换为要附加到裸机实例的 VIF 的名称或 UUID。
-
可选:将 <
退出
openstackclientpod:$ exit
5.8.1. 裸机置备服务如何将 VIF 附加到裸机实例 复制链接链接已复制到粘贴板!
当云用户请求虚拟网络接口(VIF)连接到其裸机实例时,使用 openstack baremetal node vif attach 命令(如果没有声明的端口或端口组首选项),Bare Metal Provisioning 服务(ironic)通过评估以下条件来选择合适的未附加端口或端口组:
- 端口或端口组没有物理网络,或者具有与 VIF 可用物理网络之一匹配的物理网络。
- 首选使用物理网络到没有物理网络的端口和端口组的端口和端口组。
- 将端口组首选为端口。
- 首选启用 PXE 的端口。
当裸机置备服务将任何 VIF 附加到裸机实例时,它会明确为 VIF 绑定的物理端口设置 MAC 地址。如果节点已经处于 ACTIVE 状态,则 Networking 服务(neutron)会更新 VIF 附加。
当裸机置备服务取消绑定 VIF 时,它会向网络服务发出请求以重置分配的 MAC 地址,以避免与网络服务的唯一硬件 MAC 地址要求冲突。
5.8.2. 连接和分离虚拟网络接口 复制链接链接已复制到粘贴板!
裸机置备服务具有一个 API,可用于管理虚拟网络接口之间的映射。例如,网络服务(neutron)和物理接口(NIC)中的接口。您可以为每个裸机节点配置这些接口,将虚拟网络接口(VIF)设置为物理网络接口(PIF)映射逻辑。
流程
从您的工作站访问
OpenStackClientpod 的远程 shell:$ oc rsh -n openstack openstackclient列出连接到裸机节点的 VIF ID:
$ openstack baremetal node vif list <node> +--------------------------------------+ | ID | +--------------------------------------+ | 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 | +--------------------------------------+-
将
<node>替换为裸机节点的名称或 UUID。
-
将
附加 VIF 后,裸机置备服务会使用物理端口的 MAC 地址更新网络服务中的虚拟端口。检查这个端口地址:
$ openstack port show 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 -c mac_address -c fixed_ips +-------------+-----------------------------------------------------------------------------+ | Field | Value | +-------------+-----------------------------------------------------------------------------+ | fixed_ips | ip_address='192.168.24.9', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' | | mac_address | 00:2d:28:2f:8d:95 | +-------------+-----------------------------------------------------------------------------+在创建裸机节点的网络上创建一个新端口:
$ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 <port_name>从它所附加的裸机实例中删除端口:
$ openstack server remove port <instance_name> 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16检查列表中是否不再存在 IP 地址:
$ openstack server list检查附加到节点的 VIFs 是否存在:
$ openstack baremetal node vif list <node> $ openstack port list添加新创建的端口:
$ openstack server add port <instance_name> <port_name>验证新 IP 地址显示新端口:
$ openstack server list检查 VIF ID 是否为新端口的 UUID:
$ openstack baremetal node vif list <node> +--------------------------------------+ | ID | +--------------------------------------+ | 6181c089-7e33-4f1c-b8fe-2523ff431ffc | +--------------------------------------+检查网络服务端口 MAC 地址是否已更新,并与裸机置备服务端口之一匹配:
$ openstack port show 6181c089-7e33-4f1c-b8fe-2523ff431ffc -c mac_address -c fixed_ips +-------------+------------------------------------------------------------------------------+ | Field | Value | +-------------+------------------------------------------------------------------------------+ | fixed_ips | ip_address='192.168.24.24', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' | | mac_address | 00:2d:28:2f:8d:95 | +-------------+------------------------------------------------------------------------------+重新引导裸机节点,以便它可识别新的 IP 地址:
$ openstack server reboot overcloud-baremetal-0分离或附加接口后,裸机操作系统会删除、添加或修改已更改的网络接口。当您替换端口时,DHCP 请求会获取新的 IP 地址,但这可能需要一些时间,因为旧的 DHCP 租期仍然有效。要立即启动这些更改,请重新引导裸机节点。