首页 > 代码库 > Linux软RAID操作与实现学习笔记

Linux软RAID操作与实现学习笔记

定义RAIDRedundant Array of Inexpensive Disks)称为廉价磁盘冗余阵列。RAID 的基本想法是把多个便宜的小磁盘组合到一起,成为一个磁盘组,使性能达到或超过一个容量巨大、价格昂贵的磁盘。

    目前RAID技术大致分为两种:基于硬件的RAID技术和基于软件的RAID技术。其中在Linux下通过自带的软件就能实现RAID功能。

RAID的级别:

随着RAID技术经过不断的发展,现已有RAID 0 到 RAID 6 七种基本的RAID 级别,同时还有RAID 0RAID 1的组合形式,称为RAID10。其中的级别并不代表技术的高低,而RAID 2RAID 4基本上不再使用了,RAID 3则是由于实现起来太复杂也很少使用。目前这些常用的RAID级别Linux内核都能够支持,在Linux 2.6内核中的软 RAID 可支持以下级别: RAID 0RAID 1RAID 4RAID 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 设备的大小是(N1*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操作与实现学习笔记