openEuler磁盘扩容后空间去哪了四层排查指南刚给openEuler虚拟机扩容磁盘明明在管理界面增加了存储空间但登录系统后df -h显示的容量纹丝不动这种空间消失现象在LVM存储架构中其实很常见——扩容操作需要穿透物理设备、逻辑卷、文件系统等多个层级才能最终生效。本文将带你用侦探思维逐层排查通过lsblk、pvdisplay、lvdisplay、df等命令组合精准定位问题卡点。1. 存储架构的洋葱模型Linux的LVMLogical Volume Manager存储体系像洋葱一样分层封装。当我们在虚拟化平台扩展磁盘容量后新空间需要依次穿透以下四层屏障物理设备层虚拟磁盘的原始存储设备如/dev/sda物理卷层被LVM管理的物理分区如/dev/sda2逻辑卷层分配给具体用途的虚拟块设备如/dev/mapper/openeuler-root文件系统层最终被挂载使用的存储空间如/根目录每一层都可能成为扩容操作的拦路虎。下面我们通过一组诊断命令自底向上排查问题。2. 物理设备层验证首先确认虚拟机是否识别到新的磁盘容量。执行以下命令查看原始磁盘信息lsblk -o NAME,SIZE,RO,FSTYPE,MOUNTPOINT典型输出示例NAME SIZE RO FSTYPE MOUNTPOINT sda 256G 0 ├─sda1 1G 0 ext4 /boot └─sda2 63G 0 LVM2_member ├─openeuler-root 40G 0 ext4 / ├─openeuler-swap 4G 0 swap [SWAP] └─openeuler-home 20G 0 ext4 /home关键检查点sda的总大小是否与扩容后的预期一致分区表是否覆盖全部空间如示例中sda2仍为63G存在未分配空间若sda容量未更新需检查虚拟机配置是否已保存是否需重新扫描SCSI设备echo 1 /sys/class/scsi_device/0\:0\:0\:0/device/rescan3. 物理卷层诊断当物理磁盘容量正确识别后需要验证LVM物理卷(PV)是否包含新增空间pvdisplay -C --units g输出示例PV VG Fmt Attr PSize PFree /dev/sda2 openeuler lvm2 a-- 63.00g 0问题定位PSize小于物理磁盘总空间 → PV未扩展PFree为0 → 卷组无可用空间扩展PV的核心命令pvresize /dev/sda2执行后再次检查pvdisplay正常应显示PV VG Fmt Attr PSize PFree /dev/sda2 openeuler lvm2 a-- 255.00g 192.00g4. 逻辑卷层调整卷组(VG)获得新空间后需要分配到具体逻辑卷(LV)。通过以下命令查看当前分配lvdisplay -C --units g openeuler输出示例LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root openeuler -wi-ao---- 39.69g swap openeuler -wi-ao---- 3.93g home openeuler -wi-ao---- 19.38g扩容操作扩展根分区70%空闲空间lvextend -l 70%FREE /dev/openeuler/root扩展home分区剩余空间lvextend -l 100%FREE /dev/openeuler/home扩展后验证root openeuler -wi-ao---- 174.09g swap openeuler -wi-ao---- 3.93g home openeuler -wi-ao---- 76.98g5. 文件系统层刷新即使LV已扩展文件系统仍可能保持原大小。这是最容易被忽略的一步。检查当前挂载点容量df -h / /home输出示例未刷新时Filesystem Size Used Avail Use% Mounted on /dev/mapper/openeuler-root 40G 35G 3.2G 92% / /dev/mapper/openeuler-home 20G 456M 19G 3% /home扩展文件系统的关键命令对于ext4文件系统resize2fs /dev/openeuler/root resize2fs /dev/openeuler/home对于xfs文件系统xfs_growfs /最终验证/dev/mapper/openeuler-root 172G 35G 130G 21% / /dev/mapper/openeuler-home 76G 456M 73G 1% /home6. 典型问题速查表现象检查命令可能原因解决方案df显示未变化lsblkLV未扩展执行lvextendlvextend报错vgdisplayVG空间不足先执行pvresize文件系统未扩展lvdisplay未刷新文件系统执行resize2fs磁盘大小未更新fdisk -l未识别新空间扫描SCSI设备7. 自动化扩容脚本对于频繁操作的环境可以创建自动化脚本保存为/usr/local/bin/lvm_expand.sh#!/bin/bash PV/dev/sda2 VGopeneuler ROOT_LV/dev/mapper/openeuler-root HOME_LV/dev/mapper/openeuler-home # 物理卷扩展 pvresize $PV # 逻辑卷扩展 lvextend -l 70%FREE $ROOT_LV lvextend -l 100%FREE $HOME_LV # 文件系统扩展 if grep -q ext4 /etc/fstab; then resize2fs $ROOT_LV resize2fs $HOME_LV else xfs_growfs / xfs_growfs /home fi echo 扩容完成当前磁盘状态 df -h / /home赋予执行权限chmod x /usr/local/bin/lvm_expand.sh
openEuler磁盘扩容后,空间去哪了?一步步教你用lsblk、pvdisplay、lvdisplay、df命令排查
发布时间:2026/6/2 2:07:25
openEuler磁盘扩容后空间去哪了四层排查指南刚给openEuler虚拟机扩容磁盘明明在管理界面增加了存储空间但登录系统后df -h显示的容量纹丝不动这种空间消失现象在LVM存储架构中其实很常见——扩容操作需要穿透物理设备、逻辑卷、文件系统等多个层级才能最终生效。本文将带你用侦探思维逐层排查通过lsblk、pvdisplay、lvdisplay、df等命令组合精准定位问题卡点。1. 存储架构的洋葱模型Linux的LVMLogical Volume Manager存储体系像洋葱一样分层封装。当我们在虚拟化平台扩展磁盘容量后新空间需要依次穿透以下四层屏障物理设备层虚拟磁盘的原始存储设备如/dev/sda物理卷层被LVM管理的物理分区如/dev/sda2逻辑卷层分配给具体用途的虚拟块设备如/dev/mapper/openeuler-root文件系统层最终被挂载使用的存储空间如/根目录每一层都可能成为扩容操作的拦路虎。下面我们通过一组诊断命令自底向上排查问题。2. 物理设备层验证首先确认虚拟机是否识别到新的磁盘容量。执行以下命令查看原始磁盘信息lsblk -o NAME,SIZE,RO,FSTYPE,MOUNTPOINT典型输出示例NAME SIZE RO FSTYPE MOUNTPOINT sda 256G 0 ├─sda1 1G 0 ext4 /boot └─sda2 63G 0 LVM2_member ├─openeuler-root 40G 0 ext4 / ├─openeuler-swap 4G 0 swap [SWAP] └─openeuler-home 20G 0 ext4 /home关键检查点sda的总大小是否与扩容后的预期一致分区表是否覆盖全部空间如示例中sda2仍为63G存在未分配空间若sda容量未更新需检查虚拟机配置是否已保存是否需重新扫描SCSI设备echo 1 /sys/class/scsi_device/0\:0\:0\:0/device/rescan3. 物理卷层诊断当物理磁盘容量正确识别后需要验证LVM物理卷(PV)是否包含新增空间pvdisplay -C --units g输出示例PV VG Fmt Attr PSize PFree /dev/sda2 openeuler lvm2 a-- 63.00g 0问题定位PSize小于物理磁盘总空间 → PV未扩展PFree为0 → 卷组无可用空间扩展PV的核心命令pvresize /dev/sda2执行后再次检查pvdisplay正常应显示PV VG Fmt Attr PSize PFree /dev/sda2 openeuler lvm2 a-- 255.00g 192.00g4. 逻辑卷层调整卷组(VG)获得新空间后需要分配到具体逻辑卷(LV)。通过以下命令查看当前分配lvdisplay -C --units g openeuler输出示例LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root openeuler -wi-ao---- 39.69g swap openeuler -wi-ao---- 3.93g home openeuler -wi-ao---- 19.38g扩容操作扩展根分区70%空闲空间lvextend -l 70%FREE /dev/openeuler/root扩展home分区剩余空间lvextend -l 100%FREE /dev/openeuler/home扩展后验证root openeuler -wi-ao---- 174.09g swap openeuler -wi-ao---- 3.93g home openeuler -wi-ao---- 76.98g5. 文件系统层刷新即使LV已扩展文件系统仍可能保持原大小。这是最容易被忽略的一步。检查当前挂载点容量df -h / /home输出示例未刷新时Filesystem Size Used Avail Use% Mounted on /dev/mapper/openeuler-root 40G 35G 3.2G 92% / /dev/mapper/openeuler-home 20G 456M 19G 3% /home扩展文件系统的关键命令对于ext4文件系统resize2fs /dev/openeuler/root resize2fs /dev/openeuler/home对于xfs文件系统xfs_growfs /最终验证/dev/mapper/openeuler-root 172G 35G 130G 21% / /dev/mapper/openeuler-home 76G 456M 73G 1% /home6. 典型问题速查表现象检查命令可能原因解决方案df显示未变化lsblkLV未扩展执行lvextendlvextend报错vgdisplayVG空间不足先执行pvresize文件系统未扩展lvdisplay未刷新文件系统执行resize2fs磁盘大小未更新fdisk -l未识别新空间扫描SCSI设备7. 自动化扩容脚本对于频繁操作的环境可以创建自动化脚本保存为/usr/local/bin/lvm_expand.sh#!/bin/bash PV/dev/sda2 VGopeneuler ROOT_LV/dev/mapper/openeuler-root HOME_LV/dev/mapper/openeuler-home # 物理卷扩展 pvresize $PV # 逻辑卷扩展 lvextend -l 70%FREE $ROOT_LV lvextend -l 100%FREE $HOME_LV # 文件系统扩展 if grep -q ext4 /etc/fstab; then resize2fs $ROOT_LV resize2fs $HOME_LV else xfs_growfs / xfs_growfs /home fi echo 扩容完成当前磁盘状态 df -h / /home赋予执行权限chmod x /usr/local/bin/lvm_expand.sh