一、实验环境
1、RAID简介
RAID(Redundant Array of Independent Disks),即独立磁盘冗余阵列,是一种数据存储技术。它通过将多个独立的磁盘驱动器组合起来,形成一个逻辑上的整体,从而提高数据存储的性能、容量和数据冗余性。
RAID的基本原理
- 数据分割:RAID将待存储的数据分割成较小的块,然后按照某种规则(如磁盘驱动器的序号)逐个块地存储在多个磁盘上。
- 数据分发:根据所采用的RAID级别,RAID会将不同块的数据分散存储在不同的磁盘上。例如,在RAID 0中,数据被均匀地分布在所有磁盘驱动器上;而在RAID 5中,数据被分布在多个磁盘驱动器上,并添加了奇偶校验信息。
- 冗余备份:某些RAID级别(如RAID 1)提供了冗余备份功能,以增加系统的可靠性。通过同时将相同的数据保存在两个或多个磁盘驱动器上,当其中一个磁盘发生故障时,数据仍然可从另一个磁盘访问。
- 并行数据存取:由于数据被分散存储在多个磁盘上,因此RAID可以同时读取或写入多个磁盘的数据,从而提高了系统的整体性能。
RAID的级别
RAID主要分为基本RAID级别(如RAID 0、RAID 1、RAID 5和RAID 6)和跨区RAID级别(如RAID 10、RAID 50和RAID 60)。不同的RAID级别具有不同的性能和冗余特性,用户可以根据其需求选择适合的RAID级别。
RAID的优势
- 提高性能:通过数据分割和并行数据存取,RAID可以显著提高数据的读写速度。
- 增加容量:通过组合多个磁盘,RAID可以提供更大的存储容量。
- 提高数据冗余性:某些RAID级别(如RAID 1、RAID 5和RAID 6)通过冗余备份或奇偶校验信息来提高数据的可靠性
2、RAID0(带区卷)
RAID0,又称为Stripe或Striping,是一种在RAID(冗余阵列的独立磁盘)技术中的级别,它代表了所有RAID级别中最高的存储性能。
工作原理
RAID0的工作原理是将连续的数据分散到多个磁盘上进行存取。当系统有数据请求时,多个磁盘可以并行执行,每个磁盘处理它负责的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,从而显著提高磁盘整体存取性能。
性能特点
- 高性能:由于数据是在多个磁盘上同时读写,因此RAID0提供了非常高的数据传输速率。理论上,一个由n块磁盘组成的RAID0,它的读写性能是单个磁盘性能的n倍,但实际性能提升可能因总线带宽等多种因素而略低于理论值。
- 无数据冗余:RAID0并不提供数据冗余或校验功能。这意味着它没有任何容错能力,一旦阵列中的任何一块硬盘发生故障,将会导致整个阵列的数据丢失。
- 100%存储空间利用率:由于没有冗余数据,RAID0可以充分利用所有磁盘的存储空间。
适用场景
RAID0特别适用于对性能要求较高,但对数据安全不太在乎的领域,如图形工作站、视频编辑等。对于个人用户来说,如果追求硬盘存储性能的提升,RAID0也是一个选择。然而,由于它不提供数据冗余,因此在企业环境中,RAID0通常不会单独使用,除非对数据安全性要求不高或采取了其他备份措施。
RAID0以其高性能和存储空间的有效利用而著称,但缺乏数据冗余和容错能力使其在高可靠性要求的环境中不适用。在选择使用RAID0时,应充分考虑数据的重要性和可恢复性。
3、RAID1(镜像卷)
RAID1(Redundant Array of Independent Disks Level 1)是RAID技术中的一个级别,也被称为镜像RAID或RAID Mirroring。RAID1通过数据的完全冗余备份来提供数据的安全性,基本思想是将同一份数据同时写入两块或多块硬盘中,以确保在某一硬盘出现故障时,系统能够无缝地从另一块硬盘中读取数据,保证数据的完整性和业务的连续性。
工作原理
在RAID1中,数据被同时写入到两个或更多的硬盘中。每一个硬盘都包含完全相同的数据集,因此,即使其中一个硬盘发生故障,数据也不会丢失,因为可以从另一个硬盘中恢复数据。这种技术提供了数据的冗余性,增加了数据的可靠性和可用性。
性能特点
- 数据冗余:RAID1通过数据的完全镜像实现冗余,确保了数据的安全性。
- 读取性能:由于数据在多个硬盘上都有备份,因此在进行数据读取时,可以从多个硬盘中并行读取,从而提高了读取性能。
- 写入性能:数据写入时需要同时写入到多个硬盘中,这可能会导致写入性能相对于单个硬盘有所下降。
- 高可用性:即使其中一个硬盘发生故障,系统仍然可以从另一个硬盘中读取数据,从而保证了业务的连续性。
- 空间利用率:RAID1的空间利用率是50%(在只有两个硬盘的情况下),因为每块硬盘都存储了相同的数据。
适用场景
RAID1通常用于对数据安全性要求极高的环境,如金融、医疗等关键业务领域。在这些领域,数据的丢失或损坏可能导致严重的后果,因此,通过RAID1技术来确保数据的完整性和可靠性是非常重要的。
RAID1以其高可靠性和数据冗余性而著称,但相应地,它牺牲了部分存储空间利用率和可能的写入性能。在选择使用RAID1时,应根据具体的应用需求和成本效益进行权衡
4、RAID0+1
RAID0+1,也被称为RAID10,是RAID 0和RAID 1的组合形式。这种RAID级别旨在结合RAID 0的高性能和RAID 1的数据安全性。RAID0+1还有一种叫法RAID10。
工作原理
RAID0+1首先将数据分割成条带(Striping),类似于RAID 0的操作,以提高存取性能。然后,这些条带化的数据会被镜像复制到另一组磁盘上,这是RAID 1的特性,用以确保数据的安全性。
性能特点
- 高性能:由于数据被分割成条带并分散在多个磁盘上,因此可以并行读写,显著提高了磁盘的整体性能。
- 数据安全性:通过镜像复制,即使某个磁盘或某组磁盘出现故障,数据也可以从镜像磁盘中恢复,确保了数据的安全性。
- 磁盘利用率:由于RAID0+1采用了数据镜像,因此其磁盘空间利用率相对较低,与RAID 1相似,只有50%左右。
适用场景
RAID0+1特别适用于对数据安全性和存取性能都有高要求的场景,如服务器、数据库存储以及需要处理大量数据且不能容忍数据丢失的商业应用。
RAID0+1是一种兼顾存储性能和数据安全的解决方案,但相应的存储成本较高。在选择使用RAID0+1时,应根据实际应用需求、预算以及对性能和安全性的权衡来做出决定。
5、RAID5
RAID5是一种存储解决方案,它兼顾了存储性能、数据安全和存储成本。
工作原理
- 数据条带化:在RAID5中,数据被分割成多个块,并按照固定大小的条带分布在不同的硬盘上。每个条带包含数据块和奇偶校验块。
- 奇偶校验:奇偶校验块包含对应数据块的校验信息。这些信息是通过对其他硬盘上相同位置的数据块进行异或(XOR)运算得到的。当某个硬盘发生故障时,可以使用剩余的数据块和奇偶校验块重新计算出丢失的数据块。
性能特点
- 读取性能:RAID5可以提高数据的读取性能,因为数据读取操作可以并行进行,每个硬盘只需读取自己所负责的数据块,然后组合起来提供完整的数据。
- 写入性能:数据写入操作也可以并行进行,但需要额外的计算开销来更新奇偶校验信息,因此写入速度相对于单个磁盘会稍慢。
- 数据安全:RAID5通过奇偶校验信息提供了数据安全保障。即使一个硬盘发生故障,也能通过校验信息恢复数据。
- 磁盘利用率:由于多个数据对应一个奇偶校验信息,RAID5的磁盘空间利用率高于RAID1,但低于RAID0。
适用场景
RAID5适用于需要兼顾存储性能和数据安全性的场景,同时其成本相对较低,因为可以更有效地利用硬盘容量,减少硬盘数量和成本。它适用于企业级服务器、云存储等需要高可靠性和高性能的应用场景。
故障恢复与热备
在RAID5阵列中,当一个硬盘发生故障时,系统可以利用剩下的数据和奇偶校验信息恢复被损坏的数据。此外,RAID5还支持热备份技术,即当一个硬盘出现问题时,系统可以自动切换至备用硬盘,确保数据的正常访问。
6、mdadm命令语法
常用参数
参数 | 作用 |
---|---|
-C | 创建阵列模式 |
-v | 显示执行过程 |
-l | 指定RAID设备级别 |
-n | 指定RAID活动设备的数量 |
-r | 将指定成员移除RAID |
-x | 设置初始RAID设备的备用成员数量(热备盘) |
-D | 显示RAID设备的详细信息 |
-f | 将指定的RAID成员设备设置为故障模式 |
-S | 停止RAID设备 |
–zero-superblock | 清除RAID信息 |
二、RAID0的配置与管理
1、实验拓扑
编号 | 磁盘类型 | 磁盘容量 | 服务器 | 盘位 | 用途 |
---|---|---|---|---|---|
01 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n2 | RAID0 |
02 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n3 | RAID0 |
03 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n4 | RAID0 |
04 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n5 | RAID0 |
添加硬盘
2、Linux服务器配置步骤
2.1 创建RAID0 磁盘
创建RAID0磁盘
mdadm --create /dev/md0 --level=0 --raid-devices=4 /dev/nvme0n{2..5}
- –create /dev/md0:创建RAID磁盘,磁盘名为md0
- –level=0:RAID的级别,这里创建RAID0
- –raid-device=4:使用4块磁盘来创建RAID
- /dev/nvme0n{2…5}:创建RAID所使用的磁盘
查看RAID0磁盘的状态
mdadm -D /dev/md0
mdadm --detail /dev/md0
格式化磁盘使用
mkfs.xfs /dev/md0
创建挂载点,挂载到/dev/md0,并测试写入
mkdir /raid0
mount /dev/md0 /raid0
echo clean > /md0/clean.txt
2.2 模拟磁盘故障
将nvme0n5磁盘移除,模拟故障情况
先关闭虚拟机,然后移除磁盘5
重启开启虚拟机,可以看到RAID0的状态为inactive
可以看到先前的文件可能丢失也可能存在,就看数据的存储位置,目前是已经丢失
重新测试写入数据,可以看到数据还可以写入
echo inactive > /raid0/inactive.txt
重新连接刚刚的移除的硬盘
选择现有磁盘
选择磁盘的原先存储位置
重新查看硬盘的状态,可以发现状态恢复为clean
2.3 删除RAID0
首先查看是否存在挂载,如果有挂载,需要先卸载
df -hT # 如果没有写入/etc/fstab文件中,重启后挂载会失效
停止RAID0
mdadm -S /dev/md0
使用零覆盖RAID设备中的超级块,也就是清除RAID信息
mdadm --zero-superblock /dev/nvme0n{2..5}
查看磁盘信息,可以看到RAID0已经被清除掉
lsblk
3、Windows服务器配置步骤
2.1 创建RAID0 磁盘
打开磁盘管理器
初始化磁盘
新建带区卷
选择所有硬盘
驱动器号保持默认即可
选择执行快速格式化
单击【是】,将选中的基本磁盘转换为动态磁盘
2.2 删除RAID0
打开磁盘管理器,选择RAID0的成员磁盘,右键单击【删除卷】
此时会还原为普通的基本磁盘
三、RAID1的配置与管理
1、实验拓扑
编号 | 磁盘类型 | 磁盘容量 | 服务器 | 盘位 | 用途 |
---|---|---|---|---|---|
01 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n2 | RAID0 |
02 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n3 | RAID0 |
03 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n4 | RAID0 |
04 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n5 | RAID0 |
2、Linux服务器配置步骤
2.1 创建RAID1 磁盘
创建RAID0磁盘
mdadm --create /dev/md0 --level=1 --raid-devices=4 /dev/nvme0n{2..5}
- –create /dev/md0:创建RAID磁盘,磁盘名为md0
- –level=1:RAID的级别,这里创建RAID1
- –raid-device=4:使用4块磁盘来创建RAID
- /dev/nvme0n{2…5}:创建RAID所使用的磁盘
查看RAID1磁盘状态
mdadm -D /dev/md1
格式化磁盘
mkfs.xfs -f /dev/md1
创建挂载点,挂载到/dev/md1,并测试写入
mkdir /raid1
mount /dev/md1 /raid1
echo clean > /raid1/clean.txt
2.2 模拟磁盘故障
将nvme0n5磁盘移除,模拟故障情况
先关闭虚拟机,然后移除磁盘5
重新开启虚拟机,可以看到RAID1的状态多了一个【degraded】,同时提示少了一块硬盘
重新挂载,可以看到之前的内容还存在
mount /dev/md1 /raid1
尝试写入数据
echo clean,degraded > /raid1/degraded.txt
关闭虚拟机,再添加一块硬盘
将新添加的磁盘记载到RAID1中
mdadm /dev/md1 -a /dev/nvme0n5
查看RAID1的状态
mdadm -D /dev/md1
2.3 删除RAID1
首先查看是否存在挂载,如挂载提前卸载
df -hT
停止RAID1
mdadm -S /dev/md1
清除RAID信息
mdadm --zero-superblock /dev/nvme0n{2..5}
3、Windows服务器配置步骤
2.1 创建RAID1 磁盘
打开磁盘管理器
选择任意一个目标磁盘,右键单击,在弹出的选项框中选择【新建镜像卷】
选择磁盘中,镜像卷只能选择两个同大小的磁盘,其中一个存储数据,一个作为备份盘
其余选项保持默认即可,勾选【执行快速格式化】
单击【是】,将选中的基本磁盘转换为动态磁盘
查看镜像卷
2.2 删除RAID1磁盘
选中RAID1磁盘的成员磁盘,右键单击,在弹出的选项框中选择【删除卷】
- 删除镜像:会删除掉两个磁盘之间的镜像关系,也就是复制关系
- 中断镜像:暂停镜像关系
单击【是】,即可删除RAID1
删除掉镜像后,磁盘会转化为基本磁盘
四、RAID5的配置与管理
1、实验拓扑
编号 | 磁盘类型 | 磁盘容量 | 服务器 | 盘位 | 用途 |
---|---|---|---|---|---|
01 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n2 | RAID0 |
02 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n3 | RAID0 |
03 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n4 | RAID0 |
04 | NVMe | 10G | Linux服务器/WindowsServer服务器 | nvme0n5 | RAID0 |
1、Linux服务器配置步骤
2.1 创建RAID5 磁盘
创建RAID0磁盘
mdadm --create /dev/md5 --level=1 --raid-devices=3 -x 1 /dev/nvme0n{2..5}
- –create /dev/md0:创建RAID磁盘,磁盘名为md0
- –level=1:RAID的级别,这里创建RAID1
- –raid-device=4:使用4块磁盘来创建RAID
- -x 1:创建一块备用盘
- /dev/nvme0n{2…5}:创建RAID所使用的磁盘
查看RAID1磁盘状态
mdadm -D /dev/md5
格式化磁盘
mkfs.xfs -f /dev/md5
将RAID5配置信息写入到配置文件中,配置文件默认不存在
echo 'DEVICE /dev/nvme0n{2..5}' >> /etc/mdadm.conf
mdadm -Ds >> /etc/mdadm.conf
创建挂载点,挂载到/dev/md1,并测试写入
mkdir /raid5
mount /dev/md5 /raid5
echo clean > /raid5/clean.txt
2.2 模拟磁盘故障
将指定RAID设备成员设置为故障模式,模拟磁盘发生故障
mdadm /dev/md5 -f /dev/nvme0n2
再次查看RAID5的状态,发现热备的磁盘自动替换掉了故障磁盘
mdadm -D /dev/md5
可以正常写入数据
echo clean,degraded,recovering > /raid1/degraded.txt
将坏盘移除
mdadm /dev/md5 -r /dev/nvme0n2
添加一块新硬盘作为热备盘
mdadm /dev/md5 -a /dev/nvme0n6
查看RAID5的状态,可以看到新添加的硬盘自动作为了热备盘
mdadm -D /dev/md5
g&pos_id=img-b2Rj7bOn-1718700829774)
2.3 删除RAID1
首先查看是否存在挂载,如挂载提前卸载
df -hT
停止RAID1
mdadm -S /dev/md5
清除RAID信息
mdadm --zero-superblock /dev/nvme0n{2..6}
3、Windows服务器配置步骤
2.1 创建RAID5 磁盘
打开磁盘管理器
选择任意一个磁盘,右键单击,在弹出的提示框中选择【新建RAID-5卷】
将所有的磁盘选中
其余选项默认下一步即可,勾选【执行快速格式化】
单击【是】,将选中的基本磁盘转换为动态磁盘
查看转换后的RAID5卷,等待同步完成即可
同步完成
2.3 删除RAID5
单击任意一块成员磁盘,在弹出的对话框中选择【删除卷】
单击【是】即可删除RAID5
删除后,磁盘会转化为基本磁盘