转载请注明出处:http://linux.anheng.com.cn/news/html/net_admin_blog/raid5.html
现在160G硬盘性价比比较高,
不建议采用200G,这样的非标准容量硬盘,因为每个磁片是80G,200G的硬盘,很可能是屏蔽掉*个有缺陷的面,制造出来的。
4个西部数据160G盘,用软件raid5,组成480G的*个卷,因为是raid5,支持*个硬盘损坏,每个盘拿出10G做系统,用raid1,然后剩下的作raid5,对于读操作来说,raid1速度的提升跟raid0*样,因为可以从多个盘片分别读取。
软件raid支持同*组硬盘的不同分区组建不同的raid格式。
raid5原理很简单,就是多*个盘用来做奇偶校验,这些盘是同等的互为校验,就是raid5,如果有*个专门的校验盘,就是raid4, 因为冗余了*个盘,所以就允许*个盘损坏.
如果冗余2个盘,就是raid6,允许2个盘同时损坏.
由于算法只是奇偶校验就够了,所以计算量很小,并不像大家想像的那样占用大量cpu处理.
debian下安装步骤:
**,内核中要支持raid5,执行modconf 添加raid5和raid1支持。
安装mdadm软件包:
apt-get install mdadm
分区:
建立md0卷. 暂时空缺的硬盘用"missing"代替"/dev/hdex".raid5允许*个分区用missing代替,以后可以用mdadm -manage /dev/md0 --add /dev/hdxx来填加这个missing的分区.
#mdadm -C /dev/md0 --level 5 --raid-devices 4 /dev/hdb8 /dev/hdd8 /dev/hde8 /dev/hdg8
mdadm: array /dev/md0 started.
配置/etc/mdadm/mdadm.conf
*手动列出组建raid的分区:
echo DEVICE /dev/hd*6 /dev/hd*8 >/etc/mdadm/mdadm.conf
然后自动测试raid设置并记录到/dev/mdadm/mdadm.conf:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
格式化为reiserfs分区
# mkfs.reiserfs /dev/md0
mkfs.reiserfs 3.6.19 (2003 www.namesys.com)
Guessing about desired format.. Kernel 2.6.11-amd64 is running.
Format 3.6 with standard journal
Count of blocks on the device: 108998928
Number of blocks consumed by mkreiserfs formatting process: 11538
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 85176854-9911-4154-9580-536b5b0f3281
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
ALL DATA WILL BE LOST ON '/dev/md0'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok挂到/mnt
mount /dev/md0 /mnt将home目录同步过来
mirrordir /home /mnt修改/de/fstab 让md0做home
到现在就完成了raid5的部署.
查看/proc/mdstat文件,可以了解现在组建raid5的进度
files:/etc# cat /proc/mdstat
Personalities : [raid1] [raid5]
md0 : active raid5 hdg8[4] hde8[2] hdd8[1] hdb8[0]
435995712 blocks level 5, 64k chunk, algorithm 2 [4/3] [UUU_]
[==============>......] recovery = 73.6% (106991744/145331904) finish=19.1min speed=33334K/sec
unused devices: <none>
.
从raid中取下*个分区:
files:/# mdadm --manage /dev/md1 -r /dev/hdg6
将*个分区加入到raid:
files:/# mdadm --manage /dev/md1 -a /dev/hdg6
查看修复进度:
files:/# cat /proc/mdstat
Personalities : [raid1] [raid5]
md0 : active raid5 hdb8[0] hdg8[3] hde8[2] hdd8[1]
435995712 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
md1 : active raid1 hdg6[4] hdb6[0] hde6[2] hdd6[1]
9767424 blocks [4/3] [UUU_]
[========>............] recovery = 42.0% (4107584/9767424) finish=3.7min speed=24917K/sec
unused devices: <none>
1
mdadm --manage /dev/md0 --remove #取消*个raid
mdadm --manage /dev/md0 -f /dev/hdc8 #把hdc8标识为失效
故障恢复步骤:
1.关机,取出坏盘
2.装上新盘,开机
3.*umount损坏分区所使用的分区 umount /dev/md0 有时需要停掉*些服务才可以卸载分区.
用lsof看哪些程序占用md0的文件.
4.mdadm /dev/md0 -f /dev/hdc8 -r /dev/坏盘hdc8
5. 给新盘分区 和其它的盘完全*样 sfdisk -d /dev/hda |sfdisk /dev/hdc
6.mdadm --manage /dev/md0 --add /dev/hdc8
7.mdadm -R /dev/md0
8.mount /dev/md0 根据/etc/fstab来挂载分区.
9.系统会自动同步,用watch cat /proc/mdstat 查看 100%的时候就ok了 840G的阵列需要5小时才可以完成.
在重建的同时,阵列已经可以投入使用了
如果阵列配置文件丢失,造成阵列解散,只要分区数据没有破坏,就可以用mdadm -create进行重建,而不丢失数据. 重建后UUID会改变, 要更新/etc/mdadm/mdadm.conf的UUID。
1.mdadm -create /dev/md0 --level=5 --raid-devices=4 /dev/hda8 /dev/hdb8 /dev/hdc8 /dev/hdd8 ;跟新建raid命令*样,只是系统会提示,磁盘原来是raid中的*个,输入y继续.
2.mount /dev/md0 /mnt ;ls /mnt 数据应该都回来了.
3.重新建立/etc/mdadm/mdadm.conf ,方法跟前面建立raid5时*样
下面是*个操作实例(红色为键入的命令):
anheng.com.cn#mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/hda11 /dev/hdc6 /dev/hdd6
mdadm: /dev/hda11 appears to be part of a raid array:
level=5 devices=3 ctime=Thu Jul 20 19:13:28 2006
mdadm: /dev/hdc6 appears to be part of a raid array:
level=5 devices=3 ctime=Thu Jul 20 19:13:28 2006
mdadm: /dev/hdd6 appears to be part of a raid array:
level=5 devices=3 ctime=Thu Jul 20 19:13:28 2006
Continue creating array? y
mdadm: array /dev/md1 started.
anheng.com.cn:~# mount /dev/md1 /home1
anheng.com.cn:~# df -h /home1Filesystem 容量 已用 可用 已用% 挂载点
/dev/md1 56G 17G 40G 30% /home1
anheng.com.cn:~# ls /home1
192.168.10.80 192.168.2.2 192.168.8.1 192.168.9.1
anheng.com.cn:~# cat /proc/mdstat
Personalities : [raid5]
md0 : active raid5 hda10[0] hdd7[3] hdc7[2] hdb1[1]
234444288 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
md1 : active raid5 hdd6[3] hdc6[1] hda11[0]
58412032 blocks level 5, 64k chunk, algorithm 2 [3/2] [UU_]
[>....................] recovery = 1.0% (295540/29206016) finish=30.9min speed=15554K/sec
unused devices: <none>