Linux RAID磁盘阵列管理

一、RAID概述

Redundant Array of Inexpensive /Independent Disks廉价/独立磁盘冗余阵列(或简称磁盘阵列)。

是一个把多块独立硬盘按不同方式组合起来的磁盘组,从而提高单个硬盘的存储性能和提供数据冗余。0-6共7个

级别,常用0,1,5;需要RAID控制器、Linux内核可以模拟RAID控制器,用来管理硬盘,但只支持级别0,1,4,5。

二、常用的RAID规范

主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有:Raid0、Raid1、Raid5。

Raid0(带区卷)

RAID 0又称为Stripe或Striping,中文译为集带工作方式,有时也可以理解为“拼凑” 。

它是将要存取的数据以条带状形式尽量平均分配到多个硬盘上,读写时多个硬盘同时进行读 写,从而提高数据的读写速度。RAID 0另一目的是获得更大的“单个”磁盘容量。

组成及特点:

由两块或两块以上硬盘组成,但是每块硬盘所贡献的空间大小必须相同,读写效率高。

图片[1] - Linux RAID磁盘阵列管理 - 正则时光

Raid1(镜像卷)

又称为Mirror或Mirroring,中文译为镜像方式。这种工作方式的出现完全是为了数据安全考虑的,它是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上或硬盘的不同地方(镜像)。当读取数据时,系统先从RAID 1的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会造成用户工作任务的中断。

组成及特点

由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。

由两块磁盘组成,每块磁盘提供相同大小的空间,支持容错,即一块硬盘损坏后数据不会丢失,磁盘空间利用率50%。

图片[2] - Linux RAID磁盘阵列管理 - 正则时光

RAID-5卷

Raid5是一种存储性能、数据安全和存储成本兼顾的存储解决方案,也是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n-1/n块硬盘的容量,存储空间利用率非常高。

RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。

组成及特点

至少需要三块硬盘,每块硬盘必须提供相同的磁盘空间,提供容错功能。磁盘空间利用率n-1/n,n为磁盘数量。

三、SoftWare Raid概述

一般的中高档服务器多使用硬件RAID控制器来实现HardwareRAID,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决方法得到人们的重视。

SoftWare Raid即软件磁盘阵列,软件RAID使您可以将两个或多个块设备(通常是磁盘区)组合为单个 RAID 设备(/dev/mdX)。

例如:假定有三个空分区:hda3、hdb3 和 hdc3。使用软件 RAID管理工具mdadm就能将这些分区组合起来。

四、Mdadm管理工具

mdadm工具是一个管理软件RAID的独立程序,它能完成所有的软RAID管理功能。

常用选项

-A <阵列设备名>, –assemble:加入一个以前定义的阵列

-C <阵列设备名>, –create:创建一个新的阵列

-D <阵列设备名>, –detail:显示md device 的详细信息

-a yes :自动创建md阵列文件

-l, –level=:设定raid level

-s, –scan:扫描配置文件或 /proc/mdstat以搜寻丢失的信息

-n, –raid-devices=:指定阵列中可用device 数目,这个数目只能由 –grow 修改

-x, –spare-devices=:指定初始阵列的富余device数目

五、SoftWare Raid配置文件

mdadm不采用/etc/mdadm.conf作为主要配置文件,它完全可以不依赖该文件也不会影响阵列的正常工作。

该配置文件的主要作用是方便跟踪软RAID的配置。对该配置文件进行配置是有好处的,但不是必须的。推荐对该文件进行配置。

建立方法如下

#创建阵列
mdadm –D -s > /etc/mdadm.conf
或
mdadm --detail --scan > /etc/mdadm.conf
#查看阵列状态
mdadm -D /dev/md0
cat /proc/mdstat
#停止阵列设备
mdadm -S /dev/md0
#启动阵列设备
mdadm -A /dev/md0 /dev/sda{X,Y,Z}

六、实例

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享