Linux存储空间管理完整笔记

一、基础硬盘管理:分区 + 文件系统

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

五、核心知识点总结

  1. 普通分区固定大小,LVM实现动态扩容缩容,适合业务增长场景

  2. RAID0纯速度、RAID1纯安全、RAID5均衡通用、RAID6高容错、RAID10高性能高安全

  3. 软RAID必须保存配置文件,否则重启失效

  4. 磁盘替换、扩容可在线操作,无需停机,不丢失业务数据

  5. 删除RAID必须清除磁盘超级块,彻底清空阵列残留信息

相关推荐
Bruce_kaizy11 分钟前
c++ linux环境编程——文件io介绍以及open 、write 、read 三剑客深度详解
linux·服务器·c++·ubuntu·操作系统·文件io
亦良Cool26 分钟前
VMware虚拟机ubuntu瘦身,解决虚拟机越用越大
linux·运维·ubuntu
ouliten1 小时前
[Triton笔记6]层标准化
笔记
星辰&与海2 小时前
KVM + QEMU虚拟化方案
linux·运维
宋浮檀s2 小时前
应急响应——恶意流量&攻击行为识别
linux·运维·网络·网络安全·应急响应
REDcker2 小时前
Linux OverlayFS详解
java·linux·运维
zizle_lin3 小时前
WSL的系统安装和部分环境配置(按需操作)
运维
lwx9148523 小时前
Linux系统中用户锁定后如何解锁
linux·运维·服务器
玄米乌龙茶1233 小时前
思维导图笔记:Prompt工程
笔记·prompt
zhangrelay4 小时前
ROS 2 Lyrical Luth启程-Ubuntu26.04-
linux·笔记·学习·ubuntu