目录
坚持学习很容易,但是坚持到底很难,希望大家不忘初心,好好学习,天天向上。
一、介绍
- 廉价磁盘阵列RAID(Redundatnt Array of lndependent Disks),全称独立磁盘冗余阵列;
- 解释:RAID阵列是一种把多块独立的硬盘,按不同的RAID级别组成的一个硬盘组,从而提供比单个硬盘更好的读取速率 和 数据安全性更强的技术。
- 不同的RAID级别,提供的磁盘读取速率和数据可靠性技术都不相同。
- RAID磁盘阵列有软RAID和硬RAID之分
- 软RAID:基于操作系统(练习可使用)
- 硬件RAID:基于物理服务器(工作使用)
二、软RAID常见的级别
RAID0 条带集(卷)
由两块或两块以上的硬盘并行组成,会将数据分散存储在各个硬盘内,正因会将数据分散存储,所以硬盘读写速率很快。不能容错,只要有一块硬盘损坏,其它存储数据硬盘全部损坏。
结构图:
特性:
- 由两块或以上硬盘并行组成;
- 读写速率快,磁盘数量越多读写速率越快,读写速率 = 100% * 硬盘数量;
- 不能容错,只要一块硬盘损坏,其它硬盘数据全部不能访问。例如有1份数据,RAID0有4块硬盘,一份数据就会分成四份分别存储在四个硬盘里,只要其中有一块硬盘损坏,其它硬盘的数据自然无法访问;
- 能完全使用磁盘容量。例如有两块硬盘,每块硬盘大小为10G,RAID0就能完全使用这20G容量。
应用场景:对于数据安全性要求不高的数据,例如浏览器记录,视频、音频等。
RAID1 镜像集(卷)
至少由两块硬盘组成,在第一块硬盘写入数据时,另一块硬盘同时会对数据进行备份,当任何一块磁盘损坏时,对应的备份磁盘会自动恢复数据,并且不会造成数据丢失。数据安全性非常强。
RAID1只能使用50%的容量,例如RAID1总容量为10G,那么它可用容量只有5G,因为另外50%需要用来备份数据。RAID1不能完全使用容量,所以读写速率一般。
结构图:
因为每一块磁盘的数据都有备份,所以每份数据都是成对出现。
特性:
- 最少由两块磁盘或以上组成;
- 可以容错,数据可靠性(安全性)非常强;
- 因为只能使用50%的容量,所以读写速率一般;
- 磁盘数量必须为偶数;
应用场景:对于数据安全性要求高的数据,例如:交易系统、用户系统等。
RAID5 带奇偶校验条带集(卷)
最少由3块盘组成,3块个工作盘(2块数据盘,1块校验位盘)。数据将分散存储在RAID5阵列中的每块数据盘上。任何一个磁盘数据丢失或损坏,都不会导致整个数据丢失,因为校验盘会通过其它没有损坏的盘计算出损坏的盘内容数据。
热备盘,一块备用的盘。当三块工作盘中其中一块损坏,热备盘会立马顶上,将损坏盘里的数据自动更新到热备盘里。
结构图:
存储数据和校验位磁盘的位置不是固定的,是随机的。
RAID5利用率计算:
n=磁盘数量
特性:
- 最少由三块磁盘组成;
- 数据安全性强(可靠性);
- 数据分散存储在多块数据盘中;
- 读写速率不如RAID0,因为RAID5有一块校验盘;
三、配置软RAID示例
1、RAID5 示例
(1)查看没有用过的磁盘,用于做实验
(2)创建RAID5
命令:mdadm,管理RAID设备。
常用参数:
- -C:创建RAID,并把RAID信息写入每个成员的超级块中;
- -l:指定RAID级别;
- -n:指定RAID中活动磁盘的数量;
- -x:指定RAID中的热备盘数量;
- -D:显示RAID设备的详细信息;
- -r:将指定磁盘移出RAID;
- -f:将指定RAID磁盘设置为故障模式;
- -v:显示详细执行过程;
- -s:扫描配置文件以搜寻丢失的信息;
- -S:停止RAID设备;
- --zero--superblock:使用0覆盖RAID设备中的超级块;
-C:指定RAID名字 -l:指定RAID级别 -n:指定RAID中活动的磁盘数量 -x:指定RAID中的热备盘数量
[root@localhost ~]# mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{f,g,h,i}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]#
(3)格式化RAID5
[root@localhost ~]# mkfs -t ext4 /dev/md0 #为RAID5创建ext4文件系统
mke2fs 1.42.9 (28-Dec-2013)
......
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
(4)挂载RAID5
为什么组合了4个5G的磁盘,而RAID5只有10G容量?
因为活动的磁盘指定了3个,热备盘指定了1个。活动的磁盘当中有1个校验盘,所有剩余的两个磁盘作为了数据盘。
(5)查看RAID5
[root@localhost ~]# mdadm -D /dev/md0 #查看RAID5设备的详细信息
/dev/md0:
Version : 1.2
Creation Time : Sat Mar 16 20:35:50 2024 #raid5创建时间
Raid Level : raid5 #raid级别
Array Size : 10475520 (9.99 GiB 10.73 GB) #raid5可用容量
Used Dev Size : 5237760 (5.00 GiB 5.36 GB)
Raid Devices : 3 #阵列的磁盘数量
Total Devices : 4 #总的磁盘数量
Persistence : Superblock is persistent
Update Time : Sat Mar 16 20:40:09 2024
State : clean #状态是clean,代表raid5是干净的,没问题的
Active Devices : 3 #活动的磁盘数量
Working Devices : 4 #工作中的磁盘数量
Failed Devices : 0 #失败的磁盘数量
Spare Devices : 1 #备用的磁盘数量
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 80262b59:43510cd8:3446da9a:5e15e324
Events : 18
Number Major Minor RaidDevice State
0 8 80 0 active sync /dev/sdf #工作盘1
1 8 96 1 active sync /dev/sdg #工作盘2
4 8 112 2 active sync /dev/sdh #工作盘3
3 8 128 - spare /dev/sdi #热备盘
[root@localhost ~]#
(6)RAID5模拟故障示例
例1:RAID5某块活动磁盘损坏,热备盘自动更换
步骤1:使用watch命令,每0.5秒执行一次查看RAID5磁盘信息命令。tial -n 6:查看最后6行信息
watch -n 0.5 "mdadm -D /dev/md0 | tail -n 6"
步骤2:将活动磁盘/dev/sdf设置为故障,并移出RAID5
热备盘自动更补完成,RAID5中的数据已经恢复。
例2:RAID5某块活动磁盘损坏,其余数据盘通过校验算法恢复数据
步骤1:RAID5磁盘未损坏前,正常查看数据
步骤2:模拟RAID5中的某块活动磁盘损坏
步骤3:再次查看RAID5中的数据,发现数据已经被RAID5通过校验算法恢复
2、RAID1 示例
(1)创建RAID1
[root@localhost ~]# mdadm -C /dev/md0 -l1 -n2 -x1 /dev/sd{b,c,d}
(2)格式化RAID1
[root@localhost ~]# mkfs -t ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
......
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
(3)挂载RAID1
(4)RAID1模拟故障示例
例1:RAID1某块活动磁盘故障,热备盘自动替换
例2:RAID1某块活动磁盘故障,对应备份磁盘自动恢复数据
步骤1:在RAID1模拟故障前,访问RAID1里面的数据
步骤2:RAID1在某块活动磁盘发生损坏后,通过对应备份磁盘恢复数据。
3、RAID0 示例
(1)创建RAID0
[root@localhost ~]# mdadm -C /dev/md1 -l0 -n2 /dev/sd{h,i} #创建RAID0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# cat /proc/mdstat #查看系统上的RAID状态
Personalities : [raid6] [raid5] [raid4] [raid1] [raid0]
md1 : active raid0 sdi[1] sdh[0] #创建成功
10475520 blocks super 1.2 512k chunks
md0 : active raid1 sdb[0]
5237760 blocks super 1.2 [2/1] [U_]
unused devices: <none>
[root@localhost ~]#
(2)格式化RAID0
[root@localhost ~]# mkfs -t ext4 /dev/md1 #为RAID0创建文件系统
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
......
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#
(3)挂载RAID0
(4)验证RAID0读写速率
普通磁盘读入8G内容耗时1分20秒
RAID0读入8G内容耗时54秒
四、删除RAID 示例
请注意:删除RAID可以在实验中模拟,切勿在生产环境中删除RAID。
[root@localhost ~]# umount /dev/md0 #卸载挂载点
[root@localhost ~]# mdadm -Ss /dev/md0 #停止RAID设备
mdadm: stopped /dev/md0
[root@localhost ~# mdadm --zero-superblock /dev/sda{5,6,7,8} #清空磁盘
[root@localhost ~]# cat /proc/mdstat #查看系统上RAID的状态
Personalities : [raid6] [raid5] [raid4] [raid1]
unused devices: <none> #没有RAID设备
五、配置硬RAID 示例
术语:
- Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组。
- VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VD。
- PD(Physical Disk):物理磁盘。
配置DELL服务器的RAID
(此操作适用于Dell R730、R720、R630、R620、R420、R530)
1、启动服务器的时候,会看到界面有CTRL+R的提示,迅速并且多按几次CTRL+R,会进入RAID配置界面
2、进入RAID配置界面,按F2打开虚拟磁盘创建菜单
3、在“ Controller 0 ”选项 按下回车,再选择(按上下键控制)创建虚拟磁盘选项 按下回车
4、在RAID级别选项中,按上下键选择创建的级别,选择好后按回车。
RAID级别的选项,是根据磁盘数量决定的:RAID0 n>=1、RAID1 n>=2、RAID5 n>=3
我这里使用了10块硬盘,所以选择了RAID5
5、按下Tab键移动到“Physical Disks”列表中,上下键移动光标,按空格键选择硬盘。左边框框中显示X,则代表硬盘被选中。
6、选择硬盘后,按Tab键,将光标移至“Basic Settings”中填写VD Name(虚拟磁盘名字),然后再将光标移至OK那里,按回车键。
7、按回车后,会出现如下的提示:如果是一个全新的阵列,建议进行初始化操作,如果配置阵列的目的是为了恢复之前的数据,则不要进行初始化。按回车确认即可继续。
8、按下回车后,返回到RAID配置界面,上面可以看到RAID的配置信息
9、如果创建虚拟磁盘不是为了恢复数据,而是新的虚拟磁盘,则要初始化。按下F2,弹出选项菜单,选择“ Initialization ” 初始化选择,然后选择Fast Init(快速初始化)。Start Init(正常初始化)
10、按下回车后,会弹出提示:初始化将会清除所有数据,如果确认要进行初始化操作,在YES处按回车即可继续。
请注意:初始化会清除硬盘、RAID阵列中的所有信息,且无法恢复。
11、再次按下回车,RAID界面会出现初始化进度条、以及目前正在做的操作。
12、初始化完成后,会弹出提示窗口,选择OK,按下回车,RAID配置即完成。
13、配置完成后,按Esc键退出,选择OK按回车,重启服务器即可。
硬RAID配置参考文章:DELL服务器配置RAID图文教程-CSDN博客