首页 > 其他分享 >Cenots7.8 openstack rocky及mellanox cx5智能网卡基础环境搭建

Cenots7.8 openstack rocky及mellanox cx5智能网卡基础环境搭建

时间:2023-09-28 16:14:27浏览次数:38  
标签:rocky dst 智能网 controller 网卡 Cenots7.8 openstack root port

一.网卡SRIOV及虚拟化配置

1. Mellanox 网卡SRIOV开启配置

网卡安装之后需要到官方网站去下载相关网卡的驱动,然后才能进行下面的配置,本次实验环境使用的是centos7.8,自带了Mellanox CX系列网卡的驱动。

 

所以网卡驱动安装的部分先不涉及,需要下载的可以到nvdia的官方网站去下载:

https://www.mellanox.com/products/ethernet-drivers/linux/mlnx_en

本次实验搭建采用的是浪潮服务器,开启SRIOV需要以下几个步骤:

1.1 BIOS 设置虚拟化支持

 为了支持SRIOV首先要再BIOS中使能虚拟化相关的配置,在开启启动时候进行虚拟化支持的开关打开。

 SRIOV支持开启,enable

 

 

 打开intel-VT

 

1.2 IOMMU支持配置

开启操作系统支持IOMMU的功能,

修改/etc/default/grub 文件

 

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt"

GRUB_DISABLE_RECOVERY="true"

~

在GRUB_CMDLINE_LINUX 这一行的最后添加intel_iommu=on iommu=pt。

修改后保存,要将配置写入引导。

注意配置写入的时候一定要注意区分当前BIOS的引导是UEFI还是legacy模式。

UEFI模式:

grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

Legacy模式:

grub2-mkconfig -o /boot/grub2/grub.cfg

模式不同如果选择的方式错误,会导致IOMMU开启失败。写入配置之后设备进行重启,重启之后执行如下命令查询配置是否生效。

[root@controller ml2]# cat /proc/cmdline

BOOT_IMAGE=/vmlinuz-3.10.0-1160.6.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt

[root@controller ml2]#

1.1 SRIOV的参数配置

先确定支持SRIOV配置的网卡,通过lspci命令查询到网卡

[root@controller ml2]# lspci | grep Eth

1a:00.0 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)

 

1a:00.1 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)

 

1a:00.2 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)

 

1a:00.3 Ethernet controller: Intel Corporation Ethernet Connection X722 for 1GbE (rev 09)

 

3b:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

 

3b:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

 

af:00.0 Ethernet controller: Mellanox Technologies MT27800 Family [ConnectX-5]

确定网卡的接口名称:

将配置写入网卡,本次只创建了一个VF,所以只写入1.如果需要创建多个VF需要写入对应的数字。

echo '1' > /sys/class/net/enp175s0/device/sriov_numvfs

 

写入之后执行如下命令查询写入的结果:

[root@controller ml2]#cat /sys/class/net/enp175s0/device/sriov_totalvfs

1

查询VF创建情况:

[root@controller ml2]# ip link show enp175s0

7: enp175s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000

    link/ether 0c:42:a1:b3:2e:dc brd ff:ff:ff:ff:ff:ff

    vf 0 MAC fa:11:3c:47:ad:d5, spoof checking off, link-state auto, trust off, query_rss off

二.Openstack私有云环境部署

1. Openstack Rocky版本安装

本次卸载实验基于Rocky版本,之前整理过一个ubutun环境下的openstack Queen的安装手册,由于基础环境不同,很多配置有差异。再整理一份centos的配置文件。

1.基础环境配置

本次卸载采用的是overlay的vxlan封装解封装,所以搭建的是overlay 租户网络类型是vxlan。

 

 

不需要外部网络访问,所以采用双网卡,一个作为openstack的管理通道,另一个作为host之间的数据通道。

openstack的安装过程如果纯手工安装,过程及其的繁琐,而且非常容易出错,考虑到安装的复杂性及繁琐易错,我把安装过程用shell脚本进行了编写,参考了官方的openstack devstack的部分代码,脚本实现了租户网络为vxlan网络的openstack的部署,会脚本中会根据系统进行自动检查安装对应的openstack官方版本。

具体的代码可以到我的gitee中去下载,具体的使用可以参考脚本的配置说明。

https://gitee.com/blueGitRepo/falcon.git

配置完控制节点和计算节点的相关参数后,在控制节点和计算节点先后执行install脚本,等待安装完成即可。

云平台部署完成之后,下面进行智能网卡相关配置,也是参考了openstack官方链接进行配置的。

三.智能网卡卸载配置

1. 网卡SRIOV及ovs卸载配置

此步骤与文章开始部分相同,如果前面配置过,此部分就不需要重复配置

1.1 SRIOV开启

在计算节点开启sriov,执行

echo 1 > /sys/class/net/enp175s0/device/sriov_numvfs

cat /sys/class/net/enp175s0/device/sriov_totalvfs

执行ip link show enp175s0

 

本次实验仅开启了一个vf。

 

1.2 VF设置及PF offload配置

配置网卡的模式为switchdev模式,并支持offload

解绑定VF

echo 0000:af:00.1 > /sys/bus/pci/drivers/mlx5_core/unbind

修改PF的eswitch模式

devlink dev eswitch set pci/0000:af:00.0 mode switchdev

 ethtool -K enp175s0 hw-tc-offload on

 echo 0000:af:00.1 > /sys/bus/pci/drivers/mlx5_core/bind

1.3 配置之后

devlink dev eswitch show pci/0000:af:00.0

[root@controller openvswitch-2.11.1]# devlink dev eswitch show pci/0000:af:00.0

pci/0000:af:00.0: mode switchdev inline-mode none encap enable

配置switchdev之后会在设备上生成对应的VF的representor接口

Eth0为对应的VF生成的vf-Rep接口。

ls -l /sys/class/net/

查看vf接口的对应关系

1.4 Openstack neutron支持SRIOV的Passthrough配置

本次搭建的openstack设置的租户网络类型为vxlan类型。所以对应的设置都和vxlan的配置相关。

          4.修改/etc/nova/nova.conf on compute nodes

         [pci]

             passthrough_whitelist = {"address":":af:00.","physical_network":null}

 

配置完成之后在计算节点和控制节点分别重启以下服务

计算节点:

[root@computer1 ~]# systemctl restart openstack-nova-compute.service

 

控制节点:

[root@controller ~]# systemctl restart openstack-nova-scheduler.service

[root@controller ~]# systemctl restart neutron-server.service

注意:此处大坑

如果是centos7系列,请关闭networkManger的服务,该服务会导致ovs下发到VF_REP接口上的的tc qdisc规则被删除,导致卸载失败。在无人指导的情况下,在坑中爬了2 周,苦苦思索,看日志看到头昏,毫无头绪,官方论坛发帖请教,无人知晓,最后通过重编译linux内核代码,在tc的模块中加日志才找到原因。

配置ovs执行卸载

ovs-vsctl set Open_vSwitch . Other_config:hw-offload=true

1.5 网络及端口创建

  1. 创建一个network,端口安全先做关闭

  2. 创建subnet,此部分参考openstack的命令
  3. 创建端口,管理创建的网络 openstack port create --network smart --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port1

        创建完成后在openstack dashborad中查询:

        

     基于该port创建实例1

      openstack server create --flavor m1.medium --image centos7 --nic  port-id=direct_port1  --availability-zone nova vm1  

   创建另一个port

   openstack port create --network smart --vnic-type=direct --binding-profile '{"capabilities": ["switchdev"]}' direct_port2

    创建另一个实例:

openstack server create --flavor m1.medium --image centos7 --nic  port-id=direct_port2  --availability-zone nova1 vm2

创建实例如果失败要注意查询下network agent是否离线,确认selinux和防火墙是否关闭,上述vm建立在两个不同的compute 节点上,vm之间通过vxlan网络互通。

     4 验证

登录openstack dashboard 查询两个vm实例

 

两台vm的互ping测试,通过在VF-Representor接口进行抓包

 

 

Icmp已经卸载到网卡,在设备上抓不到报文。

查询ovs的流表卸载情况:

[root@controller site-packages]# ovs-dpctl show

2021-01-15T08:07:40Z|00001|dpif_netlink|INFO|The kernel module does not support meters.

system@ovs-system:

 

  lookups: hit:42730 missed:5059 lost:0

 

  flows: 0

 

  masks: hit:103169 total:0 hit/pkt:2.16

 

  port 0: ovs-system (internal)

 

  port 1: br-tun (internal)

 

  port 2: tapc5531a2d-f5 (internal)

 

  port 3: br-int (internal)

 

  port 4: tapbe3b80ef-de (internal)

 

  port 5: enp175s0_0

 

  port 6: vxlan_sys_4789 (vxlan: packet_type=ptap)

 

[root@controller site-packages]#

 

 

 

[root@controller site-packages]# ovs-dpctl dump-flows type=offloaded

 

2021-01-15T08:07:14Z|00001|dpif_netlink|INFO|The kernel module does not support meters.

 

tunnel(tun_id=0x5f,src=192.168.20.241,dst=192.168.20.242,tp_dst=4789,flags(+key)),in_port(6),eth(src=fa:16:3e:58:c7:02,dst=fa:16:3e:7e:72:26),eth_type(0x0800),ipv4(frag=no), packets:109, bytes:10682, used:0.720s, actions:5

 

tunnel(tun_id=0x5f,src=192.168.20.241,dst=192.168.20.242,tp_dst=4789,flags(+key)),in_port(6),eth(src=fa:16:3e:58:c7:02,dst=fa:16:3e:7e:72:26),eth_type(0x0806), packets:1, bytes:60, used:1.730s, actions:5

 

in_port(5),eth(src=fa:16:3e:7e:72:26,dst=fa:16:3e:58:c7:02),eth_type(0x0800),ipv4(tos=0/0x3,frag=no), packets:109, bytes:16132, used:0.720s, actions:set(tunnel(tun_id=0x5f,src=192.168.20.242,dst=192.168.20.241,tp_dst=4789,flags(key))),6

 

in_port(5),eth(src=fa:16:3e:7e:72:26,dst=fa:16:3e:58:c7:02),eth_type(0x0806), packets:1, bytes:110, used:1.730s, actions:set(tunnel(tun_id=0x5f,src=192.168.20.242,dst=192.168.20.241,tp_dst=4789,flags(key))),6

 

Ovs2.13 采用下面的命令:

ovs-appctl dpctl/dump-flows type=offloaded

[root@compute1 neutron]#

[root@compute1 neutron]#  ovs-appctl dpctl/dump-flows type=offloaded

recirc_id(0),in_port(3),eth(src=fa:16:3e:e9:6a:ad,dst=fa:16:3e:03:f1:71),eth_type(0x0800),ipv4(tos=0/0x3,frag=no), packets:161, bytes:23828, used:0.070s, actions:set(tunnel(tun_id=0x1,src=192.168.20.241,dst=192.168.20.242,ttl=64,tp_dst=4789,flags(key))),4

 

recirc_id(0),in_port(3),eth(src=fa:16:3e:e9:6a:ad,dst=fa:16:3e:03:f1:71),eth_type(0x0806), packets:1, bytes:110, used:2.120s, actions:set(tunnel(tun_id=0x1,src=192.168.20.241,dst=192.168.20.242,ttl=64,tp_dst=4789,flags(key))),4

 

tunnel(tun_id=0x1,src=192.168.20.242,dst=192.168.20.241,tp_dst=4789,flags(+key)),recirc_id(0),in_port(4),eth(src=fa:16:3e:03:f1:71,dst=fa:16:3e:e9:6a:ad),eth_type(0x0800),ipv4(frag=no), packets:161, bytes:15778, used:0.070s, actions:3

 

tunnel(tun_id=0x1,src=192.168.20.242,dst=192.168.20.241,tp_dst=4789,flags(+key)),recirc_id(0),in_port(4),eth(src=fa:16:3e:03:f1:71,dst=fa:16:3e:e9:6a:ad),eth_type(0x0806), packets:1, bytes:60, used:2.120s, actions:3

 

[root@compute1 neutron]#

 

 

经过上述网卡的基本配置,修改openstack nova的passthrough,创建VF端口 进行openstack云主机 vm passthrough,实现了主机之间通信的流表offload到网卡。

 

标签:rocky,dst,智能网,controller,网卡,Cenots7.8,openstack,root,port
From: https://www.cnblogs.com/netcores/p/17735937.html

相关文章

  • 基于边缘智能网关的储充一体电站管理方案
    在“2030碳达峰,2060碳中和”的目标下,我国持续加快推进能源转型,扩大新能源占比,全国各地都在部署建设光伏、储能、新能源汽车充电等应用。随着新能源汽车的广泛普及,充电站、充电桩的需求快速增加,行业也诞生了“光伏+储能+充放”的综合能源站应用。 针对此类综合能源站的监测和管......
  • Rocky Linux 8配置时间同步服务 chrony
    我们需要再单独去安装 dnfinstall-ychrony,只需要配置对应的时间同步服务器即可。服务器配置#Usepublicserversfromthepool.ntp.orgproject.#Pleaseconsiderjoiningthepool(http://www.pool.ntp.org/join.html).server10.32.186.70iburst  //添加时间服......
  • rocky8 服务器的时区设置为“上海”
    timedatectlset-timezoneAsia/Shanghai查看当前的系统时区首先查看当前的系统时区,确认系统时区执行date命令。也可以使用timedatectlstatus命令查看当前的系统时区。timedatectl命令指定”set-timezone”选项可修改系统时区,将时区设定为“Asia/Shanghai”时,执行 “ti......
  • ROCKY 8 搭建本地yum源及配置局域网公用
    1.上传完整镜像文件 CRT软件,ALT+P打开上传界面,put命令进行上传,windows端命令在前面加L。1.将iso文件上传至/opt下。2.创建挂载目录3.挂载iso文件mount-oloop/opt/Rocky-8.4-x86_64-dvd1.iso/mnt/cdrom/4.修改配置yum源vim/etc/yum.repos.d/Rocky-Media.repo(修改......
  • 支持采集西门子PLC的工业智能网关如何配置?有什么功能?
    随着工业自动化控制设备的发展,西门子PLC数据采集联网并进行远程监控、远程编程调试的需求越来越多。作为各种工业设备的核心控制器PLC会随着销售前往全国各省市,如果要对各种异地PLC进行编程调试,往往需要派人前往现场进行维护,成本高效率也低。通过PLC远程维护则可以有效提高工作效率......
  • 国家网络安全周 | 保障智能网联汽车产业,护航汽车数据安全
    9月13日上午,2023年国家网络安全宣传周汽车数据安全分论坛在福州海峡国际会展中心正式举办。本次分论坛主题是“护航汽车数据安全,共促产业健康发展”,聚焦汽车数据安全、个人信息保护、密码安全、车联网安全保险等主题。与此同时,谈思(AutoSec)第七届中国汽车网络安全周暨第四届智能汽车......
  • 通过远程管理或配置的智能网关
    在工业自动化系统中,PLC(可编程逻辑控制器)是一种常见的控制设备。通常情况下,PLC被用于监控、控制和调节生产过程中的各种设备和机器。而PLC一旦出现故障,就会影响到下控设备的工作状态,进而影响整个工厂的生产节奏,因此一旦出现故障就要快速维护以恢复生产,保证订单顺利交付。在实际项目......
  • Rocky_linux9网卡启动失败问题记录
    一、故障场景之前虚拟机一直是可以上网的,昨天正常关机后第二天开机网卡始终启动不了。开始排查问题查看网卡信息,发现获取不到IP地址查看网卡状态时发现处于未连接状态nmclicshow二、尝试启动网卡1)直接启用网卡nmclicupens37启动失败出现报错信息,连接激活失败,找不到适合此连接......
  • 物通博联工业智能网关实现环保HJ212协议对接到水污染监控平台
    环保HJ212协议是一种用于环保数据上报的行业标准协议。它定义了数据格式、数据传输方式等规范,以便在全国范围内实现统一的环境监测和管理。HJ212协议上报的过程包括数据采集、数据封装、网络传输、服务器接收等步骤。 对此,物通博联推出的工业智能网关可以实现HJ212对接到水污染监......
  • 用5年“抱薪”,智能网联成就长沙谋划全球研发中心城市“沸点”
    文|智能相对论作者|佘凯文“湖南人性质沉毅,守旧固然守得很凶,趋新也趋得很急。”这是蔡元培在《论湖南人才》中对于湖南的一句评价。湖南各地或都有自己的品质,但要说“趋新”,首当其冲的还属长沙,这便也诞生了“敢为人先”的长沙精神,如今这种精神又一次在长沙开始全面绽放。8月25日,......