在日常运维工作中,磁盘空间告急几乎是每个工程师都会遇到的棘手问题。不同的磁盘分配方式,对应的扩容方案也大不相同。今天就为大家整理了生产环境中常用的 Linux 系统磁盘扩容方法,涵盖原有磁盘扩容、新增磁盘扩容、LVM 逻辑卷扩容三大场景,步骤详细可直接上手操作,建议收藏备用~一、在原有磁盘扩容
原有磁盘扩容分为 “扩容单个分区” 和 “扩容一整块磁盘” 两种情况。
情况 1:扩容的磁盘是一个分区
现有环境:需对 /dev/vdb1 设备扩容,当前分区 100G,整个磁盘共 200G,需将剩余 100G 扩容到该分区。通过lsblk命令可查看磁盘分区情况:
[root@localhost ~]# lsblk
步骤 1:安装扩容工具
使用growpart工具可实现分区扩容及文件系统扩展,需单独安装:
yum install cloud-utils-growpart -y
步骤 2:扩容分区
⚠️ 温馨提示:单盘有多个连续分区时,仅能扩容最后一个分区
执行以下命令扩容 /dev/vdb 磁盘的第一个分区:
[root@localhost ~]# growpart /dev/vdb 1
通过lsblk –f命令查看分区格式(后续需根据格式选择扩容命令)
步骤 3:扩容文件系统
- 若分区格式为 xfs,使用
xfs_growfs命令:
[root@localhost ~]# xfs_growfs /dev/vdb1
若分区格式为 ext4,使用resize2fs命令:
[root@localhost ~]# resize2fs /dev/vdb1
情况 2:扩容的磁盘是一整块磁盘
这种场景无需调整分区,直接扩容文件系统即可。
步骤 1:环境准备
先格式化并挂载磁盘:
# 格式化为xfs文件系统[root@localhost ~]# mkfs.xfs /dev/vdb# 挂载到/data目录[root@localhost ~]# mount /dev/vdb /data
当前 /dev/vdb 为 100G,在云平台将其扩容至 200G 后进行后续操作。
步骤 2:查看分区格式
[root@localhost ~]# lsblk –f
步骤 3:扩容文件系统
[root@localhost ~]# xfs_growfs /dev/vdb# 也可直接通过挂载点扩容[root@localhost ~]# xfs_growfs /data
ext4 格式:
[root@localhost ~]# resize2fs /dev/vdb
二、新增磁盘扩容
当原有磁盘采用 MBR 分区模式(最大支持 2T),无法满足存储需求时,需通过新增磁盘扩容。
步骤 1:格式化新增磁盘
[root@localhost ~]# mkfs.xfs /dev/vdb
步骤 2:创建挂载目录并挂载
# 创建/data目录[root@localhost ~]# mkdir /data# 挂载/dev/vdb到/data[root@localhost ~]# mount /dev/vdb /data
步骤 3: 配置开机自动挂载
编辑 /etc/fstab 文件,添加自动挂载配置:
[root@localhost ~]# cat >> /etc/fstab <<EOF/dev/vdb /data xfs defaults 0 0EOF
三、逻辑卷 LVM 扩容
仅适用于操作系统使用 LVM 管理磁盘的场景,分为 “原有磁盘扩容” 和 “新增磁盘扩容” 两种情况。
情况 1:原有磁盘增加容量,扩容到原有分区
步骤 1:查看扩容前环境
[root@localhost ~]# df -h
步骤 2:在原磁盘创建新分区
使用fdisk工具对 /dev/vdb 磁盘分区:
[root@localhost ~]# fdisk /dev/vdb[root@localhost ~]# partprobe /dev/vdb
步骤 3:扩容卷组 VG
# 创建物理卷PV[root@localhost ~]# pvcreate /dev/vdb1Physical volume "/dev/vdb1" successfully created.# 扩容卷组ubuntu-vg[root@localhost ~]# vgextend ubuntu-vg /dev/vdb1Volume group "ubuntu-vg" successfully extended# 查看卷组信息(确认VFree有可用空间)[root@localhost ~]# vgs
步骤 4:扩容逻辑卷 LV
将卷组所有空闲空间分配给逻辑卷:
[root@localhost ~]# lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
步骤 5:扩容文件系统
[root@localhost ~]# xfs_growfs /dev/mapper/ubuntu--vg-ubuntu--lv
ext 格式:
[root@localhost ~]# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
情况 2:新增磁盘扩容到原有分区
操作与情况 1 类似,仅需跳过 “创建新分区” 步骤,直接将新增磁盘创建为物理卷:
[root@localhost ~]# pvcreate /dev/vdb
后续步骤(vgextend、lvresize、文件系统扩容)与情况 1 完全一致,注意根据实际 LV 名称调整命令即可。
温馨提示
- 所有扩容操作前,新手务必做快照备份,避免数据丢失;
- 不同云平台或虚拟化平台的磁盘扩容支持情况不同,需提前确认。
以上就是 Linux 系统常用的磁盘扩容方法,覆盖了大部分生产环境场景。如果对你有帮助,欢迎点赞、关注、收藏,后续会分享更多运维实操技巧~ 如有疑问,可在评论区留言交流!