100GB Mellanox InfiniBand 网卡虚拟化技术调研

调研目的

验证 Mellanox InfiniBand 100GB网卡和SR650 Server能兼容

ThinkSystem SR650

Power On (Booting OS or in undetected OS)

Machine Type/Model7X05CTO1WW

验证 SR-IOV虚拟话技术在BIOS/Firmware/Kernel/QEMU/Libvirt能被支持

4.18.0-305.19.1.el8_4.x86_64

验证 Virtual Function PCI设备在KVM能支持passthough

物理硬件

ThinkSystem Mellanox ConnectX-6 HDR100/100GbE QSFP56 2-port PCIe VPI Adapter

lspci

0000:2f:00.0 Ethernet controller [0200]: Mellanox Technologies MT28908 Family [ConnectX-6] [15b3:101b]

0000:2f:00.1 Ethernet controller [0200]: Mellanox Technologies MT28908 Family [ConnectX-6] [15b3:101b]

网口直连(无IB交换机)

无 InfiniBand Switch,如果将100GB IB卡接10GB 交换机纯属暴殄天物,直接IB两口直连,可使网速最大化

BIOS设置

  • SR-IOV(Single Root I/O Virtualization)

    • 必须开启:SR-IOV是一种硬件虚拟化技术,用于在共享物理网络适配器的环境中创建多个虚拟网络适配器。SR-IOV 允许多个虚拟机 (VM) 直接访问物理适配器的硬件资源,从而提高了网络性能和可靠性。
  • Intel VT-d(Virtualization Technology for Directed I/O)

    • Intel VT-d 是一种硬件级别的 I/O 虚拟化技术,用于提供更安全和更高效的 I/O 访问控制和虚拟化。包括以下几个方面:

      • DMA 保护:DMA (Direct Memory Access) 是一种设备与内存之间直接传输数据的方式。Intel VT-d 技术可以保护系统内核和用户空间的内存不被非授权设备读写,从而提高系统的安全性。

      • SR-IOV:SR-IOV (Single Root I/O Virtualization) 是一种硬件级别的虚拟化技术,用于在共享物理网络适配器的环境中创建多个虚拟网络适配器。Intel VT-d 技术可以支持 SR-IOV,并通过硬件分离和隔离来保护虚拟适配器的安全性。

      • PCI Express 隔离:Intel VT-d 技术可以在 PCIe (Peripheral Component Interconnect Express) 总线上执行 I/O 隔离和分区,从而避免了物理设备之间的干扰和冲突,提高了 I/O 性能和可靠性。

网卡驱动升级

注意:100GB IB的网口模式不支持端口PF-VF的虚拟化技术,2个网口不够用,网卡驱动必须升级

第一步:打开Mellanox官网下载驱动 Linux InfiniBand Drivers

第二步:解压缩执行 ./mlnxofedinstall 会发现缺少依赖,按提示反复执行mlnxofedinstall直到依赖全部装上

./mlnxofedinstall

# ./mlnxofedinstall

Logs dir: /tmp/MLNX_OFED_LINUX.11337.logs

General log file: /tmp/MLNX_OFED_LINUX.11337.logs/general.log

Verifying KMP rpms compatibility with target kernel...

Error: One or more required packages for installing MLNX_OFED_LINUX are missing.

Please install the missing packages using your Linux distribution Package Management tool.

Run:

yum install kernel-modules-extra tk

第三步:报错kernel版本不支持时,需要执行驱动自带的脚本

./mlnxofedinstall

# bash mlnx_add_kernel_support.sh -m ./

Note: This program will create MLNX_OFED_LINUX TGZ for rhel8.1 under /tmp directory.

Do you want to continue?[y/N]:y

See log file /tmp/mlnx_iso.20469_logs/mlnx_ofed_iso.20469.log

Checking if all needed packages are installed...

/lib/modules/4.18.0-305.19.1.el8_4.x86_64/build//scripts is required to build mlnx-ofa_kernel-modules RPM.

Please install the corresponding kernel-devel RPM.

Error: One or more required packages for installing OFED-internal are missing.

Please install the missing packages using your Linux distribution Package Management tool.

Run:

yum install kernel-devel-4.18.0-305.19.1.el8_4.x86_64 kernel-rpm-macros

如上述命令报错,缺少kernel-devel依赖,则继续安装依赖,直到报错消失

再次执行下述命令

./mlnxofedinstall

./mlnxofedinstall --add-kernel-support

第四步:修改opensm配置文件, 则opensm服务无法重启

vi /etc/infiniband/openib.conf

# run Firmware update utlity upon system boot in order to update Firmware for newly installed devices

RUN_FW_UPDATER_ONBOOT=yes

Firmware升级

Slot No.

Device Name

Status

Version

Manufacturer

Release Date

1ThinkSystem Mellanox ConnectX-6 HDR100/100GbE QSFP56 2-port PCIe VPI AdapterActive20.30.1004Mellanox Technologies2021/03/29

Kernel启动参数修改

grub启动界面点击e进入command模式

default intel_iommu=on iommu=pt

  1. intel_iommu=on:该参数用于启用 Intel VT-d(Virtualization Technology for Directed I/O)。Intel VT-d 提供硬件级别的 I/O 虚拟化支持,可以增强系统的安全性和性能。启用该选项后,操作系统可以访问和管理 IOMMU(I/O Memory Management Unit),以支持设备的直接内存访问 (DMA) 和虚拟机的 I/O 虚拟化。

  2. iommu=pt:该参数设置 IOMMU 使用的页表类型为 “passthrough”。IOMMU 的页表用于映射设备的物理地址和虚拟地址之间的转换。通过设置 iommu=pt,IOMMU 将直接传递虚拟地址给设备,而不进行额外的转换或修改。这种模式通常用于需要最低延迟和最高性能的应用场景。

uname -a

Linux systemtest 4.18.0-305.19.1.el8_4.x86_64 #1 SMP Wed Sep 15 15:39:39 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

官网参考:

  • Adapter IB Driver Linux Download  
  • Red Hat Configuring InfiniBand and RDMA networks
  • Open subnet Manager (OpenSM)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/644522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web开发5:第三方扩展与部署

在Web开发中,第三方扩展和部署是提高开发效率和功能扩展的重要手段。第三方扩展可以帮助我们快速集成常用功能和工具,而部署则是将我们的应用程序发布到生产环境中。本文将介绍第三方扩展的重要性、如何选择和使用常见的第三方扩展,并讨论应用…

Java Web(三)--CSS

介绍 为什么需要: 在没有 CSS 之前,想要修改 HTML 元素的样式需要为每个 HTML 元素单独定义样式属性,费心费力;CSS 可以让 html 元素(内容) 样式(CSS)分离,提高web 开发的工作效率(针对前端开发),从而…

论文翻译:On Bringing Robots Home

On Bringing Robots Home 关于引入机器人到家庭 文章目录 On Bringing Robots Home关于引入机器人到家庭1 Introduction1 引言2 Technical Components and Method2 技术组件与方法2.1 Hardware Design2.1 硬件设计2.2 Pretraining Dataset – Homes of New York2.2 预训练数据…

微信小程序开发创建component组件,报错WXML file not found解决方案

报错如下: 解决方案: 在组件.json文件加上"styleIsolation": "apply-shared",:

C++ 数论相关题目(欧拉函数)

欧拉函数 给定 n 个正整数 ai ,请你求出每个数的欧拉函数。 欧拉函数的定义 1∼N 中与 N 互质的数的个数被称为欧拉函数,记为 ϕ(N) 。 若在算数基本定理中,Npa11pa22…pamm ,则: ϕ(N) Np1−1p1p2−1p2…pm−1pm 输…

人工智能的未来:机遇与挑战

人工智能的未来:机遇与挑战 0引言 随着科技的飞速发展,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从智能手机、自动驾驶汽车到智能家居系统,人工智能的应用已经深入到各个领域。然而,尽管人工智能为我们带来了诸多便利,但它也引发了一系列关于隐私、安全和道…

Spring Security 之 表单登录

表单登录 Spring Security提供了支持通过HTML表单提供用户名和密码。本节详细介绍了Spring Security中表单身份验证的工作原理。 本节将介绍Spring Security中的基于表单的登录工作原理。首先,我们将看到用户如何被重定向到登录表单。 第1步,用户首先对其未经授权的资源(/…

【Spring】Spring AOP原理

文章目录 前言代理模式静态代理动态代理JDK动态代理CGLib 动态代理 总结 前言 前面我们学习了关于 Spring AOP 的使用,那么今天这篇文章,我们将深入理解 Spring AOP 的原理,也就是 Spring 是如何实现 AOP 的。 Spring AOP 是基于动态代理来…

matlab抽取与插值

什么是抽取? 我们假设一个数字信号 x ( n ) , n 1 , 2 , . . . , N x(n),n1,2,...,N x(n),n1,2,...,N共有 N N N个点,抽取就是每个几个点抽1个点,比如2倍抽取,那么抽取后的信号为 y ( n ) , y ( 1 ) x ( 1 ) , y ( 2 ) x ( 3 …

IO 专题

使用try-with-resources语句块,可以自动关闭InputStream [实践总结] FileIUtils 共通方法最佳实践 [实践总结] java 获取在不同系统下的换行符 [实践总结] StreamIUtils 共通方法最佳实践 斜杠“/“和反斜杠“\“的区别 路径中“./”、“…/”、“/”代表的含义…

你真的会数据结构吗:顺序表

❀❀❀ 文章由不准备秃的大伟原创 ❀❀❀ ♪♪♪ 若有转载,请联系博主哦~ ♪♪♪ ❤❤❤ 致力学好编程的宝藏博主,代码兴国!❤❤❤ 又和大家见面啦!在大家看到这个标题的时候其实就已经发现了:我们的C语言的基础知识大…

【GitHub项目推荐--不错的 Go开源项目】【转载】

开源实时性能分析平台 Pyroscope 是基于 Go 的开源实时性能分析平台,在源码中添加几行代码 pyroscope 就能帮你找出源代码中的性能问题和瓶颈、CPU 利用率过高的原因,调用树展示帮助你理解程序,支持 Go、Python、Ruby 语言。 Pyroscope 可以…

java程序判等问题

注意 equals 和 的区别 对基本类型,比如 int、long,进行判等,只能使用 ,比较的是直接值。因为基本类型的值就是其数值。对引用类型,比如 Integer、Long 和 String,进行判等,需要使用 equals 进…

智能解决方案——体脂秤芯片CSU18M91

现在的年轻人爱健身,十分关注身材、形体,减肥、健身成了生活日常;中老年人则关注健康指数、有无病症,实时把握身体情况。现在一台体脂称通过测试体重、体脂、BMI、水分等数据并给出相应提示,并且许多人都将体脂检测数据…

MySQL分组,获取组内最新的10条数据

一、记录 记录一次SQL,最近在项目中遇到了一个相对比较复杂的SQL。 要求依据分组,获取每个分组后的前10条数据。 分组查询最新的数据,应该都做过,但是获取前10条数据,还是没处理过的。 二、处理 2.1 前期数据准备 …

开发知识点-Flutter移动应用开发

支持 安卓 IOS Android 鸿蒙 第一章dart基础章节介绍 移动电商——Flutter-广告Banner组件制作 移动电商——Flutter实战课程介绍 Flutter实例——路由跳转的动画效果

Elment UI的el-table-column表头旁边有点击按钮类似的操作

Elment UI的el-table-column表头旁边有点击按钮类似的操作 <el-table-column fixed"right" label"操作" ><!-- 表头 --> {{-- <template slot"header" header"scope">--}} {{-- <span…

精通 VS 调试技巧,学习与工作效率翻倍!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; ​ 所属专栏&#xff1a;C语言学习 ​ 贝蒂的主页&#xff1a;Betty‘s blog 1. 什么是调试 当我们写代码时候常常会遇见输出结果不符合我们预…

单轴测径仪在线缆电缆测控中的应用

线缆电缆在生产中能进行品质测量与控制&#xff0c;对其生产模式而言&#xff0c;是更为合适的&#xff0c;毕竟其生产模式决定了其任何品质问题出现都会造成产品的品质下降或不合格。要想进行生产高品质的产品&#xff0c;对产线的要求较高。 单轴测径仪作为测控一体&#xff…

安卓开发之自动缩放布局

AutoScalingLayout 适用于 Android 的自动缩放布局。 替换布局&#xff1a; 我们只需要替换根布局所需的自动缩放&#xff0c;子布局也将实现自动缩放。 原始布局AutoScalingLayout相对布局ASRelativeLayout线性布局ASLinearLayoutFrameLayout&#xff08;框架布局&#xff…