本文将介绍RAID的类型,并在Linux系统上组软RAID。
本文参考:
https://zh.wikipedia.org/zh-cn/RAID
https://raid.wiki.kernel.org/index.php/A_guide_to_mdadm
https://computingforgeeks.com/configuring-raid-storage-on-centos-linux/
https://wiki.debian.org/SoftwareRAID
http://www.gienginali.idv.tw/modules/tad_book3/page.php?tbsn=7&tbdsn=236
https://iter01.com/270127.html
一、RAID简介
RAID全称Redundant Array of Independent Disks,独立硬盘冗余阵列。
简单来说,RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。
RAID分为两种硬RAID和软RAID
- 软RAID:损耗CPU资源,价格低。
- 基于主板芯片组的RAID功能
- 硬件辅助RAID,通过驱动使用CPU运算
- 操作系统内置RAID功能
- 硬RAID:性能高,不占资源,不依赖操作系统。断电后使用备份电池以及非易失性存储器保存硬盘日志。
二、RAID类型
1.RAID0(常用)
RAID 0既没有冗余功能,也不具备容错能力。
速度是最快的,读写时都可以并行处理。
RAID0的容量计算公式:
2.RAID1(常用)
RAID1的磁盘互为镜像,读取速度快,与RAID0相同。写入速度微小降低。
利用率最低,安全性最好。
RAID1的容量计算公式:
3.RAID2
RAID0改进版,使用汉明码纠错。
4.RAID3
数据交错存储
5.RAID4
块交织技术
6.RAID5(常用)
是一种储存性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分割)技术。
至少需要三个硬盘,使用奇偶校验,并且存放在不同的磁盘上。
当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID5的容量计算公式:
7.RAID6(常用)
与RAID 5相比,RAID 6增加第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,任意两块磁盘同时失效时不会影响数据完整性。
通常通过硬件方式实现。RAID 6至少需要四个硬盘。
RAID6的容量计算公式:
8.RAID10(常用)
综合RAID 0/1优点,理论速度较快,可靠性高。
RAID10与RAID01的区别
当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。
三、在Linux上组建软RAID
1.mdadm命令
https://man7.org/linux/man-pages/man8/mdadm.8.html
2.mkfs命令
用于在特定的分区上建立 linux 文件系统。
1 | #在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来 |
3.实验环境
在虚拟机中新建5块128M的磁盘。
1 | ┌──(shilela㉿kali)-[~] |
4.组软RAID0后移除
5.组软RAID1并模拟损坏恢复后移除
1 | $ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc |
1 | $ sudo mkfs.ext4 /dev/md0 |
1 | $ mdadm --query /dev/sdb |
1 | $ sudo mdadm --detail /dev/md0 |
1 | $ sudo mdadm --examine /dev/sdb |
1 | $ lsblk |
1 | $ cat /proc/mdstat |