标准分区与 LVM 怎么选

前言

装系统或给新盘分区时,常见第一个问题不是「分几个区」,而是「要不要上 LVM」。
标准分区路径短、直觉清晰;LVM 多一层抽象,换来在线扩容和更灵活的卷管理。
本文只做选型与场景判断,不重复 LVM 创建与扩容的具体命令(可参考站内 CentOS 磁盘 LVM 一文)。
下文以常见 Linux 发行版(CentOS、Rocky、Ubuntu Server 等)为例,具体安装界面名称可能略有差异。

概念

标准分区

磁盘经过分区表(MBRGPT)切出若干固定边界的分区,每个分区对应一个块设备(如 /dev/sda1),再在其上创建文件系统并挂载。
分区大小在创建时基本就定死了;要改大小通常需要卸载、调整分区、再扩文件系统,步骤多、停机窗口长。

LVM

在分区(或整盘)之上再叠一层:物理卷 PV → 卷组 VG → 逻辑卷 LV → 文件系统
对应用来说,挂载的仍是「一个块设备」(如 /dev/mapper/centos-root),但容量来自卷组池,可以在线向逻辑卷追加空间(前提是后面还有空闲物理卷或能扩分区)。
代价是多一层 indirection,故障排查时要多看 pvs / vgs / lvs 几眼。

对比

扩容

标准分区:新盘或扩云盘 → 扩分区(常要卸挂载或进救援环境)→ resize2fs / xfs_growfs
步骤链长,生产上容易估错停机时间。

LVM:新盘/新分区 → pvcreatevgextendlvextend → 扩文件系统,多数场景可在线完成(根分区是否在线扩取决于发行版与引导方式,但数据盘几乎总是 LVM 的强项)。

快照与合并

标准分区:本身不提供卷级快照;要靠 btrfsZFS 等带快照的文件系统,或外部备份方案。

LVM:支持 LVM 快照(写时复制),适合升级前留一份可回滚点;快照不是完整备份,长期占用和合并策略要规划。

复杂度与排障

标准分区:lsblk/etc/fstab 里设备名与挂载点一一对应,新人也能看懂。

LVM:同一挂载点可能对应 /dev/mapper/xxx,删错 PV、VG 元数据损坏时恢复比标准分区更费神;团队若无人熟悉 LVM,运维成本会上去。

性能

日常业务负载下,LVM 与标准分区的 I/O 差异通常可以忽略
极端低延迟、裸盘调优场景(某些数据库基准测试)有人倾向直接分区;一般 Web、中间件、开发机不必为此放弃 LVM。

选型

用标准分区

更适合下面几类情况:

  1. 分区规划一次定终身、几乎不会扩:例如只读根盘的小型容器宿主机、固定大小的 /boot
  2. 机器生命周期短:临时测试机、CI 跑完即毁,不值得为 LVM 多一层抽象。
  3. 团队几乎不碰 Linux 存储:希望 fstab 里就是 /dev/sda2,排障路径最短。
  4. 双系统或与 Windows 共盘/boot/efi、Windows 分区等仍用标准 GPT 分区;Linux 根盘是否 LVM 另说,但 EFI 不能进 LVM。
  5. 使用自带快照的文件系统:整盘 btrfs / ZFS 时,是否再套 LVM 往往多余,按文件系统文档来即可。

用 LVM

更适合下面几类情况:

  1. 云主机、虚拟机:盘可以随时加容量,LVM 在线扩 LV 是默认最佳实践。
  2. 物理机数据盘会越用越大:日志、上传、数据库数据目录单独 LV,后续加盘 vgextend 即可。
  3. 需要快照做变更前保险:大版本升级、批量改表结构前打 LVM 快照(配合短窗口与监控)。
  4. 多盘拼成一个大盘:几块数据盘进同一 VG,应用只看到一个逻辑卷,不必自己搞 mdadm + 分区(RAID 与 LVM 可组合,按需求设计)。
  5. 发行版默认就是 LVM:CentOS、RHEL、Fedora Server 等安装器默认 LVM,没有明确理由时不要强行改成标准分区,否则和官方文档、自动化脚本都不一致。

混合

生产上很常见、也合理:

  • /boot/boot/efi标准分区(引导与 UEFI 要求)。
  • //home、数据盘:LVM 逻辑卷,方便扩缩与快照。
  • swap:安装器生成的 LVM swap 或独立 swap 分区均可;内存很大且不用休眠时,也可 swapfile,与本文主题关系不大。

示例布局

云上一盘走 LVM

单系统盘 100G,安装时选 LVM,典型结果类似下面(设备名随云厂商变化)。

lsblk 查看当前树形结构,确认 PV/VG/LV 层次是否符合预期。

1
lsblk

输出含义大致为:磁盘 → 分区 sda2(类型 LVM2_member)→ VG ubuntu-vg → LV ubuntu-lv 挂载到 /
日后云控制台扩盘到 200G 后,再对分区、pvresizelvextend、文件系统扩容即可。

标准分区极简

小 VPS 只跑 Docker、根分区 40G 够用、不打算动盘时,可以全程标准分区,例如:

  • sda1/boot/efi(UEFI)
  • sda2/ ext4 或 xfs
  • sda3swap(可选)

同样用 lsblk 核对,应看不到 LVM2_membermapper 设备。

1
lsblk -f

-f 会一并显示文件系统类型与 UUID,写 fstab 时建议用 UUID,避免设备名因插盘顺序变化。

如何判断现有机器用的哪种

已接手一台机器、文档不全时,先看块设备树。

1
2
lsblk
pvs 2>/dev/null; vgs 2>/dev/null; lvs 2>/dev/null

pvs/vgs/lvs 输出即为 LVM;只有 sda1sda2 且类型为普通 part 则是标准分区为主。
/etc/fstab 里挂载点是 /dev/mapper/.../dev/disk/by-id/... 且对应 LVM,也能佐证。

总结

  1. 不会扩、要最简单:标准分区足够,尤其临时机与固定规格小 VPS。
  2. 会扩、云盘、多盘合并、要快照:优先 LVM,并与发行版默认方案对齐。
  3. /boot 与 EFI 保持标准分区;根与数据盘用 LVM 是常见且稳妥的组合。
  4. 性能一般不是决定性因素;运维是否熟悉、生命周期内是否要在线扩容才是主要分歧点。