一、基础硬盘管理:分区 + 文件系统
1.1 硬盘核心物理属性(出厂固定,不可修改)
硬盘出厂后物理属性固化,决定基础性能上限,无法通过软件调整:
-
容量:硬盘最大存储空间
-
I/O读写性能:读写速度、响应延迟
-
硬件安全性:硬盘物理防护、坏道容错、寿命上限
1.2 硬盘分区
核心作用:将整块物理硬盘,划分为多个独立的逻辑区域,方便分类存储数据、单独管理、重装系统不丢失数据。
常用分区工具:fdisk(MBR分区)、parted(GPT分区,支持2T以上大硬盘)
1.3 创建文件系统(格式化)
分区只是划分区域,必须格式化(创建文件系统)后才能存储数据,格式化的本质是给分区写入文件管理规则。Linux中主要分为两种存储空间格式:
(1)普通数据分区(常规存储空间)
用于存储系统、程序、用户数据,常用文件系统:ext4、xfs
实操案例:将/dev/sdb1分区格式化为ext4格式
# 格式化分区 mkfs.ext4 /dev/sdb1 # 挂载分区到/data目录,即可正常使用 mkdir -p /data mount /dev/sdb1 /data
(2)交换分区(swap分区)
作用:充当虚拟内存,物理内存不足时,将临时数据存入swap分区,防止系统卡顿、程序崩溃,不用于存储永久数据。
实操案例:创建并启用swap分区
# 格式化为swap格式 mkswap /dev/sdb2 # 启用swap分区 swapon /dev/sdb2
二、硬盘动态管理:LVM逻辑卷(核心:弹性扩容缩容)
普通分区弊端:分区大小固定,空间不足无法扩容、空间过剩无法缩减。LVM逻辑卷实现硬盘空间动态管理,支持在线扩容、缩容,无需重启、不丢失数据,是企业服务器主流方案。
2.1 LVM三大核心概念(层级关系:PV→VG→LV)
1. 物理卷 PV(Physical Volume)
物理底层,将普通硬盘/分区初始化为LVM专用格式,是LVM的基础单元。
2. 卷组 VG(Volume Group)
将多个PV整合为一个大的存储资源池,屏蔽单块硬盘的限制,所有空间统一调度。
3. 逻辑卷 LV(Logical Volume)
从VG资源池中划分出的可用空间,相当于"动态分区",最终用于挂载使用,支持弹性伸缩。
2.2 LVM完整实操案例
场景:新增2块1G硬盘/dev/sdb、/dev/sdc,组建LVM,实现动态空间管理
# 1. 创建物理卷PV pvcreate /dev/sdb /dev/sdc # 2. 创建卷组VG(命名为vg01) vgcreate vg01 /dev/sdb /dev/sdc # 3. 创建逻辑卷LV(从vg01划分1.5G空间,命名为lv01) lvcreate -L 1.5G -n lv01 vg01 # 4. 格式化并挂载使用 mkfs.ext4 /dev/vg01/lv01 mkdir /lvm_data mount /dev/vg01/lv01 /lvm_data # 5. 在线扩容(无需卸载,不丢数据) lvextend -L +500M /dev/vg01/lv01 # 刷新文件系统,让扩容生效 resize2fs /dev/vg01/lv01
三、RAID磁盘阵列(物理存储性能/安全二次提升)
3.1 RAID核心作用
单块硬盘性能、安全性有限,RAID通过组合多块物理硬盘,二次提升存储的容量、I/O读写速度、数据安全性(容错),是服务器必备技术。
3.2 RAID两种实现方式
1. 硬RAID(物理阵列卡)
外接独立硬件阵列卡设备,硬盘插在阵列卡上,通过主板BIOS(F2进入)配置阵列。
优势:不占用服务器CPU、性能强、稳定性高,企业高端服务器首选
采购重点:阵列卡支持的RAID模式、接口类型(SATA/NVMe)
2. 软RAID(系统虚拟化实现)
无硬件设备,通过Linux系统mdadm软件模拟阵列,占用少量CPU资源,适合小型服务器、测试环境。
3.3 主流RAID模式参数详解(修正原版错误+场景适配)
核心原则:组建RAID的硬盘容量、性能尽量一致,高配硬盘会被低配硬盘拉低性能,造成资源浪费
| RAID级别 | 所需磁盘数 | I/O性能 | 数据安全性(容错) | 可用存储空间 | 适用场景 |
|---|---|---|---|---|---|
| RAID0 | ≥2 | 读写大幅提升(条带化读写) | 无容错,坏1块盘所有数据丢失 | 无损耗,总容量=所有硬盘容量之和 | 临时存储、追求极致速度、无重要数据 |
| RAID1 | ≥2(偶数) | 读提升、写无提升(双向镜像) | 极高容错,最多坏所有盘-1块 | 损耗50%,总容量=单块硬盘容量 | 系统盘、重要数据存储(优先安全) |
| RAID4 | ≥3 | 读提升、写性能弱(校验盘瓶颈) | 可坏1块盘,多块损坏数据丢失 | 损耗1块盘容量,总容量=(磁盘数-1)×单盘容量 | 基本淘汰,无生产使用场景 |
| RAID5 | ≥3 | 读写均提升(无单点瓶颈) | 可坏1块盘,多块损坏数据丢失 | 损耗1块盘容量,总容量=(磁盘数-1)×单盘容量 | 企业通用场景、兼顾速度与安全 |
| RAID6 | ≥4 | 读提升、写略低(双校验) | 容错极强,可同时坏2块盘 | 损耗2块盘容量,总容量=(磁盘数-2)×单盘容量 | 大容量硬盘、数据极高安全场景 |
| RAID10 | ≥4(偶数) | 读写性能拉满 | 可坏每组镜像中1块,最多坏半数硬盘 | 损耗50%,总容量=总硬盘容量÷2 | 数据库、高并发、高性能高安全场景 |
重点纠错 :原版笔记中RAID10"坏一半硬盘"表述不准确,正确规则:RAID10是先镜像后条带,同一镜像对不能同时坏两块,可同时损坏不同组的硬盘
四、软RAID(mdadm)完整实操命令+案例
工具:mdadm(Linux默认自带软RAID工具),所有操作均有可直接复用的案例
4.1 创建软RAID(核心命令)
命令格式:mdadm -Cv /dev/mdX -l RAID级别 -n 磁盘数量 -x 冗余盘数量 磁盘路径
参数说明:-C创建、-v显示过程、-l指定RAID级别、-n有效磁盘数、-x备用冗余盘
冗余盘作用:阵列磁盘损坏时,冗余盘自动顶替,无需人工干预,保障阵列持续可用
实操案例:创建含1块冗余盘的RAID5(3块数据盘+1块备用盘)
# 基于/dev/sdb、/dev/sdc、/dev/sdd创建RAID5,/dev/sde作为冗余盘 mdadm -Cv /dev/md0 -l5 -n3 -x1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
4.2 查看软RAID状态
# 查看阵列详细信息、重建进度 mdadm -D /dev/md0 # 查看阵列实时运行状态 cat /proc/mdstat
4.3 保存RAID配置(关键!防止重启阵列丢失)
默认软RAID为临时生效,重启系统后阵列会解散,必须生成配置文件永久保存
# 生成配置文件 mdadm -D -s > /etc/mdadm.conf
补充优化:在/etc/mdadm.conf对应阵列末尾添加 auto=yes,实现开机自动挂载阵列
4.4 磁盘故障模拟与替换(生产常用)
场景:模拟RAID5中/dev/sdb硬盘损坏,替换新硬盘
# 1. 模拟硬盘损坏 mdadm -f /dev/md0 /dev/sdb # 2. 移除已损坏的硬盘 mdadm /dev/md0 -r /dev/sdb # 3. 插入新硬盘/dev/sbf,添加到阵列 mdadm /dev/md0 -a /dev/sbf
4.5 软RAID在线扩容
场景:原有3块盘RAID5,新增1块硬盘,扩容阵列空间
# 1. 添加新硬盘到阵列 mdadm /dev/md0 -a /dev/sdg # 2. 拉伸阵列,修改有效磁盘数量为4块(完成扩容) mdadm -G /dev/md0 -n4 # 3. 刷新文件系统,扩容生效 resize2fs /dev/md0
4.6 彻底删除软RAID(完整流程,无残留)
必须按顺序操作,否则会残留磁盘阵列标记,导致磁盘无法正常使用
# 1. 取消阵列挂载 umount /dev/md0 # 2. 停止阵列服务 mdadm -S /dev/md0 # 3. 删除阵列配置文件 rm -f /etc/mdadm.conf # 4. 清除所有磁盘的阵列标记(核心步骤,消除残留信息) mdadm --zero-superblock /dev/sdb /dev/sdc /dev/sdd /dev/sde
五、核心知识点总结
-
普通分区固定大小,LVM实现动态扩容缩容,适合业务增长场景
-
RAID0纯速度、RAID1纯安全、RAID5均衡通用、RAID6高容错、RAID10高性能高安全
-
软RAID必须保存配置文件,否则重启失效
-
磁盘替换、扩容可在线操作,无需停机,不丢失业务数据
-
删除RAID必须清除磁盘超级块,彻底清空阵列残留信息