高源
摘 要:RAID技术的合理运用,可以有效利用磁盘的空间,提高服务器的数据容错能力,企业通过Linux系统就可以灵活的实现RAID阵列。本文从初学者的角度出发,在Linux环境中,研究了如何使用RAID技术实现数据的冗余和容错。
关键词:RAID;冗余;容错;Linux
1 RAID的简介
当今数字信息时代,企业的数据永远是最宝贵的。因此很多大中型企业不惜重金投入,购置昂贵的设备以期获得较高的访问速度和较好的安全性。磁盘阵列RAID(价格便宜具有冗余能力的磁盘阵列)技术的出现就是为了防止因为磁盘故障而导致数据丢失或者导致系统不正常工作。通过RAID技术可以将重复的数据保存到多个磁盘上,采用这种方法降低了丢失数据的风险。常见的RAID分为硬件RAID和软件RAID两种,前者由硬件供应商提供各种磁盘阵列产品,后者主要是整合在操作系统中的软件RAID,例如:Linux系统中的RAID功能。
Linux提供了灵活的磁盘管理方式,很多企业系统管理员由于经费不足,无法购买相关的硬件设备,通过使用Linux系统,就可以用内建的磁盘管理功能做到RAID0、RAID1 和RAID5等阵列,使空间分配更加灵活。Linux下的磁盘阵列具有以下特点:
①增加系统的存取速度;②具有冗余容错能力;③有效的利用磁盘利用率,提高了主机的整体工作性能。
RAID 0也叫带区卷,它的最大特点是提供了最佳的读写能力。带区卷可以在2到32个磁盘上创建,但不同的是在每个磁盘上占用空间必须相同。在向卷中写入数据时,数据被分割成64KB的数据块,但同时写入每一个磁盘,由于是同时以相同速度对所有磁盘进行写操作,而且可以通过多个驱动器共同进行数据访问。带区卷的缺点是没有容错能力,一个成员损坏,整个卷被破坏。
RAID 1也叫镜像卷,它的最大特点是提供了冗余容错能力。该卷是在两个磁盘上创建的动态卷,当一个磁盘出现故障,磁盘的工作不会被中断。在向镜像卷中写入数据时,数据被同时向两个磁盘分别进行写入,即一份数据以两份拷贝分别在两个磁盘上写入,从而提供数据冗余性,这样当一个磁盘的数据被破坏时,另一个磁盘的数据依然能有效,这种容错能力使应用和服务的可靠性和稳定性大大增强。
RAID 5卷的创建至少需要3块磁盘,该卷具有容错能力。在向卷中写入数据时,数据被分割成64KB的数据块单元同时写入到磁盘,在每次写入时,总会在一个磁盘上写入奇偶校验值,这样数据和奇偶校验值在3个或更多的动态磁盘上成交替的带区分布。如果卷的某一成员磁盘失效,可以利用其他成员磁盘上的数据和奇偶校验值重新创建实效磁盘上的那一部分数据,从而具有一定的故障恢复功能。
2 RAID软件工具的安装
Linux系统中配置动态磁盘管理首先需要查看是否安装了raid软件工具包,如果没有,可以从红帽网站中下载并安装,解压和安装步骤如下:
⑴解压软件工具包 #tar –zxvf raidtools-1.00.3.tar.gz
进入解压后的文件夹 #cd raidtools-1.00.3
⑵raidtools的安装
配置 #./configure
编译 # make
安装 # make install
3 软件RAID的配置过程
3.1 创建软件RAID的配置文件/etc/raidtab
# vi /etc/raidtab
Sample raid-5 configuration
配置RAID5 硬件设备的名称 raiddev /dev/md0
配置所创建RAID的级别 raid-level 5
配置RAID5的磁盘数量 nr-raid-disks 3
配置块大小 chunk-size 4
配置RAID 5冗余磁盘数量 #nr-spare-disks 0
以下为创建Raid5的磁盘以及磁盘的编号
第一块磁盘 device /dev/sdb1
RAID5磁盤一编号 raid-disk 0
第二块磁盘 device /dev/sdc1
RAID5磁盘二编号 raid-disk 1
第三块磁盘 device /dev/sdd1
RAID5磁盘三编号 raid-disk 2
3.2 软件RAID的配置过程
创建设备文件 # mkraid /dev/md0
显示RAID设备状况及组成 # lsraid -A -a /dev/md0
格式化该设备文件 # mkfs.ext3 /dev/md0
创建设备挂载文件 # mkdir /mnt/md0
挂载RAID设备 # mount /dev/md0 /mnt/md0
显示该设备运行状况 # df –lh
Filesystem Size Used Avail Use% Mounted on
设备 容量 已用 可用 已用% 挂载点
/dev/sda1 6.0G 2.1G 3.6G 35% /
none 147M 0 147M 0% /dev/shm
/dev/md0 8.9G 33M 8.5G 1% /opt
4 RAID故障演示及重建恢复
4.1 模拟磁盘sdb出现故障
# mdadm /dev/md0 -f /dev/sdb
4.2 显示RAID5磁盘系统的重建过程
# mdadm -D /dev/md0
…
正常运行的硬盘设备数 Active Devices:2
工作的硬盘设备数 Working Devices:3
出故障的硬盘设备数 Failed Devices:1
剩下的硬盘设备数 Spare Devices:1
…
Number Major Minor RaidDevice State
0 0 0 - removed
1 8 32 1active sync /dev/sdc //活动数据盘sdc
2 8 48 2 active sync /dev/sdd //活动数据盘sdd
3 8 64 0 spare rebuilding /dev/sde //重建数据盘sde
4 8 16 - faulty /dev/sdb //出錯的数据盘sdb
4.3 删除坏损的设备和添加新设备
# mdadm /dev/md0 -r /dev/sdb
# mdadm /dev/md0 -a /dev/sdb
4.4 恢复正常运行的状态
# mdadm -D /dev/md0
…
正常运行的硬盘设备数 Active Devices : 3
工作的硬盘设备数 Working Devices : 4
出故障的硬盘设备数 Failed Devices : 0
剩下的硬盘设备数 Spare Devices : 1
…
Number Major Minor RaidDevice State
0 8 64 0 active sync /dev/sde // 数据盘sde取代sdb
1 8 32 1 active sync /dev/sdc //活动数据盘sdc
2 8 48 2 active sync /dev/sdd //活动数据盘sdd
3 8 16 - spare /dev/sdb //原来的sdb成为备用设备状态
[参考文献]
[1]张栋.Red Hat Enterprise Linux服务器配置与管理.北京:人民邮电出版社,2009.
[2]涂巧霞.Red Hat Linux系统及网络管理基础与实践教程.北京:电子工业出版社,2008.
[3]王晓超.Linux服务器搭建完全技术宝典.北京:中国铁道出版社, 2010.