分类: LINUX
2009-03-23 11:34:45
今天我来讲讲关于RAID的技术/
现在有7种RAID 我们最常用的是:
raid0(是说我把一个数据分别写到几个硬盘里去,几个硬盘合在一起,来提高读写性能,但可靠性不怎么高。)
raid1(可以说是镜像的做法,用一块硬盘来做另一块硬盘的备份)
raid5(至少要3块硬盘来实现。它的使用率是总数硬盘大小为 硬盘总数-1/硬盘总数,
例如A B C D 这4块磁盘 A B C的校验数据放到 D 里 再A B D的校验数据放在 C 里。
依次为这样的)
我们要在LINUX9.0下做RAID的技术。
首先要看看装没装raidtools软件包
用rpm -qa | grep raidtools
raidtools-1.00.3-2
出现的时候说明我们已经安装上了。
rpm -ql raidtools 来过滤一下里猫提供的工具都有什么。
我们可以用man 5 raidtab 来看一下帮助。
做raid 的摸版都在
cd /usr/share/doc/raidtools-1.00.3
COPYING raid0.conf.sample raid4.conf.sample raidtab.sample
multipath.conf.sample raid1.conf.sample raid5.conf.sample README
下猫做raid 0
1 在这里我门做的是SISC硬盘 我们把/dev/sdb分为一个区为/dev/sdb1,大小为全部,分区在前猫我已经讲过了。
在这里我就不再讲了。然后在把/dev/sdc为为一个区为/dev/sdc1,大小为全部
2 cp /usr/share/doc/raidtools-1.00.3/raid0.conf.sample /etc/raidtab
我们把raid0.conf.sample 的文件 拷贝到/etc/raidtab 文件
3 vi /etc/raidtab
出现 Sample raid-0 configuration
raiddev /dev/md0
raid-level 0 # it's not obvious but this *must* be
# right after raiddev
persistent-superblock 0 # set this to 1 if you want autostart,
# BUT SETTING TO 1 WILL DESTROY PREVIOUS
# CONTENTS if this is a RAID0 array created
# by older raidtools (0.40-0.51) or mdtools!
chunk-size 16
nr-raid-disks 2
nr-spare-disks 0
device /dev/hda1
raid-disk 0
device /dev/hdb1
raid-disk 1
让我们老看看这些都是什么意思
raiddev /dev/md0 (指定一个RAID的设备 )
raid-level 0 (raid的级别)
persistent-superblock 0 (设备保留的块)
nr-raid-disks 2 (做raid的磁盘个数)
nr-spare-disks 0 (恿俞磁盘的个数)
device /dev/hda1(指定磁盘的设备)
raid-disk 0(磁盘编号)
我们把/dev/hda1 改成/dev/sdb1 ; /dev/hdb1改成/dev/sdc1
wq!保存并且退出。
4 mkraid /dev/md0 来创建raid设备
出现
handling MD device /dev/md0
analyzing super-block
表示成功创建
5 mkfs.ext3 /dev/md0 来格式化这个raid的设备
6 mount /dev/md0 /opt 我们把它挂载到opt下 ,我们向里面写数据
可以看出它是可以用的。
[root@yirehe /]# cd opt
[root@yirehe opt]# ls
lost+found
[root@yirehe opt]# mkdir a
[root@yirehe opt]# ls
a lost+found
7 我们为了永远使用这个设备。我们把它写进fstab里
/dev/md0 /opt ext3 defaults 0 0
8 umount /opt 来卸载它,
9 raidstop /dev/md0 来停止 这步必须要先卸载, 然后在停止它。
raid 1
1 cp /usr/share/doc/raidtools-1.00.3/raid1.conf.sample /etc/raidtab
2 vi /etc/raidtab
/dev/md0 改成 /dev/md1 ;
/dev/hda1 改成/dev/sdb1 ; /dev/hdb1改成/dev/sdc1
wq!
3 mkraid -R /dev/md1
出现DESTROYING the contents of /dev/md1 in 5 seconds, Ctrl-C if unsure!
handling MD device /dev/md1
analyzing super-block
disk 0: /dev/sdb1, 8385898kB, raid superblock at 8385792kB
disk 1: /dev/sdc1, 8385898kB, raid superblock at 8385792kB
表示成功
我们在这里加上一个-R 是为了强制分这个区
4 mkfs.ext3 /dev/md1 格式化它
5用 lsraid -A -a /dev/md1 来察看硬盘有没有坏的
出现
[dev 9, 1] /dev/md1 1F0841F4.AA0B8664.0CB51213.D9B0A76F online
[dev 8, 17] /dev/sdb1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
[dev 8, 33] /dev/sdc1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
online (正在运行) good(好的)
6 more /proc/mdstat (查看信息)
7 mount /dev/md1 /mnt
8 cp /etc/samba/smb.conf /mnt 证明可以写数据
7 如果我们不想使用的话可以删除 rm -rf /etc/raidtab,如果不删除的话启机的时候会自检
必须先卸载它,然后停止,再删除/。
raid5
1 我们做raid5至少要有3块硬盘
2 cp /usr/share/doc/raidtools-1.00.3/raid1.conf.sample /etc/raidtab
3 vi /etc/raidtab
/dev/md0 改成 /dev/md5 ;
/dev/hda1 改成/dev/sdb1 ; /dev/hdb1改成/dev/sdc1 ; /dev/hdc1改成/dev/sdc1
4 mkraid -R /dev/md5
5 mkfs.ext3 /dev/md5 格式化它
6 mount /dev/md5 /mnt
下面我们来做一个硬盘坏了的我们添加一块硬盘的实验 我们用raid1 做这个实验
7 我们用软件来破坏它raidsetfaulty /dev/md1 /dev/sdb1
8 我们来检查一下 lsraid -A -a /dev/md1
出现
[dev 9, 1] /dev/md1 1F0841F4.AA0B8664.0CB51213.D9B0A76F online
[dev 8, 17] /dev/sdb1 1F0841F4.AA0B8664.0CB51213.D9B0A76F failed
[dev 8, 33] /dev/sdc1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
现在/dev/sdb1已经是坏的了,我们原来写入里面的数据还是能读取的
9 raidhotadd /dev/md1 /dev/sdd1 我们添加一块硬盘
10 lsraid -A -a /dev/md1
出现
[dev 9, 1] /dev/md1 1F0841F4.AA0B8664.0CB51213.D9B0A76F online
[dev 8, 17] /dev/sdb1 1F0841F4.AA0B8664.0CB51213.D9B0A76F failed
[dev 8, 33] /dev/sdc1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
[dev 8, 49] /dev/sdd1 1F0841F4.AA0B8664.0CB51213.D9B0A76F spare
看见/dev/sdd1 现在是一个恿谕磁盘/正在恢复数据
11 more /proc/mdstat 可以看看恢复的过程
出现[root@yirehe mnt]# more /proc/mdstat 再次运行这个命令 可以看出来recovery = 93.1% 了 一直到 100 % 就好了
11 我们可以用 raidhotremove /dev/md1 /dev/sdb1 来移除这块硬盘
12 lsraid -A -a /dev/md1
[dev 9, 1] /dev/md1 1F0841F4.AA0B8664.0CB51213.D9B0A76F online 13 过段时间我们 再次运行lsraid -A -a /dev/md1
出现 一块硬盘坏了以后我们可以加上一块硬盘。我们还可以重新为/dev/sdb1 但里面的数据没有了
vi /etc/raidtab
把nr-spare-disks 0 这个0改成1 (说明我加一块恿谕的磁盘)
然后我们加上这样一句话
device /dev/sdd1 这样当一块硬盘坏掉的时候。这块硬盘就会自动的去修复
我们说说raid0 和 raid1 是怎么做在一起的。
vi/ etc/raidtab
device /dev/sdb1 device /dev/sdc1 在格式化的时候我们不能格式化/dev/md0 因为/dev/md0 是/dev/md1的成员
我们格式化 mkfs.ext3 /dev/md1
然后挂载可以使用了。在这里我们的device /dev/md0 我们把/dev/md0加入到里面
也可以换成一块磁盘。
到这里E网咖啡猫的raid 的 讲解就到些结束了。 希望我的讲解能让您使用raid这种高猫的技术。 本文出自 “E网咖啡猫” 博客,转载请与作者联系!
Personalities : [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md1 : active raid1 sdd1[2] sdc1[1] sdb1[0](F)
8385792 blocks [2/1] [_U]
[=================>...] recovery = 89.7% (7525436/8385792) finish=1.3min
speed=10315K/sec
unused devices:
[root@yirehe mnt]# more /proc/mdstat
Personalities : [raid0] [raid1] [raid5]
read_ahead 1024 sectors
md1 : active raid1 sdd1[2] sdc1[1] sdb1[0](F)
8385792 blocks [2/1] [_U]
[==================>..] recovery = 93.1% (7810264/8385792) finish=0.9min
speed=10303K/sec
unused devices:
[dev 8, 17] /dev/sdb1 1F0841F4.AA0B8664.0CB51213.D9B0A76F missing
[dev 8, 33] /dev/sdc1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
[dev 8, 49] /dev/sdd1 1F0841F4.AA0B8664.0CB51213.D9B0A76F spare
[dev 9, 1] /dev/md1 1F0841F4.AA0B8664.0CB51213.D9B0A76F online
[dev 8, 49] /dev/sdd1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
[dev 8, 33] /dev/sdc1 1F0841F4.AA0B8664.0CB51213.D9B0A76F good
下面我们来用恿谕的技术来让系统自动的修复raid设备
spare-disks 0
(说明我加了一块磁盘,编号为0)
raiddev /dev/md0 我们在这里面先做raid0
raid-level 0
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
raid-disk 0
raid-disk 1
在这里面加上
raiddev /dev/md1 我们在这里面先做raid0
raid-level 0
nr-raid-disks 2
nr-spare-disks 0
chunk-size 4
device /dev/sdd1
raid-disk 0
device /dev/md0 我们把/dev/md0加入到里面
raid-disk 1
我们建立 mkraid -R /dev/md0 和mkraid -R /dev/md1