InfiniBand (IB) 路由器旨在用于将非常大的网络分段(segment), 分为由 IB 路由器连接的较小子网(subnets)。 分段对于将某些子网彼此隔离或构建非常大的网络可能很有用。 这篇文章讨论 IB 路由器架构和功能
rdma_rxe 内核模块提供 RoCEv2 协议的软件实现。 RoCEv2 协议是存在于 UDP/IPv4 或 UDP/IPv6 之上的 RDMA 传输协议。 InfiniBand (IB) 基本传输标头 (BTH) 封装在 UDP 数据包中。 创建 RXE 实例后,通过 RXE 进行通信与通过任何 OFED 兼容的 Infiniband HCA 进行通信相同,尽管在某些情况下会涉及寻址问题。 特别是,虽然 GRH 标头的使用在 IB 子网中是可选的,但对于 RoCE 来说是强制性的。 基于 IB 动词编写的动词应用程序应该可以无缝工作,但它们需要在创建地址向量时提供 GRH 信息。 修改库和驱动程序以提供硬件所需的从 GID 到 MAC 地址的映射
本文仅用于分享记录学习RDMA/RoCE v2网络协议的一些基础内容。如有错误,欢迎评论区留言。
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
DMA 代表直接内存访问。这意味着应用程序可以在 CPU 干预的情况下直接访问(读/写)主机内存。如果您在主机之间执行此操作,它将成为远程直接内存访问 (RDMA)
该驱动程序通过 Linux 网络堆栈实现 InfiniBand RDMA 传输。 它使具有标准以太网适配器的系统能够与 RoCE 适配器或运行 RXE 驱动程序的另一个系统进行互操作。 有关 InfiniBand 和 RoCE 的文档可以从 www.infinibandta.org 和 www.openfabrics.org 下载。 (另请参见 siw,它是 iWARP 的类似软件驱动程序。)该驱动程序分为两层,一层与 Linux RDMA 堆栈接口,并实现内核或用户空间动词 API。 用户空间动词 API 需要一个名为 librxe 的支持库,该支持库由通用用户空间动词 API libibverbs 加载。 另一层与第 3 层的 Linux 网络堆栈接口。要配置和使用 soft-RoCE 驱动程序,请使用“配置 Soft-RoCE (RXE)”部分下的以下 wiki 页面:https://github.com/linux-rdma/rdma-core/blob/master/Documentation/rxe.md
QP上可变化的属性描述了QP的发送和接收属性。 在 UC 和 RC QP 中,这意味着将 QP 与远程 QP 连接。 在 Infiniband 中,应向子网管理员 (SA) 执行路径查询,以确定 QP 应配置哪些属性或作为最佳解决方案,使用通信管理器 (CM) 或通用 RDMA CM 代理 (CMA) 连接 QP。 然而,有些应用程序(如ceph)更喜欢自行连接 QP,并通过套接字交换数据来决定使用哪些 QP 属性。 在 RoCE 中,应在连接的 QP 的 QP 属性中配置 GRH,或在 UD QP 的地址句柄(Address Handle)中配置 GRH。 在 iWARP 中,应仅使用通用 RDMA CM 代理 (CMA) 连接 QP。 结构体: struct ibv_qp_attr 描述了队列对QP的属性:
IB(InfiniBand)和 RDMA(Remote Direct Memory Access)是一种高性能网络技术,通常用于加速数据传输。它们不是基于传统的 TCP/IP 协议栈,而是使用自己的协议栈,以实现低延迟、高带宽的数据传输。
qperf跟ibping类似需要,但是qperf在测试时,建议关闭防火墙systemctl stop firewalld
查看当前网卡信息 [root@Jaking ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) [root@Jaking ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.11 netmask 255.255.255.0 broadcast 192.16
[root@localhost ~]# ifconfig //查看网络接口信息
由于集群是生信所有分析工作的基础,我们所用的 IBM LSF 集群一共有 30 多个计算节点,其中还包括了 2 个大内存 fat 节点,log 节点挂掉后,整个生信部门几十号人的工作都没法正常进行,情况可谓是非常紧迫。负责硬件的同事在加班加点联系供应商更换主板后,终于可以把系统启动起来,但是问题也来了:
ceph osd df - 可以查看每个osd的用量,每个osd的pg数,权重 ceph osd find <int> - 可以查找到osd的位置,在osd比较多时用到 ceph osd perf - 可以查看所有osd提交及应用提交的延时,对监控osd的健康状态极有帮助 ceph osd scrub <int> - 指定osd进行清洗,注意到,清洗是为了检查osd缺陷和文件系统错误,正确的清洗策略很重要 ceph quorum_status - 报告集群当前法定人数情况,若集群因mon跪了导致故障可由此排查 ceph report - 报告集群当前的全部状态,输出信息非常详细,排查没有头绪时可以试试这个 radosgw-admin bucket limit check - 查看bucket的配置信息,例如索引分片值 ceph daemon osd.1 config show - 显示指定的osd的所有配置情况 ceph tell 'osd.*' injectargs '--osd_max_backfills 64' - 立即为osd设置参数,不需要重启进程即生效 ceph daemon /var/run/ceph/ceph-client.rgw.hostname -s.asok config show - 查看指定的asok的配置 ceph-bluestore-tool bluefs-export --path /var/lib/ceph/osd/ceph-1 --out-dir /home/xx - 导出指定osd的整个rocksdb ceph-kvstore-tool rocksdb /home/xx/db/ list - 查看rocksdb里面的记录 ceph tell osd.* heap release - 通知所有osd释放那些可以释放的内存 ceph daemon osd.x dump_historic_ops - 调查指定osd的op处理情况,诊断延时的瓶颈 ceph daemon osd.x dump_ops_in_flight - 调查指定osd的性能问题
CentOS7 修改网卡名 # 切换到网卡配置目录 cd /etc/sysconfig/network-scripts/ # 复制网卡配置文件为ifcfg-eth0 cp -a ifcfg-ens33 ifcfg-eth0 # 备份原文件到opt目录下 mv ifcfg-ens33 /opt/ #查看当前目录下的全部文件 [root@localhost network-scripts]# ls ifcfg-eth0 ifdown-ipv6 ifdown-TeamPort ifup-ippp
systemctl enable NetworkManager-wait-online.service
博客: https://logread.cn | https://blog.csdn.net/ssbandjl | https://cloud.tencent.com/developer/user/5060293/articles
LAG (Link Aggregation Group): 链路汇聚(bonding), 网络绑定可以将两个或多个网络接口组合成一个接口。它可以提高网络吞吐量和带宽,并在其中一个接口发生故障时提供冗余。NVIDIA ® BlueField ® DPU 可以选择以对主机透明的方式在 Arm 端配置网络绑定。在这种配置下,主机只能看到一个 PF, 参考: https://docs.nvidia.com/networking/display/bluefielddpuosv385/link+aggregation
[阅读本文之前需要现有RDMA的基础知识] 1.RDMA over Converged Ethernet(RoCE) Remote Direct Memory Access(RDMA)是一种远程内存管理能力,允许不同服务器上应用的内存之间直接移动数据,不需要CPU的干预。RoCE是一种机制,它提供了在无损以太网络上极低延迟的高效数据传输。 随着数据中心朝着可靠以太网发展,搭载RoCE的CX系列以太网卡使用经过证实的,高效的RDMA传输方式以10GigE和40GigE线速为主流数据中心的应用提供部署RDMA技
随着互联网, 人工智能等兴起, 跨机通信对带宽和时延都提出了更高的要求, RDMA技术也不断迭代演进, 如: RoCE(RDMA融合以太网)协议, 从RoCEv1 -> RoCEv2, 以及IB协议, Mellanox的RDMA网卡cx4, cx5, cx6/cx6DX, cx7等, 本文主要基于CX5和CX6DX对RoCE技术进行简介, 一文入门RDMA和RoCE有损及无损关键技术
1)现象说明 公司IDC机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及ip信息都在,但是ip却ping不同了,进一步排查,重启网卡,提示之前的eth0和eth1网卡设备发现不了了,也就是说服务器主板更换后,之前的网卡设备都识别不了了! 主板更换后,重启并登陆服务器,发现之前的网卡设备(eth0、eth1、eth2、eth3)都没有了! [root@kevin01 ~]# ifconfig -a bond0 Link enc
https://github.com/ssbandjl/ucx/blob/master/category/uct_readme
RDMA CM 是一种通信管理器,用于设置可靠、连接和不可靠的数据报数据传输。 它提供用于建立连接的 RDMA 传输中立接口。 API 概念基于套接字,但适用于基于队列对 (QP) 的语义:通信必须通过特定的 RDMA 设备进行,并且数据传输基于消息。 RDMA CM 可以控制 RDMA API 的 QP 和通信管理(连接建立/拆除)部分,或者仅控制通信管理部分。 它与 libibverbs 库定义的 verbs API 结合使用。 libibverbs 库提供了发送和接收数据所需的底层接口。 RDMA CM 可以异步或同步操作。 用户通过在特定调用中使用 rdma_cm 事件通道参数来控制操作模式。 如果提供了事件通道,rdma_cm 标识符将报告该通道上的事件数据(例如连接结果)。 如果未提供通道,则所选 rdma_cm 标识符的所有 rdma_cm 操作将被阻止,直到完成。 RDMA CM 为不同的 libibverbs 提供商提供了一个选项来宣传和使用特定于该提供商的各种 QP 配置选项。 此功能称为 ECE(增强连接建立)
分离解析的域名服务器,实际上也还是主域名服务器,这里所说的分离解析,主要是指根据不同的客户端,提供不同的域名解析记录。来自不同地址的客户机请求解析同一域名时,为其提供不同的解析结果。
在前面两篇文章中,我们研究了在TCP三次握手时MSS选项的值:一般情况下,都是由出口路由的MTU大小决定:MTU-40。也就是说,TCP在握手阶段,通过MSS选项,通知对端本端可以接收的最大报文长度是多少。
当rs中其中一台nginx 服务有问题的时候,lvs并不能之后后端那个服务器down掉了,会出现以下的情况。
今天看到有人发了CVE-2017-1000112-UFO的分析,就把之前的学习报告整理一下,做个对比学习。 别人的分析报告: https://securingtomorrow.mcafee.com/mcafee-labs/linux-kernel-vulnerability-can-lead-to-privilege-escalation-analyzing-cve-2017-1000112/
ifconfig(interface configuration)是一种。它用于在 Linux 操作系统中配置和查看网络接口的状态。使用ifconfig,您可以分配 IP 地址、启用或禁用网络接口、管理ARP 缓存、路由等。
ifconfig(接口配置)是一个网络管理工具,它用于配置和查看 Linux 操作系统中网络接口的状态,使用ifconfig,您可以分配 IP 地址、启用或禁用接口、管理 ARP 缓存、路由等。
本文主要讲解网络通信中MTU,IP MTU和MSS的概念以及它们之间的关系。这三个概念对于网络通信来说非常重要,在实际的网络场景中常常很多网页打不开等问题,往往罪魁祸首都是这几个参数没配置正确导致的。VPP在21.06提交了一个tcp mss clamp的patch,本文主要来学习一下配置及使用。
在上一章我们了解到,物理文件层在MySQL架构位于最底层,将数据库的数据存储在文件系统上,并完成与存储引擎的交互。存储数据包括日志文件,数据文件,配置文件等。本章将介绍linux环境下MySQL的各类文件。
Docker是服务于应用的,Docker网络就是解决容器中应用的网络通信问题,让容器中的应用就像在一台独立的主机上运行一般。
UCT(Unified Communication Transport)是一个传输层,它抽象了各种硬件架构之间的差异,并提供了支持通信协议实现的低级 API。该层的主要目标是以最小的软件开销提供对硬件网络资源的直接有效的访问。为此,UCT 依赖于低级驱动程序,例如 uGNI、Verbs、共享内存、ROCM、CUDA。此外,该层还提供通信上下文管理(基于线程和应用程序级别, 如: ucs_async_context_create, uct_worker_create)以及设备特定存储器(包括加速器中的存储器)的分配和管理的构造。在通信 API 方面,UCT 定义了立即(短消息,如: uct_ep_am_short)、缓冲区复制发送(bcopy,如: uct_ep_am_bcopy)和零拷贝(zcopy, 如: uct_ep_am_zcopy)通信操作的接口。短操作针对可以就地发布和完成的小消息进行了优化。bcopy 操作针对通常通过所谓的弹跳缓冲区发送的中等大小的消息进行了优化。最后,zcopy 操作公开零复制内存到内存通信语义。
PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术。它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输。PPTP使用TCP(传输控制协议)连接的创建,维护,与终止隧道,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷可以被加密或者压缩或者同时被加密与压缩。常见的PPTP都是在路由器上配置的,不过linux下也可以实现PPTP服务器的功能。别的也不多说了,下面直接记录下Centos下部
写这篇文章介绍了 RDMA 编程的基础知识,如有啥错误,欢迎各位大神指出,感觉我就闲不住,休日时间也得学习,哪里需要去哪里,需要哪里学哪里,我真是个苦命的程序媛o(╥﹏╥)o。
在大型的系统开发时,通常需要准备多套环境用于开发和测试的目的,如:开发环境,UAT测试环境,集成测试环境和模拟环境等。这样通常会需要大量的机器节点,尤其是进行大数据类的系统开发的时候,通常一个大数据集群都要几台到几十台机器,这个时候的机器数量的需求将更是惊人。如果这些节点机器都通过物理机的方式实现,那成本就更是让人无法接受了。面对这种情况,选用虚拟化环境的方案,是一个非常好的选择。因为测试和开发环境通常对节点机器的配置要求不高,运行时甚至可以不必同时运行,可以根据工作安排灵活调度。但是确对环境之间的隔离性,以及与生产环境的一致性上要求很高。这种时候通过虚拟化资源池的方式将能应对这种困局。
之前做 MySQL 参数优化的时候,为了寻找瓶颈,我通常是观察 MySQL 的 status ,看哪些计数器有问题,以便确认问题的大致范围和应该调整的参数。虽然这一套屡试不爽,但是玩久了也想换一个新的视角。既然 MySQL 是运行在操作系统之上的,那我们观测操作系统的内核事件,应该也能发现性能问题。
Linux内核是高并发服务的关键组件之一。以下是一些可用于优化Linux内核的配置。
traceroute命令尝试跟踪IP数据包到某个Internet主机的路由,方法是使用一个小ttl(生存时间)启动探测数据包,然后侦听来自网关的ICMP超时回复,它以ttl为1开始探测,并将其增加1,直到获得ICMP port unreachable或TCP reset,这意味着我们到达了host,或达到了最大值(默认为30跳),在每个ttl设置处发送三个探测(默认),并打印一行,显示ttl、网关地址和每个探测的往返时间,在请求时,地址后面可以有附加信息,如果探测结果来自不同的网关,则会打印每个响应系统的地址,如果在5.0秒内(默认值)没有响应,则会为该探测器打印一个*。
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz
IP层叫分片,TCP/UDP层叫分段。网卡能做的事(TCP/UDP组包校验和分段,IP添加包头校验与分片)尽量往网卡做,网卡不能做的也尽量迟后分片(发送)或提前合并片(接收)来减少在网络栈中传输和处理的包数目,从而减少数据传输和上下文切换所需要的CPU计算时间。
在我们安装完一个 Linux 系统后最为常见的任务便是网络配置了。当然,你可以在安装系统时进行网络接口的配置。但是,对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置。
HowTo Install MLNX_OFED Driver 如何安装MLNX_OFED驱动
ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
将 Kubernetes 的 CNI 从其他组件切换为 Cilium, 已经可以有效地提升网络的性能. 但是通过对 Cilium 不同模式的切换/功能的启用, 可以进一步提升 Cilium 的网络性能. 具体调优项包括不限于:
Linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。使用ip命令,只需一个命令,你就能很轻松地执行一些网络管理任务。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。
网络是计算机系统中最重要的组成部分之一,它是计算机之间进行数据交换和通信的基础设施。在 Linux 系统中,网络配置是非常重要的,它涉及到网络接口、IP 地址、子网掩码、网关、DNS 等多个方面。本文将介绍如何在 Linux 系统中配置网络,包括设置静态 IP 地址、修改主机名、配置 DNS 服务器等内容。
ifconfig 命令用于配置和显示 Linux 内核中网络接口的网络参数。用 ifconfig 命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。若想将上述的配置信息永久存储在电脑里,需要修改网卡的配置文件。
Kube-OVN 0.3.0 的版本起支持子网间的防火墙设置,在 0.5.0 版本开始支持完整的 Kubernetes NetworkPolicy,用户可以实现更细粒度的网络策略控制,更好的对应用级别的网络访问进行安全控制。
udp 数据包的理论长度是多少,合适的 udp 数据包应该是多少呢?
领取专属 10元无门槛券
手把手带您无忧上云