02 2012 档案

摘要:关键词: linux software raid, md, raid10, r10_private_data_s, near_copies, far_copies, far_offset内核版本:2.6.18linux内核md模块实现的RAID10有三种laout模式,分别为near, far和of... 阅读全文
posted @ 2012-02-29 19:51 onemuji 阅读(602) 评论(0) 推荐(0)
摘要:[关键词]:disk.sys 文件系统 IO特征[方法]:DDK中包含了disk和clallpnp的源码(路径:src\storage\class\disk),修改disk的源码并编译成功后(主要是生成CDO,添加对自定义IOCTL的响应及对读写的监控等工作),将其替换system32\dirvers下的disk.sys,可将其用于监控记录我们需要分析其特征的文件系统IO。测试过程中,利用IOCTL选择性地记录IO信息是效率的关键。 阅读全文
posted @ 2012-02-21 21:00 onemuji 阅读(411) 评论(0) 推荐(0)
摘要:[关键词]:过滤驱动,设备堆栈,绕过设备堆栈[问题描述]:需要分析读写驱动发往disk.sys的IO特征来为性能提升提供支持,因此准备做一个过滤驱动diskFilter attach到disk.sys设备栈,然后在过滤驱动里记录发往下层的读写IO信息。工作流程都设计好了,准备开始编码了,突然发现不行,很可能没有效果。为什么呢?因为disk的设备堆栈可能从底向上为disk---PartMgr---diskFilter。但问题在于,处于安全性和效率的考虑,读写驱动直接绕过了上述的设备堆栈,直接列举出disk.sys的设备对象,然后把IO直接发到这些设备对象。然后diskFilter就干等吧,啥也等 阅读全文
posted @ 2012-02-07 22:07 onemuji 阅读(276) 评论(0) 推荐(0)
摘要:关键词:双向链表 其实是比较简单的问题 经验丰富的人就不用往下看了。驱动中把所有找到的盘插入到双向链表尾(listHead),然后再从头遍历链表,把符合条件的结点放入另一个链表(disks)中。默认listHead中的第一个结点肯定符合条件,将其插入disks尾。完成这个动作之后,再取第二个结点时,listHead里的链接就变了。看起来很奇怪的问题。LIST_ENTRY listHead; LIST_ENTRY disks;struct DISK_INFO { LIST_ENTRY entry; ... }... pListEntry = listHead.Flink; Di... 阅读全文
posted @ 2012-02-02 19:01 onemuji 阅读(298) 评论(0) 推荐(0)