RAID磁盘阵列

什么是raid?

RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的 性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。

RAID 0

RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成 一个大的卷组,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破 坏。通俗来说,RAID 0 技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力。

RAID 1

RAID1是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。 但是硬盘空间的真实可用率只有50%,部分空间被浪费。

RAID 5

RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上,这样的好处是其中任何一设备损坏后不至于出现致命缺陷; 途中parity 部分存放的就是数据的奇偶校验信息, RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试 重建损坏的数据。

RAID 10

RAID 10 技术是 RAID 1+RAID 0 技术的一个“组合体”。 RAID 10 技术需要至少 4 块硬盘来组建,其中先分别两两制作成 RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个 RAID 1 磁盘阵列实施 RAID 0 技术,进一步提高硬盘设备的读写速度。 从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏 50%的硬盘设备而不丢失数据。由于 RAID10 技术继承了 RAID 0 的高读写速度和 RAID 1 的数据安全性,在不考虑成本的情况下 RAID 10 的性能都超过了 RAID 5, 因此生产环境中主要使用RAID 10 技术。

接下来演练下如何部署raid10阵列(以vmware虚拟机为例子)

首先在虚拟机设置处点击添加硬盘,共添加4块硬盘,不算系统盘,如图:

根据linux的命名规则,第二个添加的SCSI设备名字为/dev/sdb,第三个为/dev/sdc以此类推

接下来使用mdadm命令创建raid10,命名/dev/rd10

mdadm -Cv /dev/md10 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

把制作好的 RAID 磁盘阵列格式化为xfs格式,如图:

创建挂载点,并进行挂载,如图可以看到,磁盘使用率为40G

使用mdadm -D /dev/md10可以查看阵列的详细信息,如图:

当其中有一块磁盘发生损坏后,可以使用mdadm命令将其移除,移除后观察阵列状态

再购买了新的硬盘后,只要使用mdadm命令-a参数将硬盘重新加入阵列即可

umount /dev/md10 加入前先执行命令卸载磁盘

mdadm /dev/md10 -a /dev/sdc

mdadm -D /dev/md10 再次查看阵列状态,如图:

磁盘阵列RAID5+备份盘

创建一个RAID5磁盘阵列加一个热备盘一共需要4块硬盘

执行命令创建raid5,名字为md5,

mdadm -Cv /dev/md5 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/ sdd /dev/sde

参数-n 3 代表创建这个 RAID 5 磁盘阵列所需的硬盘数,参数-l 5 代表 RAID 的级别,而参数-x 1 则代表有一块备份盘。

创建完成后,执行命令mdadm -D /dev/md5可以看到当前磁盘状态,可以看到有一块热备盘,如图:

此时将部署好的raid5阵列格式化为xfs,然后挂载就可以使用了,如图:

此时模拟 一块硬盘损坏,将其移除阵列,然后在使用 mdadm -D /dev/md5查看磁盘状态,如图:

可以看到/dev/sde热备磁盘正在开始同步数据,如图:

数据同步完成,如图:

mdadm参数说明:

  1. -a : 检测设备名称
  2. -n : 指定设备数量
  3. -l : 指定 RAID 级别
  4. -C : 创建
  5. -v : 显示过程
  6. -f : 模拟设备损坏
  7. -r : 移除设备
  8. -Q : 查看摘要信息
  9. -D : 查看详细信息
  10. -S : 停止 RAID 磁盘阵列
  11. -x:指定热备盘的数量

标签