Linux回收存储空间 - ext4 unmap功能

时间:2020-03-05 15:28:38  来源:igfitidea点击:

它已经很久了解了块级存储空间,一直在提醒和令人沮丧,所有在存储方上工作。
块存储仅知道曾经写的卷的区域。
如果稍后将应用程序释放空间/删除文件,则空格在存储侧未被标记为未使用,或者无法在存储GUI /接口中看到更改。

甚至它已经讨论了一段时间,现在它在操作系统(文件系统级别)上引入了Unmap/Trim功能,有助于回收空间。
在Linux下面的文件系统有这些功能。

ext4 (v2.6.36-rc6-35-g7360d17)
ext3 (v2.6.37-11-g9c52749)
xfs (v2.6.37-rc4-63-ga46db60)

它已经在ESX 5和后来的情况下,由于一些性能问题删除了更新1.现在它已在Windows 2012服务器上引入。
所以这是所有系统经理的快乐日子:-)。
这对许多使用块级存储等equallogic,Compellent等的企业非常有用。

在Linux上,它很简单它装入带丢弃选项的文件系统。
我在Redhat 6.0.1中测试了这一点,它成功了。
内核应支持修剪功能,文件系统必须包括FITRIM支持。
此功能包含在Linux内核2.6.38中。

可以通过检查/sys/block //queue/discard_max_bytes验证此功能。
如果值为零,则它支持Discard选项。

[root@server1 ~]# mkfs.ext4 /dev/sdb1
[root@server1 ~]# mount -o discard /dev/sdb1 /apps

/etc/fstab应该如下所示

/dev/sdb1 /apps ext4 defaults,discard 0 1

那里有两种类型的"丢弃"。
他们是:

1)实时丢弃模式2)批处理模式

实时丢弃是我上面所示的一个,并且在此模式下,它会在文件系统中删除文件(无用户操作)时,它会自动发出丢弃请求。
但它有轻微的性能问题。
但第二个选项批处理模式需要用户操作,用户需要手动运行命令。
该命令如下。

# fstrim /apps

fstrim可以从sourceforge下载
https://sourceforge.net/projects/fstrim/