Linux——RAID配置实战和系统管理
在数据时代,单块磁盘的性能瓶颈与单点故障风险已成为系统架构的致命弱点。RAID技术通过将多块物理磁盘组合为逻辑单元,且在速度与安全、容量与冗余之间提供了关键平衡。RAID(独立冗余磁盘阵列(Redundant Array of Independent Disks)) 是一种将多块硬盘组合成一个逻辑存储单元的技术。提高性能:通过并行读写操作提升整体速度;提高可靠性:通过数据冗余(如镜像或奇偶校验)实
前言
在数据时代,单块磁盘的性能瓶颈与单点故障风险已成为系统架构的致命弱点。RAID技术通过将多块物理磁盘组合为逻辑单元,且在速度与安全、容量与冗余之间提供了关键平衡。
一、RAID
1、RAID概述
RAID(独立冗余磁盘阵列(Redundant Array of Independent Disks)) 是一种将多块硬盘组合成
一个逻辑存储单元的技术。
通过特定的数据分布算法和冗余机制,RAID 能够在不同程度上实现以下目标:
- 提高性能:通过并行读写操作提升整体速度;
- 提高可靠性:通过数据冗余(如镜像或奇偶校验)实现容错;
- 扩大容量:将多块硬盘合并为一个更大的逻辑卷。
2、RAID级别
2.1、RAID 0
特点:数据分块后分布在多块硬盘上。
优点:读写性能提升显著。
缺点:没有冗余,一块硬盘损坏会导致全部数据丢失。
使用场景:对性能要求高但数据安全要求低的环境(如临时缓存、游戏盘)。
2.2、RAID 1
特点:两块硬盘存储完全相同的数据副本。
优点:高可靠性,一块盘损坏可自动切换到另一块。
缺点:存储利用率仅 50%,成本较高。
使用场景:重要数据存储(如数据库系统、服务器系统盘)。
2.3、RAID 5
特点:数据和奇偶校验信息分布在所有磁盘上。
优点:在提升性能的同时提供一定的容错能力(可容忍一块盘损坏)。
缺点:写入速度略低于 RAID 0,重建时间长。
使用场景:常用于企业文件服务器和网络存储(NAS)。
2.4、RAID 10(1+0)
特点:先做镜像(RAID 1),再条带化(RAID 0)。
优点:兼顾性能与可靠性。
缺点:至少需要 4 块硬盘,成本较高。
使用场景:数据库、高性能服务器。
3、RAID的应用

二、RAID实战
1、RAID 0配置
步骤如下:
1、创建RAID 0矩阵
mdadm -Cv /dev/md10 -l0 -n2 /dev/sde /dev/sdf
2、查看创建结果
cat /proc/mdstat
3、文件格式化
mkfs.xfs /dev/md10
4、挂载
mount /dev/md10 /myraid
2、RAID 1配置
步骤如下:
1、创建RAID 1矩阵
mdadm -Cv /dev/md10 -l1 -n2 /dev/sde /dev/sdf
2、查看创建结果
cat /proc/mdstat
3、文件格式化
mkfs.xfs /dev/md10
4、挂载
mount /dev/md10 /myraid
3、RAID 5配置
步骤如下:
1、检查/安装mdadm包
rpm -q mdadm
yum install -y mdadm
2、对4块硬盘进行分区
使用fdisk对四块硬盘进行分区。
分别为:sde1、sdf1、sdg1、sdh1,类型为Linux raid autodetect
3、创建RAID 5
mdadm -C -v /dev/md0 -a yes -l5 -n3 /dev/sde1 /dev/sdf1 /dev/sdg1 -x1 /dev/sdh1
- -C:表示新建;
- -v:显示创建过程中的详细信息。
- /dev/md0: 创建RAID5的名称。
- -ayes:–auto,表示如果有什么设备文件没有存在的话就自动创建,可省略。
- -l: 指定RAID 的级别,l5表示创建RAID5。.
- -n:指定使用几块硬盘创建RAID, n3表示使用3块硬盘创建RAID。
- /dev/sde1 sdf1 sdg1: 指定使用这3块磁盘分区去创建RAID。
- -x:指定使用几块硬盘做RAID的热备用盘,x1表示保留1块空闲的硬盘作热备用盘
- /dev/sdh1: 指定用作于备用的磁盘
4、查看创建进度
cat /proc/mdstat #还能查看创建RAID的进度
watch -n 10 ‘cat /proc/mdstat’ #用watch命令来每隔-一段时间刷新/proc/mdstat的输出
5、检查磁盘是否已经包含 RAID 信息
mdadm -E /dev/sd[e-h]1
6、格式化文件
mkfs -t xfs /dev/md0
7、创建并挂载文件系统
mkdir /myraid
mount /dev/md0 /myraid/
8、验证是否挂载成功
df -h
9、模拟故障恢复
mdadm /dev/md0 -f /dev/sde1 #模拟/dev/sde1故障
mdadm -D /dev/md0 #查看发现sdh1已顶替sde1
10、重新添加sde1
恢复的sde1将重新做备用盘
mdadm /dev/md0 --add /dev/sde1
4、RAID 10配置
步骤如下:
1、先镜像再条带
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 #条带化
2、查看创建结果
cat /proc/mdstat
3、文件格式化
mkfs.xfs /dev/md10
4、挂载
mount /dev/md10 /myraid
三、Linux系统引导过程
1、引导过程流程
开机自检(bios)–>MBR引导–>GRUB菜单->加载内核(kernel)–>init进程初始化
概述:
Linux 系统的启动流程遵循严谨的层次化初始化模型。其核心序列如下:
固件初始化:BIOS 或 UEFI 固件执行硬件自检(POST),初始化硬件并加载引导设备的首扇区数据。
引导加载阶段:主引导记录(MBR)或 UEFI 引导管理器将控制权移交至 GRUB2 等引导加载程序。GRUB2 加载 Linux 内核及初始内存磁盘(initramfs)至内存,内核解压后接管系统。
内核初始化:内核初始化硬件子系统,加载必要驱动,并挂载根文件系统。随后,内核空间切换至用户空间,启动 init 进程(现代系统通常为 systemd)。
系统与服务管理:systemd 作为首个用户进程(PID 1)接管后续启动流程,并行启动定义在 target 单元中的系统服务,最终完成启动过程,交付可用的操作环境。
2、开机自检
系统开机后,通过BIOS系统对内存、cpu、显卡等设备进行检测。检测成功后,根据BIOS设置的启动顺序,系统会找到一个设备(硬盘、光驱、U盘等)进行引导。
总结:硬件自检并读取启动设备顺序,找到第一个启动设备(硬盘、光盘、u盘)。
3、MBR引导
如果从硬盘启动,系统会从硬盘的第一个扇区加载 MBR(主引导记录),并通过 MBR 启动菜单(如 GRUB)选择操作系统启动。
总结:从硬盘的MBR引导程序启动,运行GRUB引导加载器
4、GRUB引导菜单
GRUB(GRand Unified Bootloader)是 Linux 常用的多重操作系统引导程序。GRUB 会显示启动菜单,用户选择启动项后加载操作系统的内核文件,并将控制权交给内核。
总结::GRUB 引导程序读取 /boot/grub2/grub.cfg 文件,加载并启动操作系统内核。
5、加载linux内核
内核文件是一个预编译的二进制文件,介于硬件与系统程序之间,负责管理硬件资源和系统进程。
总结:将内核文件和镜像文件加载到内存。
6、init 进程初始化
内核加载后,会启动系统的初始化进程 /sbin/init ,该进程负责进一步的系统初始化工作,如加载硬件驱动、启动系统服务,最终等待用户登录。
总结:内核加载并启动 init 进程,完成系统的初始化。
四、Systemd服务管理
1、Systemd的作用
并行启动服务,与传统的 SysVinit 相比,开机更快
按需启动服务,提高系统效率
2、 运行级别和Systemd目标
可以理解成你的手机模式。比如:手机的安全模式、标准模式等
3、设置和切换运行级别
3.1、查看当前的目标
systemctl get-default
3.2、设置默认目标
将multi-user.target设置为默认目标
systemctl set-default multi-user.target
3.3、切换目标
切换到图形化界面
systemctl isolate graphical.target
示例:
将当前目标设置为rescue.target,开机时会让系统进入一个仅限 root 访问的维护模式,用于解决无法在正常多用户环境下处理的严重系统问题。如图所示:
3.4、扩展-使用init切换目标(级别)
例如:我要切换成单用户模式,直接 init 1
这样就十分简单!
4、服务管理
4.1、查看服务状态
systemctl status httpd
4.2、开启服务
systemctl start httpd
4.3、关闭服务
systemctl stop httpd
4.4、设置服务开机自启动
systemctl enable httpd
4.5、关闭服务开机自启动
systemctl disable httpd
4.6、查看服务开机启动状态
systemctl is-enabled httpd
4.7、列出已启用的服务
systemctl list-unit-files | grep enable
4.8、列出系统所有激活的服务
systemctl list-units --type=service
4.9、重启服务
systemctl restart httpd
5、服务扩展
5.1、修改主机名称
命令 设置主机名 主机名称
hostnamectl set-hostname newname
5.2、关闭防火墙
systemctl stop firewalld
5.3、重新加载服务配置
systemctl reload firewalld
五、扩展
chkconfig 是一个用于查看和配置服务是否在特定运行级别下启动的工具。常用命令如下:
查看服务状态:
chkconfig --list httpd
添加服务到系统:
chkconfig --add httpd
设置服务在特定级别下启动:
chkconfig --level 35 httpd on
总结
本教程通过RAD、系统引导和Systemd的介绍,让你在Linux系统运维中游刃有余。
RAID:多盘组合,兼顾数据安全与I/O性能,是存储基石。
系统引导:从BIOS到内核加载,再到systemd接管,完成服务初始化。
Systemd:现代Linux的服务管理器,统一管理所有进程与系统状态。
更多推荐


所有评论(0)