Linux 磁盘文件系统
一、Linux 常见磁盘文件系统介绍
文件系统 | 说明 | 优点 | 缺点 | 适用场景 |
---|---|---|---|---|
ext4 | 第四代扩展文件系统(Extended Filesystem) | - 兼容性好- 稳定可靠- 支持大文件(16TB)和大分区(1EB)- 支持日志(journaling) | - 无原生快照功能- 不支持去重、压缩 | 通用服务器、Web 服务器、数据库(MySQL) |
XFS | 高性能 64 位日志文件系统(SGI 开发) | - 极佳的大文件读写性能- 支持超大存储(exabyte 级)- 在线扩容 | - 删除大文件时可能卡顿- 修复工具不如 ext4 成熟 | 大文件存储、视频处理、日志服务器、备份存储 |
Btrfs | B-tree 文件系统(下一代文件系统) | - 支持快照、克隆、压缩、RAID、子卷- 写时复制(CoW)- 在线检查与修复 | - 稳定性在某些场景仍待验证- 不推荐用于关键数据库 | 容器存储(Docker)、开发测试、需要快照的场景 |
ZFS | Zettabyte 文件系统(源自 Solaris) | - 极高数据完整性- 快照、压缩、去重、RAID-Z- 跨平台(通过 OpenZFS) | - 内存消耗大- 安装配置复杂- 与 Linux 内核集成度较低 | 企业级存储、NAS、虚拟化平台、关键数据存储 |
tmpfs | 基于内存的临时文件系统 | - 速度快(内存级)- 重启后数据丢失 | - 数据不持久- 受内存大小限制 | 存放临时文件(如 /tmp 、/run ) |
nfs | 网络文件系统(Network File System) | - 网络共享- 跨主机访问 | - 依赖网络- 性能受网络影响 | 共享存储、Web 集群共享静态资源 |
二、核心概念通俗解释(原理篇)
概念 | 通俗解释 | 关键作用 |
---|---|---|
1. 磁盘发现 | Linux 启动时自动识别硬盘,如 /dev/sda , /dev/sdb sd = SCSI/SATA 磁盘,a = 第一块,b = 第二块 | 查看系统有没有识别到新硬盘 |
2. 分区(Partition) | 把一块硬盘“切”成几个逻辑区域,比如 C盘、D盘 常用工具:fdisk , parted | 管理不同用途的数据(系统、数据、备份) |
3. 格式化(Filesystem) | 给分区“装文件系统”,让它能存文件 如:mkfs.ext4 /dev/sda1 | 让分区可读可写,支持 ext4、xfs 等格式 |
4. 挂载(Mount) | 把格式化后的分区“连接”到某个目录(如 /data ) 像 Windows 的“盘符映射” | 让用户能通过目录访问磁盘内容 |
5. RAID(磁盘阵列) | 把多块硬盘组合使用,提升性能或可靠性 常见:RAID 0(快)、RAID 1(备份)、RAID 5(平衡) | 提高速度、防止单盘故障 |
6. LVM(逻辑卷管理) | “软硬盘”技术:把多块硬盘或分区变成一个“大池子”,再从池子里分出“虚拟硬盘” | 实现在线扩容/缩容,灵活管理存储 |
✅ 一句话理解 LVM:
就像“水池”(卷组 VG)装水,从池子接“水管”(逻辑卷 LV)供水,水管可粗可细(扩容缩容)。
🔧 三、LVM 核心组件(比喻说明)
LVM 组件 | 比喻 | 对应物理 |
---|---|---|
PV(Physical Volume) | 一根根水管 | 磁盘或分区(如 /dev/sdb1 ) |
VG(Volume Group) | 水池 | 多个 PV 合成的存储池 |
LV(Logical Volume) | 水管出口 | 从池子分出的可挂载使用空间 |
🛠️ 四、生产实例(列表形式)
✅ 实例 1:新硬盘挂载为 /data
(基础流程)
步骤 | 命令 | 说明 |
---|---|---|
1. 查看磁盘 | lsblk 或 fdisk -l | 发现新盘 /dev/sdb |
2. 分区 | fdisk /dev/sdb → 创建 /dev/sdb1 | 划分主分区 |
3. 格式化 | mkfs.xfs /dev/sdb1 | 使用 XFS 文件系统(适合大文件) |
4. 创建挂载点 | mkdir /data | |
5. 挂载 | mount /dev/sdb1 /data | |
6. 开机自动挂载 | 编辑 /etc/fstab :<br>/dev/sdb1 /data xfs defaults 0 0 | 防止重启后丢失 |
🎯 生产场景:Web 服务器新增数据盘存放静态资源(图片、视频)。
✅ 实例 2:使用 LVM 实现在线扩容
步骤 | 命令 | 说明 |
---|---|---|
1. 初始化 PV | pvcreate /dev/sdb1 /dev/sdc1 | 把两个分区变成 LVM 物理卷 |
2. 创建 VG | vgcreate vg_data /dev/sdb1 /dev/sdc1 | 合成一个 200GB 的“存储池” |
3. 创建 LV | lvcreate -L 100G -n lv_web vg_data | 从池子分出 100GB 虚拟卷 |
4. 格式化 LV | mkfs.xfs /dev/vg_data/lv_web | |
5. 挂载使用 | mount /dev/vg_data/lv_web /var/www/html | |
6. 扩容到 150GB | lvextend -L 150G /dev/vg_data/lv_web <br>xfs_growfs /var/www/html | 在线扩容,不中断服务 |
🎯 生产场景:网站访问量增长,Web 目录空间不足,需动态扩容。
✅ 实例 3:RAID 1(镜像)提升可靠性
步骤 | 命令 | 说明 |
---|---|---|
1. 安装工具 | yum install mdadm | |
2. 创建 RAID 1 | mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdd /dev/sde | 两块盘互为备份 |
3. 格式化 | mkfs.ext4 /dev/md0 | |
4. 挂载 | mount /dev/md0 /backup | 用于存储备份文件 |
5. 开机挂载 | 写入 /etc/fstab 和 /etc/mdadm.conf |
🎯 生产场景:备份服务器使用 RAID 1,即使一块硬盘损坏,数据不丢。
✅ 实例 4:LVM 缩容(谨慎操作)
⚠️ 注意:XFS 不支持缩容!ext4 支持,但必须先卸载。
步骤 | 命令 | 说明 |
---|---|---|
1. 卸载 | umount /data | 必须先卸载 |
2. 检查文件系统 | e2fsck -f /dev/vg_data/lv_data | 确保无错误 |
3. 缩小文件系统 | resize2fs /dev/vg_data/lv_data 80G | 先缩小文件系统 |
4. 缩小 LV | lvreduce -L 80G /dev/vg_data/lv_data | 再缩小逻辑卷 |
5. 重新挂载 | mount /dev/vg_data/lv_data /data |
🎯 生产场景:误分配过大空间,回收资源用于其他业务。
✅ 实例 5:LVM 快速扩容(加新盘)
步骤 | 命令 | 说明 |
---|---|---|
1. 新硬盘 /dev/sdf | pvcreate /dev/sdf | 初始化为 PV |
2. 加入卷组 | vgextend vg_data /dev/sdf | 扩大“水池”容量 |
3. 扩容 LV | lvextend -L 200G /dev/vg_data/lv_web <br>xfs_growfs /var/www/html | 空间立即可用 |
🎯 生产场景:业务增长,需扩展存储,无需重新分区或停机。
📊 五、RAID 常见级别对比(生产选择)
RAID 级别 | 最少盘数 | 容量利用率 | 特点 | 适用场景 |
---|---|---|---|---|
RAID 0 | 2 | 100% | 速度快,无冗余,一盘坏全阵列坏 | 高性能临时计算 |
RAID 1 | 2 | 50% | 镜像备份,安全性高,速度一般 | 系统盘、关键配置 |
RAID 5 | 3 | (N-1)/N | 有校验,允许一盘坏,读快写慢 | 中小型文件服务器 |
RAID 10 | 4 | 50% | 先镜像再条带,速度快 + 高可靠 | 数据库、高并发应用 |
🎯 生产建议:数据库服务器推荐 RAID 10,平衡性能与安全。
✅ 六、总结:一句话记住
操作 | 一句话口诀 |
---|---|
发现磁盘 | lsblk 看有没有新盘 |
分区格式化 | fdisk → mkfs → mount |
RAID | 多盘组合,防坏盘(用 mdadm ) |
LVM | “水池”变“水管”,在线扩缩容不重启 |
扩容 | lvextend + 文件系统扩容 (ext4 用 resize2fs ,xfs 用 xfs_growfs ) |
缩容 | 只支持 ext4,先 resize2fs 再 lvreduce ,必须卸载 |
✅ 七、新增硬盘并初始化挂载
参考下列链接
初始化数据盘(Linux)_云服务器 ECS(ECS)-阿里云帮助中心
创建RAID阵列(Linux)_云服务器 ECS(ECS)-阿里云帮助中心
通过LVM创建逻辑卷_云服务器 ECS(ECS)-阿里云帮助中心
Linux实例数据恢复最佳实践_云服务器 ECS(ECS)-阿里云帮助中心