
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
从原理上讲,raid5出现坏块之后读操作肯定是会绕道读取的。我用设置/sys/block/md1/md/dev-sdb/bad_blocks的方法来模块磁盘坏块,用dd从md读数据,从iostat查看的数据流。创建一个三个盘的raid5:NumberMajorMinorRaidDevice State0880
其实到目前为止,如果对读流程已经能轻松地看懂了,那么写流程不需要太多脑细胞。我觉得再写下去没有太大的必要了,后面想想为了保持flashcache完整性,还是写出来吧。接着到写流程:1530static void1531flashcache_write(struct cache_c *dmc, struct bio *bio)1532{1533int index;1534
这一节讲缓存的写回磁盘流程。这里隆重介绍一下两位幕后的英雄:1724/*1725 * Sync all dirty blocks. We pick off dirty blocks, sort them, merge them with1726 * any contigous blocks we can within the set and fire off the writes.1
正常流程到flashcache_map的1623行或1625行,按顺序先看读流程:1221static void1222flashcache_read(struct cache_c *dmc, struct bio *bio)1223{1224int index;1225int res;1226struct cacheblock *cacheblk;1227int qu
这个星期偷着点闲看下flashcache,所谓知其然知其所以然,本着程序员追根抛底的职业素养,看看flashcache究竟是何等的三头六臂。一、flashcache是什么flashcache是一个linux内核模块,主要目的是用SSD加速块设备,相当于用SSD盘作为块设备的缓存。二、flashcache在内核的哪一层位于内核的dm层(device mapper),在块设备之上,在V
从来没有写过源码阅读,这种感觉越来越强烈,虽然劣于文笔,但还是下定决心认真写一回。源代码下载请参见上一篇flashcache之我见 http://blog.csdn.net/liumangxiong/article/details/11643473下面代码对应的是tag下面的1.0版本的。看内核模块源码,闭着眼睛打开flashcache_init函数,区区百来行代码何足惧也。
linux内核奇遇记之md源代码解读之五转载请注明出处:http://blog.csdn.net/liumangxiong如果看懂了raid1阵列的run函数,那么看raid5阵列run就非常轻松了,因为两者要做的事情都是大同小异。raid5的run函数很长,但很大一部分跟创建运行是没有关系的,特别是有一段跟reshape相关的,大多数系统都不关注该功能,因此可以直接跳过。经过删减
flashcache数据结构都在flashcache.h文件中,但在看数据结构之前,需要先过一遍flashcache是什么,要完成哪些功能?如果是自己设计这样一个系统的话,大概要怎么设计。前面讲过,flashcache主要用途还是在写缓存上,要写入磁盘的IO先写入速度较快的SSD盘,随后再由单独的线程将SSD盘中脏数据块同步到磁盘中。这样看来,SSD就是一个缓存,有缓存的基本特性如命中、脏、水
linux内核奇遇记之md源代码解读之十raid5数据流之同步数据流程 转载请注明出处:http://blog.csdn.net/liumangxiong上一节讲到在raid5的同步函数sync_request中炸土豆片是通过handle_stripe来进行的。从最初的创建阵列,到申请各种资源,建立每个阵列的personality,所有的一切都是为了迎接数据流而作的准备。就像我们寒窗苦







