所属分类: linux&Unix 整理: FengNet.Com 更新日期:2015/10/9 10:51:47 阅读次数:756

磁盘RAID


注:各RAID级别最少需要的硬盘数量,
RAID0=1 RAID1=2 RAID5=3 RAID10=4 RAID50=6

RAID 0
也称为条带模式(striped),即把连续的数据分散到多个磁盘上存取,如图1所示。当系统有数据请求就可以被多个磁盘并行的执行,
每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读
取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行 RAID 0 的主要原因。但RAID 0没有数据冗余,如果驱动
器出现故障,那么将无法恢复任何数据。

RAID 1
RAID 1又称为镜像(Mirroring),一个具有全冗余的模式,如图2所示。RAID 1可以用于两个或2xN个磁盘,并使用0块或更多的备用
磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时这些磁盘的大小应该相等,
否则总容量只具有最小磁盘的大小。

RAID 4
创建RAID 4需要三块或更多的磁盘,它在一个驱动器上保存校验信息,并以RAID 0方式将数据写入其它磁盘,所示因为一块磁盘是为
校验信息保留的,所以阵列的大小是(N-l)*S,其中S是阵列中最小驱动器的大小。就像在 RAID 1中那样,磁盘的大小应该相等。
如果一个驱动器出现故障,那么可以使用校验信息来重建所有数据。如果两个驱动器出现故障,那么所有数据都将丢失。不经常使用
这个级别的原因是校验信息存储在一个驱动器上。每次写入其它磁盘时,都必须更新这些信息。因此,在大量写入数据时很容易造成
校验磁盘的瓶颈,所以目前这个级别的RAID很少使用了。

RAID 5
在希望结合大量物理磁盘并且仍然保留一些冗余时,RAID 5 可能是最有用的 RAID 模式。RAID 5可以用在三块或更多的磁盘上,并使
用0块或更多的备用磁盘。就像 RAID 4一样,得到的 RAID5 设备的大小是(N-1)*S。
RAID5 与 RAID4 之间最大的区别就是校验信息均匀分布在各个驱动器上,如图4所示,这样就避免了RAID 4中出现的瓶颈问题。如果其
中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将
立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID5 可以经受一块磁盘故障,但不能经受两块或多块磁盘
故障。

RAID 6
RAID 6是在RAID 5基础上扩展而来的。与RAID 5一样,数据和校验码都是被分成数据块然后分别存储到磁盘阵列的各个硬盘上。只是RAID6
中增加一块校验磁盘,用于备份分布在各个磁盘上的校验码,如图5所示,这样RAID 6磁盘阵列就允许两个磁盘同时出现故障,所以RAID 6
的磁盘阵列最少需要四块硬盘。


linux实现软RAID5:

1、准备硬盘(至少需要3块硬盘,此处使用一块硬盘的5个分区实现,但是在实际生产中一块硬盘做RAID没有意义):
[root@localhost ~]# fdisk -cul /dev/sdb #创建分区如下
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x466fc1b6
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 41943039 15727616 5 Extended
/dev/sdb5 10489856 16781311 3145728 83 Linux
/dev/sdb6 16783360 23074815 3145728 83 Linux
/dev/sdb7 23076864 29368319 3145728 83 Linux
/dev/sdb8 29370368 35661823 3145728 83 Linux
/dev/sdb9 35663872 41943039 3139584 83 Linux
[root@localhost ~]# partx -a /dev/sdb #重新读取分区表
[root@localhost ~]# rpm -qa |grep mdadm #查看创建raid软件是否安装
mdadm-3.2.3-9.el6.i686

2、创建RAID5:
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 5 -n 4 -x 1 /dev/sdb{5..9} ####-C:创建/dev/md0设备,-a:是否自动检测这里为yes,-l:raid的级别这里为raid5,-n:几块硬盘做为RUN,-x:几块硬盘作为备用
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# mdadm --detail /dev/md0 #查看/dev/md0的详细信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 14 19:36:37 2013
Raid Level : raid5
Array Size : 9414144 (8.98 GiB 9.64 GB)
Used Dev Size : 3138048 (2.99 GiB 3.21 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Mon Jan 14 19:37:27 2013
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e
Events : 18
Number Major Minor RaidDevice State
0 8 21 0 active sync /dev/sdb5
1 8 22 1 active sync /dev/sdb6
2 8 23 2 active sync /dev/sdb7
5 8 24 3 active sync /dev/sdb8
4 8 25 - spare /dev/sdb9

3、格式化、挂载、使用/dev/md0:
[root@localhost ~]# mkfs.ext4 /dev/md0 #将/dev/md0格式化
[root@localhost ~]# mkdir /raid5 ##创建挂载目录
[root@localhost ~]# mount /dev/md0 /raid5/ #挂载/dev/md0到/raid5目录下
[root@localhost ~]# cd /raid5/
[root@localhost raid5]# touch raid5.file
[root@localhost raid5]# ls
lost+found raid5.file

4、设置开机启动RAID5:
[root@localhost ~]# mdadm --detail --scan #查看raid简要信息
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=f16324c8:0f2a0be2:04c57c07:5f44f53e
[root@localhost ~]# mdadm --detail --scan >/etc/mdadm.conf #创建软raid的配置文件!注意:此文件如果不创建下次开机重启后/dev/md0将会被系统自动识别为其他非/dev/md0名称的设备,对于实现开机挂载和使用都不方便。
[root@localhost ~]# vim /etc/fstab #编辑fstab文件添加如下行
/dev/md0 /raid5 ext4 defaults 0 0

4、管理RAID5:
查看raid的状态:
[root@localhost ~]# cat /proc/mdstat #查看raid的状态
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdb8[5] sdb9[4](S) sdb7[2] sdb6[1] sdb5[0]
9414144 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
查看特定raid设备的详细信息:
[root@localhost ~]# mdadm --detail /dev/md0
……………………………………………省略………………………………………………..
Number Major Minor RaidDevice State
0 8 21 0 active sync /dev/sdb5
1 8 22 1 active sync /dev/sdb6
2 8 23 2 active sync /dev/sdb7
5 8 24 3 active sync /dev/sdb8
4 8 25 - spare /dev/sdb9
模拟硬盘损坏:
[root@localhost ~]# mdadm /dev/md0 --fail /dev/sdb5 #模拟硬盘损坏
[root@localhost ~]# mdadm –detail #验证
……………………………………………省略………………………………………………..
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e
Events : 25
Number Major Minor RaidDevice State
4 8 25 0 spare rebuilding /dev/sdb9
1 8 22 1 active sync /dev/sdb6
2 8 23 2 active sync /dev/sdb7
5 8 24 3 active sync /dev/sdb8
0 8 21 - faulty spare /dev/sdb5
####/dev/sdb5的状态变成了faulty,/dev/sdb9则立即变成active
模拟拔出硬盘:
[root@localhost ~]# mdadm /dev/md0 --remove /dev/sdb5 #模拟拔出硬盘
mdadm: hot removed /dev/sdb5 from /dev/md0
[root@localhost ~]# mdadm –detail #验证
……………………………………………省略………………………………………………..
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e
Events : 4
Number Major Minor RaidDevice State
4 8 25 0 active sync /dev/sdb9
1 8 22 1 active sync /dev/sdb6
2 8 23 2 active sync /dev/sdb7
5 8 24 3 active sync /dev/sdb8
####/dev/sdb5已经从/dev/md0中消失了:


模拟往raid中添加硬盘:
[root@localhost ~]# mdadm --zero-superblock --force /dev/sdb5 #修复硬盘
[root@localhost ~]# mdadm /dev/md0 --add /dev/sdb5#模拟往raid中添加硬盘
mdadm: added /dev/sdb5
[root@localhost ~]# mdadm --detail /dev/md0 #验证
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 14 19:36:37 2013
Raid Level : raid5
Array Size : 9414144 (8.98 GiB 9.64 GB)
Used Dev Size : 3138048 (2.99 GiB 3.21 GB)
Raid Devices : 4
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Mon Jan 14 20:17:02 2013
State : clean
Active Devices : 4
Working Devices : 5
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : f16324c8:0f2a0be2:04c57c07:5f44f53e
Events : 41
Number Major Minor RaidDevice State
4 8 25 0 active sync /dev/sdb9
1 8 22 1 active sync /dev/sdb6
2 8 23 2 active sync /dev/sdb7
5 8 24 3 active sync /dev/sdb8
6 8 21 - spare /dev/sdb5
####/dev/sdb5已经成功添加到了/dev/md0中并且做为备用设备等待使用。

--------------------------------------------------------------------------------

相关文章
查看Linux系统是否使用RAID阵列信息 2015/10/9 10:49:58
Linux运维工程师的十个基本技能点 2015/9/21 9:40:09
运维的85条军规 2015/9/21 8:54:31
Web安全工具大汇聚 2012/3/20 9:27:50
如何实现从物理到虚拟基础架构迁移 2011/9/19 15:55:50
RAID数据恢复常见故障处理手册 2010/5/25 14:07:27
sata硬盘安装windows蓝屏的解决方法 2009/10/21 19:38:35
虚拟磁带库(VTL)的利弊解析 2009/4/24 13:39:27
易于操作的SAN存储系统的价值 2009/4/21 12:48:46
整合SAN存储需要做哪些准备工作 2009/4/21 12:48:06
Linux 2.6.19.x 内核编译配置选项简介 2007/5/29 7:55:59
怎样备份红帽企业版操作系统? 2007/5/15 7:59:22
怎样在运行的系统中设置RAID 1(镜像)? 2007/5/15 7:56:36
磁盘阵列可靠度的计算 2007/3/29 8:10:03
路由器默认密码 2006/6/28 23:05:49
Linux下软件RAID的实现 2006/6/14 19:20:39
Linux磁盘存储区管理原理与技巧 2006/6/10 9:57:51
Sun Solaris 9 卷管理应用研究 2006/5/25 16:51:32
HP-UX COMMAND 2006/1/6 15:13:17
SATA磁盘故障分步检测法 2005/12/14 8:40:01
WINDOWS 2000 ADVANCED SERVER群集安装 2005/12/2 15:49:31
LVM使用手册 2005/11/25 9:55:01
一份非常内行的Linux LVM HOWTO 2005/11/25 9:54:20
邮件发送退信分析大全 2005/9/1 17:29:35
RAID技术介绍 2004/11/24 9:20:00
如何配置RAID磁盘阵列之二 2004/11/24 9:09:16
如何配置RAID磁盘阵列之一 2004/11/24 9:02:20
恢复Windows2000/XP 管理员密码 2004/11/24 8:38:12
群集服务指南 2004/9/15 13:22:48
Linux下硬盘分区的最佳方案 2004/9/1 10:24:46
恢复Windows2000/XP 管理员密码 2004/7/22 14:21:55
使用GHOST备份XP/2000的注意点 2004/3/23 10:29:29
双机硬件及w2k做群集解决方案 2004/2/21 0:24:25
网络端口及其详解分页 2004/2/17 9:03:12
用windows2000实现双机热备 2003/10/22 8:10:28
基于Linux的集群系统(四) 2003/9/1 18:34:24
常见端口表汇总 2003/9/1 10:31:24
20%的SOLARIS知识解决80%的问题 2003/8/29 15:16:51
在RedHat下建立群集 2003/8/12 9:13:09
Solaris 问答集 2003/7/19 19:06:09
unix日志文件安全小议 2003/2/21 22:06:40


感性空间
设计&运维
网络技术
休闲娱乐
NetFilter
linux&Unix
网络安全
程序空间
软件考试
RFC&ISO
规划&规范
虚拟&存储
Apple技巧
云计算&大数据



文章搜索



站内搜索