当前位置: 代码网 > 服务器>服务器>Linux > Linux磁盘扩容之LVM与普通分区扩容的区别与操作指南

Linux磁盘扩容之LVM与普通分区扩容的区别与操作指南

2026年09月02日 Linux 我要评论
前言在实际工作中,我们经常会遇到服务器磁盘空间不足的情况。扩容磁盘看似简单,但不同场景下的操作方式却大相径庭。如果选错了方法,轻则操作失败,重则可能导致数据丢失。本文将通过一次真实的lvm扩容案例,详

前言

在实际工作中,我们经常会遇到服务器磁盘空间不足的情况。扩容磁盘看似简单,但不同场景下的操作方式却大相径庭。如果选错了方法,轻则操作失败,重则可能导致数据丢失。

本文将通过一次真实的lvm扩容案例,详细讲解lvm架构普通分区架构两种扩容方式的区别,帮助你快速判断该用哪种方法。

一、为什么要区分两种方式?

很多人在扩容时都会有一个疑问:为什么有的服务器用 lvextend,有的用 growpart

答案很简单:磁盘管理架构不同!

架构类型管理方式扩容工具复杂度
lvm架构逻辑卷管理(池化)lvextend + xfs_growfs/resize2fs稍复杂
普通分区架构直接分区管理growpart + resize2fs较简单

二、如何判断你的服务器是什么架构?

一招判断:使用lsblk命令

lsblk

场景一:lvm架构(本篇案例)

[root@host ~]# lsblk
name            maj:min rm  size ro type mountpoint
vda             252:0    0   20g  0 disk 
├─vda1          252:1    0    1g  0 part /boot
└─vda2          252:2    0   19g  0 part 
  ├─centos-root 253:0    0 1017g  0 lvm  /          # ← 注意这里是 lvm
  └─centos-swap 253:1    0    2g  0 lvm  [swap]
vdb             252:16   0 1000g  0 disk 
└─centos-root   253:0    0 1017g  0 lvm  /          # ← vdb被lvm池化
vdd             252:48   0  500g  0 disk            # ← 待扩容的新磁盘

特征

  • 磁盘下没有 part 分区,直接归属于 lvm 设备
  • 挂载点对应的是 lvm 类型的设备(如 centos-root

结论:使用 lvm扩容方式

场景二:普通分区架构(csdn常见案例)

[root@host ~]# lsblk
name    maj:min rm  size ro type mountpoint
vda     252:0    0   20g  0 disk 
├─vda1  252:1    0    1g  0 part /boot
└─vda2  252:2    0   19g  0 part /
vdb     252:16   0 1000g  0 disk 
└─vdb1  252:17   0 1000g  0 part /data             # ← 注意这里是 part

特征

  • 磁盘下有 part 分区
  • 挂载点直接对应一个分区(如 /dev/vdb1

结论:使用 普通分区扩容方式(csdn步骤)

三、lvm扩容实战(本篇核心案例)

环境信息

  • 操作系统:centos 7+
  • 文件系统:xfs
  • 原容量:1017g(由 vda2 19g + vdb 1000g 组成)
  • 扩容磁盘:vdd 500g
  • 目标:将根目录 / 扩容至 1.5t

步骤一:清理空间(根目录100%满时务必执行)

# 清理日志文件
journalctl --vacuum-size=100m
yum clean all 2>/dev/null
> /var/log/messages

步骤二:确认文件系统类型

df -t /

输出示例

文件系统                类型  容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root xfs  1017g 1017g 505m 100% /

注意:xfs用 xfs_growfs,ext4用 resize2fs,不能混用!

步骤三:将新磁盘加入lvm

# 1. 创建物理卷(pv)
pvcreate /dev/vdd

# 2. 确认卷组名(本例为 centos)
vgs

# 3. 将新pv加入卷组(vg)
vgextend centos /dev/vdd

# 4. 确认卷组空间已增加
vgdisplay centos

步骤四:扩容逻辑卷和文件系统

# 1. 扩容逻辑卷(使用全部剩余空间)
lvextend -l +100%free /dev/centos/root

# 2. 扩容文件系统(xfs)
xfs_growfs /

# 3. 验证结果
df -h /

成功输出

/dev/mapper/centos-root  1.5t 1017g  501g   67% /

四、普通分区扩容方式(csdn案例参考)

如果你的服务器是普通分区架构(lsblk 显示为 part),则使用以下步骤:

# 1. 查看分区情况
lsblk

# 2. 扩容分区(以 /dev/vdb1 为例)
growpart /dev/vdb 1

# 3. 检查并扩容文件系统
e2fsck -f /dev/vdb1      # 如果是 ext4
resize2fs /dev/vdb1

# 或对于 xfs:
xfs_growfs /data         # /data为挂载点

# 4. 验证
df -h /data

五、常见踩坑与注意事项

问题原因解决方案
resize2fs: bad magic number文件系统是xfs,却用了ext4的工具改用 xfs_growfs
扩容后容量没变忘记扩容文件系统执行 xfs_growfsresize2fs
growpart 报错分区已经扩过,或不是分区架构lsblk 确认架构
根目录100%满,操作卡住无临时空间先清理日志腾出至少500m空间
扩容后挂载点丢失未正确挂载重新 mount 即可,数据不会丢失

六、快速判断流程图

七、两种扩容方式对服务器的影响对比

影响维度lvm扩容方式(你的场景)普通分区扩容方式(csdn场景)
是否需要停机❌ 不需要❌ 不需要
是否需要卸载磁盘❌ 不需要(在线扩容)❌ 不需要(在线扩容)
对运行中服务的影响几乎无感知
操作秒级完成,服务持续运行
几乎无感知
操作秒级完成,服务持续运行
数据安全性🟢
只修改lvm元数据,不动已有数据
🟢
只修改分区表和文件系统元数据
操作风险点lvm元数据损坏(极少见)分区表修改时断电(极小概率)
操作回滚难度较复杂(需要缩减lv)较简单(分区表可恢复)

7.1 详细说明

7.1.1 对磁盘内容的影响

两种方式都不会损坏已有数据,因为操作本质都是修改"元数据"(类似修改目录索引),而不是移动或删除实际文件数据。

操作lvm扩容普通分区扩容
pvcreate在磁盘头部写lvm标签
vgextend修改卷组元数据
lvextend修改逻辑卷元数据
growpart修改分区表边界
xfs_growfs/resize2fs扩展文件系统元数据扩展文件系统元数据

7.1.2 对服务器服务的影响

两种方式对服务的影响都极小,原因如下:

  1. 操作时间极短:整个过程通常在 1-5秒 内完成
  2. 不中断i/o:文件系统保持挂载状态,读写操作不受影响
  3. 不重启服务:java、nginx、mysql等进程继续运行
  4. 不重启系统:无需重启服务器

唯一可能的影响

  • 扩容前磁盘已100%满时,服务可能因无法写入日志而出现问题
  • 扩容完成后,这些问题会自动解决,无需任何额外操作

7.2 结论

问题答案
扩容会停服务吗?两种方式都不会
会丢数据吗?两种方式都不会
需要重启吗?两种方式都不需要
哪种更安全?两者安全性相同,取决于是否正确判断了架构

核心建议:只要先用 lsblk 确认了架构,选择了正确的扩容方式,操作就非常安全,对业务几乎无影响。

总结

关键点说明
判断方法lsblk 看 type 是 lvm 还是 part
lvm扩容pvcreatevgextendlvextendxfs_growfs
普通分区扩容growpartresize2fs/xfs_growfs
文件系统xfs用 xfs_growfs,ext4用 resize2fs
核心原则先确认架构,再选对工具,最后扩容文件系统

以上就是linux磁盘扩容之lvm与普通分区扩容的区别与操作指南的详细内容,更多关于linux lvm与普通分区扩容的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com