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

我需要增加更多的磁盘空间到我的CentOS虚拟机,所以我添加了另一个虚拟磁盘,然后使用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的使用。 任何想法我做错了什么?

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

重新启动服务器或closures具有已打开的文件的任何进程。 有可能打开文件描述符,将空间标记为不可用。 检查lsof |grep /volume (其中volume是要检查的卷),或者只是lsof +L1 ,您可能会看到您删除的文件仍然被视为打开。

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

在Redhat6上工作。

在开始之前清空文件系统设备的缓冲区caching。

resize2fs -F

扩展和resize:

lvextend -L4G /dev/$VGNAME/$LVNAME

resize2fs -F /dev/$VGNAME/$LVNAME