首页 > 代码库 > Linux软RAID操作与实现学习笔记
Linux软RAID操作与实现学习笔记
定义:RAID(Redundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。
目前RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。其中在Linux下通过自带的软件就能实现RAID功能。
RAID的级别:
随着RAID技术经过不断的发展,现已有RAID 0 到 RAID 6 七种基本的RAID 级别,同时还有RAID 0和RAID 1的组合形式,称为RAID10。其中的级别并不代表技术的高低,而RAID 2和RAID 4基本上不再使用了,RAID 3则是由于实现起来太复杂也很少使用。目前这些常用的RAID级别Linux内核都能够支持,在Linux 2.6内核中的软 RAID 可支持以下级别: RAID 0、RAID 1、RAID 4、RAID 5以及RAID 6等。Linux 2.6的内核除支持以上几种RAID级别外,还可支持LINEAR(线性模式)的软RAID,线性模式是将两个或更多的磁盘组合到一个物理设备中,磁盘不必具有相同的大小,在写入RAID 设备时会首先填满磁盘A,然后是磁盘B,以此类推。
RAID 0条带模式(striped):即把连续的数据分散到多个磁盘上存取,当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行RAID 0 的主要原因。但RAID 0没有数据冗余,如果驱动器出现故障,那么将无法恢复任何数据。
RAID 1 RAID 1又称为镜像(Mirroring),一个具有全冗余的模式。RAID 1可以用于两个或2xN个磁盘,并使用0块或更多的备用磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。
RAID 5 RAID 5可以用在三块或更多的磁盘上,并使用0块或更多的备用磁盘。就像 RAID 4一样,得到的 RAID5 设备的大小是(N-1)*S。
创建软RAID
在CentOS服务器中是通过mdadm工具来创建和维护软RAID的,mdadm在创建和管理软RAID时非常方便,而且很灵活。mdadm常用的参数有如下:
--create或-C:创建一个新的软RAID,后面接raid设备的名称。例如,/dev/md0,/dev/md1等。
--assemble或-A:加载一个已存在的阵列,后面跟阵列以及设备的名称。
--detail或-D:输出指定RAID设备的详细信息。
--stop或-S:停止指定的RAID设备。
--level或-l:设置RAID的级别,例如,设置“--level=5”则表示创建阵列的级别是RAID 5。
--raid-devices或-n:指定阵列中活动磁盘的数目。
--scan或-s:扫描配置文件或/proc/mdstat文件来搜索软RAID的配置信息,该参数不能单独使用,只能配置其它参数才能使用。
实例步骤:
1.创建分区:fdisk
2.创建RAID 5 mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[b-e]1
mdadm --detail /dev/md0 查看到RAID的详细信息
3、创建RAID的配置文件 mdadm --detail --scan > /etc/mdadm.conf
但是当前生成“mdadm.conf”文件的内容并不符合所规定的格式,所以也是不生效的,这时需要手工修改该文件内容为如下格式:
# vi /etc/mdadm.conf
DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
ARRAY /dev/md0 level=raid5 num-devices=3
UUID=b372436a:6ba09b3d:2c80612c:efe19d75
如果没有创建RAID的配置文件,那么在每次系统启动后,需要手工加载软RAID才能使用,手工加载软RAID的命令是:
# mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
4、创建文件系统
mkfs.ext4 /dev/md0
维护软RAID
1、模拟故障磁盘
# mdadm /dev/md0 --fail /dev/sdc1
2、移除故障磁盘
mdadm /dev/md0 --remove /dev/sdc1
3、添加新硬盘
mdadm /dev/md0 --add /dev/sdc1
Linux软RAID操作与实现学习笔记