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

系列文章目录

` 提示:仅用于个人学习,进行查漏补缺使用。

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 (称为带区卷,性能最佳)

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

RAID 1

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

RAID 5

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

RAID 6

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

RAID 10

  - **性能**: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

RAID 01是RAID 0和RAID 1的组合,它将多个RAID 0阵列进行镜像。
优点:

高性能: 具有RAID 0的高性能,通过并行读写多个RAID 0阵列。

数据冗余: 具有RAID 1的数据冗余,通过在RAID 0阵列之间进行镜像。
缺点:

故障容忍性低: 无法容忍多块磁盘的故障,一旦一个RAID 0阵列中的任何一块磁盘出现问题,整个系统都会受到影响。

存储效率低: 需要更多的磁盘来实现相同的存储容量,存储效率较低。

RAID总结如下:

配置示例1:

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

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

步骤3. 给这四个硬盘分区,之后lsblk查看 PS:这里可以打个快照,留做案例2
bash 复制代码
fdisk /etc/sde   sdf  sdg   sdh        ### n 1 ....
lsblk
步骤4. 为了后面实验方便,给dev/sde1 sdf1 sdg1 sdh1转换成raid格式
bash 复制代码
fdisk /dev/sde1 sdf1  sdg1  sdh1     ###t   fd    w
步骤5. 使用步骤一工具命令,查看分区的盘有无被使用
bash 复制代码
mdadm -E /dev/sd[e-h]1
步骤6. 使用mdadm -C命令用e、f、g、h 盘创建RAID5磁盘阵列
bash 复制代码
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做热备
步骤7. 系统创建中需要一会儿时间,可用相关命令查看进度
bash 复制代码
cat /proc/mdstat		#查看创建RAID的进度

bash 复制代码
mdadm -D /dev/md0			#查看磁盘阵列的详细信息


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

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

成功页面如下:

步骤8. 检查磁盘是否已做RAID
bash 复制代码
mdadm -E /dev/sd[efgh]1
步骤9. 创建并挂载文件系统
bash 复制代码
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 										  ###系统启动自动挂载刷新





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

1.故障前:

2.模拟故障后:

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

例如:

bash 复制代码
mdadm /dev/md0 -f /dev/sdf1				###移除sdf1
mdadm -D /dev/md0									### 再次查看

继续移除sdg1

bash 复制代码
mdadm /dev/md0 -f /dev/sdg1				###移除sdg1
mdadm -D /dev/md0									### 再次查看

示例2:

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

步骤1.移除RAID5的设备

bash 复制代码
mdadm /dev/md0 -f /dev/sdf1
mdadm /dev/md0 -f /dev/sde1
mdadm /dev/md0 -f /dev/sdh1


步骤2.解除RAID5的挂载

bash 复制代码
umount /dev/md0


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

  • -r:移除设备
  • -a:添加设备
  • -S:停止RAID
  • **-A: 启动RAID **
bash 复制代码
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的运行

bash 复制代码
mdadm -S /dev/md0

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


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

bash 复制代码
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 超级块

步骤6.删除配置文件

bash 复制代码
rm -rf /etc/mdadm.conf

至此,RAID5已经处理干净

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

bash 复制代码
lsblk

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

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

bash 复制代码
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     
bash 复制代码
 cat /proc/mdstat			###查看创建RAID10的进度

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

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

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

bash 复制代码
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			###加入系统启动挂载



步骤10.实现故障恢复

1.故障前使用mdadm -D /dev/md10,正常工作

2.模拟故障

bash 复制代码
mdadm /dev/md0 -f /dev/sde1     ###模拟sde1设备移除

3.故障后查看

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


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

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

内容补充:

bash 复制代码
###  删除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
相关推荐
(⊙o⊙)~哦30 分钟前
linux 解压缩
linux·运维·服务器
牧小七2 小时前
Linux命令---查看端口是否被占用
linux
最新小梦2 小时前
Docker日志管理
运维·docker·容器
衍生星球2 小时前
【网络安全】对称密码体制
网络·安全·网络安全·密码学·对称密码
掘根2 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全
鸡鸭扣3 小时前
虚拟机:3、(待更)WSL2安装Ubuntu系统+实现GPU直通
linux·运维·ubuntu
友友马3 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
千禧年@3 小时前
微服务以及注册中心
java·运维·微服务
2401_872514973 小时前
深入探究HTTP网络协议栈:互联网通信的基石
网络·网络协议·http