昨天,我删除了家庭/媒体服务器上的 71 GB 的文件。
- 之前可用空间:117 GB
- 之后可用空间:126 GB
因此,我没有获得 71 GB 的额外可用空间,而只有 9 GB。我仔细检查了没有打开任何文件,我确实删除了 71 GB,可用空间实际上只增加了 9 GB。
我也尝试过同步,但是没有效果。
这不是第一次发生。事实上,多年来我时不时地看到过这种情况。第一次是在 ext3 上,现在是在 ext4 上。
发生这种情况时,我可以通过卸载然后重新安装文件系统来回收可用空间。在这些情况下,卸载需要长达 2 分钟的时间,而不是几乎不需要时间。
如今,我无法轻松地卸载和重新安装文件系统,因为它一直忙于处理我的录像机软件、我家人的 owncloud 服务器以及一些我目前还没有的服务。我不想半夜 3 点起床只是为了卸载和重新安装。
不,该at
实用程序不行,因为其中一项服务执行不可恢复的长期运行任务,因此需要手动状态检查以找到可以关闭的良好时机,即一项任务刚刚完成。
但今天早上,我注意到该空间已在一夜之间被释放。在我看来好像进行了某种清理,这可能与卸载时需要额外时间的事情相同。
到目前为止,我只在删除大量数据时才注意到此行为。另一方面,我不确定它是否经常发生,而且差异太小而无法察觉。
文件系统创建时为根保留了 0% ( mkfs -m 0
)。根据fsck -f
(我在卸载和重新安装之间总是这样做),文件系统没有损坏,并且根据 SMART 诊断扩展测试,硬件也没有问题。
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name: bigdata
Last mounted on: /bigdata
Filesystem UUID: 6aebd17a-e064-41dc-9c68-c9a3acbe4f66
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 121413632
Block count: 485645568
Reserved block count: 0
Free blocks: 29081276
Free inodes: 121382378
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 908
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Tue Dec 25 23:42:35 2012
Last mount time: Fri Jan 3 17:37:36 2014
Last write time: Fri Jan 3 17:37:36 2014
Mount count: 37
Maximum mount count: -1
Last checked: Thu Apr 18 17:03:40 2013
Check interval: 0 (<none>)
Lifetime writes: 14 TB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: be2b977e-5127-4843-9123-fe33b6d7b573
Journal backup: inode blocks
这是我的两个问题:
- 这里发生了什么?为什么
umount
在删除时会延迟释放空间,而不是立即释放? - 我可以做些什么来释放空间现在无需卸载并重新安装?
答案1
有两个因素可能相互作用。
与 Windows 不同,您可以删除打开的文件。如果您删除正在流式传输的电影,它将从目录中删除,但仍将作为文件存在,直到流式传输程序关闭它。一旦流式传输软件关闭它,空间将被释放。该
fuser -m
命令可用于查找任何打开文件的进程的进程 ID。某些程序在处理完文件后可能不会立即关闭文件。这些都是日志文件系统。更改会写入日志,然后提交。更改提交可能需要一段时间。操作系统通常会缓存磁盘更改,并且只会定期将更改提交到磁盘。运行该
sync
命令应该会将所有待处理的更改刷新到磁盘。使用该选项安装磁盘sync
将提高磁盘速度,但会使磁盘负载更大。