Linux——RAID配置系统管理(六)
·
七、RAID配置与系统管理
文章目录
前言
本章将深入探讨这两个关键领域。服务器硬件及RAID配置实战” 将带您从磁盘原理出发,深入理解RAID技术如何通过冗余与并行来构建高性能、高可用的存储方案,并通过详细的mdadm命令演示,让您具备配置与维护软件RAID的实际操作能力。紧随其后“系统管理”,则将焦点转向系统本身,详细解析从开机到服务就绪的完整引导流程,并系统性地介绍现代Linux的systemd服务管理机制。您将学习如何使用systemctl、journalctl等核心命令,像一名熟练的舵手一样,全面掌控服务的生命周期、系统运行状态与故障排查。
一、服务器硬件及 RAID 配置
1.RAID 概念概述
AID(独立冗余磁盘阵列,Redundant Array of Independent Disks)是一种将多块硬盘组合成一个逻辑存储单元的技术。通过特定的数据分布算法和冗余机制,
- 提高性能:通过并行读写操作提升整体速度;
- 提高可靠性:通过数据冗余(如镜像或奇偶校验)实现容错;
- 扩大容量:将多块硬盘合并为一个更大的逻辑卷。
RAID级别对比总结
| RAID级别 | 最少磁盘 | 可用容量 | 容错能力 | 读性能 | 写性能 | 适用场景 |
|---|---|---|---|---|---|---|
| RAID 0 | 2 | 100% | 无 | 优秀 | 优秀 | 临时数据、缓存 |
| RAID 1 | 2 | 50% | 优秀 | 优秀 | 中等 | 系统盘、关键数据 |
| RAID 5 | 3 | (n-1)/n | 良好 | 优秀 | 中等 | 文件服务器、NAS |
| RAID 6 | 4 | (n-2)/n | 优秀 | 优秀 | 较低 | 大容量归档存储 |
| RAID 10 | 4 | 50% | 优秀 | 优秀 | 优秀 | 数据库、关键业务 |
选择建议:
- 追求性能: RAID 0
- 追求安全: RAID 1
- 平衡性价比: RAID 5
- 大容量高安全: RAID 6
- 最佳性能+安全: RAID 10
2.RAID实战命令详解
1. 检查并安装mdadm
rpm -q mdadm # 查询是否已安装mdadm软件包,rpm是软件包管理工具,-q表示查询
yum install -y mdadm # 安装mdadm软件包,yum是软件包管理器,-y表示自动确认安装
2 .分区并设置类型为RAID
fdisk /dev/sdb # 对第二块SCSI硬盘进行分区,进入交互式分区界面
查看这四块硬盘名称,和信息
fdisk交互命令详解:
n # 创建新分区 (new partition)
p # 选择主分区类型 (primary partition)
1 # 分区编号为1 (partition number 1)
回车 # 接受默认起始扇区 (default start sector)
回车 # 接受默认结束扇区,使用全部空间 (default end sector, use all space)
t # 更改分区类型 (change partition type)
fd # 设置为Linux RAID类型 (Linux RAID auto-detect)
w # 写入分区表并退出 (write partition table and exit)


按顺序将/sdb、/sdc、/sdd、/sde。依次分区.
3. 创建RAID设备

① 创建RAID 5
mdadm -C -v /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
参数详细注释:
-C# 创建新的RAID设备 (create)-v# 显示详细信息 (verbose)/dev/md0# RAID设备名称,第一个RAID设备 (RAID device name)-l5# RAID级别为5 (RAID level 5)-n3# 使用3块活跃磁盘 (number of active devices)/dev/sd[bcd]1# 使用的数据盘:sdb1, sdc1, sdd1 (data disks)-x1# 使用1块热备盘 (number of spare disks)/dev/sde1# 热备盘设备 (hot spare disk)
4. 查看RAID状态

cat /proc/mdstat # 查看系统RAID状态信息,显示构建进度
mdadm -D /dev/md0 # 显示RAID设备的详细信息 (detail)
watch -n 10 'cat /proc/mdstat' # 每10秒刷新查看RAID状态,监控构建过程
mdadm -E /dev/sd[b-e]1 # 检查磁盘上的RAID元数据信息 (examine)
5. 创建文件系统并挂载


创建文件并挂载
mkfs -t xfs /dev/md0 # 在RAID设备上创建XFS文件系统 (make filesystem)
mkdir /myraid # 创建挂载点目录 (make directory)
mount /dev/md0 /myraid # 将RAID设备挂载到指定目录
df -h # 查看磁盘使用情况,确认挂载成功 (disk free)

这里已经挂载成功了
6 .配置开机自动挂载
echo '/dev/md0 /myraid xfs defaults 0 0' >> /etc/fstab
/etc/fstab字段详解:
/dev/md0# 要挂载的设备 (device to mount)/myraid# 挂载点目录 (mount point)xfs# 文件系统类型 (filesystem type)defaults# 挂载选项:默认参数 (mount options)0# dump备份标志:0表示不备份 (dump flag)0# fsck检查顺序:0表示不检查 (filesystem check order)
7 .模拟故障与恢复
mdadm /dev/md0 -f /dev/sdb1 # 模拟sdb1磁盘故障 (fail)
mdadm -D /dev/md0 # 查看RAID状态,确认热备盘是否自动顶替
mdadm /dev/md0 -r /dev/sdb1 # 从RAID中移除故障盘 (remove)
mdadm /dev/md0 -a /dev/sde1 # 添加新盘作为热备盘 (add)
8 .保存RAID配置
echo 'DEVICE /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1' > /etc/mdadm.conf
mdadm --detail --scan >> /etc/mdadm.conf
命令说明:
- 第一行:定义RAID使用的所有物理设备
- 第二行:扫描当前系统RAID信息并追加到配置文件,确保系统重启后能识别RAID
9. 其他常用RAID管理命令
mdadm --stop /dev/md0 # 停止RAID设备 (stop)
mdadm --assemble /dev/md0 # 重新组装RAID设备 (assemble)
mdadm --grow /dev/md0 --raid-devices=4 # 扩展RAID设备中的磁盘数量
cat /proc/mdstat # 查看RAID状态和同步进度
二、系统管理
1 Linux 系统引导过程
引导流程详解:

① 开机自检 (BIOS/UEFI)
# BIOS:基本输入输出系统,检测硬件并初始化
# UEFI:统一可扩展固件接口,现代替代方案
dmesg | grep -i "bios\|uefi" # 查看引导相关的内核消息
② MBR引导
# 主引导记录,位于磁盘第一个扇区(512字节)
# 结构:引导代码(446B) + 分区表(64B) + 结束标志(2B)
fdisk -l /dev/sda # 查看磁盘分区信息,包括MBR
dd if=/dev/sda bs=512 count=1 | file - # 查看MBR信息
③ GRUB引导菜单
# GRUB2配置文件路径:
cat /boot/grub2/grub.cfg # 查看GRUB配置(不要直接编辑)
cat /etc/default/grub # 查看GRUB默认配置
grub2-mkconfig -o /boot/grub2/grub.cfg # 重新生成GRUB配置
④ 加载Linux内核
ls /boot/vmlinuz* # 查看内核文件
ls /boot/initramfs* # 查看初始内存磁盘镜像
uname -r # 查看当前运行的内核版本
⑤ init进程初始化
# 传统SysVinit:
ps -p 1 # 查看PID为1的进程(init进程)
ls -la /sbin/init # 查看init程序
# 现代systemd:
systemctl --version # 查看systemd版本
8.2 Systemd 服务管理
8.2.1 Systemd 基础概念
运行级别与目标的对应关系:
| 运行级别 | Systemd 目标 | 说明 |
|---|---|---|
| 0 | poweroff.target |
关机 |
| 1 | rescue.target |
单用户模式(维护模式) |
| 2, 3, 4 | multi-user.target |
多用户文本模式 |
| 5 | graphical.target |
图形界面模式 |
| 6 | reboot.target |
重启 |
8.2.2 运行级别管理命令
systemctl get-default # 查看当前默认目标
systemctl set-default multi-user.target # 设置默认目标为多用户模式
systemctl isolate graphical.target # 切换到图形界面模式
systemctl list-units --type=target # 查看所有目标单元
8.2.3 服务管理命令详解
服务状态管理:
systemctl status sshd # 查看sshd服务状态
systemctl start sshd # 启动sshd服务
systemctl stop sshd # 停止sshd服务
systemctl restart sshd # 重启sshd服务
systemctl reload sshd # 重新加载配置(不重启服务)
服务启用与禁用:
systemctl enable sshd # 设置sshd开机自启
systemctl disable sshd # 禁用sshd开机自启
systemctl is-enabled sshd # 检查sshd是否开机自启
systemctl list-unit-files | grep enabled # 列出所有已启用的服务
服务列表查看:
systemctl list-units --type=service # 列出所有服务单元
systemctl list-dependencies sshd # 查看sshd服务的依赖关系
systemctl --failed # 查看启动失败的服务
8.2.4 防火墙服务管理
systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 启动防火墙
systemctl stop firewalld # 停止防火墙
systemctl enable firewalld # 设置防火墙开机自启
firewall-cmd --state # 检查防火墙运行状态
firewall-cmd --list-all # 查看防火墙所有规则
8.2.5 主机名管理
hostname # 查看当前主机名(临时)
hostnamectl status # 查看主机名详细信息
hostnamectl set-hostname server01.example.com # 永久修改主机名
cat /etc/hostname # 查看主机名配置文件
8.3 系统服务监控与日志
8.3.1 服务日志查看
journalctl -u sshd # 查看sshd服务的日志
journalctl -u sshd -f # 实时跟踪sshd服务日志
journalctl --since "2024-01-01 00:00:00" # 查看指定时间后的日志
journalctl --until "2024-01-01 12:00:00" # 查看指定时间前的日志
journalctl -p err # 查看错误级别的日志
8.3.2 系统状态监控
systemctl status # 查看系统整体状态
systemctl list-jobs # 查看当前运行的任务
systemctl show sshd # 显示sshd服务的所有属性
8.4 传统服务管理(chkconfig)
8.4.1 chkconfig 命令详解
chkconfig --list # 列出所有服务的运行级别设置
chkconfig --list sshd # 查看sshd服务的运行级别设置
chkconfig --add sshd # 将sshd服务添加到chkconfig管理
chkconfig --del sshd # 从chkconfig管理中删除sshd服务
chkconfig --level 35 sshd on # 在运行级别3和5启用sshd服务
chkconfig --level 01246 sshd off # 在指定运行级别禁用sshd服务
8.4.2 service 命令(SysVinit兼容)
service sshd status # 查看sshd服务状态
service sshd start # 启动sshd服务
service sshd stop # 停止sshd服务
service sshd restart # 重启sshd服务
service --status-all # 查看所有服务状态
8.5 实战案例
案例1:部署Web服务并设置开机启动
# 安装Apache服务
yum install -y httpd
# 启动服务并设置开机自启
systemctl start httpd # 立即启动Apache
systemctl enable httpd # 设置开机自启
systemctl status httpd # 检查服务状态
# 配置防火墙允许HTTP服务
firewall-cmd --permanent --add-service=http # 永久允许HTTP
firewall-cmd --permanent --add-service=https # 永久允许HTTPS
firewall-cmd --reload # 重新加载防火墙配置
# 测试服务
curl http://localhost # 本地测试Web服务
案例2:系统维护模式切换
# 切换到单用户模式(维护模式)
systemctl rescue # 进入救援模式(需要root密码)
# 或者使用传统方式
init 1 # 切换到运行级别1(单用户模式)
# 切换回多用户模式
systemctl default # 返回默认目标
# 或者
init 3 # 切换到运行级别3(多用户模式)
案例3:服务故障排查
# 查看失败的服务
systemctl --failed # 列出启动失败的服务
# 查看服务详细日志
journalctl -u failed-service --no-pager -l # 查看指定服务的详细日志
# 重置失败状态
systemctl reset-failed failed-service # 重置服务的失败状态
# 重新启动服务
systemctl start failed-service # 重新启动失败的服务
8.6 系统管理总结
关键命令回顾:
systemctl 核心命令:
systemctl start/stop/restart/reload SERVICE # 服务生命周期管理
systemctl enable/disable SERVICE # 开机自启管理
systemctl status SERVICE # 服务状态查看
systemctl list-units --type=service # 服务列表查看
系统状态监控:
hostnamectl status # 系统信息查看
journalctl -u SERVICE # 服务日志查看
systemctl --failed # 失败服务查看
运行级别管理:
systemctl get-default/set-default TARGET # 默认目标管理
systemctl isolate TARGET # 目标切换
systemctl list-units --type=target # 目标列表
最佳实践建议:
- 服务管理:优先使用
systemctl命令,它是现代Linux的标准 - 故障排查:使用
journalctl查看服务日志进行问题诊断 - 开机启动:生产环境中谨慎设置服务开机自启
- 防火墙:在启用服务前确保防火墙规则正确配置
- 备份配置:修改重要服务配置前做好备份
总结
总而言之,一个健壮的服务系统,既离不开底层RAID提供的稳定数据底座,也离不开上层systemd对服务与资源的精细调度。 将第七章的“硬件之稳”与第八章的“系统之控”相结合,您已经具备了运维一台Linux服务器的核心能力,为构建高可用的IT服务打下了坚实的基础。
更多推荐



所有评论(0)