<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[forsakening的专栏]]></title><description><![CDATA[for( level = 水平不高, reason = 学习记录; ;){ if (温故知新) level++; }]]></description><link>https://blog.youkuaiyun.com/forsakening</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; forsakening]]></copyright><item><title><![CDATA[RDMA在典型场景下的技术应用分析与探索]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/132226610</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/132226610</guid><author>forsakening</author><pubDate>Fri, 11 Aug 2023 11:16:09 +0800</pubDate><description><![CDATA[RDMA技术因其低延迟、bypass os/cpu等优势在数据中心内被广泛应用，本文围绕redis rdma进行方案分析及测试，再结合tensorflow、nccl、brpc等开源方案总结RDMA在典型业务场景下的实践方案。]]></description><category></category></item><item><title><![CDATA[veth网卡的多队列及RPS]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/130749244</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/130749244</guid><author>forsakening</author><pubDate>Thu, 18 May 2023 16:13:31 +0800</pubDate><description><![CDATA[3.10内核下容器使用的veth网卡，默认开启的是一个队列，导致在某些单线程多TCP链接的应用场景下，出现某个CPU软中断高的情况。之前处理的方案一直是开启这个veth网卡的RPS，让其在多流场景下可以去分散到其它CPU上，将某个CPU上的软中断降低。其中，skb_get_rx_queue可以通过veth的多队列，拿到不同的队列，但是下面的一个流程，是要配合rps去使用的，所以当前3.10.957的内核即使veth使用了多队列，若没有开rps的话，仍然是返回到当前cpu。带着这个问题看一下内核的处理流程。]]></description><category></category></item><item><title><![CDATA[socket send：broken pipe]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/124370422</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/124370422</guid><author>forsakening</author><pubDate>Sat, 23 Apr 2022 21:28:20 +0800</pubDate><description><![CDATA[tcp socket在调用send接口时，出现了程序出现：Program received signal SIGPIPE, Broken pipe的异常。

说明程序收到了SIGPIPE的信号。一般网上的处理手段是signal(SIGPIPE, SIG_IGN);忽略这个信号，但实际测试过程中貌似没太生效，这块没具体研究。

还是直接分析下原因，为何

sendret = send(sockfd, sendmsg, strlen(sendmsg), 0);

这样一段代码会引起程序收到SIGPIPE信号呢？]]></description><category></category></item><item><title><![CDATA[centos上编译nbd.ko]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/124331591</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/124331591</guid><author>forsakening</author><pubDate>Thu, 21 Apr 2022 21:00:29 +0800</pubDate><description><![CDATA[centos7.6默认的内核没有nbd.ko模块，在yum源上也找不到，只能手动从源码编译了。

参考：

在 CentOS 中安装 nbd.ko 驱动模块 - ZVampirEM's Blog

centos7单独编译nbd内核模块 - 武汉-磨渣 - 博客园

安装kernel-src包后，进入/root/rpmbuild/SOURCES/linux-3.10.0-957.27.2.el7/drivers/block目录

编译：


			block]# make CONFIG_BLK_DEV_NBD]]></description><category></category></item><item><title><![CDATA[TCP未监听端口收到报文，为何会回应reset报文]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/121799926</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/121799926</guid><author>forsakening</author><pubDate>Wed, 08 Dec 2021 20:10:23 +0800</pubDate><description><![CDATA[说下结论：linux下，在某个tcp未监听端口收到报文时，会回复reset报文，代码层面初步分析如下。



tcp_v4_rcv中调用__inet_lookup_skb查找报文对应得socket，当没有socket时，会走到“no_tcp_socket”流程，该流程会发送reset报文。

lookup:

sk = __inet_lookup_skb(&amp;tcp_hashinfo, skb, __tcp_hdrlen(th), th-&gt;source,

...]]></description><category></category></item><item><title><![CDATA[Linux下获取cpu温度]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/119596890</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/119596890</guid><author>forsakening</author><pubDate>Wed, 11 Aug 2021 10:24:27 +0800</pubDate><description><![CDATA[大致strace跟踪了下sensors命令，发现是读取类似/sys/class/hwmon/hwmon1/temp1_input中的值，再结合google下的如下几篇文章：

https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface

总结如下：


# ls -al /sys/class/hwmon/
total 0
drwxr-xr-x  2 root root 0 Aug 11 10:09 .
drwxr-xr-x 64 root r]]></description><category></category></item><item><title><![CDATA[支持vhost-net类型的多队列tap虚拟网卡]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/118405446</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/118405446</guid><author>forsakening</author><pubDate>Fri, 02 Jul 2021 09:42:09 +0800</pubDate><description><![CDATA[参考：

【1】vhost(vhost-net): 一种 virtio 高性能的后端驱动实现https://cloud.tencent.com/developer/article/1075600

【2】Linux kernel Vhost-net 和 Virtio-net代码详解https://www.cnblogs.com/scottieyuyang/p/6053376.html

1.问题描述

使用普通virtio驱动的tap网卡时，tap虚拟卡是xxxx-vif-agent网络插件创建的...]]></description><category></category></item><item><title><![CDATA[ifb与tc police对接收方向限速性能比较]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/117092321</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/117092321</guid><author>forsakening</author><pubDate>Thu, 20 May 2021 21:40:47 +0800</pubDate><description><![CDATA[参考：

【1】https://www.cnblogs.com/xingmuxin/p/10826703.html

【2】https://blog.youkuaiyun.com/dog250/article/details/40680765 dog250大神对ifb的理解

1.使用ifb进行容器的出向限速


			创建ifb，并mirror流量至ifb网卡上，限制发送侧5G的发送流量

			modprobe ifb //支持参数，默认创建ifbx网卡的数目

			ifconfig ifb1 up

		...]]></description><category></category></item><item><title><![CDATA[【Opencontrail】对接k8s基本原理]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/95176269</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/95176269</guid><author>forsakening</author><pubDate>Tue, 09 Jul 2019 11:03:47 +0800</pubDate><description><![CDATA[Opencontrail基于CNI规范实现了自己的CNI插件，Kubelet在调用CNI接口时调用SDN-CNI-Plugin生成对应的veth pair容器端口，veth一端在Pod中，另一端在Opencontrail的SDN-NVE-Agent中，所以Pod的所有通信流量全部被Opencontrail系统接管。同时，Opencontrail使用SDN-Kube-Manager监听K8S A...]]></description><category></category></item><item><title><![CDATA[【Opencontrail】对接vcenter dpdk模式性能测试]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/95175702</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/95175702</guid><author>forsakening</author><pubDate>Tue, 09 Jul 2019 10:59:11 +0800</pubDate><description><![CDATA[参考

【1】https://docs.vmware.com/en/VMware-vCloud-NFV-OpenStack-Edition/3.0/vmwa-vcloud-nfv30-performance-tunning/GUID-2B34AD95-F8F9-4837-9521-D426E2E01B9F.html vcenter中nfv应用的performance调优

【2】https:/...]]></description><category></category></item><item><title><![CDATA[【Opencontrail】opencontrail对接k8s]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/95173614</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/95173614</guid><author>forsakening</author><pubDate>Tue, 09 Jul 2019 10:39:43 +0800</pubDate><description><![CDATA[1.预置条件

部署K8S集群，K8S集群工作正常；



2.部署sdn控制器

控制器集群和K8S集群，使用新的数据网卡通信，使用fab安装。



3.部署sdn前k8s集群配置

3.1 修改k8s-master节点配置

1） 停掉calico

kubectl delete daemonset calico-node -nkube-system

将master节点上的相关cali...]]></description><category></category></item><item><title><![CDATA[haproxy中使用域名作为backend]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79961536</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79961536</guid><author>forsakening</author><pubDate>Mon, 16 Apr 2018 15:43:54 +0800</pubDate><description><![CDATA[1）基本条件：haproxy &amp;gt; v1.6 版本（测试时候觉得1.8版本更稳定）2）centos编译haproxy的rpm包https://github.com/DBezemer/rpm-haproxy3）遇到的坑：      –  dns的返回值不正确，原因是backend的域名填写的有问题rancher的环境中，必须要对域名做如下转换：如desktop-server  需转换为 desk...]]></description><category></category></item><item><title><![CDATA[dpdk的ring]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79731515</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79731515</guid><author>forsakening</author><pubDate>Wed, 28 Mar 2018 18:24:07 +0800</pubDate><description><![CDATA[struct rte_ring {
	TAILQ_ENTRY(rte_ring) next;      /**&amp;lt; Next in list. */

	char name[RTE_RING_NAMESIZE];    /**&amp;lt; Name of the ring. */
	int flags;                       /**&amp;lt; Flags supplied at...]]></description><category></category></item><item><title><![CDATA[使用DPDK分流不同数据报文至不同虚拟机]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79540090</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79540090</guid><author>forsakening</author><pubDate>Tue, 13 Mar 2018 14:33:46 +0800</pubDate><description><![CDATA[使用DPDK分流不同数据报文至不同虚拟机，这样可以使用网卡的RSS或者FDIR等高级功能。上述组网中，是可以实现tap0和tap1之间互通的；（注意点，tap设备up，bridge设备up）tap设备是打开/dev/net/tun文件生成的一种字符设备，同一个tap设备只能被open一次。上图中，DPDK应用程序open并创建一个tap1设备，这样dpdk程序收到报文后，根据分流规则，可以将收到的...]]></description><category></category></item><item><title><![CDATA[kvm创建虚机时访问外网]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79195361</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79195361</guid><author>forsakening</author><pubDate>Mon, 29 Jan 2018 14:51:23 +0800</pubDate><description><![CDATA[随意创建一个网桥： brctl addbr qemu-br

为此网桥创建一个tap：

yum install -y tunctl

tunctl -t vm-if

brctl addif qemu-br vm-if

网桥随便分配一个ip： ifconfig qemu-br 192.168.44.1/24 up

iptables: iptables -t nat -]]></description><category></category></item><item><title><![CDATA[centos6.9升级内核启动docker时无法冻结]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79180574</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79180574</guid><author>forsakening</author><pubDate>Sat, 27 Jan 2018 15:06:08 +0800</pubDate><description><![CDATA[背景及现象：

某地超融合项目，客户使用centos6.9时，升级了原生2.6.32的内核版本至4.4.113版本内核。

然后客户在此虚机中安装并开启了docker服务。导致在线快照时无法冻结文件系统。

 

[root@host-172-16-170-171 ~]# cat /proc/self/mounts
proc /proc proc rw,relatime 0 0]]></description><category></category></item><item><title><![CDATA[网卡bond工具]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79147234</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79147234</guid><author>forsakening</author><pubDate>Wed, 24 Jan 2018 09:53:25 +0800</pubDate><description><![CDATA[fork from：https://github.com/sivel/bonding

mirror at：https://github.com/forsakening/bonding

修改后功能如下：

1）过滤出系统的网卡，过滤出的网卡类型：非网桥、非loopback、非tap、非pair，暂不支持过滤ovs的网卡

2）支持配置没有ip属性的bond（不设置bond的ip）]]></description><category></category></item><item><title><![CDATA[keepalived增加/删除IP代码层面]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79147209</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79147209</guid><author>forsakening</author><pubDate>Wed, 24 Jan 2018 09:51:41 +0800</pubDate><description><![CDATA[网上说是使用ip addr add/del 操作，原理差不多，但实际不是~~

参考代码，根据配置文件中的static_addresses配置项，层层查找，发现是使用了netlink

vrrp_handle_ipaddress(vrrp_t * vrrp, int cmd, int type, bool force)

netlink_iplist(list ip_list, int]]></description><category></category></item><item><title><![CDATA[cron下执行ntpdate出现的问题]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79147198</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79147198</guid><author>forsakening</author><pubDate>Wed, 24 Jan 2018 09:50:54 +0800</pubDate><description><![CDATA[ntpdate代码：

https://github.com/ntp-project/ntp/tree/stable/ntpdate

编译：

1）./bootstrap

2）autoconf   automake  configure  make，预先安装libtool

 



问题现象：

在v3.2版本超融合中，osd、mon、controller、c]]></description><category></category></item><item><title><![CDATA[OSD无法启动恢复]]></title><link>https://blog.youkuaiyun.com/forsakening/article/details/79146952</link><guid>https://blog.youkuaiyun.com/forsakening/article/details/79146952</guid><author>forsakening</author><pubDate>Wed, 24 Jan 2018 09:31:40 +0800</pubDate><description><![CDATA[现象：

  osd无法启动，log里显示加载journal失败，类似如下：



 

问题原因：

  该osd的journal数据损坏，需要重新刷新

修复方法：

   对该osd的日志盘用dd命令重新覆盖一遍，只需要重写开始的一段，然后重做日志盘。

  dd if=/dev/zero  of=/dev/sdb4 bs=1M count=1024 #sdb]]></description><category></category></item></channel></rss>