我找不到更多信息,阅读代码让我认为我遇到了兼容性问题。
情况是这样的:这是在虚拟化多租户环境中。如果用户不再需要太多空间,我们一直在尝试找到一种缩小虚拟磁盘大小的方法。增加磁盘空间很容易,但缩小磁盘空间却很难。
今天,我们认为我们可以充分利用磁盘的过度配置,让虚拟磁盘保持原有的大小,但要实施配额。这与削减相结合,将导致后端 SAN 的实际使用量下降,从而有效反映客户的使用情况。
XFS 确实具有实现每个目录配额的功能(我们将尝试启用 / 以获得我们想要的功能)。ext4 仅基于每个用户或每个组具有配额,因此这不起作用。
输入:保留块。这些块的目的是在机器达到“磁盘已满”的情况时为 root(或者更确切地说是某些指定的用户/组)留出一些可用空间。
我尝试了一下,但始终无法触发它:即使我将保留块数设置为磁盘的 50%(通过 tune2fs),作为普通用户,我仍然可以消耗更多(甚至实际上填满磁盘)。
令我惊讶的是,查看报告的数据后tune2fs -l
,我发现一半的磁盘未被使用。互联网表示,作为在线报告,这个数字并不可靠,所以,好吧。(有趣的是,这个数字甚至在干净重启后也没有改变。)
我开始阅读内核选项和我们环境中的实际 ext4 代码,我偶然发现一条代码路径,它表明使用延迟块分配器可能不会触发块预留检查。
由于很难找到任何可靠的信息,这里有更具体的问题:
- 该功能是否还能正常使用?
- 它能够很好地替代磁盘范围配额吗?
- 我是否遇到了兼容性问题,其中保留块可能(未记录)不能与其他功能(例如延迟块分配器)一起使用?