Chinaunix首页 | 论坛 | 博客
  • 博客访问: 485692
  • 博文数量: 82
  • 博客积分: 3003
  • 博客等级: 中校
  • 技术积分: 1285
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 15:27
文章分类

全部博文(82)

文章存档

2011年(1)

2010年(5)

2009年(63)

2008年(13)

我的朋友

分类: LINUX

2009-10-11 21:34:32

bitmap实现对raid -1 的优化

 

环境:

RHEL5.3,磁盘阵列raid-1(可以建立在不同磁盘或分区上,在本实验中我们使用sdbsdd

 

原理描述:

mdadm操作中,bitmap用于记录RAID 阵列从上次同步之后更改的部分,即记录RAID阵列有多少个块已经同步(resync)RAID 阵列会定期将信息写入到bitmap 中。在一般情况下,磁盘阵列在重启之后会有一个完整的同步过程。如果有bitmap,那么只有被修改后的数据才会被同步。在另一种情况下,如果阵列一块磁盘被取出,bitmap不会被清除,当这块磁盘重新加入阵列时,同样只会同步改变过的数据。所以bitmap能够减少磁盘阵列同步的时间,起到优化raid1的作用。Bitmap一般写入的位置是磁盘的metadata或者我们成为外部的另外,要注意的是,bitmap只是对raid1的功能,对raid0等其他设备来说是没有意义的。

 

Bitmap的使用:

Bitmap一般写入磁盘的metadata中,也可以写入文件系统的某个目录下。由参数—bitmap后面的参数来决定,internal表示写入metadata,也可指定目录.

 

1)  在建立时使用

[root@localhost ~]# mdadm -C /dev/md0 -l1 -n2 /dev/sd[bd]1 --bitmap=internal

mdadm: array /dev/md0 started.

[root@localhost ~]# cat /proc/mdstat

Personalities : [raid1]

md3 : active raid1 sdb1[1] sdd1 [0]

503872 blocks [2/2] [UU]

bitmap: 62/62 pages [248KB], 4KB chunk

    unused devices:< none>

 

2)  在建完raid1之后使用

开启bitmap

[root@localhost ~]# mdadm /dev/md0 --grow --bitmap=internal

关闭bitmap

[root@localhost ~]# mdadm /dev/md0 --grow --bitmap=none

 

3)  保存在文件中举例

    [root@localhost ~]# mdadm -C /dev/md0 -l1 -n2 /dev/sd[bd]1 --bitmap=/tmp/bitmap

 

4)  另外,可以使用—examine-bitmap或者-X来查看存储在文件或者设备元数据中的 bitmap记录的信息,当存储在元数据区时,参数是/dev/sdx,当参数是文件时,要注意的是使用bitmap文件记录要求这个文件不能在RAID阵列上或者其相关的设备上,而且使用assemble命令时要指定bitmap文件名字。另外,--bitmap-chunk表示每个bit位代表RAID设备多大的数据块,单位是KB;而--delay(或者其缩写-d)指定多长事件同步bitmap信息到文件或者设备上,单位是秒,默认是5秒。--force(或者其缩写)表示覆盖掉已经存在bitmap文件。

[root@localhost ~]# mdadm –X /dev/sdb1

或者[root@localhost ~]# mdadm –X /tmp/aaa(文件名)

unused devices:

Filename : /dev/sdb1         

Magic : 6d746962        

Version : 4           

UUID : bcccddb7:0f529abd:672e1f66:7e68bbc8         

Events : 6

Events Cleared :6         

State : OK      

Chunksize : 4 KB         

Daemon : 5s flush period     

Write Mode : Normal      

Sync Size : 2096384 (2047.59 MiB 2146.70 MB)         

Bitmap : 125968 bits (chunks), 0 dirty (0.0%)

 

5 bitmap模式在阵列处于降级(degrade)状态能够记录有哪些块被写过,当那个暂时失效的磁盘使用--re-add参数被重新添加后,阵列只重构这期间修改的数据块,减少阵列重构的时间。bitmap信息中dirty的数量表示降级期间被修改过的块。

#mdadm /dev/md0 -f /dev/sdb /dev/sd

#cat /proc/mdstat

#mdadm -X /tmp/md0-bm

#mdadm dd if=/dev/zero of=/dev/md0 bs=1M count=1024

#mdadm -X /tmp/md0-bm

#mdadm /dev/md0 -r /dev/sdb --re-add /dev/sdb

#cat /proc/mdstat

#mdadm -X /tmp/md0-bm

 

 

 

阅读(2955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~