md
小表弟皮卡丘
嘻嘻^_^
展开
-
Linux 内核中RAID5源码详解之写过程剖析(一)
Linux 内核中RAID5源码详解之写过程剖析(一)前面说了很多铺垫性的东西,感觉是时候放大招了,今天我们就来谈谈内核中RAID5最重要的特征:写。前面说过了handle_stripe() 是处理stripe_head的真正战场,由于该函数十分复杂,所以我在内核源码中增添了写输出信息,便于理解,由于里面的函数调用很多,下面讲的时候会涵盖很多函数的源码,所以请自备花生、水果和饮料,感觉会很长,我尽量原创 2015-07-24 17:16:44 · 5588 阅读 · 2 评论 -
Linux 内核中RAID5源码详解之stripe_head的管理
Linux 内核中RAID5源码详解之stripe_head的管理前面已经介绍了整个系统的全局架构和内核中RAID5的基本处理单元stripe_head结构,基本上已经从整体上对Linux内核中的RAID5模块有了一定的认识,今天我们就来说说RAID5是怎么来管理stripe_head(下面有时也会说到”条带“,其实指的就是stripe_head结构)的,闲话不多说,go~原创 2015-07-24 14:01:48 · 4224 阅读 · 6 评论 -
Linux内核中RAID5源码详解之写过程剖析(二)
Linux内核中RAID5源码详解之写过程剖析(二)继上一篇Linux内核中RAID5源码详解之写过程剖析(一),现在我们已经将bio添加到了相应的stripe_head中,记为sh,由于RAID5处理的基本单元就是stripe_head,所以接下来就是怎么处理这个含有bio的stripe_head过程。 上篇中make_request() 中最后调用release_stripe_plug() 处原创 2015-08-03 16:25:41 · 4963 阅读 · 5 评论 -
Linux内核中MD及RAID模块化
Linux 内核中MD及RAID模块化这段时间接触了下linux内核中的MD代码以及RAID源码,想自己在上面加一些东西,期间就要重新编译MD和RAID,但是由于修改的是内核源码,所以刚开始每次编译都需要编译内核,花费的时间比较长,于是就想起了将MD和RAID进行模块化,这样的话就大大节省了编译的时间,下面我们就来谈谈是怎么模块化的。模块化的步骤大致分为三个阶段:编译内核、编译模块和插入模块。接下来原创 2015-07-22 13:27:33 · 7438 阅读 · 6 评论 -
Linux内核中RAID5源码详解之基本架构与数据结构
Linux内核中RAID5的基本架构与数据结构解析众所周知,早年的计算机存储数据现在磁带上,然后发展到了磁盘,然而仅仅是单个盘,速度和性能都不是很好,然是,要知道人类的聪明才智是连ET都想不到的,前辈们不断的猜想,实验来提高计算机的性能,于是磁盘阵列问世了。由于磁盘阵列(Redundant Arrays of Independent Disks,RAID)的出现,使磁盘的存储性能和安全性等诸多方面有原创 2015-07-22 16:51:11 · 6830 阅读 · 4 评论 -
Linux 内核中RAID5源码详解之RAID模块声明
Linux 内核中RAID5源码详解之模块声明系统整体布局在讲RAID5之前,我们先来思考下这个问题:我们平时写的C函数,比如说write() 是怎么将数据写到计算机的硬盘上的?整个系统指令执行的流程是什么?我们带着这个问题来了解系统的整体布局。 这是系统的整体布局的示意图,比如说问题中的write() 执行流程则为用户态调用该函数,然后进行系统调用,将指令和参数传给虚拟文件系统层,然后再具体原创 2015-07-23 16:28:12 · 3479 阅读 · 4 评论 -
Linux 内核中RAID5源码详解之守护进程raid5d
Linux 内核中RAID5源码详解之守护进程raid5d对于一个人,大脑支配着他的一举一动;对于一支部队,指挥中心控制着它的所有活动;同样,对于内核中的RAID5,也需要一个像大脑一样的东西来支配着他的正确运转,那就是RAID5的守护进程raid5d。今天,我们就好好来看看raid5d到底是怎么一回事~进程的注册前面的博文中贴出的源码经常会出现这样一条语句md_wakeup_thread(mdde原创 2015-07-24 15:22:48 · 3077 阅读 · 0 评论