原文地址:
https://www.cnblogs.com/glytsmmhsh/articles/19740989
(实操代码从略,可以查看原文)
说明:本文档按Linux磁盘四层架构(物理硬盘→物理分区→LVM层→文件系统)整理,明确Linux与Windows磁盘架构的核心区别,便于后续查阅和使用。
一、Linux磁盘四层架构
第1层:物理硬盘(最底层,硬件级)
真实的物理存储设备,是所有存储的基础,系统识别为具体的设备名(如/dev/sda、/dev/sdb、/dev/nvme0n1)。
特点:真实硬件,上电后系统自动识别,容量固定(如3T机械盘、1T固态盘),是后续所有划分、管理的基础。
第2层:物理分区(硬件级划分)
用分区工具(parted、fdisk等)在物理硬盘上划分的真实空间,设备名格式为/dev/sda1、/dev/nvme0n1p3(末尾数字为分区序号)。
物理分区是真实写在硬盘分区表上的,不是虚拟的,属于硬件级划分;
与Windows盘符的核心区别:Linux物理分区是“真实地盘”,而Windows的C:、D:是“挂载点+盘符”合二为一,掩盖了底层物理分区和卷的概念,用户无需关注底层划分。
第3层:LVM层(逻辑管理层,软件级)
全称逻辑卷管理,介于物理分区(或整块物理硬盘)与文件系统之间,核心作用是“整合空间、灵活分配”,不影响底层物理设备和上层文件存储。
核心组件(按层级):
PV(物理卷):将物理分区(如/dev/sda1)或整块物理硬盘(如/dev/sdb)标记为LVM可管理的“材料”;
VG(卷组):将多个PV(单个/多个物理硬盘的分区/整块盘)合并成一个“空间大池子”,统一管理所有空间;
LV(逻辑卷):从VG池中切出的一块具体空间,作为后续文件系统的载体(如我们的lv_home)。
核心特点:不影响底层物理分区/硬盘,不影响上层文件系统,可在线扩容、合并多块硬盘,灵活分配空间,全程不丢失数据、不中断使用。
第4层:文件系统(存储管理层,软件级)
建立在LVM的LV(或传统物理分区)之上,是“文件存储的规则”,负责管理文件的存储方式(如何存、如何读、如何管理文件信息),核心组成是inode和block(仅存在于文件系统层)。
LVM只负责“提供空间”,文件系统负责“管理空间里的文件”,二者完全独立;应用程序只与文件系统交互(操作文件/目录),与底层LVM、物理分区、物理硬盘无直接关联。
二、LVM实操
说明:LVM实操的完整闭环需包含“物理分区→LVM配置→文件系统创建→开机自动挂载”,其中文件系统是衔接LVM与实际使用的核心(无文件系统,LVM切出的空间无法存储文件)。
文件系统定义:文件系统是建立在存储设备(LVM逻辑卷、物理分区)之上的软件层,本质是“存储文件的规则和机制”,负责定义文件的存储格式、访问权限、数据组织方式,核心由inode(文件信息索引,记录文件权限、大小、存储位置)和block(文件内容存储单元)组成,是系统与存储设备之间的桥梁。
1. 物理硬盘+物理分区操作(第1、2层)
(代码略)
2. LVM层操作(第3层)
(代码略)
3. 新增硬盘加入现有LVM卷组(灵活扩展)
假设新增硬盘为/dev/sdb,无需影响原有LVM和数据,步骤如下:
(代码略)
4. 文件系统创建(衔接LVM与实际使用,核心步骤)
(代码略)
5. 开机自动挂载配置(实操闭环,完成LVM+文件系统的完整使用)
(代码略)
说明:完成以上所有步骤,LVM实操才算完整——从物理硬盘划分到LVM配置,再到文件系统创建和开机自动挂载,实现空间的灵活分配与稳定使用。
三、Linux文件系统详解
核心:文件系统是“存储文件的规则”,建立在LV或传统物理分区之上,不同文件系统有不同的特点,适配不同场景;inode负责存储文件信息(权限、大小、时间),block负责存储文件内容。
1. 常用文件系统及优缺点
文件系统 | 优点 | 缺点 | 适用场景 |
ext4(最常用) | 1. 稳定性强,兼容所有Linux系统;2. 支持大文件(最大16TB);3. 修复工具成熟(e2fsck);4. 操作简单,适配绝大多数场景。 | 1. 不支持日志压缩;2. 性能略低于xfs;3. 不支持动态inode分配。 | 日常办公、服务器系统盘、/home目录(我们当前使用的文件系统) |
xfs | 1. 性能优异,读写速度快;2. 支持超大容量(最大18EB);3. 日志机制完善,崩溃后恢复快;4. 支持动态扩容(无需卸载)。 | 1. 修复难度大,损坏后数据恢复成本高;2. 不支持收缩(扩容后无法缩小);3. 兼容性略差于ext4。 | 高并发场景、大数据存储、服务器数据盘(如数据库、日志存储) |
btrfs(新一代) | 1. 支持快照、克隆,备份方便;2. 支持动态扩容/收缩;3. 支持RAID功能;4. 数据校验,安全性高。 | 1. 稳定性不如ext4/xfs;2. 部分功能不成熟;3. 修复工具不完善。 | 需要快照备份、灵活管理的场景(不推荐用于核心生产环境) |
ext3(老旧) | 1. 稳定性强,兼容性好;2. 支持日志功能,数据安全性高。 | 1. 不支持大文件(最大2TB);2. 性能较差;3. 不支持在线扩容。 | 老旧系统、小型嵌入式设备(目前基本被ext4替代) |
vfat(兼容Windows) | 1. 兼容Linux和Windows系统;2. 操作简单,适合移动存储。 | 1. 不支持Linux权限管理;2. 不支持大文件(最大4GB);3. 稳定性一般。 | U盘、移动硬盘(需要在Linux和Windows间切换使用) |
2. 文件系统常用命令
(1)文件系统创建(格式化,核心命令)
(代码略)
(2)文件系统查看(验证、排查问题)
(代码略)
(3)文件系统修复(故障排查)
(代码略)
(4)文件系统扩容(LVM+文件系统联动,常用)
前提:LVM卷组(VG)有空闲空间,先扩展LV,再扩展文件系统。
(代码略)
(5)挂载/卸载文件系统(临时挂载,补充)
(代码略)
四、RAID详解(位置:介于物理硬盘与LVM之间)
1. RAID核心定义与位置
RAID(独立磁盘冗余阵列)是一种将多块物理硬盘组合成一个逻辑存储单元的技术,位置介于物理硬盘与LVM之间——先将多块物理硬盘组成RAID阵列(逻辑存储单元),再将RAID阵列划分为物理分区或直接作为PV加入LVM卷组,核心作用是提升存储性能、增强数据安全性(冗余备份)。
层级补充(完善整体架构):物理硬盘→ RAID阵列 → 物理分区 → LVM层 → 文件系统 → 挂载点
核心说明:RAID管理的是物理硬盘的组合,解决“单块硬盘性能不足、易损坏”的问题;LVM管理的是RAID阵列(或物理硬盘)的空间分配,解决“空间灵活扩容”的问题,二者分工协作、互不冲突。
2. 常用RAID级别(实操常用,重点分析容量、速度、冗余)
说明:以下均以“4块1TB物理硬盘”为例,分析各RAID级别的实际容量、读写速度、冗余能力(最核心的三个指标),贴合Linux服务器实操场景,不讲解冗余原理,只讲实战应用。
RAID级别 | 核心特点 | 实际容量(4块1TB硬盘) | 读写速度 | 冗余能力(数据安全) | 适用场景 |
RAID 0(条带化) | 无冗余,将数据拆分到多块硬盘并行读写,追求极致性能 | 4TB(所有硬盘容量之和:1TB×4) | 读写速度最快(约为单块硬盘的4倍),并行读写效率极高 | 无冗余!任意一块硬盘损坏,所有数据丢失(风险极高) | 对数据安全性无要求,追求极致性能的场景(如临时缓存、视频渲染) |
RAID 1(镜像) | 冗余优先,数据同步复制到两块或多块硬盘,互为镜像 | 1TB(容量=最小硬盘容量,多块硬盘仅用1块的容量,其余做镜像) | 读速度≈2倍单块硬盘(双盘并行读),写速度≈单块硬盘(需同步写入镜像盘) | 高冗余!最多允许n-1块硬盘损坏(n为硬盘数量),只要有1块完好,数据不丢失 | 对数据安全性要求极高,性能要求一般的场景(如系统盘、数据库核心数据) |
RAID 5(条带化+奇偶校验) | 性能与冗余兼顾,数据条带化存储,同时计算奇偶校验码(用于数据恢复) | 3TB(容量=总容量-1块硬盘容量:4TB-1TB=3TB,1块硬盘用于存储校验码) | 读速度≈3倍单块硬盘,写速度≈单块硬盘(需额外计算校验码,略慢于RAID 0) | 中高冗余!最多允许1块硬盘损坏,损坏后可通过校验码恢复数据 | 最常用场景(服务器数据盘、存储服务器),兼顾性能与数据安全 |
RAID 6(条带化+双重奇偶校验) | 冗余更强,在RAID 5基础上增加1组校验码,支持多块硬盘损坏 | 2TB(容量=总容量-2块硬盘容量:4TB-2TB=2TB,2块硬盘用于存储校验码) | 读速度≈2倍单块硬盘,写速度略慢于RAID 5(需计算双重校验码) | 高冗余!最多允许2块硬盘同时损坏,数据可通过双重校验码恢复 | 数据极其重要,硬盘数量较多的场景(如大型数据库、海量存储) |
RAID 10(RAID 1+RAID 0) | 性能与冗余双优,先将硬盘两两组成RAID 1(镜像),再将多个RAID 1组成RAID 0(条带) | 2TB(4块硬盘两两镜像,容量=2×1TB=2TB) | 读写速度≈2倍单块硬盘(双镜像组并行读写),性能优于RAID 5 | 高冗余!每个镜像组最多允许1块硬盘损坏,只要不超过2块(且不同镜像组),数据不丢失 | 高端场景(核心数据库、高性能服务器),兼顾极高性能与高安全性 |