全部博文(38)
分类: Oracle
2012-02-16 12:31:34
raid磁盘阵列
raid0 : 至少两块磁盘,提高存取速度,但不提供数据冗余,不允许坏任何一块磁盘;
raid1 : 至少两块磁盘,基本没有提高性能,但提供数据镜像,每个磁盘数据一样,允许坏掉一块磁盘
raid5 : 至少3块磁盘,提高性能的同时,同时提供数据冗余,只允许坏掉一个磁盘
注意: 数据冗余和数据备份是两个概念
创建软raid的过程:
例子:创建raid0
1、新建两个分区,并且分区的类型是fd
.....
partprobe
2、mdadm 创建软raid
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda{9,10}
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sda9 /dev/sda10
查看创建过程:
watch cat /proc/mdstat
查看创建结果:
tail -20 /var/log/message
raid0: done.
3、为了让软raid能开机自动启用,就可以写配置文件:
echo "DEVICES /dev/sda9 /dev/sda10" > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
4、格式化并挂载:
mkfs -t ext3 /dev/md0
mount /dev/md0 /mnt
第一次创建好的raid设备就已经激活
手工激活raid设备:
mdadm -As /dev/md0
如果内核不支持自动激活raid设备而且你没有写/etc/mdadm.conf
手工停止某个raid设备:
# umount /dev/md0
# mdadm --stop /dev/md0
例子2: raid 5
1、新建3个分区,并且分区的类型是fd
.....
partprobe
2、mdadm 创建软raid
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sda{11,12,13}
查看创建过程:
watch cat /proc/mdstat
查看创建结果:
tail -20 /var/log/message
raid0: done.
3、为了让软raid能开机自动启用,就可以写配置文件:
shell> vim /etc/mdadm.conf
DEVICES /dev/sda9 /dev/sda10 /dev/sda11 /dev/sda12 /dev/sda13
shell> mdadm --detail --scan >> /etc/mdadm.conf
4、格式化并挂载:
mkfs -t ext3 /dev/md1
mkdir /raid5
mount /dev/md1 /raid5
模你设备故障:
手工干掉raid5中的一个设备(分区),模拟故障
shell> dd if=/dev/zero of=/dev/sda11 bs=1M count=1000
验证: 发现数据还可以访问.
但如果实际情况下,真的是设备故障,你用这个命令可以看到故障:
shell> cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md1 : active raid5 sda13[2] sda12[1] sda11[0]
4016000 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU] 《--你会发现还是UUU
所以我们用以下命令模拟故障:
shell> mdadm /dev/md1 --fail /dev/sda11 《--把sda11模能成故障
shell> cat /proc/mdstat
Personalities : [raid0] [raid6] [raid5] [raid4]
md1 : active raid5 sda13[2] sda12[1] sda11[3](F) <---sda11变了F状态了
4016000 blocks level 5, 64k chunk, algorithm 2 [3/2] [_UU] <---改变了
验证: /raid5 下的数据还可以访问,就证明了raid5设备是可以坏掉一个设备的,为了防止坏掉另外的设备造成数据丢失,应该马上把新的好的,型号和容量一模一样的设备替换上去:
shell> mdadm /dev/md1 --add /dev/sda14 《---把新的sda14替换
shell> cat /proc/mdstat <---查看添加过程
删除raid设备:
1、umount /dev/md1
mdadm /dev/md1 --fail /dev/sda12 --remove /dev/sda12
mdadm /dev/md1 --fail /dev/sda13 --remove /dev/sda13
mdadm /dev/md1 --fail /dev/sda14 --remove /dev/sda14
2、停止/dev/md1设备
mdadm --stop /dev/md1
3、删除配置文件对应的信息 /etc/mdadm.conf
4、有些时候还是无法删除这个md1信息,开机之后还是有他的相关信息的:
mdadm --misc --zero-superblock /dev/sda12
mdadm --misc --zero-superblock /dev/sda13
mdadm --misc --zero-superblock /dev/sda14
5、把对应的设备文件给干掉
rm -f /dev/md1