Linux学习笔记---RHEL6上配置RAID

========================================================================= ========

本文章参考自 一天一点学习Linux之boot loader:GRUB | 羽飞博客 :http://www.opsers.org/base/learning-linux-the-day-that-the-system-configuration-in-the-rhel6-disk-array-raid.html

本文是笔者亲自试验后,并引用羽飞博客的教学内容,作为笔者的linux学习笔记记录之用。

在此感谢羽飞博客的Linux教学博文,羽飞博客地址:http://www.opsers.org

================================================================================

RAID介绍

磁盘阵列全名是: Redundant Arrays of Inexpensive Disks, RAID ,意思是:廉价的磁盘冗余阵列。 RAID 可以通过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘设备,而这个较大的磁盘不但扩展了储存空间,而且还有数据保护的功能。

RAID会根据等级 (level) 的不同,而使得整合后的磁盘具有不同的功能,基本常见的 level 有以下这几种:

RAID-0:磁盘叠加

这种模式一般是使用相同型号与容量的磁盘来组成。这种模式的 RAID 会将磁盘先切出等量的区块, 然后当一个文件需要要写入 RAID 设备时,该文件就会依据区块的大小切割好,然后再依次放到各个磁盘里。由于每个磁盘会交错的存放数据, 因此数据要写入 RAID 时,会被等量的放在各个磁盘上面。 
RAID-0的特点就是: 
1、磁盘越多RAID设备的容量就越大。 
2、容量的总大小是多个硬盘的容量的总和。 
3、磁盘越多,写入的效能就越高。 
4、如果使用非等大的硬盘,那么当小的磁盘写满后,就直接向空间大的磁盘中写数据了。 
5、最少的磁盘数是2个,而且磁盘使用率为100% 
他的致命之处就是:万一其中一个磁盘有问题,那么数据就会全部出问题。因为数据是分开存储的。

 

RAID-1:镜像备份

这种模式主要是让同一份数据,完整的保存在不同的磁盘上。由于同一份数据会被分别写入到其他不同磁盘。因此在大量写入 RAID-1 设备的情况下,写入的效能会变的非常差。但如果你使用的是硬件 RAID (磁盘阵列卡) 时,磁盘阵列卡会主动的复制一份而不使用系统的 I/O总线,这对效能影响是不大的。 如果使用软件磁盘阵列,效能就会明显下降了。 
RAID-1的特点是: 
1、保证了数据的安全, 
2、RAID-1设备的容量是所有磁盘容量总和的一半 
3、在多个磁盘组成RAID-1设备的时候,总容量将以最小的那一颗磁盘为主 
4、读取的效能相对增加。这是因为数据在不同的磁盘上面,如果多个进程在读取同一笔数据时,RAID 会自行取得最佳的读取平衡。 
5、磁盘数必需是2的整数倍。磁盘利用率为50% 
不足之处就是:写入的效能会降低

 

RAID-5:效能与数据备份的均衡考虑

RAID 5:至少需要三个以上的磁盘才能够组成这种类型的磁盘阵列。这种磁盘阵列的数据写入有点类似 RAID-0, 不过每个循环的写入过程中,在每颗磁盘还加入一个校验数据(Parity),这个数据会记录其他磁盘的备份数据, 用于当有磁盘损毁时的救援。

RAID-5的特点: 
1、当任何一个磁盘损坏时,都能够通过其他磁盘的检查码来重建原本磁盘内的数据,安全性明显增强。
2、由于有同位检查码的存在,因此 RAID-5 的总容量会是整个磁盘数量减一个。 
3、当损毁的磁盘数量大于等于两颗时,那么 RAID-5 的资料就损坏了。 因为 RAID-5 预设只能支持一颗磁盘的损坏情况。
4、在读写效能上与 RAID-0 差不多。 
5、最少磁盘是3块,磁盘利用率N-1块 
不足:数据写入的效能不一定增加,因为要写入 RAID 5 的数据还得要经过计算校验码 (parity)。所以写入的效能与系统的硬件关系较大。尤其当使用软件磁盘阵列时,校验码 (parity)是通过 CPU 去计算而非专职的磁盘阵列卡, 因此在数据校验恢复的时候,硬盘的效能会明显下降。 

RAID-0 RAID-1 RAID-5三个级别的数据存储流程,大家可以参考下图

 

 

 

 

 

由于 RAID-5 仅能支持一颗磁盘的损毁,因此还有发展出另外一种等级,就是 RAID-6 ,这个 RAID-6 则使用两颗磁盘的容量作为 parity 的储存,因此整体的磁盘容量就会少两颗,但是允许出错的磁盘数量就可以达到两颗,也就是在 RAID-6 的情况下,同时两颗磁盘损毁时,数据还是可以恢复回来的。而此级别的RAID磁盘最少是4块,利用率为 N-2。

Spare Disk:热备磁盘

他的作用就是:当磁盘阵列中的磁盘有损毁时,这个热备磁盘就能立刻代替损坏磁盘的位置,这时候我们的磁盘阵列就会主动重建。然后把所有的数据自动恢复。而这个或多个热备磁盘是没有包含在原本磁盘阵列等级中的磁盘,只有当磁盘阵列有任何磁盘损毁时,才真正的起作用。

 

 =========================================================================================

 

下面以RAID-5为例进行配置演示:

为了方便实验,所以我在虚拟机下面创建了多块Hard Disk,每块大小是1G。就用/dev/sd{b,c,d,e}这四块进行实验吧。

先用三块(sdb,sdc,sdd)来做RAID-5,这是做RAID-5最少的磁盘数量,为了安全,通常都需要加上一块热备磁盘(sde),以用来替换出故障的磁盘。

PS:用分区来做RAID也可以,不过这样不太科学。

1.创建RAID设备文件

RAID设备文件创建成功,这时候会在/dev下创建md目录和和md5设备文件,并且在/dev/md/目录下创建了md-device-map文件。

查看一下RAID设备的情况

2.对RAID设备创建文件系统、分区、挂载

创建好的RAID设备可以当做普通磁盘一样进行分区,使用命令fdisk /dev/md5就可以了,这里就不演示了。

RAID设备创建好后,要对它进行“格式化”(准确的说法是创建文件系统,linux下没有格式化这个说话的)

挂载使用

OK,挂载成功,在/mnt/md5下成功创建了3个文件

 3.模拟磁盘损坏

mdadm命令能够进行模拟磁盘故障,我对/dev/sdb进行故障模拟

模拟成功,查看一下RAID设备信息

可以看到/dev/sdb的状态是faulty spare(出错的热备)。当RAID设备里面有磁盘出现故障,热备磁盘会马上自动替换故障盘。/dev/sde已经替换掉/dev/sdb。

注意一点:当热备磁盘顶替故障磁盘时,RAID设备的性能会明显下降,因为热备盘要进行数据检验与恢复。

再看下/mnt/md5里面的数据还存在不

OK,数据没有丢失。接下来要将故障硬盘移除,添加新的硬盘。

4.移除故障硬盘

再次查看一下RAID设备信息

已经移除了

5.添加新的硬盘

看看新加入的磁盘

新的热备盘/dev/sdf已经被添加到RAID-5设备里面

6.增加RAID设备存储空间

当设备的存储空间不足时,需要添加硬盘以增加RAID设备的存储空间。

注意:使用mdadm -r添加新硬盘后,新添加的硬盘会被当做热备盘使用。

我们先来尝试一下添加硬盘,我把/dev/sdg添加进去/dev/md5

查看一下RAID设备信息

果然,硬盘/dev/sdg被当做热备盘使用。怎样才能让热备盘起存储作用呢?需要进行以下操作。

增加新磁盘后,RAID设备信息不会马上显示新的设备容量,所以我们要更新一下文件系统。

查看一下设备信息

Raid Devices的个数已经由3个增加到4个,设备容量也由原来的2G增加到3G,新添加的/dev/sdg设备已经运行。

再看下/mnt/md5里面的数据在我们执行扩容的过程中是否遭到损坏

数据也是正常的。

7.开机自动挂载RAID设备

设置开机自动挂载设备,我们都知道去修改fstab,但是这里有一点需要注意:

RAID设备,在fstab上修改后,开机还是不能自动挂载的。必须在修改fstab后,往/etc/mdadm.conf里面添加RAID设备的某些信息。否则,机器重启后,原先的/dev/md5设备文件会被系统自动修改为/dev/md127(不同的RAID级别名字不同)

先修改一下fstab,在末尾添加以下内容

接着需要往/etc/mdadm.conf里添加RAID设备信息。我们先来看看/etc/mdadm.conf文件的内容

把RAID设备信息写入/etc/mdadm.conf文件中

OK,大家重启一下看看是否成功自动挂载。^.^

8.删除RAID设备

首先umount已经挂载到系统上的RAID设备

接着停止RAID设备

这步是关键,清除RAID设备中每个硬盘的superblock,记住要清除每一块曾经被用作RAID设备的硬盘哦。

最后删除fstab和/etc/mdadm.conf里相应的RAID设备内容

删除成功!

 

==========================================================================

特别提醒

停止了RAID设备后,使用以下命令重新开启RAID设备会出现错误提示

出现以上错误的原因,是/etc/mdadm.conf配置文件没有记录到md5的信息。

解决方法:

在重启MD设备前,必须在/etc/mdadm.conf写入md的信息

# mdadm -D -s /dev/md5 >> /etc/mdadm.conf

==========================================================================

 

最后对RHEL6下配置RAID设备的步骤进行简单总结

1.创建RAID-5设备

#mdadm -C /dev/md5 -l 5 -n 3 /dev/sd{b,c,d} -x 1 /dev/sde

2.对设备创建文件系统

#mkfs.ext4 /dev/md5     //到这里,RAID-5设备已经创建成功,并可以挂载使用

3.故障模拟

#mdadm -f /dev/md5 /dev/sdb

4.移除故障硬盘

#mdadm -r /dev/md5 /dev/sdb

5.添加新硬盘

#mdadm -a /dev/md5 /dev/sdf

6.将热备盘启用为存储盘

#mdadm -G -n4 /dev/md5

这里-n [NUMBERS]指的是RAID设备活跃的硬盘数量。别忘了更新一下文件系统

7.开机自动挂载

a.  修改fstab

b.写入RAID设备信息  #mdadm -D -s /dev/md5 >> /etc/mdadm.conf

8.删除RAID设备

a. #umount /dev/md5

b. #mdadm -S /dev/md5

c. #mdadm --misc --zero-superblock /dev/sdX

 

你可能感兴趣的:(linux,职场,raid,休闲,RHEL6)