Chinaunix首页 | 论坛 | 博客
  • 博客访问: 287937
  • 博文数量: 57
  • 博客积分: 1764
  • 博客等级: 上尉
  • 技术积分: 660
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 18:14
文章分类

全部博文(57)

文章存档

2012年(24)

2011年(33)

分类: LINUX

2011-11-10 21:40:32

  MD设备主要包含了LINUX内核的软RAID实现。本文分析都是基于2.6.32,该版本实现了RAID0,RAID1,RAID10,RAID4,RAID5,RAID6。
  MD设备既可被编译为模块,也可以被编进内核。由于模块的入口比较清晰,因此以模块的方式来分析MD的代码。
  一、很明显,模块的入口是md_init,主要做了以下几件事:
  1)调用register_blkdev,这个接口已经逐步弃用。目前还调用该函数是基于习惯,完成2件事:
     1.获得设备号
     2.在/proc/devices下创建目录项。
           调用完毕后,可以通过cat /proc/devices查看相关设备了。
  2)调用blk_register_region,建立MD块设备的映射域,在这之中将md_probe注册为回调函数。md_probe非常重要,相当于MD设备的start函数。
  3)调用register_reboot_notifier,利用内核的通知机制,异步接收重起的事件
  4)调用md_geninit,创建/proc/mdstat,操作表为md_seq_fops
阅读(1141) | 评论(0) | 转发(0) |
0

上一篇:ssh-keygen及公钥认证

下一篇:find命令

给主人留下些什么吧!~~