VMware Linux RAID5 配置

VM环境:VMware Workstation
OS环境:CentOS 5.5

 一、在VM中,软RAID  设备是/dev/md*,    md (Multiple Devices) 

二、在RAID5中,至少要有3块硬盘,因为有差错检验.

三、在软RAID5中,实际的硬盘大小应该为实际硬盘数减一,即(N-1),减去的那块空间奇偶校验.这个空间是分散到每个磁盘上的.

四、在软RAID5中,实际的每块硬盘的大小,由最小的那块硬盘来决定.因为数据会拆开平均分配给每块硬盘.

五、所有实际RAID硬盘大小应该是(硬盘数or硬盘的分区数-1)*最小的那个硬盘大小or分区大小

六、因为adadm是个工具,并没服务进程去读取/etc/mdadm.conf文件,所以,这个/etc/mdadm.conf文件是系统kernel默认读取的

       RAID模块为kernel支持模块,/etc/mdadm.conf作为默认的配置文件,系统启动时加载RAID模块读默认配置文件/etc/mdadm.conf,与/etc/hosts,/etc/resolv.conf之类一  样。

实验

首先在VM上的Linux安装4块硬盘,/dev/sdb /dev/sdc /dev/sdd /dev/sde 每块硬盘20G

fdisk -l

1337915943_2100.jpg

1.首选把这4块硬盘合并成raid.

mdadm -Cv  /dev/md0  -l5  --raid-devices=4  /dev/sdb /dev/sdc /dev/sdd /dev/sde

 #  C 为创建RAID

 #  v 为显示创建信息

 #  /dev/md0 为软raid设备

 # --raid-devices  为几块硬盘

1337916040_1108.jpg

2. 这时你可以用mdadm -D /dev/md0 参看RAID创建情况

1337916102_6653.jpg

这时,还在编译,都它编译好了.就可以用了

3. 就创建了一个/dev/md0的raid了.但它的大小是(硬盘数or硬盘的分区数-1)*最小的那个硬盘大小or分区大小

1337916151_3960.jpg

4.如果要使用,还必须指定/dev/md0的文件格式

  # mkfs.ext3 /dev/md0

1337916230_3329.jpg

5.这个时候,我们就要使用fdisk /dev/md0 重新对新的/dev/md0进行分区
1337916277_3646.jpg
######################这里分完区就可以用了#########################################.
6.如果想控制页面的大小就需要加-c32  (32标识每个页面32K,默认是64K),页面大小直接影响到I/O. 

mdadm -Cv /dev/md0 -c32 -l5 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

通过mdadm -D /dev/md0就可以看到

1337916345_4144.jpg

7.建立一个热备磁盘 mdadm -Cv  /dev/md0  -l5  --raid-devices=4  --spare-devices=1/dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf

  # 如果某个磁盘坏了.可以自动顶上去.

1337916393_4084.jpg
注:

 用/dev/md0 的软raid设备生成的磁盘整列.无法进行分区. 

 mdadm -Cv  /dev/md0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg

 # 这里,无法对/dev/md0分区后的设备进行mkfs.ext*  操作,无法创建分区的格式.所以挂载md0分区后的设备
 # 例如  mkfs.ext3 /etc/md0p1        // error
 所以需要 创建md设备时,用/dev/md_d0替代/dev/md0,才能对MD设备进行分区。   

 mdadm -Cv --auto=mdp /dev/md_d0 -l5 -c32 --raid-devices=5 --spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg

基本操作

mdadm -S /dev/md0      #关闭raid 

mdadm -A /dev/md0      #启动raid

mdadm -E /dev/sdb       #如果你不知道哪个分区属于哪个磁盘整列,可以用这个命令.

                                           #UUID就是这个磁盘整列的唯一标识符.

1337916439_6435.jpg

mdadm -Av /dev/md0 --uuid=8ba81579:e20fb0e8:e040da0e:f0b3fec8    # 获得UUID后,也可以这样激活阵列

mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb                                    # 删除某个硬盘或分区.如果有一份热备用盘.如果删除.热备份盘会自动启动.

mdadm /dev/md0 --add /dev/sdb                                                                    # 新加一块硬盘.

# 重启后,使RAID从内核启动.

mdadm --detail --scan >> /etc/mdadm.conf                                               # 放入配置文件.再次重启raid还是存在

 

本文转自沉沦的专栏,