技术
qincp
Linux驱动,文件系统,通讯技术
展开
-
MD中的bitmap 开篇
从CSDN上得到很多资料,贡献不多,很惭愧。 由于工作关系,近期学习一些Linux 软件RAID相关的代码,网上找到一些相关的介绍内容,对于bitmap机制介绍得较少,正好看到这块,在共享精神感召下,咱不揣浅薄,也把自己的一些学习情况记录下来,希望大家多多指正。 在RAID1,RAID5等存在数据冗余的磁阵结构中,数据的完整性要求原创 2009-07-31 10:49:00 · 4481 阅读 · 1 评论 -
MD中的bitmap(2) - bitmap数据结构
bitmap原理很明了,按照这个原理直接进行实施也是可以的,但直接这样实施的话,由于一次数据块的写入多了两次磁盘访问(bitmap的设置和清除),写入效率会受到较大影响,所以还需要考虑一些优化。优化主要是两方面的:bitmap的设置后批量写入;bitmap的延时清除。这两方面的优化原理上和磁盘缓存差不多,需要在内存中构建和磁盘bitmap文件对应的数据结构,bitmap操作首先在缓存中进行,必原创 2009-08-03 12:44:00 · 4830 阅读 · 0 评论 -
MD中的bitmap(5) - Bitmap的清除
在前面描述的设置流程中,涵盖了全部的bitmap用户能够看到的流程,这些流程中只有bit的设置,但没有bit的清除。对于可以清除的bit,最多只是设置了所在的filemap页CLEAN属性,没有实际的清除filemap中的bit和写入磁盘。Bitmap的bit清除工作是在bitmap_daemon_work函数中进行的,这个函数又在md_check_recovery中被调用,而md_ch原创 2009-08-06 11:29:00 · 3562 阅读 · 0 评论 -
MD中的bitmap(3) - Bitmap初始化
bitmap_create完成bitmap的初始化,该函数在磁阵启动时或者用户设置bitmap文件时被调用,主要完成bitmap从磁盘到内存的加载:1. 前面说过,bitmap文件在磁盘上可能有两个位置,分别以文件指针或者与超级块之间的偏移来指定。2. 读入超级块,注意bitmap是以小尾格式存在磁盘上的。在读入过程中,判断bi原创 2009-08-06 11:17:00 · 5172 阅读 · 0 评论 -
MD中的bitmap(4) - Bitmap的设置
Bitmap在磁阵处理写访问请求时,调用bitmap_startwrite设置bitmap内存的信息,包括内存中的bitmap结构,以及内存中bitmap磁盘文件的映射filemap;在磁阵实际将写请求实际提交给子设备前,调用bitmap_unplug将bitmap信息写入磁盘。除这两个函数外,bitmap_start_sync,bitmap_end_sync,bitmap_endwri原创 2009-08-06 11:27:00 · 3104 阅读 · 0 评论