linux之RAID知识的总结

RAID的简单介绍

RAID是Redundant Array of Inexpensive 的缩成,称为廉价冗余磁盘阵列。原理是利用数组方式来做磁盘组,配合数据分散排列的设计,提升数据的安全性。其中磁盘阵列是有很多便宜、容量较小、稳定性较高、速度较慢的磁盘组合成一个大型的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能

目前RAID技术大致分为两种:基于硬件的RAID技术的硬RAID和基于软件RAID技术的软RAID.

软件RAID:是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成raid阵列。

硬件RAID:是在服务器的bos界面进行RAID级别的配置,然后内核通过RAID适配器把RAID识别为sd接口的硬盘。

RAID 级别的介绍

随着RAID技术经过不断的发展,现已有RAID 0 到 RAID 6 七种基本的RAID 级别,同时还有RAID 0和RAID 1的组合形式,称为RAID10。其中的级别并不代表技术的高低。接下来就简单介绍一下RAID级别的组合方式和特性。

1、         RAID0

%title插图%num

RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上(如上图),因此具有很高的数据传输率,但它没有数据冗余,因此出错几率较大,一旦其中一块磁盘坏掉,数据将无法恢复。因此RAID0不能应用于数据安全性高的场合。

2、         RAID1

%title插图%num

 

它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据(如上图)。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本*高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

3、         RAID4

%title插图%num

 

RAID4是将数据条块化分布于不同的硬盘上,区别在于RAID 4使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息,如上图前两块存放数据,第三块磁盘则存放前两块的异或校验码。如果一块磁盘失效,奇偶盘及其他数据盘可以重  新产生数据;如果奇偶盘失效则不影响数据使用。RAID 4对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

4、         RAID5

%title插图%num

 

RAID5 与 RAID4 之间*大的区别就是校验信息均匀分布在各个磁盘上也就是三个磁盘轮流做为校验盘,如上图所示,这样就避免了RAID 4中出现的瓶颈问题。如果其中一块磁盘出现故障,那么由于有校验信息,所以所有数据仍然可以保持不变。如果可以使用备用磁盘,那么在设备出现故障之后,将立即开始同步数据。如果两块磁盘同时出现故障,那么所有数据都会丢失。RAID5 可以经受一块磁盘故障,但不能经受两块或多块磁盘故障。

5、         RAID10

%title插图%num

RAID10实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。

mdadm命令详解

   在Linux中式通过mdadm来创建和维护软RAID的,mdadm是一个模式化的命令,因此有很多的模式。具体模式和选项如下:

Assemble 装配模式;Create  创建模式 ;Follow or Monitor  监控模式(运行特性);Grow: 增长模式;Manage 管理模式

mdadm 模式化命令如下:

-C 创建模式

-a yes 可以自动创建不存在的设备

-n 表示使用几块磁盘创建

-x  表示使用几块空闲盘 spare disks

-c  指定块大小 默认64KB

-l   指定级别

-p   layout

-D 查看详细信息

-S 停止raid设备

-A 装配模式(装配已停下的设备)

-F 监控模式

–add,–fail –remove 自动工作在监控模式下

–examine –scan 扫描当前设备信息

–fail简写成-f 可以模拟设备坏掉

–add 新增一块磁盘

–remove 删除一块磁盘

创建软一个RAID的步骤如下:

  创建软RAID的设备可以是任意设备或是分区,一般应该是把多块磁盘的分区做成RAID。这里我们就以一个磁盘上的多个分区创建软RAID为例进行讲解。

例一:在磁盘/dev/sda中创建一个6G的RAID0具体的操作步骤如下:

1、分析6G的RAID

根据RAID0的特性,我们可以创建为两个3G或是三个2G抑或六个1G的分区,这里我们就以两个3G为例进行讲解。

2、创建分区

使用“fdisk“命令在磁盘/dev/sda中创建两个3G的分区,并调整分区标识类型id 为fd,然后查看我们创建的分区。操作如下图:

%title插图%num

创建分区%title插图%num

调整分区类型

%title插图%num

查看创建好的分区

3、创建RAID

分区创建完成后不要像平时操作那样直接格式化分区,应该直接创建RAID.

在创建RAID之前应该先使用partprobe 命令来使我们的分区能够被识别。然后再使用如下命令进行创建。

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda6 /dev/sda7

其中-C是指创建模式下的命令, -a如果没有设备也可自动创建,-n 指定几块磁盘 –l 指定raid级别。

4、格式化raid并挂载

格式化:mke2fs /dev/md0

挂载:mkdir /mt 创建一个目录载到

%title插图%num

挂载成功后,切换到mt目录下查看会有lost+foud

创建一个具有空闲盘的RAID5并模拟磁盘的坏掉

   我们先来创建一个2G的RAID5并具有一块空闲盘。

1、分析创建2G的RAID5需要建立几个分区,根据RAID5的特性我们需要建立三个1G的分区,因为还需要一个空闲盘,所以我们这里要建立四个1G的分区。

2、创建分区,具体步骤和创建RAID0是一样的,这里就不做详细说明。

3、创建RAID5

mdadm -C /dev/md0 -a yes -l 5 -n 3 –x 1 /dev/sda6 /dev/sda7

其中-x表示创建几块空闲磁盘

然后用mdadm –D /dev/md0查看RAID5的详细信息如下

%title插图%num

4.格式化并挂载到/mt目录下,操作和RAID0一样,在此就不重复了。

5、模拟一块坏掉的磁盘

我们先拷贝一个文件到挂载目录/mt下,是为了查看磁盘坏掉对文件数据是否有影响

cp /etc/fstab  /mt,

%title插图%num

接下来我们模拟/dev/sda5坏掉

%title插图%num

然后用mdadm –D /dev/md0查看详细信息如下:

%title插图%num

接下来我们看看拷贝的文件是否受影响

%title插图%num

由此可知在RAID5中当坏掉一块盘时,因为有一块空闲盘顶替了坏掉的磁盘,所以我们数据仍然存在,并不会丢失。

那我们现在再模拟/dev/sda6坏掉,也就说我们已经坏掉了两块盘。然后查看数据是否丢失。

 

如果我们的数据并没有丢失,这就和RAID5的特性有关系了,RAID5是允许坏掉一块磁盘的,所以即使剩余两块磁盘,数据还是不会丢失的。

接下来简单介绍一下怎么生成RAID的配置文件。

前面已经提到的—examine –scan 选项是扫描当前设备信息。生成配置文件其实很简单,只需把扫描的设备信息保存到一个文件中即可,具体如下:

mdadm –examine –scan /dev/md0 >> /etc/mdadm.conf