磁盘冗余阵列之RAID5、RAID10
RAID技术主要有以下三个基本功能:
RAID0、RAID1、RAID5、RAID10的特点
RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。
将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。
实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
如下图所示”parity”块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。
因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
linux虚拟机模拟 独立磁盘冗余阵列RAID5配置5块磁盘、3块做raid,2块做备份)
1.准备mdadm
Linux下需要安装mdadm软件包,mdadm命令用于管理系统软件RAID硬盘阵列。
[root@yyd-hbza ~]# rpm -qa |grep mdadm
mdadm-4.0-5.el7.x86_64
mdadm命令格式为:”mdadm [模式] <RAID设备名称> [选项] [成员设备名称]”。
mdadm管理RAID阵列的动作有:
名称 |
作用 |
Assemble |
将设备加入到以前定义的阵列 |
Build |
创建一个没有超级块的阵列 |
Create |
创建一个新的阵列,每个设备具有超级块。 |
Manage |
管理阵列(如添加和删除)。 |
Misc |
允许单独对阵列中的某个设备进行操作(如停止阵列)。 |
Follow or Monitor |
监控状态。 |
Grow |
改变阵列的容量或设备数目。 |
mdadm管理RAID阵列的参数有:
参数 |
作用 |
-a |
检测设备名称 |
-n |
指定设备数量 |
-l |
指定raid级别 |
-C |
创建 |
-v |
显示过程 |
-f |
模拟设备损坏 |
-r |
移除设备 |
-a |
添加设备 |
-Q |
查看摘要信息 |
-D |
查看详细信息 |
-S |
停止阵列 |
2.在虚拟机中再添加5块硬盘
如上操作,重复五次,出现五块新磁盘。
3、使用mdadm命令创建RAID5,名称为”/dev/md0″。
(1).启动主机,在终端下查看磁盘是否成功添加
输入命令:
#fdisk -l
(2).分区转换
-C代表创建操作,-v显示创建过程,-a yes检查RAID名称,-n是用到的硬盘个数,-l是定义RAID的级别 -x 使备用磁盘格式 而后面写上要加入阵列的硬盘名称, 这里新的磁盘再/dev/md0 下
输入命令:
mdadm -Cv /dev/md0 -n 3 -l 5 -x 2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
(3).查看RAID组的详细信息:
#mdadm -D /dev/md0
4.格式化并挂载使用
(1).格式化为xfs格式。
输入mkfs,按两次tab键,查询格式,根据需求格式化。
在这里我们格式化成xfs格式,输入命令:
#mkfs.xfs /dev/md0
(2).挂载
首先创建挂载目录:
#mkdir /RAID
进行文件系统的挂载:mount /dev/md0 /RAID
查看磁盘挂载信息:
# df -h
设置 开机自动挂载:#echo "/dev/md0 /RAID xfs defaults 0 0" >> /etc/fstab
查看 /etc/fstab 文件内容写入是否正确 #cat /etc/fstab
5.模拟有1块硬盘损坏的情况
(1).将/dev/sdb移出阵列:
#mdadm /dev/md0 -f /dev/sdb
(2).查看RAID组的详细信息: /dev/sdb磁盘损坏,备份磁盘/dev/sdf自动顶替/dev/sdb作用
#mdadm -D /dev/md0
RAID硬盘依然可以正常的创建或删除文件
(3).重启主机,查看RAID组的详细信息: 发现/dev/sdf代替成为为raid
#mdadm -D /dev/md0
(4).将磁盘添加回阵列/dev/sdb
#mdadm /dev/md0 -a /dev/sdb
(5).查看RAID组的详细信息:
#mdadm -D /dev/md0
结果 /dev/sdf磁盘成为raid,/dev/sdb成为备份磁盘
linux虚拟机模拟 独立磁盘冗余阵列RAID10配置5块磁盘
RAID10配置,除第三步创建RAID进行分区转换的命令有所差别,其余配置步骤相同。
RAID进行分区转换命令:#mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-f]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了