自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

未冬生

分布式存储

  • 博客(56)
  • 资源 (3)
  • 收藏
  • 关注

原创 rdma_get_src_port()/rdma_get_dst_port() 获取的port是什么的port

RoCE v2 是基于UDP的,那么猜测rdma_get_src_port()的port可能是UDP port即传输层的port,类似 ip:port 这种格式。但是通过抓包发现,这里的port是IB的port,不是udp的

2024-01-10 19:02:58 392

原创 整型int溢出引起的crash

其最高位为 1 表示负数。当与char* 相加时,由4位扩展到8位时,高位补符号位1,得到的值为 0xFFFFFFFF0x88662030,再与char* 相加,结果是一个非法地址。char* 本质是一个无符号数,长度为8字节,char* 与 int相加时,int会自动转换为无符号的8字节数值。当 int 溢出时,转换出的无符号数与实际的数值不符,导致 men_list[i] 中保存的是一个无效地址,当访问这个无效地址时,发生crash。当 i * size 的乘积超过int表示的最大正数时,发生溢出。

2023-08-15 10:27:57 208

原创 买重疾险的体验

2、至于「花更少的钱可以保更长的时间」,这个并不存在,保费和消耗的现金价值是根据发生率表精算过的,什么时候买的单价都一样,都是x元买y%发生概率,就是一个饼一块和两个饼两块的区别,没有哪个更赚哪个更亏,只有早享受早花钱的区别。1、最佳组合:消费型重疾保到70岁(不返还不捆绑) + 符合收入水平的寿险 + 医疗险;

2023-06-08 11:08:26 109

原创 CPU主频设置

查看CPU idle state 信息:cpupower idle-info 或 cat /sys/devices/system/cpu/cpuidle/current_driver ,cat /sys/devices/system/cpu/cpuidle/current_governor_ro。查看频率:cpupower frequency-info 或 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq。

2023-05-07 17:05:38 2477

原创 KMP算法中如何求next数组

KMP算法如何求next数组

2023-02-21 16:42:13 247

原创 一次arp_ignore配置引起的故障

arp_ignore配置为0,导致获取mac错误,从而导致链路层传输非预期。

2022-06-05 11:11:30 234

原创 Infiniband简介

Infiniband介绍参考:InfiniBand Trade Association一、基本概念1、与传统网络区别 传统网络是以“网络”为中心的。操作系统是资源的拥有者并将资源抽象为服务,应用访问资源需要要向操作系统请求相应的服务(网络、存储等);infiniband是以应用为中心的(applicationcentric),它从应用的视角去分析解决IO问题及如何设计网络。其基本思想是提供简单易用的消息服务:控制消息与数据消息。应用可以直接访问消息服务而不需要经过操作系统,这是由于IB....

2022-05-21 20:44:03 1267

原创 ioctl 简介及示例

一、ioctl 简介ioctl是应用与驱动的常用接口。对字符设备、块设备、及套接字,非常方便扩充新的命令。二、定义#include <sys/ioctl.h>int ioctl(int fd, unsigned long request, ...);fd 是操作的描述符,在Linux中一切设备皆文件;request 是发给设备的请求命令,部分命令定义可以从 /usr/include/linux/fs.h查找,例如#define BLKDISCARD _IO(0x12,119)。.

2022-03-12 17:58:48 8136

原创 存储新技术及发展趋势【持续更新】

1、NVMEover TCP: Lightbits和solarflare正在推广基于 TCP-over-bog-standard Ethernet的Nvme-over-Fabric(Nvmeof)方案,目标是取代通过数据中心级以太网、iWarp,rdma、infiniband。该公司的XstremeScale NIC支持内核旁路套件原文: Future is bright for NVMe-over-Fabrics with TCP and Ethernet, say Solarflare,...

2022-03-04 15:25:58 1426

原创 套接字socket选项TCP_NODELAY、TCP_CORK与TCP_QUICKACK

一、简介:TCP_NODELAY关闭Nagle算法,控制的是数据的发送。Nagle 算法规定,如果包大于MSS(Max Segment Size)或含有FIN则立即发送,否则放入缓冲区,等已经发送的包被确认后后再发送。即网络上只能有一个未确认的小包。可以降低网络小包数量,减少了ip头部在网络上的比重,提升网络性能。https://www.fanhaobai.com/2017/11/40ms-delay-and-tcp-nodelay.htmlTCP_CORK:设置后不会发送任何小包(小于mss)除非超时

2022-03-01 19:13:09 6384

原创 golang实现进度条 ProcessBar

为了避免引入更多的第三方库,自己实现了一个简易进度条,可以用在CLI中package mainimport ( "fmt" "time")type ProcessBar struct { Header string Width int LastLen int CurrentString string}func (bar *ProcessBar) InitBar() { bar.Header = "Process:" bar.Width = 100 bar.LastLe

2022-02-15 17:46:04 877

原创 RDMA编程之服务端 server demo

一个rdma demo

2022-01-26 15:41:25 619

原创 RDMA 编程客户端client demo

一个rdma demo

2022-01-26 15:38:00 504

原创 存储介质知识总结

磁盘、SSD

2020-03-22 23:25:29 2864

原创 rdma_destroy_id() 前需要 ack相关event

《RDMA_Aware_Programming_user_manual》中提到:rdma_destroy_id() : users must free any QP associated with this id before calling this routine and ack related events;例如在销毁rdma资源时,会先通过rdma_disconnect()来释放链接,...

2020-02-01 11:28:42 394

原创 使用cgo,由于内存释放导致内存无效,引起的http crash

程序基本框架:在C代码中申请内存并放入数据,然后用Go代码通过http将数据发送到对端,发送完成(成功或失败)后释放内存。遇到的问题:当发送成功的时候,一切正常;当发送失败的时候,偶尔会crash。//C代码void send_data(){    buf = malloc(data_len);    goHttpSendData(buf, data_len); // 在go代码中定...

2019-01-27 15:36:01 3485

原创 ssh_exchange_identification: read: Connection reset by peer

ssh 80%概率出现下面错误ssh 192.168.1.2ssh_exchange_identification: Connection closed by remote host ssh 192.168.1.2ssh_exchange_identification: read: Connection reset by peerping 是没问题的 解决方法:修改/etc/...

2018-08-14 17:58:22 687

原创 一种使client避免zookeeper丢事件的方法

本文地址:https://blog.csdn.net/WEI_GW2012/article/details/80398639在很多分布式系统中,集群管理依赖zookeeper的watcher机制。由于watcher对于节点事件(另一种是连接事件)是一次性的,即一旦触发就失效,若想再次获取相应zk路径上的事件,需要再次设置watcher。如果zk路径在两次watcher之间发生了改变,clien...

2018-05-21 22:28:57 645

原创 NVMe SSD Trim在数据安全中的作用

Trim在SCSI 里面的同等命令叫做UNMAP,NVMe里面叫Deallocate,文件系统叫做discard。在SSD存储系统中,定期主动执行trim指令,能够减少因IO触发的写放大,从而提升IO性能。另外,主动trim后,再次读取返回0,这样使client无法读取已经删除的数据,有利于数据安全(隐私),特别是在公有云中,存储系统主动trim是很有必要的。以下是原理解释和代码验证。...

2018-05-15 19:36:06 5439

原创 enhance io参数配置方法及其含义

enhance io参数设置一、配置方法:可以利用sysctl -w或者编辑/etc/sysctl.conf进行配置,配置格式:dev.enhanceio.your_cachename.autoclean_thresholdf,函数eio_sysctl_register_common()针对每个值注册了一个回调函数,通过这些回调函数来修改dmc->sysctl_active.相应参数。

2018-01-31 19:32:50 913

原创 Redhat6.9 网卡做bond绑定

以下是自己做bond的记录,将eth0和eth1做bond0,参考https://www.cnblogs.com/huangweimin/articles/6527058.html绑定的前提条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片。注意要让不同网卡上的 port 做绑定,这样才能实现冗余;1、关闭和停止NetworkManager服务,不关闭对bon

2018-01-24 19:23:15 4604

原创 DNS server配置

1、安装软件:bind-9.8.2/bind-libs-9.8.2/bind-chroot-9.8.2/bind-utils-9.8.22、修改/etc/named.confoptions {    listen-on port 53 { 127.0.0.1; }; //修改为server 真实ip......    allow-query    { any; }.....

2018-01-23 21:39:46 1991

原创 signal的不可靠性和sigsuspend的使用

一、signal 是不可靠的:在Ubuntu10.04,Kernel 2.6.23上,其设置的信号函数仅仅触发一次,触发完之后恢复为默认动作,但是sigaction函数设置之后一直有效;如下代码(摘自UNIX环境高级编程)当使用signal时,仅仅触发一次sig_int,再次发送中断信号执行默认操作:程序被终止;但是用sigaction设置,一直会触发sig_int函数;#

2017-10-29 23:48:50 1176

原创 函数、方法和接口的区别

函数是语句序列的打包;方法是对 对象成员的操作,由函数实现;接口是对方法的抽象和概括,有方法实现具体的接口;//之前是C开发,学习Go之后的认识。

2017-09-21 22:49:22 9473

原创 单机部署Oracle,用swingbench压测

以下是单机部署Oracle,用swingbench压测过程,详细步骤其他同学写好了,就直接贴了链接;一、安装:1、安装oracle参考:http://7680062.blog.51cto.com/7670062/1947655    需要先添加组:groupadd oinstall/dba    将用户添加到组:usermod -a -G groupname usernam

2017-09-07 18:44:58 1028

原创 浮动Ip方式部署iscsi集群(以sheepdog + keepalived + tgt 为例)

首先部署sheepdog集群。然后选择两个不同的计算节点分别进行如下操作1、tgt安装获取源码包https://github.com/fujita/tgt (注意需要支持的vdi大小,控制大小的宏#define MAX_DATA_OBJS (UINT64_C(1) make && make install启动tgt:tgtd start,并添加该命令到/etc/rc.d/rc.lo

2017-07-18 11:44:56 1464

原创 zookeeper的watcher机制及其在集群管理(sheepdog)中的使用

ZK集群节点角色分为Leader和Follower(同步),Leader(接受请求,投票),2n+1个,得票过半成为Leader。读任何一个节点,写到Leader然后同步给follower 1、数据模型znode     树模型,每隔叶子节点可以存少量数据,默认1M;     两种znode(永久PERSISTENT和临时ZOO_EPHEMERAL ),临时的在会话超时之后serv

2017-07-18 11:35:56 619

原创 windows端通过iscsi方式使用EBS盘

1、打开“iSCSI 发起程序”:控制面板--> 系统和安全--> 管理工具--> iSCSI 发起程序2、单击选项卡“发现” --> 单击“发现门户”3、在“IP 地址或DNS 名称”处填写已经创建target 的服务器地址,如下:4、打开“目标”选项卡,可以看到已经发现的目标,状态为不活动:5、单击需要连接的目标名称,然后点击连接,出现如下画面,单击

2017-07-17 18:19:34 1519

原创 求二叉树从叶子到根节点的值组成数字的和

二叉树、路径值求和

2017-06-18 19:59:37 1133

原创 sheepdog集群节点加入时,视图变化过程分析

sheepdog集群节点加入时,视图变化过程,这里的“视图变化”包含两个方面:一是sheepdog与zookeeper交互时,两者时间传递消息的变化,即ev->buf;另一个方面是sheep节点本地sd_node_root的变化。本文按照节点加入流程一起分析视图变化,仅仅涉及视图相关,略去了其他流程。

2017-05-31 23:35:52 738

原创 代码管理工具 Git

常用git命令

2017-01-11 20:12:20 592

原创 extern C的使用

作用简介extern “C”通知编译器将extern “C”所包含的代码按照C的方式编译和链接。主要目的是 C++代码可以调用C接口因为C与C++编译后在符号库中的名字不同C _funcC++ _func_type_type_type1、在C++的使用示例:1.1直接混编代码#ifdef __cplusplusextern "C" {#endif /*

2016-12-24 11:56:09 513

转载 Iometer存储测试工具

IOMETER 官方网站:http://www.iometer.org/Iometer的用户指南上说,Iometer是一个单机或者集群的I/O子系统的测量和描述工具。它最初是由英特尔公司在1998年2月17日的英特尔开发者论坛(IDF)宣布,自那时以来,在行业内广泛的蔓延,成为了标准。与此同时,英特尔已经停止Iometer的开发工作并把开放源码交给了OSDL。 2001年11月

2016-09-20 09:51:26 1572

原创 Ceph 的简单部署步骤

部署方案:一台 admin,一台 mds + mon,两台 OSD,四台都是在虚拟机上安装CentOS7.1、部署完 MON 之后,通过 ceph -s 查看集群状态,提示 ERROR: missing keyring, cannot use cephx for authentication[ceph@mdsmon ~]$ ceph -s2015-12-29 23:49

2015-12-30 21:27:17 9479

原创 CentOS7 网络配置问题

新装了CentOS7,但是 ifconfig 命令无法使用: ifconfig command not found。解决办法:yum install net-tools.

2015-12-26 12:28:23 988

转载 awk与shell参数传递(或说变量传递)二三点

awk与shell间参数(或说变量传递)是shell编程中常有的话题了,因为其中实际涉及到不少的知识点,比如包括a:进程进通信b:awk参数形式c:shell命令解析,命令替换等等,在此列举二三点例子,做为小结。以下主要分为二部分1:shell给awk传参2:awk往shell传参参考文档:gnu 的awk documentationhttp://www.g

2015-03-17 22:45:53 678

原创 C语言判断文件夹名是否合法

/*************************************************************************** * Function Name: validateFoldername * Description:  The ength of folder name should be less than 255.  *         

2015-02-28 18:40:37 3313

转载 常见gcc编译警告整理(开始)

1、warning: no newline at end of file在文件最后一行加上回车键解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:A backslash immediately before a newline has long been used to continue string literals, as

2015-01-15 14:18:32 850

原创 安装HeartBeat 时遇到的错误总结

平台:CentOS 7.0 错误总结:glueconfigure 错误问题 1ibtoolize: `COPYING.LIB' not found in `/usr/share/libtool/libltdl'解决方法:安装ibtool-ltdl-devel :yum install libtool-ltdl-devel问题 2a2x: Co

2014-12-17 22:30:29 2934

转载 常见算法:C语言求最小公倍数和最大公约数三种算法

最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:① a%b得余数c② 若c=0,则b即为

2014-10-28 10:33:05 757

Qt-4.7.3开发环境的搭建

介绍了Qt4.7.3开发环境在ubuntu10.04环境下地搭建,包括ARM环境、X86、PC

2012-03-27

ubuntu10.04 安装 opencv2.2.0

ubuntu10.04 安装 opencv2.2.0

2012-03-22

XP系统虚拟机安装Ubuntu

我是初学者,若有不妥,欢迎指出,谢谢! 也许不太详细,图片较多,文字比较少,我感觉这样更直观。

2010-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除