RAID0

把多块物理磁盘通过硬件或者软件的方式串联在一起,组成一个大的卷组,并将数据依次写入到各个物理磁盘中。

  • 优点:磁盘读写性能会提示数倍;磁盘利用率100%,实现磁盘无损扩容。
  • 缺点:没有容错功能,一旦其中一块磁盘挂掉全部数据将都会顺坏。

RAID1

将多块磁盘进行绑定,数据写入的时候,同时写入到各个磁盘中,一旦其中一块磁盘发生故障,另外一个磁盘自动以热交换的方式来恢复数据的正常使用。

  • 优点:实现数据的冗余备份,保障数据的安全。
  • 缺点:磁盘利用率下降,只有一块磁盘容量大小;另外由于需要将数据写入到多块磁盘,增加了系统计算功能的负载。

RAID5

不直接进行数据的备份,而是把磁盘设备的数据奇偶校验信息保存到出自身以外的每一块磁盘设备中;如果其中一块磁盘出现故障,需要利用剩下的数据和校验信息可以恢复数据。

  • 优点:提生磁盘读写速度,在一定程度上保障数据的安全。
  • 缺点:当磁盘出现损坏,需要进行修复操作,不能热交换启动自动恢复。

RAID10

Raid 1 + Raid 0的“组合体”;第一步是先两两建立RAID 1磁盘阵列,来确保数据安全性;然后再对两个RAID 1实行RAID 0技术,进一步提升磁盘设备的读写速度。

  • 优点:实现数据的冗余备份;实现了磁盘速度的加快。
  • 缺点:当一组Raid 1磁盘都出现故障时,数据会发生丢失;磁盘容量只能达到磁盘数目容量的一半。

部署

1、部署RAID0

mdadm -Cv /dev/md0 -a yes -n 2 -l 0 /dev/sdb /dev/sdc
mdadm -D /dev/md0

Java 冗余设计 冗余技术_数据


2、部署RAID1

mdadm -S /dev/md0    #移除磁盘阵列
mdadm -Cv /dev/md1 -a yes -n 2 -l 1 /dev/sdb /dev/sdc
mdadm -D /dev/md1

Java 冗余设计 冗余技术_数据_02


3、部署RAID5

mdadm -S /dev/md1
mdadm -Cv /dev/md5 -n 4 -l 5 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm -D /dev/md5

Java 冗余设计 冗余技术_Java 冗余设计_03

4、部署RAID10

mdadm -S /dev/md5
mdadm -Cv /dev/md10 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm -D /dev/md10

Java 冗余设计 冗余技术_恢复数据_04


5、命令总结

  • 创建:mdadm -Cv [RAIDName] -a yes -n [number] -l [版本] /dev/sdb /dev/sdc
    /dev/sdd /dev/sde
  • 查看:mdadm -D /dev/md0
  • raid+备份磁盘:mdadm -Cv /dev/md0 -a yes -n 3 -l 5 –x 1 /dev/sdb /dev/sdc
    /dev/sdd /dev/sde
  • 模拟磁盘故障:mdadm /dev/md0 –f /dev/sdb
  • 磁盘修复:mdadm /dev/md0 –a /dev/sdb
  • 磁盘速度测试:time dd if=/dev/zero of=test.db bs=8k count=100(慎用dd命令)