Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10505671
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: 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
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:

可以看出来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
[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

13 过段时间我们 再次运行lsraid -A -a /dev/md1

出现
[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

一块硬盘坏了以后我们可以加上一块硬盘。我们还可以重新为/dev/sdb1 但里面的数据没有了


下面我们来用恿谕的技术来让系统自动的修复raid设备

 vi /etc/raidtab

把nr-spare-disks          0   这个0改成1  (说明我加一块恿谕的磁盘)

然后我们加上这样一句话

device                 /dev/sdd1
spare-disks               0
(说明我加了一块磁盘,编号为0)

这样当一块硬盘坏掉的时候。这块硬盘就会自动的去修复

我们说说raid0 和 raid1 是怎么做在一起的。

vi/ etc/raidtab


raiddev                 /dev/md0    我们在这里面先做raid0
raid-level              0
nr-raid-disks           2
nr-spare-disks          0
chunk-size              4

device                  /dev/sdb1
raid-disk               0

device                  /dev/sdc1
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

在格式化的时候我们不能格式化/dev/md0 因为/dev/md0 是/dev/md1的成员

我们格式化 mkfs.ext3 /dev/md1

然后挂载可以使用了。在这里我们的device        /dev/md0    我们把/dev/md0加入到里面

也可以换成一块磁盘。

到这里E网咖啡的raid 的 讲解就到些结束了。 希望我的讲解能让您使用raid这种高的技术。

本文出自 “E网咖啡猫” 博客,转载请与作者联系!

阅读(1026) | 评论(0) | 转发(0) |
0

上一篇:linux系统管理技巧

下一篇:SELinux

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