使用 lvextend 后,我无法恢复未使用的空间

使用 lvextend 后,我无法恢复未使用的空间

我需要向我的 CentOS VM 添加更多磁盘空间,因此我添加了另一个虚拟磁盘,然后使用 lvextend 将空间添加到现有分区。

我遵循的步骤是:

echo "- - -" > /sys/class/scsi_host/host0/scan
pvcreate /dev/sdb
vgextend VolGroup00 /dev/sdb
lvextend -l +100%FREE /dev/VolGroup00/LogVol00
resize2fs /dev/VolGroup00/LogVol00

这很有效。我随后填满了虚拟机,然后删除了大部分已使用的磁盘空间。然而,在我删除所有文件后,未使用的磁盘空间再也没有恢复。

这将更好地说明我的意思:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       61G   32G   26G  56% /
/dev/sda1              99M   20M   75M  21% /boot
tmpfs                1006M     0 1006M   0% /dev/shm

# pwd; du -h --max-depth=0
/
5.1G    .

我不知道如何让分区显示只使用了 5.1 GB。你知道我做错了什么吗?

答案1

运行du -sh /并比较输出结果df -h。我敢打赌,使用的空间会有很大差异。

重新启动服务器或终止任何打开了您删除的文件的进程。可能存在打开的文件描述符,这些文件描述符使空间标记为不可用。检查lsof |grep /volumevolume您要检查的卷在哪里)或只是lsof +L1,您可能会看到您删除的文件仍被视为打开的。

我不想建议“只需重新启动它”,但如果有很多打开的文件描述符,这可能是最简单的方法。

答案2

在 Redhat 6 上工作。

开始之前刷新文件系统设备的缓冲区缓存。

resize2fs -F

扩展和调整大小:

lvextend -L4G /dev/$VGNAME/$LVNAME

resize2fs -F /dev/$VGNAME/$LVNAME

相关内容