在 Linux 上通过写零自动删除文件

Dav*_*ria 6 linux zero-fill

我们运行精简配置的 Ubuntu 虚拟机,它们执行大量文件写入和删除。虽然来宾上的磁盘使用增长缓慢(净写入 - 删除),但主机上虚拟磁盘的大小增长得更快,因为主机无法知道许多块已释放空间。

我们定期让每个虚拟机脱机,并将零写入来宾文件系统中的空闲块。这允许我们缩小主机上的虚拟磁盘。

我想知道是否有人知道我们可以在来宾上安装的实用程序,每次删除文件时都会自动写入零。如果存在这样的实用程序,我们就可以自动缩小主机上的虚拟磁盘,而无需在来宾中的已删除文件上手动写入零。

我希望问题很清楚,并在此先感谢您的帮助

eww*_*ite 4

使用fstrim命令。

我使用一个简单的 cron 脚本对虚拟机和其他精简配置文件系统、ZFS zvols 和基于 SSD 的存储执行此操作:

#!/bin/bash

for fs in $(lsblk -o MOUNTPOINT,DISC-MAX,FSTYPE | grep -E '^/.* [1-9]+.* ' | awk '{print $1}')
  do fstrim $fs > /dev/null 2>&1
done
Run Code Online (Sandbox Code Playgroud)