回收 'df' 表示应该可用的空间

回收 'df' 表示应该可用的空间

我在 Rackspace 的 CloudServer 上托管了一台 Linux 服务器,它显示没有可用空间,还显示根分区上有 12GB 未使用。该服务器的唯一任务是每晚通过 rsync 从另一台服务器同步文件并保存这些文件的紧急备份。

我发现一个目录中有一些不需要的备份文件,因此删除了它们,这样我就有 12GB 未使用空间了。删除文件会缩小“已用”空间,但不会对“可用”空间产生任何影响。

lsof没有表明它正在保留任何东西并df -i说我有足够的可用 inode。

我也多次重启了该服务器,但问题仍然存在。我甚至重启到救援模式并fsck在设备上运行了,但没有看到任何明显的错误:

root@RESCUE-nightly-snapshot:~# fsck /dev/xvdb1
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/xvdb1: recovering journal
Setting free inodes count to 20630768 (was 20630766)
Setting free blocks count to 2845985 (was 2755815)
/dev/xvdb1: clean, 340752/20971520 files, 81040087/83886072 blocks
root@RESCUE-nightly-snapshot:~#

所以我有点卡住了,因为普通用户无法创建任何新文件,而系统日志用户无法附加到任何日志文件。

最后,文件系统是 ext3,我脑子里有个声音告诉我,日志可能有点问题。我不知道这个空间是否被日志占用,或者如何判断。

我将非常感激任何关于如何重新获得这个应该被释放的空间的提示。

root@nightly-snapshot:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      315G  303G     0 100% /
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           1.6G  244K  1.6G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G     0  3.9G   0% /run/shm
overflow        1.0M     0  1.0M   0% /tmp
/dev/md0        5.0T  4.2T  593G  88% /mnt/raid
root@nightly-snapshot:~# df -i
Filesystem        Inodes    IUsed     IFree IUse% Mounted on
/dev/xvda1      20971520   340750  20630770    2% /
udev             1016188      422   1015766    1% /dev
tmpfs            1018170      319   1017851    1% /run
none             1018170        3   1018167    1% /run/lock
none             1018170        1   1018169    1% /run/shm
overflow         1018170        1   1018169    1% /tmp
/dev/md0       167772160 12607068 155165092    8% /mnt/raid
root@nightly-snapshot:~#
root@nightly-snapshot:~# lsof | grep -i deleted
root@nightly-snapshot:~#

答案1

有可能这个空间是为 root 用户保留的。请使用以下命令检查为 root 保留了多少空间:

tune2fs -l /dev/xvda1

这将为您提供为 root 用户保留的块数,将其乘以块大小,您将获得保留空间的大小(以字节为单位)。

您可以使用以下命令修改保留空间:tune2fs -m 1 /dev/xvda1后面的数字-m是应保留的磁盘空间百分比。在此示例中,该百分比为 1%。

相关内容