自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (1)
  • 收藏
  • 关注

原创 cgroup源码分析——基于centos3.10.0-693.25.4

因docker研究cgroupcgroup主要是对进程进行控制和审计,cgroup到底是怎么进行工作的呢?从cgroup在进程中的位置入手研究会看的清楚点。看task_struct的结构:#ifdef CONFIG_CGROUPS /* Control Group info protected by css_set_lock */ struct css_set __rcu *cgr...

2018-11-27 08:47:06 916

原创 容错分布式一致性算法——totem(一)

  第一次接触分布式一致性算法是通过totem,现在开始研究paxos和raft之类,后面也是会做笔记的,便先将totem算法先写下来,用于对比学习。  totem协议,全称是The Totem Single-Ring Ordering and Membership Protocol,是一个基于令牌环的分布式一致性算法。一个令牌在集群节点之间传递,拿到令牌的节点才能够发消息,消息通过UDP广播发...

2018-11-05 10:33:02 1583 1

原创 sas控制器驱动结构粗探--基于3.10.0-693.25.4

公司出了个内核core,是宕机在了mpt3sas这个模块,以前没见过这个模块啊,不过不影响bug排查。这个模块是sas控制器的驱动。在之前的IO栈中,只了解到过通用块层,scsi往下的就没接触了,也正好趁此解这个bug的机会了解下IO栈scsi以下是什么。从config描述可以看到,mpt3sas是SAS控制器驱动,特殊点在于它是基于Fusion-MPT 架构的。config SCSI_MPT...

2018-10-26 11:13:09 3430

原创 direct IO 内核实现分析及揭示一个坑——基于3.10.0-693.11.1

linux的读写系统调用提供了一个O_DIRECT标记,可以让尝试绕过缓存,直接对磁盘进行读写(为啥是尝试绕过?当直接落盘失败时还要通过缓存去落盘)。为了能实现直接落盘,使用direct IO限制多多,文件偏移得对齐到磁盘block,内存地址得对齐到磁盘block,读写size也得对齐到磁盘block。但direct IO的实现还是有个小缺陷。这个缺陷我在fuse上的分析已经讲清楚了,对于缺陷原理...

2018-10-11 20:37:02 2769

原创 内核fuse实现中的一个隐患--基于centos 3.10.0-693.11

一次项目中,我们用的基于fuse的文件系统进程出core挂掉了,排查发现,这并不是个BUG,算是个缺陷吧。出core表现是这样的,libfuse从/dev/fuse中调用read读取内容,读返回成功了,但缓冲区只更新了部分内容,还有部分内容是旧的,导致libfuse执行了旧的命令,而我们实现的fuse文件系统,某些命令重复执行是会出core的,也幸亏会出core才能暴露这个bug,不然某些命令重复...

2018-10-10 22:35:33 1548

原创 poll源码分析--基于3.10.0-693.11.1

我们依然从函数调用开始分析,先分析poll的系统调用实现SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds, int, timeout_msecs){ struct timespec end_time, *to = NULL; int ret; //如果传了超时时间,则在这里获取墙上时间 i...

2018-10-07 12:54:53 328

原创 mmap源码分析--基于3.10.0-693.11.1

mmap是个既简单又好用的东西,对于读写文件,它减少了一次内存拷贝,对于内存申请,它可以方便的申请到大块内存,用于自己管理。今天就来说说mmap的实现。mmap的原型是这样的:void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);它在内核里的样子是...

2018-10-03 11:00:52 2070

原创 记一次iscsi umount不掉的内核bug

总结是不可能不写的了,这辈子都不可能不写,以前没有写blog的习惯,结果找个以前解过的bug,愣是看好一会来捋清当时到底啥情况。bug背景测试同事发现一个集群的iscsi文件系统umount不了,同事查看了下是iscsi断线了还一直连不上,在存储服务器连上后,结果还是umount不掉。bug排查首先看下umount的报错,busy表示有进程还在使用该文件系统,存储掉了出现这种情况好解释,i...

2018-09-29 21:15:13 557

The_Totem_Single-Ring_Ordering_and_Membership_Protocol.pdf

totem是容错式分布式系统协议,corosync底层依赖并实现了这个协议,研究corosync底层同步机制的时候可以先看看这个

2018-10-12

空空如也

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

TA关注的人

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