常用RAID技术介绍及配置范例
一、RAID介绍
RAID的全称是独立硬盘冗余阵列(Redundant Array of Idependent Disk),出现的最初目的是实现用较小的硬盘合并成为一个大容量的”逻辑盘“,实现硬盘容量的增加和性能的提升。但随着RAID技术的发展,可以选择不同的RAID阵列类型以满足硬盘容量、数据冗余、或者存储系统性能等需要。
二、磁盘阵列实现方式
磁盘阵列有两种方式可以实现,那就是“软件阵列”与“硬件阵列” 。
软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI 卡上的多块硬盘配置成逻辑盘,组成阵列。在linux中,通过mdadm命令实现软间RAID,mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具。它的基本语法与使用在后面会有详细介绍。
硬件阵列是使用专门的磁盘阵列卡来实现的,硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能×××能、数据保护、可靠性、可用性和可管理性的解决方案。磁盘阵列卡拥有一个专门的处理器,如Intel 的I960 芯片,HPT370A/372、Silicon Image SIL3112A 等,还拥有专门的存贮器,用于高速缓冲数据。这样一来,服务器对磁盘的操作就直接通过磁盘阵列卡来进行处理,因此不需要大量的CPU 及系统内存资源,不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。
三、磁盘阵列的几个级别
RAID 技术是一种工业标准,各厂商对RAID 级别的定义也不尽相同。(级别:仅代表磁盘的组织方式不同)
RAID 0
RAID 0又称为Stripe(条带化)或Striping,是无数据冗余的存储空间条带化,如图1.1,将数据分开存到下面的物理磁盘中,具有成本低、读写性能极高、存储空间利用率高等特点,但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘的损坏都将带来灾难性的数据损失。这种方式其实没有冗余功能,没有安全保护,只是提高了磁盘读写性能和整个服务器的磁盘容量。
图1.1
RAID 1
RAID 1又称为Mirror或Mirroring(镜像),是两块硬盘数据完全镜像,如图1.2,一块磁盘存储数据,另一块磁盘完全备份。由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全保障。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而Mirror(镜像)的磁盘空间利用率低,存储成本高。
图1.2
Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域.
RAID 4
RAID4又称带有共享校验磁盘的独立数据磁盘系统,以条带化的方式存储数据,采用“数据磁盘+奇偶校验盘”的组织形式,如下图图1.3,读写的能力有所提升,但提升不是很大,相对来说比较安全,存储空间没有太大浪费
图1.3
RAID 5
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。是目前应用最广泛的RAID 技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上,如下图图1.4。以n 块硬盘构建的RAID 5 阵列可以有n -1 块硬盘的容量,存储空间利用率非常高。任何一块硬盘上的数据丢失, 均可以通过校验数据推算出来。它和RAID 3 最大的区别在于校验数据是否平均分布到各块 硬盘上。RAID 5 具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛,但不足之处是如果1 块硬盘出现故障以后,整个系统的性能将大大降低。
图1.4
RAID 0 1
RAID 0 1是RAID0和RAID1的组合,如图1.5:,磁盘0和磁盘1以RAID0的形式组合,磁盘2和磁盘3也以RAID0的形式组合,然后磁盘0、1和磁盘2、3之间又以RAID1的形式组合,RAID0 1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。由于RAID 0 1也通过数据的100%备份功能提供数据安全保障,因此RAID 0 1的磁盘空间利用率与RAID 1相同,存储成本高。RAID 0 1的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。 综合了RAID 0 和RAID 1 的特点,独立磁盘配置成RAID 0 ,两套完整的RAID 0 互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利 用率低。
图1.5
RAID 1 0
RAID1 0是RAID0和RAID1的另一种的另一种组合,如图:1.6,磁盘0、1以RAID1的形式组合,磁盘2、3也以RAID1的形式组合,然后磁盘0、1和磁盘2、3再以RAID0的形式组合。它同样在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。实现100%的备份。
图1.6
四、linux下软件磁盘阵列配置实例
以RAID1为例,在linux实现RAID1,用mdadm命令创建一个4G的RAID1,由于设备限制,这里我用同一磁盘上的两个分区模拟实现,其效果是一样的。
在配置之前我先给大家简单介绍一下mdadm命令
mdadm是一个模式化的命令,
-C:创建式模式:(创建后也要格式化,但格式化的是md设备,如md0)
专用选项:
-l 级别
-n 设备个数
-a [yes | no、]自动为其创建设备文件
-c CHUNK大小 2^n,默认是64k
-x # 指定空闲盘个数
如创建一个0级别的RAID0:mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda{5,6}
mke2fs -j /dev/md0
mke2fs -e strange=# 可以指定条带大小
管理模式:
--add|--del|--fail:默认在管理模式
-r 移除RAID中的盘
-a
添加一块盘到一个RAID中(大小与移除的大小相同)
-F:监控模式
-G:增长模式
-A:装配模式
-D|--: 可以显示查看(RAID阵列)指定设备的详细信息
-S: 停用阵列(重新启用,可以用-A,重新装配)
-D --scan 将当前的RAID信息保存至配置文件,以便进行装配
1.首先我们要创建两个2G的分区,并把分区类型设为fd,然后让内核重读分区,查看内核是否识别了刚分的分区,(创建分区的过程在这里就不给大家演示了,相信大家对大家来说都不是什么问题)如图2.1:
图2.1
2.使用mdadm命令创建md0:如图2.2:
图2.2
3.查看当前系统启动的RAID设备,如图2.3
图2.3
4.在md1上创建文件系统,如图2.4
图2.4
5.挂载md0设备,如图2.5:
图2.5