Linux-服务器硬件及RAID配置实验

avatar
作者
猴君
阅读量:0

系列文章目录

` 提示:仅用于个人学习,进行查漏补缺使用。
1.Linux介绍、目录结构、文件基本属性、Shell
2.Linux常用命令
3.Linux文件管理
4.Linux 命令安装(rpm、install)
5.Linux账号管理
6.Linux文件/目录权限管理
7.Linux磁盘管理/文件系统
8.Linux逻辑卷管理LVM
9.Linux磁盘配额


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

本章大概内容有:
       RAID磁盘阵列介绍、RAID主要优点、RAID级别、RAID配置实例实验等

提示:以下是本篇文章正文内容,下面案例可供参考

一.RAID磁盘阵列介绍

  • RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)是一种利用多个硬盘驱动器(HDD或SSD)组合起来提供更大存储容量、更高的数据传输速率和/或数据的冗余性的技术。
  • 通过将多个物理硬盘虚拟化为一个或多个逻辑硬盘,RAID允许操作系统将它们视为一个单一的存储资源。

二.RAID主要优点

  1. 性能提升:通过并行处理I/O请求,RAID可以提高数据读写速度。例如,RAID 0通过条带化技术将数据分散存储在多个硬盘中,从而提供更高的吞吐量。
  2. 数据冗余:某些RAID级别(如RAID 1、RAID 5、RAID 6等)提供了数据的冗余存储,即使一个或多个硬盘损坏,也不会丢失数据。
  3. 容错能力:RAID可以检测和纠正某些类型的错误,确保数据的完整性和系统的连续运行。
  4. 灵活性:可以根据需要添加或移除硬盘,扩展存储容量或更换故障硬盘。

三.RAID级别

根据不同的应用场景和需求,RAID有多种不同的级别,每个级别都有其特定的优点和限制。以下是一些常见的RAID级别:

  • RAID 0:提供最大的性能,但没有数据冗余。
  • RAID 1:提供数据镜像,具有很好的冗余性,但存储效率低。
  • RAID 5:提供数据分条存储和分布式奇偶校验,具有较好的性能和冗余性。
  • RAID 6:类似于RAID 5,但提供独立的奇偶校验块,允许两个硬盘同时损坏而不丢失数据。
  • RAID 10:结合了RAID 0的性能优化和RAID 1的数据冗余,提供高速度和高可靠性。

RAID 0 (称为带区卷,性能最佳)

image.png

  - **性能**:RAID 0通过将数据分散存储在多个硬盘上,实现了数据的并行读写,从而提供了最高的存储性能。它非常适合需要高吞吐量的应用,如视频编辑、游戏服务器和一些数据库应用。   - **缺点**:RAID 0没有冗余能力,如果其中一个硬盘失败,所有数据都会丢失。因此,它不适合需要数据保护的环境。 

RAID 1

image.png

  - **性能**:RAID 1提供了良好的读性能,但写性能可能会受到影响,因为数据需要写入两个硬盘。   - **冗余性**:RAID 1通过将数据完全复制到两个硬盘上来实现冗余,如果一个硬盘失败,另一个硬盘仍然可以继续工作,不会丢失数据。   - **存储效率**:由于数据被复制,RAID 1的存储效率只有50%,因为它需要两倍的存储空间来保持数据的冗余。 

RAID 5

image.png

  - **性能**:RAID 5在读取操作上表现良好,尤其是在大容量配置。写入性能也比RAID 1好,因为它不需要像RAID 1那样写入两次。   - **冗余性**:RAID 5通过分布式奇偶校验来实现冗余,每个硬盘上都存储有用于恢复数据的奇偶校验信息。   - **存储效率**:RAID 5的存储效率为(n-1)/n,其中n是硬盘。 

RAID 6

image.png

  - **性能**:RAID 6在写入性能上与RAID 5相似,但读取性能可能略好,因为它有两个独立的奇偶校验块。   - **冗余性**:RAID 6可以承受两个硬盘同时失败而不丢失数据,这提供了比RAID 5更高的数据保护水平。   - **存储效率**:RAID 6的存储效率为(n-2)/n。 

RAID 10

image.png

  - **性能**:RAID 10结合了RAID 0的条带化和RAID 1的镜像技术,提供了出色的读写性能和数据保护。   - **冗余性**:RAID 10具有很高的冗余性,因为它可以承受多个硬盘的失败,具体取决于配置。   - **存储效率**:RAID 10的存储效率为(n/2)/n,因为它需要至少两个硬盘来创建一个镜像。   - **优点:**      1. 高性能: 具有RAID 0的高性能,因为数据可以并行读写。      2. 高可靠性**:** 具有RAID 1的高可靠性,因为数据被镜像到多个磁盘上。   - **缺点:**      1. 成本高: RAID 10需要大量磁盘,因此成本较高。      2. 存储效率低**:** 与RAID 1一样,存储效率较低。 

RAID 01

image.png
RAID 01是RAID 0和RAID 1的组合,它将多个RAID 0阵列进行镜像。
优点:
高性能: 具有RAID 0的高性能,通过并行读写多个RAID 0阵列。
数据冗余: 具有RAID 1的数据冗余,通过在RAID 0阵列之间进行镜像。
缺点:
故障容忍性低: 无法容忍多块磁盘的故障,一旦一个RAID 0阵列中的任何一块磁盘出现问题,整个系统都会受到影响。
存储效率低: 需要更多的磁盘来实现相同的存储容量,存储效率较低。

RAID总结如下:

image.png

配置示例1:

步骤1. 检查是否已安装mdadm软件包【mdadm是用于管理软件磁盘阵列的工具】
rpm -q mdadm yum install -y mdadm 
步骤2. 虚拟机设置”里添加四个50G硬盘,确认添加后输入命令lsblk查看分区列表
lsblk 

image.png
查看到sde,sdf,sdg,sdh四个已添加

步骤3. 给这四个硬盘分区,之后lsblk查看 PS:这里可以打个快照,留做案例2
fdisk /etc/sde   sdf  sdg   sdh        ### n 1 .... lsblk 

image.png

步骤4. 为了后面实验方便,给dev/sde1 sdf1 sdg1 sdh1转换成raid格式
fdisk /dev/sde1 sdf1  sdg1  sdh1     ###t   fd    w 

image.png

步骤5. 使用步骤一工具命令,查看分区的盘有无被使用
mdadm -E /dev/sd[e-h]1 

image.png

步骤6. 使用mdadm -C命令用e、f、g、h 盘创建RAID5磁盘阵列
mdadm -C -v /dev/md0 [-a yes] -l5 -n3 /dev/sd[efg]1 -x1 /dev/sde1  -C:表示新建,类似tar里面的 -C -v:显示创建过程中的详细信息。 /dev/md0:创建 RAID5 的名称。【/dev目录cat下名称为md0】 -a yes:--auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。 -l:指定 RAID 的级别,l5 表示创建 RAID5。 -n:指定使用几块硬盘创建 RAID,n3 表示使用 3 块硬盘创建 RAID。 /dev/sd[efg]1:指定使用这3块磁盘分区去创建 RAID。 -x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作备用 /dev/sde1:指定用作于备用的磁盘  记忆:使用mdadm命令创建磁盘阵列并显示详细信息,在/dev/目录下的名字为md0,级别为RAID5, sd[efg]3个设备做主要的,1个使用/dev/sde1做热备 

image.png

步骤7. 系统创建中需要一会儿时间,可用相关命令查看进度
cat /proc/mdstat		#查看创建RAID的进度 

image.png

mdadm -D /dev/md0			#查看磁盘阵列的详细信息 

image.png
PS:可用watch命令来每隔一段时间刷新 /proc/mdstat 的输出
watch -n 1 ‘cat /proc/mdstat’

watch -n 1 'cat /proc/mdstat'		#每隔1秒刷新时间刷新 /proc/mdstat 的输出 

成功页面如下:
image.png

步骤8. 检查磁盘是否已做RAID
mdadm -E /dev/sd[efgh]1 

image.png

步骤9. 创建并挂载文件系统
mkfs -t xfs /dev/md0					###将刚创建的RAID5磁盘阵列,即/dev/目录下的md0制作文件系统 mkdir /myraid									###创建目录myraid,以便待会用来挂载 mount /dev/md0 /myraid/				###将1里的md0设备挂载到 2里的myraid df -Th												###查看磁盘使用情况,是否挂载到myraid cp /etc/fstab /etc/fstab.bak	###将/et/fstab复制到 /etc/fstab.bak,已做备份【没有bak可以往下走】 vim /etc/fstab								###fstab是系统启动时自动挂载文件系统的信息,编辑 /dev/md0      /myraid        xfs   	 defaults   0  0			###添加记录 mount -a 										  ###系统启动自动挂载刷新 

image.png
image.png
image.png
image.png
image.png

步骤10. 实现模拟故障查看故障恢复
mdadm /dev/md0 -f /dev/sde1		#模拟/dev/sde1 故障		,即移除dev/sde1设备 mdadm -D /dev/md0					#查看发现sdh1已顶替sdbe1 

1.故障前:
image.png
2.模拟故障后:
image.png

PS:这里制作的RAID5(n>=3)有四块物理硬盘,所以这里可以允许有两块物理硬盘出现问题。

例如:

mdadm /dev/md0 -f /dev/sdf1				###移除sdf1 mdadm -D /dev/md0									### 再次查看 

image.png
继续移除sdg1

mdadm /dev/md0 -f /dev/sdg1				###移除sdg1 mdadm -D /dev/md0									### 再次查看 

image.png

示例2:

将示例1的RAID5磁盘阵列(/dev/md0),恢复最初状态,并用efgh四个盘做RAID10.【也可到快照开始做,直接从步骤7开始】

步骤1.移除RAID5的设备

mdadm /dev/md0 -f /dev/sdf1 mdadm /dev/md0 -f /dev/sde1 mdadm /dev/md0 -f /dev/sdh1  

image.png
image.png

步骤2.解除RAID5的挂载

umount /dev/md0 

image.png
补充:mdadm命令其它常用选项

  • -r:移除设备
  • -a:添加设备
  • -S:停止RAID
  • **-A: 启动RAID **
mdadm /dev/md0 -f /dev/sdb1		     ###从RAID阵列 `/dev/md0` 中移除故障的硬盘 `/dev/sdb1`。这通常在检测到硬盘故障时执行。 mdadm /dev/md0 -r /dev/sdb1     ###从RAID阵列 `/dev/md0` 中恢复被移除的硬盘 `/dev/sdb1`。这通常在修复了故障的硬盘后执行。 mdadm /dev/md0 -a /dev/sde1   ###将新硬盘 `/dev/sde1` 添加到已存在的RAID阵列 `/dev/md0` 中,这通常在需要扩展阵列或替换故障硬盘时执行。 

步骤3.停止RAID5的运行

mdadm -S /dev/md0 

image.png

步骤4.删除RAID5目录并vim/etc/fstab进入系统自动挂载文件里删除记录

image.png
image.png

步骤5.解挂载,停止raid设备,删除raid里所有硬盘后,擦除RAID超级块:

mdadm --misc --zero-superblock /dev/sde		 mdadm --misc --zero-superblock /dev/sdf mdadm --misc --zero-superblock /dev/sdg mdadm --misc --zero-superblock /dev/sdg   或者整合成下面这一条指令 mdadm --misc --zero-superblock /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 ##- `--misc` 是一个选项,它允许 `mdadm` 用于一些特殊的操作, ##- `--zero-superblock` 选项用于擦除设备上的 RAID 超级块 

image.png

步骤6.删除配置文件

rm -rf /etc/mdadm.conf 

image.png
至此,RAID5已经处理干净

步骤7.用lsblk命令查看磁盘使用情况

lsblk 

image.png

步骤8.删除各个主分区,接着每个物理盘分四个区,sde1,sdf1,sdg,sdh1都给10G,最后用lsblK命令查看

image.png

步骤7.创建 RAID 10设备(先做镜像,再做条带)

mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[ef]1 mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[gh]1 mdadm -Cv /dev/md10 -l0 -n2 /dev/md0 /dev/md1       或 mdadm -Cv /dev/md0 -l10 -n4 -x1 /dev/sd{e,f,g,h}1      

image.png

 cat /proc/mdstat			###查看创建RAID10的进度 

image.png

步骤8.检查磁盘是否已做RAID

mdadm -E /dev/sd[efgh]1					###检查和显示Linux 中多个设备的详细信息的命令。 

image.png

步骤9.创建并挂载文件系统

mkfs -t xfs /dev/md10			###给/dev/目录下的md10设备制作文件系统 mkdir /myraid							###创建目录挂载点myraid mount /dev/md10 /myraid/		###将文件系统md10挂载到挂载点myraid df -Th											###显示 Linux 系统中文件系统的磁盘空间使用情况	 vim /etc/fstab							###进入系统启动挂载盘目录文件fstab /dev/md10      /myraid        xfs   	 defaults   0  0			###加入系统启动挂载 

image.png
image.png
image.png

步骤10.实现故障恢复

1.故障前使用mdadm -D /dev/md10,正常工作
image.png
2.模拟故障

mdadm /dev/md0 -f /dev/sde1     ###模拟sde1设备移除 

image.png
3.故障后查看

mdadm -detail /dev/md0				###查看md0设备状态,有一个盘有问题,正常运行 mdadm -D /dev/md10						###查看md10设备状态,也能正常运行 

image.png
image.png

步骤11.创建 /etc/mdadm.conf 配置文件,方便管理软RAID的配置,比如启动、停止

echo 'DEVICE /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1'>/etc/mdadm.conf mdadm --detail --scan >> /etc/mdadm.conf ###    配置 `/etc/mdadm.conf` 文件,并扫描现有的 RAID 阵列 

image.png

内容补充:

###  删除raid10过程: 1.先umount组建好的raid    umount /dev/md10  2.停止raid设备:mdadm -S /dev/md10  3.此时如果忘了raid中的硬盘名称,要么重启系统,要么运行:mdadm -A -s /dev/md10 然后再用mdadm -D /dev/md10查看raid 中包含哪几个硬盘。再次运行第二步停止命令:mdadm -S /dev/md10  4.删除raid里的所有硬盘:mdadm --misc --zero-superblock /dev/sde,                          mdadm --misc --zero-superblock /dev/sdf                          mdadm --misc --zero-superblock /dev/sdg                          mdadm --misc --zero-superblock /dev/sdh 有几块硬盘,就按格式删几次,注意最后面的硬盘名称,也可以写在一条命令: [root@localhost ~]# mdadm --misc --zero-superblock /dev/sdb10 /dev/sdf1 /dev/sdg1 /dev/sdh1   5.删除配置文件:rm -rf /etc/mdadm.conf 

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!