文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MD中的bitmap 开篇

MD中的bitmap 开篇

时间:2009-08-10  来源:qincp-

从CSDN上得到很多资料,贡献不多,很惭愧。         由于工作关系,近期学习一些Linux 软件RAID相关的代码,网上找到一些相关的介绍内容,对于bitmap机制介绍得较少,正好看到这块,在共享精神感召下,咱不揣浅薄,也把自己的一些学习情况记录下来,希望大家多多指正。            在RAID1,RAID5等存在数据冗余的磁阵结构中,数据的完整性要求冗余的数据和原始数据的信息要保证一致。磁阵的写操作是一个过程,这个过程中发生异常,可能导致冗余数据和原始数据不一致,例如磁盘更换,写盘失败,系统掉电等。     在系统要尽快使数据恢复一致,以使得磁阵后续可以正常工作,磁阵从数据不一致状态恢复的过程就是同步。 假设系统重新上电后,如何知道哪些数据出于不一致状态呢?如果没有其他信息的话,它只能假定所有数据都可能不一致,进行所有数据块的一致性恢复。对于RAID5,就是重新计算所有条带的效验和;对于RAID1,就是重新同步所有数据块到镜像盘。这种全局数据同步会导致系统开机过程及其漫长(或者就整个放任磁阵上电后处于不一致的状态)。     专业的磁阵中,一般都会有NVRAM(非易失性内存),在对一个数据块写操作开始的时候,在NVRAM中保存写位置信息,写操作结束后,在NVRAM中删除这个信息。这样,在系统开机时,从NARAM中读出保存的写位置信息,这些位置信息记录了未成功写入的数据块,系统只需要对这些数据块进行同步即可,而不用同步磁阵全部数据。         NVRAM需要硬件支持,也比较昂贵,那我们PC机上使用软件RAID构建的磁阵,又该咋办呢?这个就引出了bitmap文件,可以理解bitmap文件的作用等同于上述专业磁阵的NVRAM(当然上述的场景只是NVRAM应用的一个小的方面)的作用,不过这个bitmap是保存在磁盘上的。         Bitmap的工作原理说来也是直截了当的,文件的内容就是一个位图,每个位对应磁阵的一个数据块(粒度可以做得比块更粗些),在磁阵数据写入前,设置该数据块对应的位,磁阵写入完成,则清除该数据块对应位。要进行同步时,参照bitmap,只有设置了的位对应的数据块才需要进行同步,是不是很简单?     下面对代码的分析基于2.6.21内核。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qincp/archive/2009/07/31/4396517.aspx
相关阅读 更多 +
排行榜 更多 +
棘手的狙击手

棘手的狙击手

飞行射击 下载
坦克快跑

坦克快跑

飞行射击 下载
野生猎人猎杀恐龙

野生猎人猎杀恐龙

飞行射击 下载