【51CTO独家特稿】RAID是Redundant Array of Inexpensive Disk的缩写,意为廉价冗余磁盘阵列,是磁盘阵列在技术上实现的理论标准,其目的在于减少错误、提高存储系统的性能与可靠度。常用的等级有0、1、5级等。
◆RAID 0
RAID 0将数据分条,存储到多个磁盘中,不带任何冗余信息。数据被分割成块,继续分布到磁盘中。这一级别也被认为是纯粹的数据分条。创建RAID 0 需要一个或多个磁盘。也就是说,单独的一个磁盘可以被认为是一个RAID 0 阵列。不幸的是,数据分条降低了数据的可用性,如果一个磁盘发生错误,整个阵列将会瘫痪。
优点:易于实现 、无容量损失-所有的存储空间都可用
◆RAID 1
RAID 1适合性能要求较高又需要容错功能的阵列。另外, RAID 1是在只有少于2个磁盘的环境下支持容错功能的唯一选择。
RAID 1至少要有两个(只能两个)硬盘才能组成,因此也称为镜像(Mirroring)方式。所谓镜像就是每两个硬盘的内容一模一样,但是对操作系统而言只呈现一个硬盘,以便于管理。由此可见,RAID 1对数据进行了完全的备份,其可靠性是最高的。当然,其数据的写入时间可能会稍长一点,但因为两个镜象硬盘可以同时读取数据,故读数据与RAID 0一样。磁盘阵列的总容量为其中N/2块硬盘的容量在RAID 级别中,RAID 1通过数据镜像提供了最高的信息可用性。另外,如果阵列支持数据和镜像的同时读取,读取信息的性能将会提高。
优点:读取性能较单磁盘高
缺点:需要2倍的存储空间
◆RAID 5
RAID 5 是在多用户,对数据写入的性能要求不高的环境下的最好选择。然而,它要求至少3个磁盘来执行。
RAID 5是将数据分条,奇偶校验产生冗余。但是,它不采用一个固定的硬盘来存储奇偶校验值,所有数据和校验值都分布在所有硬盘上。
◆优点:最高的信息处理读取率、经济实用-只需要一个额外的磁盘
◆缺点:单独信息块的传送和单磁盘时相同、需要特定的硬件
下面将以讲述在RHEL 5中创建RAID 1为例子。
◆将分区标识为RAID分区,在创建软RAID这步是必须的,如果没执行在系统重启后,RAID设备可能会无法工作。
◆建立RAID设备及定义RAID盘
1:创建一个RAID设备,在RHEL 5中RAID设备必须从md0开始依次增加。
2:同意创建设备,如不加此参数时必须先使用mknod /dev/md1 b 9 0命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建。
3:RAID级别,此处定义的是RAID 1。
4:使用几个分区实现RAID。
5:热备分区的个数。当定义一些具有容错功能的RAID级别(RAID1、RAID5)时,可多定义一块或热备分区,这样当RAID阵列中有1块硬盘损坏时,这个热备分区会自动补上去开始工作。
6:加入RAID的分区。
◆查看RAID定义情况
1:查看指定RAID设备
2:活动的二个RAID 1分区
3:热备盘
◆格式化RAID设备
◆让RAID设备在每次重启都生效
该方法会将系统中所有的RAID设备的定义导入/etc/mdadm.conf中,而该文件是记录系统所有RAID设备,以便下次启动时生效。
◆挂载RAID设备
可临时使用mount命令挂载,也可定义在/etc/fstab中。
◆测试容错,用以下命令模拟阵列中一块硬盘损坏。模拟阵列中一块硬盘损坏的方法在实际工作中并没有多大意义,只是用于测试。
◆查看热备盘是否自动开始工作
1:在该阵列刚建立时,/dev/sda7、/dev/sda8是活动状态,/dev/sda9是热备分区,在上步骤中模拟将/dev/sda7损坏,这时/dev/sda7状态已是失败,而热备盘/dev/sda9自动开始工作。
◆移除损坏的/dev/sda7
1:将/dev/sda7从/dev/md0阵列中移除
2:在阵列中已没有/dev/sda7
◆添加一个新的分区作为热备分区
1:将/dev/sda10加入/dev/md0阵列中
2:/dev/sda10自动成为/dev/md0热备分区
在RHEL 5中创建RAID 0及RAID 5的方法与创建RAID 1的方法基本一致。当然由于RAID 0自身没有容错功能,添加热备分区是没有意义,所在不需要使用-x参数。
此外,在RHEL 5中实现软RAID时还提供了RAID6 ,即带有两种分布存储的奇偶校验码的独立磁盘结构,它是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合,使用了二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,写入速度也不好,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必要的负载,很少人用。
RHEL 5中使用软RAID可实现容错或加快数据读写速度的功能,但无法在不丢失分区数据的前题下增大分区。想解决这个问题我们就需要使用LVM了。
LVM是Logical Volume Manager的缩写。配置LVM首先要将普通分区转换为物理卷,再通过物理卷创建逻辑卷组,最后在逻辑卷组中创建逻辑卷。
在实现时即可使用普通分区,也可以在软RAID的基础上创建。下面将讲述在普通分区及RAID 5分区创建一个LVM。
◆在普通分区上实现LVM
◆使用fdisk将物理硬盘支持LVM,在普通分区上实现LVM时这步是必须的。
◆将物理硬盘转换为物理卷,在转换后可通过“pvdisplay”命令查看物理卷情况。
◆将物理卷加入到一个新的逻辑卷组中(vg0),逻辑卷组的名称可根据需要命名。在创建逻辑卷组后,可通过“vgdisplay 逻辑卷组名”命令查看逻辑卷组情况。
1:VG为逻辑卷组的大小,PE为逻辑卷组最小存储单位,VG Size=PE Size*Total PE。由于一个我没想明白的原因在不同的情况中创建逻辑卷组时,PE的大小是不一样,比如在安装RHEL 5过程中创建时PE默认为32MB,而在安装好系统后创建时PE默认为4MB。当然可以在使用“vgcreate”创建逻辑卷组时通过-s参数指定PE大小。
◆在逻辑卷组中建立逻辑卷。
1:-L指定大小,-n指定该逻辑卷的名称
◆通过增加一个新的分区到该逻辑卷组,以实现在不丢失数据的情况增加逻辑卷的功能。
1:将/dev/sda14转换为物理卷
2:将物理卷/dev/sda14加入到现有的逻辑卷组vg0中
3:查看逻辑卷组vg0空间已增大
◆增加逻辑卷/dev/vg0/lvm1的空间100M,未格式化的逻辑卷无法扩展。
1、2:要通过这二步才空间真正加到逻辑郑lvm1上。
3:/dev/vg0/lvm1的空间已增大100M
◆挂载逻辑卷,可临时使用mount命令挂载,也可定义在/etc/fstab中。
◆在RAID 5分区上实现LVM
将/dev/sda{7,8,9,10}、/dev/sda{11,12,13,14}配置为二个RAID 5,然后用这二个RAID 5建立LVM。
◆建立二个RAID 5阵列
mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{7,8,9,10}
mdadm -C /dev/md1 -a yes -n 3 -x 1 -l 5 /dev/sda{11,12,13,14}
◆让RAID阵列永久有效
◆将/dev/md0及/dev/md1转换为物理卷
◆新建一个逻辑卷组,并将/dev/md0、/dev/md1加入
◆在逻辑卷组vg1建立逻辑分区,并格式化
◆挂载逻辑卷,可临时使用mount命令挂载,也可定义在/etc/fstab中。◆挂载逻辑卷,可临时使用mount命令挂载,也可定义在/etc/fstab中。
作者:相濡以沫
来源:51CTO