• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C S1020V虚拟交换机 部署指导-E35xx-6W101

01-部署指导

本章节下载 01-部署指导  (1.34 MB)

01-部署指导

H3C S1020V虚拟交换机 部署指导-E35xx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

资料版本:6W101-20231012

 

Copyright © 2023 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文档中的信息可能变动,恕不另行通知。



1 概述

1.1  部署流程

本文介绍S1020V产品在各个场景下,为达到预期的功能及性能目标的部署流程。

图1-1 部署流程

 


2 硬件资源要求

本文介绍在操作系统安装完成后,为使S1020V达到预期的转发性能目标,所需要占用的硬件资源。有关安装BClinux、CAS和workspace等操作系统时的硬件资源要求,请参考各产品对应的文档。

S1020V部署有两种形态,分别是内核形态和dpdk形态。

2.1  CPU资源要求

内核形态下,S1020V固定占用一个CPU进行内核态处理,转发性能取决于单个CPU的能力。

dpdk形态下,S1020V可以配置占用一个或多个CPU进行用户态处理,在单核时转发性能可提高到内核形态的至少六倍以上,并可以通过占用多个CPU达到更高的性能表现。

使用智能网卡时,转发性能不受S1020V绑定CPU数量影响,S1020V此时默认绑定一个CPU,性能由网卡的表现决定。

S1020V在非智能网卡场景下不同转发性能时所需的资源有所不同,具体如表2-1所示。

表2-1 CPU资源需求表

场景

CPU型号

10G转发性能所需核数

25G转发性能所需核数

智能网卡场景

该场景下性能仅与网卡有关

普通网卡场景

Intel 5218R

3核

5核

Kunpeng 920 5250

4核

7核

Hygon 7265

4核

9核

 

说明

·     此处说明的核数量,指的是在服务器未开启超线程的情况下的物理核数量。若现场部署的服务器开启了超线程,此时请将物理核及物理核对应的所有超线程核都给S1020V使用。

·     对于未包含在上述表格中的CPU,可以参考表格中同系列的CPU为S1020V分配核数。分配时可对比CPU的核频率,频率越高,分配的核数可适当减少;频率越低,分配的核数可适当增加。

 

选择核时,需要保证S1020V业务网卡所在的NUMA上有核。

可以通过如下命令查看网卡在哪个NUMA上,标红处需使用网卡的实际pci号:

[root@openeuler ~]# cat /sys/bus/pci/devices/0000\:03\:00.0/numa_node

0

该显示信息表示网卡在NUMA0上。

2.2  大页内存资源要求

内核形态无需占用大页内存。

在dpdk形态下,S1020V需要占用一部分大页内存。占用大页内存的多少,取决于S1020V桥上接口的mtu大小和种类。

当桥上的mtu均保持一致时,可参考下列表格中的常见mtu值,为S1020V分配大页内存。

表2-2 内存资源需求表

mtu值

每NUMA配置大页内存

1500

1024M

4000

2048M

9000

3072M

 

通常情况下,S1020V桥上的mtu不能保持一致。从虚拟机发出的报文,经过S1020V处理后,会添加50字节长的vxlan封装,再从S1020V的物理口转发出去。所以物理口的mtu需要至少比虚拟机mtu大50。在mtu不能保持一致的情况下,则请参见4 附录进行计算。

 


3 部署S1020V

3.1  简介

本文介绍如何在不同的操作系统下部署内核形态或dpdk形态的S1020V,您可根据需要,选择相应的部署方式。

在部署之前,请先执行如下两步完成部署S1020V的准备工作:

(1)     安装BClinux、CAS和workspace等S1020V适配的操作系统,有关操作系统的安装方式,请参考对应产品的安装手册。

(2)     安装S1020V,有关具体的安装步骤,请参见“H3C S1020V虚拟交换机 安装指导-E3xxx”。

3.2  在CentOS/BCLinux系统上部署S1020V

在各类CentOS/BCLinux系统上部署的步骤一致,本文以BClinux for euler 21.10操作系统为例进行介绍。

3.2.1  自动化部署脚本使用说明

为使S1020V能够与控制器建立连接使用,在S1020V安装成功后,需要添加基本配置。S1020V提供了自动化部署脚本来快速添加桥。

S1020V自动化部署脚本支持创建两种类型的桥,请按需选择其中之一创建:

·     system类型:该类型是提供给内核形态使用的桥配置模型。此模型有一个桥,受SDN控制器管控。

·     netdev类型:该类型是提供给dpdk形态使用的桥配置模型。此模型有两个桥。一个桥负责处理Overlay流量,此桥受SDN控制器管控,该桥通常称为内桥、VXLAN桥或Overlay桥。另一个桥负责处理Underlay流量,不受SDN控制器管控,该桥通常称为外桥、Normal桥或Underlay桥。两个桥之间用Patch口连接。

1. 建桥脚本auto-create-vds.sh

/usr/share/openvswitch/scripts/auto-create-vds.sh脚本可用于创建system桥和netdev桥。可通过使用bash /usr/share/openvswitch/scripts/auto-create-vds.sh -h命令查看使用帮助。各参数含义如下:

·     -b, --bridge, --brint:创建的system桥/netdev内桥名称。

·     -p, --port:system桥/netdev内桥上行口名称。

·     -m, --mtu:最大传输单元,缺省值为9000。物理网卡子接口作为上行接口时,请确保该子接口的MTU不得大于对应主接口的MTU。

·     -v, --vtep-ip <ip/mask>:配置VTEP IP地址和掩码。

·     -g, --gateway:当服务器上没有默认网关时,此参数会将业务桥配置为服务器的默认网关,并指定网关的IP地址。

·     -c, --controller:配置VCFC控制器IP地址。

·     -d, --domain-id:主机加入的控制器中计算域的ID。

·     -P, --protocol:与控制器建立连接使用的协议类型(支持TCP、SSL协议),参数可选项:tcp、ssl。参数缺省值为tcp,即默认使用TCP协议。

·     -o, --openflow-port:与控制器建立连接使用的协议的端口号,缺省值为6633。目前版本中建立tcp连接使用端口6633,建立ssl连接使用端口6634。

·     -O, --openflow-protocol:指定与控制器建立连接使用的OpenFlow协议和版本号,可使用ovs-ofctl --version查看当前支持的OpenFlow协议版本。默认为OpenFlow1.3,缺省值为OpenFlow13。

·     --private-key:SSL连接的私钥,配置SSL连接时需指定该参数。

·     --certificate:认证SSL连接私钥的证书,配置SSL连接时需指定该参数。

·     --ca-cert:CA证书,配置SSL连接时需指定该参数。

·     --datapath_type:设置网桥类型,支持system、netdev桥。参数可选项:system、netdev,参数缺省值:system。

·     --pci:netdev类型Underlay桥的上行口pci地址。如需配置聚合口,需指定多个pci地址参数作为成员口。

·     --brex:netdev类型Underlay桥的外桥名称。

·     --bond_mode:netdev类型Underlay桥的聚合口聚合模式,参数可选项:balance-tcp、balance-slb和active-backup。缺省值为balance-tcp。

·     --nic_drv:指定netdev类型Underlay桥的dpdk用户态驱动,参数缺省值为vfio-pci。

·     --dpdk-socket-mem:指定netdev桥的大页内存预分配大小,单位:MB。缺省值为1024,0。即numa0预分配1024M大页。

2. 删桥脚本auto-delete-vds.sh

/usr/share/openvswitch/scripts/auto-create-vds.sh脚本用于删除auto-create-vds.sh脚本创建的网桥。

执行bash /usr/share/openvswitch/scripts/auto-delete-vds.sh br-name命令删除桥,br-name为创建的桥名。

3.2.2  在内核形态部署S1020V

1. 运行自动配置脚本添加配置

与控制器建立TCP连接时,运行自动配置脚本的命令格式如下:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol -o port -O openflow-version --datapath_type datapath-type

其中:

·     bridge-name为桥名,必选配置;

·     uplink-port为上行口,必选配置;

·     mtu为最大传输单元,必选配置;

·     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

·     gateway为默认网关的IP地址,可选配置;

·     controller-ip为控制器IP地址,建议不配置;

·     domain-id为主机加入的控制器中计算域的ID,建议不配置;

·     protocol为与控制器连接的通信协议,建立TCP连接时protocol设置为tcp,可不配置;

·     port为建立连接的端口号,可不配置;

·     openflow-version为OpenFlow协议版本,可不配置;

·     datapath-type默认为system,可不配置。

与控制器建立SSL连接时,运行自动配置脚本的命令格式如下:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol  --private-key private-key  --certificate  certificate --ca-cert  ca-cert -o port -O openflow-version  --datapath_type datapath-type

其中:

·     bridge-name为桥名,必选配置;

·     uplink-port为上行口,必选配置;

·     mtu为最大传输单元,必选配置;

·     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

·     gateway为默认网关的IP地址,按需配置;

·     controller-ip为控制器IP地址,建议不配置;

·     domain-id为主机加入的控制器中计算域的ID,建议不配置;

·     protocol为与控制器连接的通信协议,建立SSL连接时protocol设置为ssl,同时指定SSL连接的私钥private-key、证书certificate和CA证书ca-cert,填写证书在服务器内的路径,必选配置;

·     port为建立连接的端口号,ssl需要使用端口号为6634,必选配置;

·     openflow-version为OpenFlow协议版本,可不配置;

·     datapath-type默认为system,可不配置。

例如需要创建system网桥,名称为vds1-br,上行接口名称为enp130s0f0,VTEP IP地址为100.1.1.3,掩码为255.255.255.0,指定默认网关位于vds1-br上且为100.1.1.1,与控制器建立TCP连接。则可执行如下命令:

[root@openeuler ~]# bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b vds1-br -p enp130s0f0 -g 100.1.1.1 -m 9000 -v 100.1.1.3/24 -P tcp -o 6633 -O OpenFlow13

说明

·     请选择空闲的二层以太网接口作为上行接口。

·     物理网卡子接口作为上行接口时,请确保该子接口的MTU不得大于对应主接口的MTU。

·     一台物理主机只有一个默认网关,在指定-g参数设置网关时,请确保主机上没有默认网关配置或已删除旧的默认网关配置。

·     利用自动化部署脚本创建的网桥后,如果发现参数错误,需要修改网桥配置时,必须使用bash /usr/share/openvswitch/scripts/auto-delete-vds.sh br-name命令删除该网桥后,重新使用/usr/share/openvswitch/scripts/auto-create-vds.sh脚本创建网桥并重新在控制器上线。其中,br-name表示网桥名。不指定br-name参数时,默认删除vds1-br。

 

2. 检查网桥虚接口是否创建成功

可通过ifconfig port-name命令查看网桥虚接口是否创建成功。其中,port-name表示网桥虚接口名称。

[root@openeuler ~]# ifconfig vds1-br

vds1-br: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000

        inet 100.1.1.3  netmask 255.255.255.0  broadcast 100.1.1.255

        inet6 fe80::faf2:1eff:fef1:4124  prefixlen 64  scopeid 0x20<link>

        ether f8:f2:1e:f1:41:24  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 12  bytes 852 (852.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3. 检查网桥基本配置是否成功

可通过ovs-vsctl show和ovs-appctl dpif/show命令查看网桥基本配置是否成功。

检查网桥对应的网桥虚接口(type:internel)、物理以太网接口和VXLAN接口(type:vxlan)是否创建成功,检查VXLAN接口的local_ip是否配置成功。

查看所有网桥和端口:

[root@openeuler ~]# ovs-vsctl show

2aa3e706-cafa-4a65-9892-a8ae6ddbbe90

    Bridge vds1-br

        fail_mode: secure

        datapath_type: system

        Port vds1-br

            Interface vds1-br

                type: internal

        Port vxlan_vds1-br

            Interface vxlan_vds1-br

                type: vxlan

                options: {key=flow, local_ip="100.1.1.3", remote_ip=flow, tos=inherit}

        Port enp130s0f0

            Interface enp130s0f0

ovs_version: "H3C S1020V, Version E3501"

检查datapath的汇总信息:

[root@openeuler ~]# ovs-appctl dpif/show

system@ovs-system: hit:52 missed:18

  vds1-br:

    enp130s0f0 1/1: (system)

    vds1-br 65534/2: (internal)

    vxlan_vds1-br 2/3: (vxlan: key=flow, local_ip=100.1.1.3, remote_ip=flow, tos=inherit)

3.2.3  在dpdk形态部署S1020V

1. DPDK相关预配置

(1)     在主机的BIOS中,根据CPU架构的不同,开启相应的功能。

x86架构需要开启VT-d功能,如图3-1所示。

图3-1 BIOS设置

 

arm架构需要开启SMMU功能,如图3-2所示。

图3-2 SMMU设置

 

(2)     在主机操作系统的命令行界面中添加操作系统iommu/SMMU、大页、隔离核的配置。

下文以配置200G大页,隔离四个物理CPU(编号2-5)及其对应的超线程CPU(编号42-45)给S1020V使用进行介绍。

说明

·     大页数量等于虚机使用的内存数量与S1020V使用的大页内存数量之和。

·     实际需要隔离的CPU数量及编号,请根据2.1  CPU资源要求章节以及服务器实际的CPU编号确定。

 

部分参数需要区分intel、arm及海光服务器,此处分别说明。

进入grub文件:

[root@openeuler ~]# vim /etc/default/grub

在grub文件中添加灰色部分的配置信息:

¡     intel服务器:

GRUB_CMDLINE_LINUX="resume=/dev/mapper/bigcloud--enterprise--linux--for--euler-swap rd.lvm.lv=bigcloud-enterprise-linux-for-euler/root rd.lvm.lv=bigcloud-enterprise-linux-for-euler/swap crashkernel=512M default_hugepagesz=1G hugepagesz=1G hugepages=200 iommu=pt intel_iommu=on isolcpus=2-5,42-45 rcu_nocbs=2-5,42-45 nohz_full=2-5,42-45"

¡     arm服务器。在欧拉操作系统上,arm服务器不支持1G单位的大页,只支持512M。同时为达到200G,则需要配置400个大页:

GRUB_CMDLINE_LINUX="rd.lvm.lv=bigcloud-enterprise-linux-for-euler/root rd.lvm.lv=bigcloud-enterprise-linux-for-euler/swap video=VGA-1:640x480-32@60me console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off default_hugepagesz=512M hugepagesz=512M hugepages=400 iommu.passthrough=1 isolcpus=2-5,42-45 rcu_nocbs=2-5,42-45 nohz_full=2-5,42-45"

¡     海光服务器:

GRUB_CMDLINE_LINUX="resume=/dev/mapper/bigcloud--enterprise--linux--for--euler-swap rd.lvm.lv=bigcloud-enterprise-linux-for-euler/root rd.lvm.lv=bigcloud-enterprise-linux-for-euler/swap crashkernel=512M default_hugepagesz=1G hugepagesz=1G hugepages=200 iommu=pt amd_iommu=on isolcpus=2-5,42-45 rcu_nocbs=2-5,42-45 nohz_full=2-5,42-45"

(3)     修改完成后,执行:wq保存配置并退出grub文件,然后更新grub.cfg。

grub2-mkconfig -o $(find /boot -name "grub.cfg")

(4)     重新启动主机。重启完成后,可通过命令cat /proc/cmdline查看巨页及iommu配置是否生效。预期在回显中能看到步骤2中下发的配置。

(5)     使能S1020V的DPDK功能。

[root@openeuler ~]# ovs-vsctl set Open_vSwitch . other_config:dpdk-init=true

(6)     配置S1020V占用的大页,本例中分别在numa0、numa1上为S1020V分配了4096M大页,重启openvswitch服务后可生效。实际所需要的大页数量,请参考2.2  内存资源要求

[root@openeuler ~]# ovs-vsctl set Open_vSwitch . other_config:dpdk-socket-mem="4096,4096"

(7)     配置S1020V占用的CPU。本例将步骤2中隔离的物理CPU(编号为2-5)给S1020V占用,这里不包含超线程CPU。

[root@openeuler ~]# ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x3c

此处配置的参数为16进制,输入时需将2进制转换为16进制。配置2~5核时,可以打开windows的计算器应用并切换到程序员模式,如红框所示将二进制栏中的2-5位数字置1。并选择十六进制,此时显示转换为16进制的数是3c,用于配置参数。

图3-3 进制换算示意图

 

(8)     重启ovs进程,使配置生效

[root@openeuler ~]# systemctl restart openvswitch

2. 运行自动配置脚本添加桥配置

·     与控制器建立TCP连接时,运行自动配置脚本的命令格式:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol -o port -O openflow-version --datapath_type datapath-type  --pci pci-addr  --bond_mode bond-mode --brex br-ex --dpdk-socket-mem socket-mem

其中:

¡     bridge-name为内桥名,必选配置;

¡     uplink-port为内桥上行口,必选配置;

¡     mtu为最大传输单元,必选配置;

¡     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

¡     gateway为默认网关的IP地址,可选配置;

¡     controller-ip为控制器IP地址,建议不配置;

¡     domain-id为主机加入的控制器中计算域的ID,建议不配置;

¡     protocol为与控制器连接的通信协议,建立TCP连接时protocol设置为tcp,可不配置;

¡     port为建立连接的端口号,可不配置;

¡     openflow-version为OpenFlow协议版本,可不配置;

¡     netdev桥datapath-type设置为netdev,必选配置;

¡     pci-addr为Underlay桥的上行口pci地址,在配置聚合模式时,需指定多个--pci参数作为成员口,必选配置;

¡     bond-mode为聚合模式,可选配置;

¡     br-ex为外桥名,可选配置;

¡     socket-mem 为每numa预分配的大页数,必选配置。

·     与控制器建立SSL连接时,运行自动配置脚本的命令格式:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol --private-key private-key  --certificate  certificate --ca-cert  ca-cert -o port -O openflow-version --datapath_type datapath-type  --pci pci-addr  --bond_mode bond-mode --brex br-ex  --dpdk-socket-mem socket-mem

其中:

¡     bridge-name为内桥名,必选配置;

¡     uplink-port为内桥上行口,必选配置;

¡     mtu为最大传输单元,必选配置;

¡     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

¡     gateway为默认网关的IP地址,可选配置;

¡     controller-ip为控制器IP地址,建议不配置;

¡     domain-id为主机加入的控制器中计算域的ID,建议不配置;

¡     protocol为与控制器连接的通信协议,建立SSL连接时protocol设置为ssl,同时指定SSL连接的私钥private-key、证书certificate和CA证书ca-cert,必选配置;

¡     port为建立连接的端口号,需要配置为6634,必选配置;

¡     openflow-version为OpenFlow协议版本,可不配置;

¡     netdev桥的datapath-type设置需为netdev,必选配置;

¡     pci-addr为Underlay桥的上行口pci地址,在配置聚合模式时,需指定多个--pci参数作为成员口,必选配置;

¡     bond-mode为聚合模式,可选配置;

¡     br-ex为外桥名,可选配置;

¡     socket-mem 为每numa预分配的大页数,必选配置。

假设需要创建的tcp类型Overlay桥名称为vds1-br,上行口名称为ensuplink,Underlay桥名称为br-ex,其上行接口是一个Bond口,它的两个子接口的PCI地址分别为0000:82:00.0和0000:82:00.1,两个口做成bond4聚合(balance-tcp参数),VTEP IP地址为100.1.1.3,掩码为255.255.255.0,默认网关为100.1.1.1,预分配大页为4096,4096(numa0、1各分配4096M大页)。则可执行如下命令:

[root@openeuler ~]# bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b vds1-br -p ensuplink -m 9000 -v 100.1.1.3/24 -g 100.1.1.1 --datapath_type netdev --pci 0000:82:00.0 --pci 0000:82:00.1 --brex br-ex --bond_mode balance-tcp --dpdk-socket-mem 4096,4096

说明

·     请选择空闲的二层以太网接口作为外桥(br-ex)的上行接口。

·     一台物理主机只有一个默认网关,在指定-g参数设置网关时,请确保主机上没有默认网关配置或已删除旧的默认网关配置。

·     创建netdev类型的桥时,VTEP IP仅用于外桥。

·     利用自动化部署脚本创建的网桥后,如果发现参数错误,需要修改网桥配置时,必须使用bash /usr/share/openvswitch/scripts/auto-delete-vds.sh br-name命令删除该网桥后,重新使用/usr/share/openvswitch/scripts/auto-create-vds.sh脚本创建网桥并重新在控制器上线。其中,br-name表示网桥名。不指定br-name参数时,默认删除vds1-br。

·     在配置大页前,可使用numastat -m命令查看每个numa上剩余大页HugePages_Free的值(若无该命令,请在操作系统中执行yum install -y numactl命令安装numactl工具集),避免大页不足导致出错。

·     使用自动化部署脚本建桥后,若dpdk-socket-mem发生变化,会打印“WARNING: The value for the "dpdk-socket-mem" parameter has changed. Please execute the "systemctl restart openvswitch.service" command to take effect.”信息,此时需要重启openvswitch服务,使新的大页内存配置生效。

 

3. 检查网桥虚接口是否创建成功

可通过ifconfig port-name命令查看网桥虚接口是否创建成功。其中,port-name表示网桥虚接口名称。在双桥模型中,VTEP IP仅用于外桥。

检查内桥:

[root@openeuler ~]# ifconfig vds1-br

vds1-br: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 9000

        inet6 fe80::f4bf:2bff:fe69:444e  prefixlen 64  scopeid 0x20<link>

        ether f6:bf:2b:69:44:4e  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 12  bytes 936 (936.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

检查外侨:

[root@openeuler ~]# ifconfig br-ex

br-ex: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 9000

        inet 100.1.1.3  netmask 255.255.255.0  broadcast 100.1.1.255

        inet6 fe80::faf2:1eff:fef1:4124  prefixlen 64  scopeid 0x20<link>

        ether f8:f2:1e:f1:41:24  txqueuelen 1000  (Ethernet)

        RX packets 195  bytes 30376 (29.6 KiB)

        RX errors 0  dropped 35  overruns 0  frame 0

        TX packets 16  bytes 1132 (1.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

4. 检查网桥基本配置是否成功

可通过ovs-vsctl show命令和ovs-appctl dpif/show命令查看网桥基本配置是否成功。

检查网桥对应的网桥虚接口(type:internel)、物理以太网接口和VXLAN接口(type:vxlan)是否创建成功;检查VXLAN接口的local_ip是否配置成功。

检查所有网桥和端口:

[root@openeuler ~]# ovs-vsctl show

2aa3e706-cafa-4a65-9892-a8ae6ddbbe90

    Bridge vds1-br

        fail_mode: secure

        datapath_type: netdev

        Port patchInt

            Interface patchInt

                type: patch

                options: {peer=patchEx}

        Port vxlan_vds1-br

            Interface vxlan_vds1-br

                type: vxlan

                options: {key=flow, local_ip="100.1.1.3", remote_ip=flow, tos=inherit}

        Port vds1-br

            Interface vds1-br

                type: internal

    Bridge br-ex

        fail_mode: standalone

        datapath_type: netdev

        Port eobond

            Interface u0

                type: dpdk

                options: {dpdk-devargs="0000:82:00.0"}

            Interface u1

                type: dpdk

                options: {dpdk-devargs="0000:82:00.1"}

        Port patchEx

            Interface patchEx

                type: patch

                options: {peer=patchInt}

        Port br-ex

            Interface br-ex

                type: internal

    ovs_version: "H3C S1020V, Version E3501"

检查datapath的汇总信息:

[root@openeuler ~]# ovs-appctl dpif/show

netdev@ovs-netdev: hit:0 missed:0

  br-ex:

    br-ex 65534/1: (tap)

    patchEx 3/none: (patch: peer=patchInt)

    u0 1/2: (dpdk: configured_rx_queues=1, configured_rxq_descriptors=2048, configured_tx_queues=5, configured_txq_descriptors=2048, lsc_interrupt_mode=false, mtu=9000, requested_rx_queues=1, requested_rxq_descriptors=2048, requested_tx_queues=5, requested_txq_descriptors=2048, rx_csum_offload=true, tx_tso_offload=false)

    u1 2/3: (dpdk: configured_rx_queues=1, configured_rxq_descriptors=2048, configured_tx_queues=5, configured_txq_descriptors=2048, lsc_interrupt_mode=false, mtu=9000, requested_rx_queues=1, requested_rxq_descriptors=2048, requested_tx_queues=5, requested_txq_descriptors=2048, rx_csum_offload=true, tx_tso_offload=false)

  vds1-br:

    patchInt 1/none: (patch: peer=patchEx)

    vds1-br 65534/4: (tap)

vxlan_vds1-br 2/5: (vxlan: key=flow, local_ip=100.1.1.3, remote_ip=flow, tos=inherit)

3.2.4  控制器纳管S1020V

配置桥完成后,可在控制器上可以纳管S1020V。配置步骤如下:

说明

通过控制器纳管S1020V时,需要确保服务器到控制器间网络畅通。

 

(1)     在控制器的“自动化 > 数据中心网络 > Fabrics > 计算域”页面上,点击增加按钮,为S1020V创建一个名为kvm的计算域,如图3-4所示。

图3-4 创建计算域

 

说明

在某些使用场景中,可能由其它组件推送计算域到控制器,此时请使用推送过来的计算域而非手动创建。

 

(2)     点击“主机”进入主机页面后,点击增加按钮,填写如下信息:

¡     步骤1中创建的计算域;

¡     Fabric填写正确,且该Fabric必须属于桥名为vds1-br的虚拟分布式交换机;

¡     服务器的管理IP地址;

¡     OpenFlow连接方式。

图3-5 纳管S1020V

 

(3)     填写完毕后,点击应用按钮并刷新几次控制器页面,在主机页面查看到运行状态为绿色表示部署完成。

图3-6 运行状态

 

3.3  在H3C CAS云计算管理平台上部署S1020V

根据H3C CAS云计算管理平台版本的不同,部分按钮的位置可能会发生变化。本文使用的页面仅供参考,实际配置时请根据页面情况进行配置。

3.3.1  在内核形态部署S1020V

(1)     在CAS对应主机的页面上,点击“虚拟交换机 > 增加”按钮,在显示的页面中,填写如下信息创建内核形态的网桥:

¡     “名称”为桥名

¡     “网络类型”选择“业务网络”

¡     “转发模式”选择VXLAN(SDN)

¡     “MTU”处填写实际规划的MTU值

图3-7 基本信息

 

(2)     点击下一步后进入配置网络页面并填写如下信息:

¡     “加速模式”选择普通

¡     “物理接口”选择将要给S1020V使用的端口

¡     “IPv4地址”和“子网掩码”填写vtep ip及其掩码

¡     “IPv4网关”为按需配置的默认网关,添加后将使用此地址作为服务器的默认网关

¡     “IPv6地址”等项目按需填写

图3-8 配置网络

 

(3)     点击下一步进入配置模式页面。

在有多块网卡时,需要选择网卡的聚合模式。可根据交换机的配置,选择使用动态或者静态聚合,并根据现网实际需求,选择不同的流量负载分担模式。

图3-9 配置模式

 

(4)     点击确定即可完成部署,在CAS“虚拟交换机”页面上可以查看到成功创建了的虚拟交换机。

3.3.2  在dpdk形态部署S1020V

1. dpdk相关预配置

(1)     如图3-10所示,在CAS对应主机的页面上,点击“高级设置 > 启动项配置”,添加如下配置:

¡     “大页配置”中,页大小推荐配置为1G;页数请按需配置。

说明

在“DPDK配置”项目中占用的内存和虚拟机内存,均会消耗此处配置的页数,页数越多,虚拟机可用的内存也会越多。但页数配置存在上限限制,请按需配置。

 

¡     “IOMMU/SMMU配置”中,请选择启用。

¡     “CPU配置”中,请选择启用隔离。并把给S1020V使用的CPU及其对应的超线程CPU隔离。图中隔离了CPU2-5和其对应的超线程CPU38-41,实际需要隔离的CPU数量及编号,请根据2.1  CPU资源要求章节以及服务器实际的CPU编号确定。

说明

在CAS上隔离核时,请尽量保证隔离了NUMA0上的CPU核给S1020V使用。否则的话,在步骤4中分配cpu核给dpdk使用时,不能选择已隔离的第一个NUMA的第一个核(含对应的超线程核)。并且这个核不包含S1020V的硬件资源要求中,即需要额外使用一个核。

 

图3-10 启动项配置

 

(2)     配置完成后,保存配置并重启服务器。

(3)     服务器重启完成后,请在“高级设置 > 启动项配置”页面检查配置是否成功下发并保留在页面上。

(4)     点击“高级设置 > DPDK配置”,添加DPDK配置。

“DPDK状态”选择为启用,然后点击CPU2-5所在的NUMA0后面的修改按钮,如图3-11所示,选择对应的CPU配置给dpdk使用。实际所需要的大页数量,请参考2.2  内存资源要求确定。

图3-11 DPDK配置

 

(5)     点击确定和保存按钮将配置保存后,等待CAS提示配置生效,配置完成。

2. 配置业务网络使用的网卡

说明

·     如果使用的是mellanox品牌的网卡,无需此节配置,请直接创建虚拟交换机。

·     仅intel或broadcom等其它品牌的网卡需要执行本节配置。

 

(1)     在CAS对应主机的页面上,点击“硬件 > 物理网卡”。

(2)     如图3-12图3-13所示,找到将要给S1020V使用的网口,点击修改,选择VFIO驱动。如果使用多个网口组成bond,则所有网口都需要做此操作。

图3-12 修改物理网卡驱动1

 

图3-13 修改物理网卡驱动2

 

3. 创建虚拟交换机

(1)     在CAS对应主机的页面上,点击“虚拟交换机 > 增加”按钮,在显示的页面中,填写如下信息创建dpdk形态的网桥:

¡     “名称”为桥名

¡     “网络类型”选择“业务网络”

¡     “转发模式”选择VXLAN(SDN)

¡     “MTU”处填写实际规划的MTU值

图3-14 基本信息

 

(2)     点击下一步后进入配置网络页面并填写如下信息:

¡     “加速模式”选择DPDK

¡     “物理接口”处将显示mellanox品牌或配置过VFIO驱动的网卡,请选择将要给S1020V使用的端口

¡     “IPv4地址”和“子网掩码”填写vtep ip及其掩码

¡     “IPv4网关”为按需配置的默认网关,添加后将使用此地址作为服务器的默认网关

¡     “IPv6地址”等项目按需填写

图3-15 配置网络

 

(3)     点击下一步进入配置模式页面。

在有多块网卡时,需要选择网卡的聚合模式。可根据交换机的配置,选择使用动态或者静态聚合,并根据现网实际需求,选择不同的流量负载分担模式。

图3-16 配置模式

 

(4)     点击确定即可完成部署,在CAS的“虚拟交换机”页面上可以查看到成功创建了的虚拟交换机。

图3-17 虚拟交换机部署完成

 

3.3.3  控制器纳管S1020V

配置桥完成后,可在控制器上可以纳管S1020V。配置步骤如下:

说明

通过控制器纳管S1020V时,需要确保服务器到控制器间网络畅通。

 

(1)     在CAS界面的“系统 > 管理平台联动资源”中,点击“增加管理平台联动资源”,进行以下配置:

¡     “资源名称”可以任意配置

¡     “IP地址”填写登录控制器网页界面时的IP地址

¡     “协议”、“端口号”、“用户名”和“密码”四项根据登录控制器网页的实际情况填写

¡     “关联类型”取决于实际方案的要求,这里不做说明

¡     “根路径”固定填写/vds/1.0

图3-18 管理平台联动资源

 

(2)     点击确定,增加联动资源后,在控制器的“自动化 > 数据中心网络 > Fabrics > 计算域”页面上,可以看到新增了一个CAS类型的计算域,是步骤1中CAS创建的。可以通过点击后面的修改按钮,将计算域名称修改规范。

图3-19 管理计算域

 

(3)     点击“主机”进入主机页面后,点击增加按钮,填写如下信息:

¡     步骤1中创建的计算域;

¡     Fabric填写正确,且该Fabric必须属于桥名为vds1-br的虚拟分布式交换机;

¡     服务器的管理IP地址;

¡     OpenFlow连接方式,仅支持TCP类型。

图3-20 纳管S1020V

 

(4)     填写完毕后,点击应用按钮并刷新几次控制器页面,运行状态为绿色表示部署完成。

图3-21 运行状态

 

3.4  在H3C WORKSPACE云桌面上部署S1020V

根据H3C WORKSPACE云桌面版本的不同,部分按钮的位置可能会发生变化。本文使用的页面仅供参考,实际配置时请根据页面情况进行配置。

3.4.1  在内核形态部署S1020V

(1)     在workspace页面上,进入“数据中心 >虚拟化”页签,选择需要部署S1020V的主机。

(2)     点击“虚拟交换机 > 增加”按钮,在显示的页面中,填写如下信息创建内核形态的网桥:

¡     “名称”为桥名

¡     “网络类型”选择“业务网络”

¡     “转发模式”选择VXLAN(SDN)

¡     “MTU”处填写实际规划的MTU值

图3-22 基本信息

 

(3)     点击下一步后进入配置网络页面并填写如下信息:

¡     “加速模式”选择普通

¡     “物理接口”选择将要给S1020V使用的端口

¡     “IPv4地址”和“子网掩码”填写vtep ip及其掩码

¡     “IPv4网关”为按需配置的默认网关,添加后将使用此地址作为服务器的默认网关

¡     “IPv6地址”等项目按需填写

图3-23 配置网络

 

(4)     点击下一步进入配置模式页面。

在有多块网卡时,需要选择网卡的聚合模式。可根据交换机的配置,选择使用动态或者静态聚合,并根据现网实际需求,选择不同的流量负载分担模式。

图3-24 配置模式

 

(5)     点击确定即可完成部署,在CAS“虚拟交换机”页面上可以查看到成功创建了的虚拟交换机。

3.4.2  在dpdk形态部署S1020V

1. dpdk相关预配置

(1)     如图3-25所示,在workspace对应主机的页面上,点击“高级设置 > 启动项配置”,添加如下配置:

¡     “大页配置”中,页大小推荐配置为1G;页数请按需配置。

说明

在“DPDK配置”项目中占用的内存和虚拟机内存,均会消耗此处配置的页数,页数越多,虚拟机可用的内存也会越多。但页数配置存在上限限制,请按需配置。

 

¡     “IOMMU/SMMU配置”中,请选择启用。

¡     “CPU配置”中,请选择启用隔离。并把给S1020V使用的CPU及其对应的超线程CPU隔离。图中隔离了CPU2-5和其对应的超线程CPU38-41,实际需要隔离的CPU数量及编号,请根据2.1  CPU资源要求章节以及服务器实际的CPU编号确定。

说明

在CAS上隔离核时,请尽量保证隔离了NUMA0上的CPU核给S1020V使用。否则的话,在步骤4中分配cpu核给dpdk使用时,不能选择已隔离的第一个NUMA的第一个核(含对应的超线程核)。并且这个核不包含S1020V的硬件资源要求中,即需要额外使用一个核。

 

图3-25 启动项配置

 

(2)     配置完成后,保存配置并重启服务器。

(3)     服务器重启完成后,请在“高级设置 > 启动项配置”页面检查配置是否成功下发并保留在页面上。

(4)     点击“高级设置 > DPDK配置”,添加DPDK配置。

“DPDK状态”选择为启用,然后点击CPU2-5所在的NUMA0后面的修改按钮,如图3-26所示,选择对应的CPU配置给dpdk使用。实际所需要的大页数量,请参考2.2  内存资源要求确定。

图3-26 DPDK配置

 

(5)     点击确定和保存按钮将配置保存后,等待CAS提示配置生效,配置完成。

2. 配置业务网络使用的网卡

说明

·     如果使用的是mellanox品牌的网卡,无需此节配置,请直接创建虚拟交换机。

·     仅intel或broadcom等其它品牌的网卡需要执行本节配置。

 

(1)     在CAS对应主机的页面上,点击“硬件 > 物理网卡”。

(2)     如图3-27图3-28所示,找到将要给S1020V使用的网口,点击修改,选择VFIO驱动。如果使用多个网口组成bond,则所有网口都需要做此操作。

图3-27 修改物理网卡驱动1

 

图3-28 修改物理网卡驱动2

 

3. 创建虚拟交换机

(1)     在CAS对应主机的页面上,点击“虚拟交换机 > 增加”按钮,在显示的页面中,填写如下信息创建dpdk形态的网桥:

¡     “名称”为桥名

¡     “网络类型”选择“业务网络”

¡     “转发模式”选择VXLAN(SDN)

¡     “MTU”处填写实际规划的MTU值

图3-29 基本信息

 

(2)     点击下一步后进入配置网络页面并填写如下信息:

¡     “加速模式”选择DPDK

¡     “物理接口”处将显示mellanox品牌或配置过VFIO驱动的网卡,请选择将要给S1020V使用的端口

¡     “IPv4地址”和“子网掩码”填写vtep ip及其掩码

¡     “IPv4网关”为按需配置的默认网关,添加后将使用此地址作为服务器的默认网关

¡     “IPv6地址”等项目按需填写

图3-30 配置网络

 

(3)     点击下一步进入配置模式页面。

在有多块网卡时,需要选择网卡的聚合模式。可根据交换机的配置,选择使用动态或者静态聚合,并根据现网实际需求,选择不同的流量负载分担模式。

图3-31 配置模式

 

(4)     点击确定即可完成部署,在CAS的“虚拟交换机”页面上可以查看到成功创建了的虚拟交换机。

图3-32 虚拟交换机部署完成

 

3.4.3  控制器纳管S1020V

配置桥完成后,可在控制器上可以纳管S1020V。配置步骤如下:

说明

通过控制器纳管S1020V时,需要确保服务器到控制器间网络畅通。

 

(1)     在workspace界面的“系统 > 高级设置 > 管理平台联动资源”中,点击“增加管理平台联动资源”,进行以下配置:

¡     “资源名称”可以任意配置

¡     “IP地址”填写登录控制器网页界面时的IP地址

¡     “协议”、“端口号”、“用户名”和“密码”四项根据登录控制器网页的实际情况填写

¡     “关联类型”取决于实际方案的要求,这里不做说明

¡     “根路径”固定填写/vds/1.0

图3-33 管理平台联动资源

 

(2)     点击确定,增加联动资源后,在控制器的“自动化 > 数据中心网络 > Fabrics > 计算域”页面上,可以看到新增了一个CAS类型的计算域,是步骤1中workspace创建的。可以通过点击后面的修改按钮,将计算域名称修改规范。

图3-34 管理计算域

 

(3)     点击“主机”进入主机页面后,点击增加按钮,填写如下信息:

¡     步骤1中创建的计算域;

¡     Fabric填写正确,且该Fabric必须属于桥名为vds1-br的虚拟分布式交换机;

¡     服务器的管理IP地址;

¡     OpenFlow连接方式,仅支持TCP类型。

图3-35 纳管S1020V

 

(4)     填写完毕后,点击应用按钮并刷新几次控制器页面,运行状态为绿色表示部署完成。

图3-36 运行状态

 


3.5  在星云智能网卡上部署S1020V

仅E3503P02版本支持在星云智能网卡上部署S1020V,且仅支持BClinux for euler 21.10的操作系统。

3.5.1  自动化部署脚本使用说明

为使S1020V能够与控制器建立连接使用,在S1020V安装成功后,需要添加基本配置。S1020V提供了自动化部署脚本来快速添加桥。

S1020V自动化部署脚本只支持使用如下类型的桥。

netdev类型:该类型是提供给dpdk形态使用的桥配置模型。此模型有两个桥。一个桥负责处理Overlay流量,此桥受SDN控制器管控,该桥通常称为内桥、VXLAN桥或Overlay桥。另一个桥负责处理Underlay流量,不受SDN控制器管控,该桥通常称为外桥、Normal桥或Underlay桥。两个桥之间用Patch口连接。

1. 建桥脚本auto-create-vds.sh

/usr/share/openvswitch/scripts/auto-create-vds.sh脚本可用于创建system桥和netdev桥。可通过使用bash /usr/share/openvswitch/scripts/auto-create-vds.sh -h命令查看使用帮助。各参数含义如下:

·     -b, --bridge, --brint:创建的netdev内桥名称。

·     -p, --port:netdev内桥上行口名称。

·     -m, --mtu:最大传输单元,缺省值为9000。物理网卡子接口作为上行接口时,请确保该子接口的MTU不得大于对应主接口的MTU。

·     -v, --vtep-ip <ip/mask>:配置VTEP IP地址和掩码。

·     -g, --gateway:当服务器上没有默认网关时,此参数会将业务桥配置为服务器的默认网关,并指定网关的IP地址。

·     -c, --controller:配置VCFC控制器IP地址。

·     -d, --domain-id:主机加入的控制器中计算域的ID。

·     -P, --protocol:与控制器建立连接使用的协议类型(支持TCP、SSL协议),参数可选项:tcp、ssl。参数缺省值为tcp,即默认使用TCP协议。

·     -o, --openflow-port:与控制器建立连接使用的协议的端口号,缺省值为6633。目前版本中建立tcp连接使用端口6633,建立ssl连接使用端口6634。

·     -O, --openflow-protocol:指定与控制器建立连接使用的OpenFlow协议和版本号,可使用ovs-ofctl --version查看当前支持的OpenFlow协议版本。默认为OpenFlow1.3,缺省值为OpenFlow13。

·     --private-key:SSL连接的私钥,配置SSL连接时需指定该参数。

·     --certificate:认证SSL连接私钥的证书,配置SSL连接时需指定该参数。

·     --ca-cert:CA证书,配置SSL连接时需指定该参数。

·     --datapath_type:设置网桥类型,支持system、netdev桥。参数可选项:system、netdev,参数缺省值:system。

·     --pci:netdev类型Underlay桥的上行口pci地址。如需配置聚合口,需指定多个pci地址参数作为成员口。

·     --brex:netdev类型Underlay桥的外桥名称。

·     --bond_mode:netdev类型Underlay桥的聚合口聚合模式,参数可选项:balance-tcp、balance-slb和active-backup。缺省值为balance-tcp。

·     --nic_drv:指定netdev类型Underlay桥的dpdk用户态驱动,参数缺省值为vfio-pci。

·     --dpdk-socket-mem:指定netdev桥的大页内存预分配大小,单位:MB。缺省值为1024,0。即numa0预分配1024M大页。

·     --deploy_mode:指定S1020V的部署形式,参数snic指智能网卡形态,默认是普通网卡形态。

2. 删桥脚本auto-delete-vds.sh

/usr/share/openvswitch/scripts/auto-create-vds.sh脚本用于删除auto-create-vds.sh脚本创建的网桥。

执行bash /usr/share/openvswitch/scripts/auto-delete-vds.sh br-name命令删除桥,br-name为创建的桥名:

3.5.2  在dpdk形态部署S1020V

1. DPDK相关预配置

(1)     在智能网卡系统的命令行界面中进行以下操作,添加大页配置,以配置6G大页为例。

进入grub文件:

[root@openeuler ~]# vim /etc/default/grub

在grub文件中添加灰色部分的配置信息:

BOOT_IMAGE=/vmlinuz-4.19.90-2107.6.0.0100.oe1.bclinux.x86_64 root=UUID=10627766-07f4-448b-b7fa-db5838e542fb ro resume=UUID=1e32fc12-5067-4ada-a3d3-7adbd830325a console=ttyS0,115200 crashkernel=512M default_hugepagesz=1G hugepagesz=1G hugepages=6

(2)     修改完成后,执行:wq保存配置并退出grub文件,然后更新grub.cfg。

grub2-mkconfig -o $(find /boot -name "grub.cfg")

(3)     重新启动智能网卡。重启完成后,可通过命令cat /proc/cmdline查看大页配置是否生效。预期在回显中能看到步骤1中下发的配置。

(4)     配置S1020V的offload。

[root@openeuler ~]# ovs-vsctl set Open_vSwitch . other_config:hw-application-mode=snic_offload_it

[root@openeuler ~]# ovs-vsctl set Open_vSwitch . other_config:hw-offload="true"

(5)     重启ovs进程,使配置生效。

[root@openeuler ~]# systemctl restart openvswitch

(6)     创建/usr/bin/config.json文件,并添加下述内容。

[root@openeuler ~]# vim /usr/bin/config.json

[root@openeuler ~]#

"global_cfg": {

        "pmd_driver_path": "/usr/lib64/nbl"

}

其中pmd_driver_path指定智卡网卡驱动lib所在路径(建桥时会将该路径以及dpdk公共库路径提供给dpdk,保证ovs-dpdk启动成功)。

2. 运行自动配置脚本添加桥配置

·     与控制器建立TCP连接时,运行自动配置脚本的命令格式:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol -o port -O openflow-version --datapath_type datapath-type --deploy_mode deploy_mode --pci pci-addr  --bond_mode bond-mode --brex br-ex --dpdk-socket-mem socket-mem

其中:

¡     bridge-name为内桥名,必选配置;

¡     uplink-port为内桥上行口,必选配置;

¡     mtu为最大传输单元,必选配置;

¡     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

¡     gateway为默认网关的IP地址,可选配置;

¡     controller-ip为控制器IP地址,建议不配置;

¡     domain-id为主机加入的控制器中计算域的ID,建议不配置;

¡     protocol为与控制器连接的通信协议,建立TCP连接时protocol设置为tcp,可不配置;

¡     port为建立连接的端口号,可不配置;

¡     openflow-version为OpenFlow协议版本,可不配置;

¡     netdev桥datapath-type设置为netdev,必选配置;

¡     pci-addr为Underlay桥的上行口pci地址,在配置聚合模式时,需指定多个--pci参数作为成员口,必选配置;

¡     bond-mode为聚合模式,可选配置;

¡     br-ex为外桥名,可选配置;

¡     socket-mem 为每numa预分配的大页数,必选配置。

¡     deploy_mode为智能网卡场景下的专用参数,snic指智能网卡场景,可选配置。

·     与控制器建立SSL连接时,运行自动配置脚本的命令格式:

bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b bridge-name -p uplink-port -m mtu -v vtep-ip/mask -g gateway -c controller-ip -d domain-id -P protocol --private-key private-key  --certificate  certificate --ca-cert  ca-cert -o port -O openflow-version --datapath_type datapath-type --deploy_mode deploy_mode --pci pci-addr  --bond_mode bond-mode --brex br-ex  --dpdk-socket-mem socket-mem

其中:

¡     bridge-name为内桥名,必选配置;

¡     uplink-port为内桥上行口,必选配置;

¡     mtu为最大传输单元,必选配置;

¡     vtep-ip/mask为VTEP IP地址和掩码,必选配置;

¡     gateway为默认网关的IP地址,可选配置;

¡     controller-ip为控制器IP地址,建议不配置;

¡     domain-id为主机加入的控制器中计算域的ID,建议不配置;

¡     protocol为与控制器连接的通信协议,建立SSL连接时protocol设置为ssl,同时指定SSL连接的私钥private-key、证书certificate和CA证书ca-cert,必选配置;

¡     port为建立连接的端口号,需要配置为6634,必选配置;

¡     openflow-version为OpenFlow协议版本,可不配置;

¡     netdev桥的datapath-type设置需为netdev,必选配置;

¡     pci-addr为Underlay桥的上行口pci地址,在配置聚合模式时,需指定多个--pci参数作为成员口,必选配置;

¡     bond-mode为聚合模式,可选配置;

¡     br-ex为外桥名,可选配置;

¡     socket-mem 为每numa预分配的大页数,必选配置。

¡     deploy_mode为智能网卡场景下的专用参数,snic指智能网卡场景,可选配置。

假设需要创建的tcp类型Overlay桥名称为vds3-br,Underlay桥名称为br-ex,使用智能网卡部署方式,且已经有网卡配置好的聚合,VTEP IP地址为10.1.1.22,掩码为255.255.255.0,预分配大页为4096。则可执行如下命令:

[root@openeuler ~]# bash /usr/share/openvswitch/scripts/auto-create-vds.sh -b vds3-br -m 9000 -v 10.1.1.22/24 --datapath_type netdev --deploy_mode snic --brex br-ex --dpdk-socket-mem 4096

说明

·     请选择空闲的二层以太网接口作为外桥(br-ex)的上行接口。

·     一台物理主机只有一个默认网关,在指定-g参数设置网关时,请确保主机上没有默认网关配置或已删除旧的默认网关配置。

·     创建netdev类型的桥时,VTEP IP仅用于外桥。

·     利用自动化部署脚本创建的网桥后,如果发现参数错误,需要修改网桥配置时,必须使用bash /usr/share/openvswitch/scripts/auto-delete-vds.sh br-name命令删除该网桥后,重新使用/usr/share/openvswitch/scripts/auto-create-vds.sh脚本创建网桥并重新在控制器上线。其中,br-name表示网桥名。不指定br-name参数时,默认删除vds1-br。

·     在配置大页前,可使用numastat -m命令查看每个numa上剩余大页HugePages_Free的值(若无该命令,请在操作系统中执行yum install -y numactl命令安装numactl工具集),避免大页不足导致出错。

·     使用自动化部署脚本建桥后,若dpdk-socket-mem发生变化,会打印“WARNING: The value for the "dpdk-socket-mem" parameter has changed. Please execute the "systemctl restart openvswitch.service" command to take effect.”信息,此时需要重启openvswitch服务,使新的大页内存配置生效。

 

3. 智能网卡添加bond口

(1)     建桥成功后,执行以下命令加bond。

[root@openeuler ~]# bondctl add bond0 mode 802.3ad

(2)     在/usr/bin/config.json文件中补充bond_info内容,使得ovs能动态添加bond口。

[root@openeuler ~]# vim /usr/bin/config.json

[root@openeuler ~]#

"bond_info": {

           "name":"bond0"

           "busname":"pci"

           "pci":"0000:01:00.3"

}

(3)     添加ens1f2和ens1f3网口至bond口中。

[root@openeuler ~]# cd usr/bin/

[root@openeuler ~]# bondctl set ens1f2 master bond0

[root@openeuler ~]# bondctl set ens1f3 master bond0

4. 检查网桥虚接口是否创建成功

可通过ifconfig port-name命令查看网桥虚接口是否创建成功。其中,port-name表示网桥虚接口名称。在双桥模型中,VTEP IP仅用于外桥。

检查内桥:

[root@localhost scripts]# ifconfig vds3-br

vds3-br: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 9000

        inet6 fe80::6a05:caff:fe21:d6e5  prefixlen 64  scopeid 0x20<link>

        ether 68:05:ca:21:d6:e5  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 65  bytes 5190 (5.0 KiB)

        TX errors 0  dropped 2 overruns 0  carrier 0  collisions 0

检查外侨:

[root@localhost scripts]# ifconfig br-ex

br-ex: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 9000

        inet 10.1.1.22  netmask 255.255.255.0  broadcast 10.1.1.255

        inet6 fe80::6abe:49ff:fe00:1a2b  prefixlen 64  scopeid 0x20<link>

        ether 68:be:49:00:1a:2b  txqueuelen 1000  (Ethernet)

        RX packets 27198  bytes 5407057 (5.1 MiB)

        RX errors 0  dropped 2869  overruns 0  frame 0

        TX packets 1492  bytes 64752 (63.2 KiB)

        TX errors 0  dropped 2 overruns 0  carrier 0  collisions 0

5. 检查网桥基本配置是否成功

可通过ovs-vsctl show命令和ovs-appctl dpif/show命令查看网桥基本配置是否成功。

检查网桥对应的网桥虚接口(type:internel)、物理以太网接口和VXLAN接口(type:vxlan)是否创建成功;检查VXLAN接口的local_ip是否配置成功。

检查所有网桥和端口:

[root@localhost scripts]# ovs-vsctl show

88d9ffeb-fa2b-44eb-8375-5e0a4518319d

    Bridge vds3-br

        fail_mode: secure

        datapath_type: netdev

        Port nbl-pf0

            Interface nbl-pf0

                type: dpdk

                options: {dpdk-devargs="0000:01:00.1"}       

        Port vds3-br

            Interface vds3-br

                type: internal

        Port vxlan_vds3-br

            Interface vxlan_vds3-br

                type: vxlan

                options: {key=flow, local_ip="10.1.1.22", remote_ip=flow, tos=inherit}

        Port patchInt

            Interface patchInt

                type: patch

                options: {peer=patchEx}

    Bridge br-ex

        fail_mode: standalone

        datapath_type: netdev

        Port br-ex

            Interface br-ex

                type: internal

        Port patchEx

            Interface patchEx

                type: patch

                options: {peer=patchInt}

        Port bond0

            Interface bond0

                type: dpdk

                options: {dpdk-devargs="pci:0000:01:00.3,bond_name=bond0"}

ovs_version: "H3C S1020V, Version E3503P02"

说明

nbl-pf0口为星云智卡特性要求,为必选项。建桥脚本会检测是否为星云智卡,是的话会自动在内桥添加nbl-pf0口。

 

检查datapath的汇总信息:

[root@localhost scripts]# ovs-appctl dpif/show

netdev@ovs-netdev: hit:341 missed:242

  br-ex:

    bond0 2/1: (dpdk: configured_rx_queues=1, configured_rxq_descriptors=2048, configured_tx_queues=2, configured_txq_descriptors=2048, lsc_interrupt_mode=false, mtu=9000, requested_rx_queues=1, requested_rxq_descriptors=2048, requested_tx_queues=2, requested_txq_descriptors=2048, rx_csum_offload=false, tx_tso_offload=false)

    br-ex 65534/2: (tap)

    patchEx 1/none: (patch: peer=patchInt)

  vds3-br:

    nbl-pf0 2/7: (dpdk: configured_rx_queues=1, configured_rxq_descriptors=2048, configured_tx_queues=2, configured_txq_descriptors=2048, lsc_interrupt_mode=false, mtu=9000, requested_rx_queues=1, requested_rxq_descriptors=2048, requested_tx_queues=2, requested_txq_descriptors=2048, rx_csum_offload=false, tx_tso_offload=false)

    patchInt 4/none: (patch: peer=patchEx)

    vds3-br 65534/5: (tap)

    vxlan_vds3-br 3/11: (vxlan: key=flow, local_ip=10.1.1.22, remote_ip=flow, tos=inherit)

3.5.3  控制器纳管S1020V

配置桥完成后,可在控制器上可以纳管S1020V。配置步骤如下:

说明

通过控制器纳管S1020V时,需要确保服务器到控制器间网络畅通。

 

(1)     在控制器的“自动化 > 数据中心网络 > Fabrics > 计算域”页面上,点击增加按钮,为S1020V创建一个名为kvm的计算域,如图3-4所示。

图3-37 创建计算域

 

说明

在某些使用场景中,可能由其它组件推送计算域到控制器,此时请使用推送过来的计算域而非手动创建。

 

(2)     点击“主机”进入主机页面后,点击增加按钮,填写如下信息:

¡     步骤1中创建的计算域;

¡     Fabric填写正确,且该Fabric必须属于桥名为vds1-br的虚拟分布式交换机;

¡     服务器的管理IP地址;

¡     OpenFlow连接方式。

图3-38 纳管S1020V

 

(3)     填写完毕后,点击应用按钮并刷新几次控制器页面,在主机页面查看到运行状态为绿色表示部署完成。

图3-39 运行状态

 


4 附录

4.1  dpdk形态部署S1020V,所需大页内存详细计算方式

说明

·     S1020V部署在dpdk形态时,需要单独配置大页内存,用途是给端口分配内存池。

·     当多个端口在同一个NUMA上,且MTU值相同的时候,可以共用一个内存池,只需计算一次即可。所以尽量给环境中的端口配置相同的MTU,可以减少大页内存占用。

 

占用内存=缓冲区大小*缓冲区个数。

·     缓冲区大小取决于MTU大小:

¡     MTU小于等于1500,缓冲区大小为3008

¡     MTU大于1500,缓冲区大小约等于MTU+1100

·     缓冲区个数初始会申请262144个,如果申请不到,就会减半再次尝试申请,最多只会减半到16384个,再少就会报错。缓冲区个数对应报文个数,缓冲区申请的越大,能存放的报文越多。

计算举例:

假设桥上有dpdk类型的端口的MTU值分别为143039304000(其中每种类型MTU的端口可以有多个),为保证性能充足缓冲区个数需按最大值计算,此时需要申请:

mtu1430:3008*262144=788M

mtu3930:(3930+1100)*262144=1318M

mtu4000:(4000+1100)*262144=1336M

共需要占用788M+1318M+1336M=3442M内存。大页内存的单位是1G,需要向上取整,所以应该在所有NUMA上配置4096M大页内存。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们