Linux 磁盘管理与 LVM 配置完全指南

Linux 磁盘管理与 LVM 配置完全指南

Someone Lv5

前言

磁盘管理是 Linux 服务器运维中最基础也最重要的技能之一。无论你是管理一台 VPS 还是维护企业的服务器集群,理解磁盘分区、文件系统以及 LVM(Logical Volume Manager,逻辑卷管理器)都是必备技能。

本文将系统地介绍 Linux 磁盘管理的基础知识,并深入讲解 LVM 的配置与管理方法。

一、磁盘管理基础

1.1 查看磁盘信息

在操作磁盘之前,首先需要了解系统中有哪些磁盘设备:

1
2
3
4
5
6
7
8
9
10
11
# 查看所有磁盘及分区
lsblk

# 查看磁盘详细信息
fdisk -l

# 查看磁盘使用情况
df -h

# 查看磁盘 I/O 统计
iostat -x 1

lsblk 输出示例:

1
2
3
4
5
6
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 49G 0 part /
├─sda3 8:3 0 10G 0 part /var
└─sda4 8:4 0 40G 0 part /home

1.2 磁盘分区工具

Linux 提供了多种分区工具:

  • fdisk:传统 MBR 分区工具,支持最大 2TB 磁盘
  • gdisk / parted:GPT 分区工具,支持 2TB 以上磁盘
  • partprobe:通知内核分区表变更

示例:使用 fdisk 创建新分区

1
2
3
4
5
6
7
8
9
# 交互式分区
sudo fdisk /dev/sdb

# 常用命令(交互界面中):
# n - 新建分区
# p - 查看分区表
# d - 删除分区
# w - 保存并退出
# q - 不保存退出

二、文件系统管理

2.1 创建文件系统

分区创建完成后,需要格式化并创建文件系统:

1
2
3
4
5
6
7
8
# ext4 文件系统(最常用)
sudo mkfs.ext4 /dev/sdb1

# xfs 文件系统(适合大文件)
sudo mkfs.xfs /dev/sdb2

# btrfs 文件系统(支持快照)
sudo mkfs.btrfs /dev/sdb3

2.2 挂载与卸载

1
2
3
4
5
6
7
8
# 临时挂载
sudo mount /dev/sdb1 /mnt/data

# 查看挂载信息
mount | grep sdb1

# 卸载
sudo umount /mnt/data

2.3 配置开机自动挂载

编辑 /etc/fstab 文件实现开机自动挂载:

1
2
3
4
5
# 先获取 UUID
sudo blkid /dev/sdb1

# 在 /etc/fstab 中添加一行:
# UUID=your-uuid /mnt/data ext4 defaults 0 2

三、LVM 基础概念

LVM 是 Linux 内核提供的逻辑卷管理器,它在物理磁盘和文件系统之间增加了一层抽象,使得磁盘空间管理更加灵活。

3.1 LVM 的核心组件

组件全称说明
PVPhysical Volume物理卷,即物理磁盘或分区
VGVolume Group卷组,由一个或多个 PV 组成
LVLogical Volume逻辑卷,从 VG 中划分,相当于传统分区
PEPhysical Extent物理块,LVM 的最小存储单位(默认 4MB)
LELogical Extent逻辑块,与 PE 一一对应

3.2 LVM 的架构示意图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
+--------+  +--------+  +--------+
| PV sdb | | PV sdc | | PV sdd | <- 物理卷
+--------+ +--------+ +--------+
\ | /
\ | /
+------------------+
| VG data_vg | <- 卷组
+------------------+
/ | \
/ | \
+----------+ +----------+ +----------+
| LV data | | LV logs | | LV backup| <- 逻辑卷
+----------+ +----------+ +----------+
/mnt/data /var/log /mnt/backup <- 挂载点

四、LVM 实战配置

4.1 安装 LVM 工具

1
2
3
4
5
# Debian/Ubuntu
sudo apt install lvm2

# RHEL/CentOS/Fedora(通常已预装)
sudo dnf install lvm2

4.2 创建物理卷

假设我们有两块新磁盘 /dev/sdb/dev/sdc

1
2
3
4
5
6
# 创建物理卷
sudo pvcreate /dev/sdb /dev/sdc

# 查看物理卷
sudo pvs
sudo pvdisplay

4.3 创建卷组

1
2
3
4
5
6
# 创建名为 data_vg 的卷组
sudo vgcreate data_vg /dev/sdb /dev/sdc

# 查看卷组
sudo vgs
sudo vgdisplay

4.4 创建逻辑卷

1
2
3
4
5
6
7
8
9
# 从 data_vg 中创建 100GB 的逻辑卷
sudo lvcreate -n data_lv -L 100G data_vg

# 或者使用所有剩余空间
sudo lvcreate -n data_lv -l 100%FREE data_vg

# 查看逻辑卷
sudo lvs
sudo lvdisplay

4.5 格式化并挂载逻辑卷

1
2
3
4
5
6
7
8
9
# 格式化
sudo mkfs.ext4 /dev/data_vg/data_lv

# 创建挂载点并挂载
sudo mkdir -p /mnt/data
sudo mount /dev/data_vg/data_lv /mnt/data

# 查看挂载结果
df -h | grep data_lv

4.6 配置开机挂载

1
2
3
4
5
6
7
8
# 获取逻辑卷的 UUID
sudo blkid /dev/data_vg/data_lv

# 编辑 /etc/fstab,添加:
# UUID=your-uuid /mnt/data ext4 defaults 0 2

# 或直接使用设备路径(不推荐,因为设备名可能变化)
# /dev/data_vg/data_lv /mnt/data ext4 defaults 0 2

五、LVM 动态扩展与缩减

LVM 最大的优势在于可以在线调整逻辑卷大小,无需停机。

5.1 扩展逻辑卷

当空间不足时,可以轻松扩展:

1
2
3
4
5
6
7
8
9
10
11
# 1. 如果 VG 还有空闲空间
sudo lvextend -L +50G /dev/data_vg/data_lv

# 2. 扩展到指定大小
sudo lvextend -L 200G /dev/data_vg/data_lv

# 3. 使用全部剩余空间
sudo lvextend -l +100%FREE /dev/data_vg/data_lv

# 4. 调整文件系统大小(ext4 用 resize2fs,xfs 用 xfs_growfs)
sudo resize2fs /dev/data_vg/data_lv

5.2 扩展流程速查

1
2
3
4
# 三步扩展法
sudo lvextend -L +20G /dev/data_vg/data_lv
sudo resize2fs /dev/data_vg/data_lv
df -h # 验证

5.3 向卷组中添加新磁盘

当整个 VG 空间不够时,可以加入新磁盘:

1
2
3
4
5
6
7
8
9
# 1. 创建新 PV
sudo pvcreate /dev/sdd

# 2. 扩展到 VG
sudo vgextend data_vg /dev/sdd

# 3. 扩展 LV
sudo lvextend -l +100%FREE /dev/data_vg/data_lv
sudo resize2fs /dev/data_vg/data_lv

5.4 缩减逻辑卷(谨慎操作)

重要:缩减操作有数据丢失风险,必须先卸载卷!xfs 文件系统不支持缩减。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 仅 ext4 支持缩减

# 1. 卸载逻辑卷
sudo umount /mnt/data

# 2. 检查文件系统
sudo e2fsck -f /dev/data_vg/data_lv

# 3. 缩减文件系统
sudo resize2fs /dev/data_vg/data_lv 80G

# 4. 缩减逻辑卷
sudo lvreduce -L 80G /dev/data_vg/data_lv

# 5. 重新挂载
sudo mount /dev/data_vg/data_lv /mnt/data

六、LVM 快照

快照是 LVM 的另一个强大功能,可以在秒级创建数据的时间点副本,非常适合备份。

6.1 创建快照

1
2
# 创建 10GB 大小的快照(快照大小取决于预计变化量)
sudo lvcreate -s -n data_snap -L 10G /dev/data_vg/data_lv

6.2 使用快照进行备份

1
2
3
4
5
6
7
8
9
10
# 挂载快照(只读)
sudo mkdir -p /mnt/snap
sudo mount -o ro /dev/data_vg/data_snap /mnt/snap

# 使用 rsync 或 tar 备份
sudo rsync -av /mnt/snap/ /backup/data/

# 卸载并删除快照
sudo umount /mnt/snap
sudo lvremove /dev/data_vg/data_snap

6.3 快照恢复

1
2
3
4
5
# 如果原卷损坏,可以从快照恢复
# 注意:恢复前需要确保原卷已卸载
sudo umount /mnt/data
sudo lvconvert --merge /dev/data_vg/data_snap
# 系统会在下次激活时自动合并

七、常用 LVM 管理命令速查

命令说明
pvcreate /dev/sdb创建物理卷
pvdisplay查看物理卷详情
pvs简略查看物理卷
vgcreate vg1 /dev/sdb /dev/sdc创建卷组
vgdisplay查看卷组详情
vgs简略查看卷组
vgextend vg1 /dev/sdd扩展卷组
lvcreate -n lv1 -L 10G vg1创建逻辑卷
lvdisplay查看逻辑卷详情
lvs简略查看逻辑卷
lvextend -L +10G /dev/vg1/lv1扩展逻辑卷
lvreduce -L 20G /dev/vg1/lv1缩减逻辑卷
lvremove /dev/vg1/lv1删除逻辑卷
lvcreate -s -n snap -L 1G /dev/vg1/lv1创建快照
lvconvert --merge /dev/vg1/snap合并快照

八、磁盘管理最佳实践

8.1 分区方案建议

  • 系统盘(/):50-100GB,使用 ext4,分开挂载 /boot(1GB)
  • 数据盘:使用 LVM 管理,分配全部剩余空间,按需创建 LV
  • 日志分区:建议单独分区 /var/log,避免日志写满根分区
  • swap:物理内存不足 2GB 时建议配置 swap 分区

8.2 LVM 使用建议

  1. 生产环境务必使用 LVM:便于未来扩容
  2. 预留一定比例的 VG 空闲空间:为紧急扩容留有余地
  3. 快照大小要合理:预计数据变化的 20-30% 即可
  4. 定期监控磁盘使用率:设置告警(>80%)
  5. xfs 文件系统只能扩展不能缩减:计划好初始大小
  6. 操作前先备份重要数据:特别是缩减操作

8.3 磁盘监控脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
# disk_monitor.sh - 磁盘使用率监控脚本

THRESHOLD=80

df -h | grep -vE '^Filesystem|tmpfs|devtmpfs' | awk '{print $5 " " $1}' | while read output; do
usage=$(echo $output | awk '{print $1}' | sed 's/%//')
partition=$(echo $output | awk '{print $2}')

if [ $usage -ge $THRESHOLD ]; then
echo "警告: $partition 使用率已达 ${usage}%"
fi
done

结合 crontab 实现定期监控:

1
2
# 每 30 分钟执行一次
*/30 * * * * /usr/local/bin/disk_monitor.sh | mail -s "磁盘告警" admin@example.com

九、常见问题排查

9.1 磁盘空间不足

1
2
3
4
5
6
# 快速定位大文件
du -sh /* 2>/dev/null | sort -rh | head -10
du -sh /var/* 2>/dev/null | sort -rh | head -10

# 查找超过 1GB 的文件
find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null

9.2 磁盘 I/O 性能分析

1
2
3
4
5
6
7
8
# 查看磁盘 I/O 使用情况
iostat -x 1 5

# 查看进程级 I/O
iotop

# 使用 dstat 综合分析
dstat -d --top-io --top-bio

9.3 LVM 元数据修复

1
2
3
4
5
6
# 检查 LVM 元数据一致性
sudo vgck data_vg

# 恢复丢失的 PV
sudo pvscan
sudo vgcfgrestore data_vg

总结

本文系统地介绍了 Linux 磁盘管理的基础知识,从分区、文件系统到 LVM 的完整配置流程。LVM 作为 Linux 服务器磁盘管理的利器,其灵活的扩容缩容能力和快照功能可以极大地提升运维效率。

建议所有生产环境的服务器都使用 LVM 管理磁盘,这将在未来的扩容需求中为你节省大量时间和精力。

本文由AI辅助生成,内容仅供参考

  • 标题: Linux 磁盘管理与 LVM 配置完全指南
  • 作者: Someone
  • 创建于 : 2026-06-08 00:21:00
  • 更新于 : 2026-06-18 08:39:57
  • 链接: https://demo-blog.qusite.cn/2026-06-08-lvm-disk-management/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。