Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

vMX OpenStack 的 Heat 模板

Heat 模板在 OpenStack vMX实例和拓扑结构。阅读本主题可了解如何创建vMX实例,这些实例可与拓扑模板一起用于定义每个vMX互连。

vMX Heat 模板

Heat 模板在 OpenStack vMX实例和拓扑结构。 vmx.yaml 模板用于定义vMX实例,包括 VCP、VFP 及其之间的桥接。它还定义了任何 WAN 端口和网桥。拓扑模板中可以有多个通过桥接vMX实例互连。Heat 模板从相应的环境文件中获取其输入参数。

您可从 vMX 页面上vMX软件包,然后解压缩软件包以用于样例模板。

vMX实例模板

您可以自定义 vmx.yaml 模板以创建vMX实例。Heat 模板从相应的环境文件获取其输入参数。

在 vMX 实例模板中,您将修改以下资源:

  • OS:Networking::VmxPort— 将 FPC 的 WAN 端口定义为 ge- 或 x/x/x xe/0/0/0。从环境文件获取的输入参数是网络 ID,用于为网络添加 WAN 端口 ( ) 和端口 vnetwork_id 名称 ( pname )。 stack_name 不会更改。

  • OS:网络::VmxSriovPort — 将 SR-IOV 接口的 FPC 的 WAN 端口定义为 ge- x/x/x 或 xe/0/0/0。从环境文件获取的输入参数是网络 ID,用于为网络添加 WAN 端口 ( ) 和端口 vnetwork_id 名称 ( pname )。 stack_name 不会更改。

您可以在 package-location /openstack 上找到示例实例模板

vMX拓扑模板

您可以自定义 vmx.yaml 模板vMX实例,实例可以与拓扑文件一起用于定义如何互连vMX实例。Heat 模板从相应的环境文件获取其输入参数。

在拓扑模板中,您可以修改以下资源:

  • OS:Networking::VmxNet—定义 OVS 桥接实例。从环境文件获取的输入参数是CIDR ( ) 的输入参数和桥接 net_cidr ( ) 的名称 bnamestack_name 始终设置为 get_param: 'OS::stack_name'

  • OS:Nova::Vmx—定义vMX实例。从环境文件获取的输入参数是桥接 ( ) 和 的网络 net_id1 stack_name ID。

您可以在 package-location /openstack/vmx-topologies/osp-topologies 找到示例实例模板

环境文件

Heat 模板从相应的环境文件获取其输入参数。环境文件采用 YAML 格式。

该实例的环境vMX有 net_id1 参数:

其中现有 neutron 网络的网络 ID 以及用于 WAN 端口的给定 net_id1 VLAN ID。

拓扑的环境文件具有参数 n1 ,即实例名称。

从Junos OS版本17.4R1,环境文件具有以下参数默认值。

其中

  • public_network—用于管理 (fxp0) 端口的现有 neutron 网络的网络 ID。

  • fpc_img—将此参数更改为 linux-img 。由脚本创建的用于安装虚拟映像的 VFP vMX名称。

    对于 Junos OS 和17.3R1, vfp_image 是参数。由脚本创建的 VFP 的概览映像的名称,用于安装 vMX 映像。

  • fpc_flav—将此参数更改为 linux-flav 。由脚本创建的 VFP nova 风格的名称,用于创建 OpenStack 风格。

    对于 Junos OS 和17.3R1, vfp_flavor 是参数。由脚本创建的 VFP nova 风格的名称,用于创建 OpenStack 风格。

  • junos_flav—由脚本创建的 VCP 新奇数新风格的名称,用于创建 OpenStack 风格。

    对于 Junos OS 和17.3R1, vcp_flavor 是参数。由脚本创建的 VCP nova 风格的名称,用于创建 OpenStack 风格。

  • junos_img—由脚本创建的 VCP 概览映像的名称,用于安装vMX映像。

    对于 Junos OS 和17.3R1, vcp_image 是参数。由脚本创建的 VCP 的概览映像的名称,用于安装 vMX 映像。

  • project_name—任何项目名称。所有资源都将使用此名称作为前缀。

  • gateway_ip—网关 IP 地址。

在 Junos OS 之前17.4R1,环境文件具有以下参数默认值。

其中

  • public_network—用于管理 (fxp0) 端口的现有 neutron 网络的网络 ID。

  • vfp_image—由脚本创建的 VFP 概览映像的名称,用于安装vMX映像。

  • vfp_flavor—由脚本创建的 VFP 新奇型 nova 名称,用于创建 OpenStack 风格。

  • vcp_flavor—由脚本创建的 VCP 新奇数新风格的名称,用于创建 OpenStack 风格。

  • vcp_image—由脚本创建的 VCP 概览映像的名称,用于安装vMX映像。

  • project_name—任何项目名称。所有资源都将使用此名称作为前缀。

  • gateway_ip—网关 IP 地址。

修改实例热模板中的端口

您可以修改 vMX 实例模板来添加或删除端口,以及更改 virtio 和 SR-IOV 接口。例如 package-location ,/openstack/1vmx.yaml文件会创建单个实例。

要向模板添加端口:

  1. 从 vMX 下载vMX KVM 软件包,然后解压缩软件包。

    tar xvf package-name

  2. 将目录更改为文件的位置。

    cd package-location/openstack

  3. 编辑1vmx.yaml文件以修改 OS:网络::VmxPort 资源。

    要添加 virtio 端口,请添加另一个 OS:Networking::VmxPort 条目,但将端口号更改为下一个数字、net_id2 参数以及新端口 vnetwork_id pname 名称的参数。例如:

    注意:

    如果您要添加 virtio 端口条目(OS::网络::VmxPort 资源),请确保不包含 SR-IOV 端口条目 (OS::网络::VmxSriovPort 资源),因为不支持混合接口。

  4. 要添加 SR-IOV 端口,可以将参数更改为 type OS::Networking::VMxSriovPort for os::Networking:VmxPort 条目。

    要添加另一个 SR-IOV 端口,请添加另一个 OS::Networking::VmxSriovPort 条目,但将端口号更改为下一个数字、下一个数字的参数,以及新端口名称的参数。 vnetwork_id pname 例如,如果模板文件已经有两个端口:

    注意:

    如果您要添加 SR-IOV 端口条目(OS:网络::VmxSriovPort 资源),请确保不包含 virtio 端口条目(OS:网络::VmxPort 资源),因为不支持混合接口。

  5. 如果您有多个端口,您必须修改 package-location /openstack/vmx.yaml文件,以在每个附加端口属性下的资源部分中添加另一个条目(用逗号分隔),并且将端口号更改为下一个编号。 {get_attr: [fpc0_ge_port1, port]} fpc0 all_ports例如,此配置具有两个端口。
  6. 在模板文件的参数部分下为 net_id VmxPort 或 VmxSriovPort资源添加vnetwork_id参数。
  7. net_id VmxPort 或 VmxSriovPort资源添加的每个端口对应的vnetwork_id参数部分下添加附加参数。
    注意:

    如果您要添加 SR-IOV 接口,请确保已正确准备控制器和计算节点。请参阅 在 OpenStack vMX软件

  8. 使用 命令vMX实例 heat stack-create –f heat-filename –e environment-filename vmx-name
  9. 验证是否使用 vMX 创建了第三个 heat stack-list | grep vmx-name 实例。

要删除端口,请删除添加端口包含的所有行。

定义拓扑

您可创建vMX实例,该实例可用于拓扑模板以定义如何互连vMX实例。Heat 模板从相应的环境文件获取其输入参数。以下示例演示如何修改拓扑。

在vMX WAN 网络中创建新实例

package-location /openstack/vmx-topologies/osp-topologies/1vmx1net.yaml文件会创建一vMX实例,包含现有网桥上的端口。

要向该vMX添加一个模板实例:

  1. 将示例拓扑模板文件和环境文件复制到顶级目录。
  2. 编辑1vmx1net.yaml文件以添加另一个 OS::Nova::Vmx 条目,但将最后一个参数更改为 stack_name 下一个数字。例如:
  3. 请确保参数列在该实例的相应环境文件的参数部分vMX(此情况下为 net_id 1vmx.env)。
    注意:

    如果您要添加 SR-IOV 接口,请确保已正确准备控制器和计算节点。

  4. 使用 命令vMX多个实例 heat stack-create –f heat-filename –e environment-filename stack-name
  5. 验证是否使用 vMX 创建了第三个 heat stack-list | grep vmx-name 实例。

使用vMX OVS 网桥连接多个实例

package-location /openstack/vmx-topologies/osp-topologies/2vmx1net.yaml文件使用一个共享网桥的端口创建两个实例。

要添加连接每个实例上第二个端口的桥接vMX:

  1. 将示例拓扑模板文件和环境文件复制到顶级目录。
  2. 编辑2vmx1net.yaml文件以添加另一个 OS:Networking::VmxNet 条目,但将网络的 CIDR ( ) 和桥接 net_cidrbname ) 的名称更改为下一个数字。例如:
  3. 对于每个 OS::Nova::Vmx 条目,添加下一个桥接网络 ID。例如:
  4. ge_cidr 端口的参数部分下添加参数。
  5. 请确保该实例的相应环境文件的参数部分(vMX 1vmx.env)列出了 net_id 所有参数。
    注意:

    如果您要添加 SR-IOV 接口,请确保已正确准备控制器和计算节点。

  6. 使用 命令vMX多个实例 heat stack-create –f heat-filename –e environment-filename stack-name
  7. 验证是否使用 vMX 创建了第三个 heat stack-list | grep vmx-name 实例。