服务器硬件及RAID配置实战
开机自检(POST)→ MBR 引导(加载 GRUB)→ GRUB 引导菜单(选择内核)→ 加载内核与 initramfs → init 进程初始化(挂载文件系统、启动服务、显示登录界面)。这一过程环环相扣,任何环节出错(如 MBR 损坏、GRUB 配置错误、内核丢失)都会导致系统无法正常启动。2 Systemd。
目录
1. 开机自检(POST,Power-On Self-Test)
RAID 概念
RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种将多个物理硬盘通过硬件或软件方式组合成一个逻辑存储单元的技术,其核心目的是通过数据分布存储和冗余设计,提升存储系统的性能、可靠性或容量,常见于服务器、工作站等对存储有高要求的场景。
RAID 的核心作用:
- 提升性能:通过将数据分散到多个磁盘并行读写(条带化,Striping),提高数据传输速率。
- 增强可靠性:通过冗余数据(如镜像、校验信息),在单个或多个磁盘故障时,仍能保证数据不丢失并可恢复。
- 扩展容量:将多个小容量磁盘组合成一个大容量逻辑磁盘,方便管理和使用。
常见 RAID 级别及特点:
不同的 RAID 级别(如 RAID0、RAID1、RAID5、RAID6、RAID10 等)采用不同的数据分布和冗余策略,适用于不同场景:
| RAID 级别 | 核心特点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| RAID0 | 无冗余,数据被分成块(条带)分散存储在多个磁盘(至少 2 块)。 | 读写速度最快,容量 = 所有磁盘总和。 | 无容错能力,任一磁盘故障则数据全丢。 | 临时数据存储、视频编辑(追求速度) |
| RAID1 | 镜像模式,数据同时写入 2 块磁盘(互为镜像),至少 2 块磁盘。 | 可靠性最高,一块磁盘故障时数据不丢。 | 容量 = 单块磁盘容量(利用率 50%),写入速度略低。 | 系统盘、关键数据(如数据库日志) |
| RAID5 | 分布式校验,数据条带化存储 + 校验信息分散在所有磁盘(至少 3 块)。 | 兼顾性能与可靠性,容量 =(n-1)× 单盘容量(n 为磁盘数)。 | 只允许单盘故障,重建时性能下降。 | 通用服务器存储(如文件服务器) |
| RAID6 | 双校验,在 RAID5 基础上增加第二份校验信息(至少 4 块磁盘)。 | 允许同时 2 块磁盘故障,可靠性更高。 | 写入性能略低于 RAID5,容量 =(n-2)× 单盘容量。 | 大容量存储(如数据归档) |
| RAID10 | 先镜像(RAID1)再条带(RAID0),至少 4 块磁盘(成对镜像)。 | 兼顾速度与可靠性,故障恢复快。 | 容量 = 总容量的 50%,成本较高。 | 高 IO 需求场景(如数据库服务器) |
RAID 实现方式:
- 硬件 RAID:通过独立的 RAID 控制器(硬件卡)实现,性能好、不占用主机资源,但成本高。
- 软件 RAID:通过操作系统或软件(如 Linux 的
mdadm)实现,无需额外硬件,成本低,但依赖主机 CPU 资源。
RAID5 实操

检查是否已安装mdadm软件包
使用fdisk工具进行分区

“t”命令进入 “fd”命令该分区

ls /dev/sd* 查看创建 sdb sdd sdc sde 盘
lsblk -f 查看挂哪了

创建RAID5

成功示例

这些输出信息表明 RAID 阵列已成功创建并启动
查看RAID磁盘详细信息
创建并挂载文件系统
格式化(重点): mkfs -t xfs /dev/“用户名”

mkdir命令创建文件,
mount /dev/md123 /myraid 使用挂载挂载创建的文件上

df -h 查看挂载

复制文件
编辑文件
配置表

cat /proc/mdstat
是查看 Linux 系统中软件 RAID(由 mdadm 管理)状态的核心命令,输出内容会显示当前所有 RAID 阵列的信息,包括阵列名称、状态、设备组成、同步进度等。
mdadm -D
mdadm -D 是 mdadm --detail 的简写,用于查看 特定 RAID 阵列的详细信息,但该命令必须指定具体的 RAID 设备路径(如 /dev/md0),否则会报错(提示 “缺少设备参数”)。

系统管理
Linux 系统引导过程
Linux 系统引导过程围绕 开机自检、MBR 引导、GRUB 引导菜单、加载内核、init 进程初始化 这几个核心环节展开,具体流程如下:
1. 开机自检(POST,Power-On Self-Test)
- 触发时机:计算机接通电源后,主板上的 BIOS(基本输入输出系统)固件首先被激活。
- 核心作用:对硬件进行基础检测,包括 CPU、内存、显卡、硬盘、主板接口等核心组件是否正常工作。若硬件故障(如内存未插稳、硬盘未识别),会通过蜂鸣声(如连续短鸣表示内存问题)或屏幕报错提示,引导过程终止。
- 关键结果:自检通过后,BIOS 会按照预设的 “启动顺序”(可在 BIOS 设置中修改,如优先从硬盘、U 盘启动),寻找第一个可启动的设备(通常是系统硬盘)。
2. MBR 引导(主引导记录加载)
- 触发时机:BIOS 找到启动硬盘后,读取硬盘的第一个扇区(即 MBR,主引导记录)。
- MBR 的作用:MBR 是硬盘的第一个 512 字节扇区,包含三部分内容:
- 引导代码(前 446 字节):负责定位并加载硬盘上的引导程序(如 GRUB)。
- 分区表(中间 64 字节):记录硬盘的分区信息(如分区大小、起始位置),最多支持 4 个主分区。
- 结束标志(最后 2 字节,固定为
0x55AA):用于 BIOS 识别该扇区为有效引导扇区。
- 核心操作:BIOS 执行 MBR 中的引导代码,引导代码会根据分区表信息,找到存储引导程序(如 GRUB)的分区(通常是
/boot分区),并加载引导程序的核心部分到内存。
3. GRUB 引导菜单(选择启动项)
- GRUB 的角色:GRUB(Grand Unified Bootloader)是 Linux 主流的引导程序,负责提供启动菜单并加载内核。MBR 引导代码加载的正是 GRUB 的 “第一阶段”,随后 GRUB 会加载自身的配置文件和核心镜像。
- 引导菜单显示:GRUB 启动后,会读取
/boot/grub/grub.cfg配置文件,在屏幕上显示引导菜单,内容包括:- 系统内核版本(如
Linux 5.4.0-91-generic)、 - 救援模式(Recovery Mode)、
- 其他操作系统(若双系统,如 Windows)。用户可通过键盘选择启动项,默认等待几秒后自动进入默认选项。
- 系统内核版本(如
- 关键作用:根据用户选择(或默认配置),GRUB 定位并准备加载对应的 Linux 内核文件和初始内存盘(initramfs)。
4. 加载 Linux 内核(Kernel)
- 内核文件位置:Linux 内核存储在
/boot目录下,文件名通常为vmlinuz-<版本号>(如vmlinuz-5.4.0-91-generic),是压缩的内核镜像。 - 加载过程:GRUB 按照引导菜单的配置,将内核文件和初始内存盘(
initramfs-<版本号>.img或initrd-<版本号>.img)加载到内存中:- 内核(vmlinuz):是系统的核心,负责管理 CPU、内存、磁盘等硬件资源,提供进程调度、文件系统管理等核心功能。
- 初始内存盘(initramfs):是一个临时的小型文件系统,包含启动阶段必需的驱动程序(如硬盘控制器驱动、文件系统驱动)和工具,帮助内核在早期识别并挂载根文件系统(
/)。
- 内核启动:内核加载到内存后,会解压并运行,初始化硬件(替换 BIOS 的基础检测结果,更精准地配置设备),并通过 initramfs 完成根文件系统的挂载准备。
5. init 进程初始化(系统第一个进程)
- 触发时机:内核完成初始化后,会启动系统中的第一个进程(PID=1),即
init进程(传统系统)或其替代者systemd(现代系统,如 CentOS 7+、Ubuntu 16.04+)。 - 核心职责:
init进程是所有后续进程的 “父进程”,负责系统环境的初始化,主要包括:- 挂载文件系统:根据
/etc/fstab配置,挂载根文件系统(/)及其他分区(如/home、/boot)。 - 启动系统服务:按预设的 “运行级别”(传统
init)或 “目标(target)”(systemd)启动关键服务,如网络服务、日志服务、防火墙等。- 例如,
systemd会启动multi-user.target(多用户命令行模式)或graphical.target(图形界面模式)对应的服务。
- 例如,
- 初始化系统环境:设置主机名(
/etc/hostname)、时区(/etc/localtime)、网络配置等。 - 启动登录界面:若为图形界面模式,会启动登录管理器(如 GDM、LightDM),等待用户登录。
- 挂载文件系统:根据
- 最终结果:完成所有初始化后,系统进入可交互状态,用户通过登录界面输入账号密码,即可使用系统。
总结流程
开机自检(POST)→ MBR 引导(加载 GRUB)→ GRUB 引导菜单(选择内核)→ 加载内核与 initramfs → init 进程初始化(挂载文件系统、启动服务、显示登录界面)。这一过程环环相扣,任何环节出错(如 MBR 损坏、GRUB 配置错误、内核丢失)都会导致系统无法正常启动。
2 Systemd
Systemd优点
ystemd 支持并行启动服务,通过分析服务间的依赖关系,同时启动无依赖的服务(如网络服务、日志服务、数据库服务等可并行初始化),极大缩短了系统启动时间。
.统一的系统管理接口,简化操作与监控
Systemd 整合了系统启动、服务管理、日志收集、设备管理、电源控制等功能,提供了统一的命令行工具(systemctl),替代了传统的 service、chkconfig、initctl 等分散工具,降低了系统管理复杂度。例如:
- 启动 / 停止服务:
systemctl start/stop <服务名> - 设置开机自启:
systemctl enable <服务名> - 查看服务状态:
systemctl status <服务名> - 查看系统日志:
journalctl(无需依赖rsyslog等第三方工具,直接读取系统统一日志)
这种统一性不仅简化了操作,还让服务状态监控、故障排查更直观高效。
此外,Systemd 还支持动态管理(无需重启即可生效配置)、精确的依赖控制、快照功能(保存系统状态)等特性,使其成为当前主流 Linux 发行版(如 CentOS 7+、Ubuntu 16.04+、Debian 9+)的默认初始化系统。
3 运行级别与 Systemd 目标
在 Linux 系统中,“运行级别”(Runlevel)是传统 SysV init 系统中定义系统状态的概念,而 Systemd 则用 “目标(Target)” 替代了运行级别,二者二者本质上都是为了定义系统启动后的状态(如多用户模式、图形界面模式等),但实现方式和命名有所不同。
1. 传统运行级别(SysV init)
传统运行级别通过数字 0-6 定义,每个级别对应特定的系统状态,配置文件为 /etc/inittab,核心级别含义如下:
0:关机(halt)1/s/single:单用户模式(无网络,仅 root 可登录,用于修复系统)2:多用户模式(无网络服务,部分发行版默认)3:多用户模式(带网络服务,纯命令行)4:未使用(保留,可自定义)5:多用户模式(带网络服务和图形界面)6:重启(reboot)
通过 runlevel 命令可查看当前运行级别,通过 init <级别> 可切换级别(如 init 3 切换到命令行模式)。
2. Systemd 目标(Target)
Systemd 用 “目标(Target)” 替代运行级别,目标是一个或多个 “单元文件(.service、.mount 等)” 的集合,通过 systemctl 命令管理,核心目标与传统运行级别的对应关系如下:
| 传统运行级别 | Systemd 目标 | 含义(与对应运行级别一致) |
|---|---|---|
| 0 | poweroff.target |
关机 |
| 1/single | rescue.target |
救援模式(类似单用户,提供基础修复环境) |
| 2/3/4 | multi-user.target |
多用户模式(带网络,默认命令行,2/3/4 合并为一个目标) |
| 5 | graphical.target |
图形界面模式(依赖 multi-user.target) |
| 6 | reboot.target |
重启 |
Systemd命令(部分)
systemctl enable <服务名>
2. 验证是否启用成功
systemctl is-enabled <服务名>
- 输出
enabled表示已启用,disabled表示未启用。
禁用开机启动:
systemctl disable <服务名>
查看服务状态
systemctl start sshd
-
临时关闭防火墙(立即生效,重启后恢复):
systemctl stop firewalld -
禁止防火墙开机启动(永久关闭,需重启生效):
systemctl disable firewalld -
同时临时关闭并禁止开机启动:
systemctl stop firewalld && systemctl disable firewalld
4.重新启动防火墙服务
更多推荐



所有评论(0)