zfs:zpool 空间图抖动 - 有修复吗?

zfs:zpool 空间图抖动 - 有修复吗?

对于相当满和/或非常碎片化的 zpools,我使用 metaslab 调试 ( echo metaslab_debug/W1 | mdb -kw) 来避免空间映射抖动以及由此导致的严重写入性能下降。问题本身似乎是老的理解,有传言称修复“正在进行中”一段时间以来,就像碎片整理 API 一样,它应该也应该有帮助,但我找不到在生产代码中默认修复它的“官方”方法。

我是否遗漏了什么?

一些环境数据:我的 zpools 大小适中(通常小于 10 TB),并且大多数 zfs 数据集中的 zvols 使用默认记录大小 8K(由于通常启用压缩,因此实际上是可变的)。多年来,我已经看到这个问题出现在不同版本的 Solaris 中,尤其是那些已经看到大量数据的旧 zpools。请注意,这与由于zpool 90% full performance wall空间利用率明​​显较低时发生碎片命中而导致的空间图抖动不同(我曾在几个旧池中看到这种情况发生在 70% 时)

答案1

不幸的是,一句话:不行。

长话短说:有点。ZFS 查找可用空间的方法在最新版本的 ZFS(Open-ZFS)中有所改变,以在一定程度上缓解该问题 - 底层碎片仍然存在,“修复”是它对性能的影响较小。

目前唯一真正的“修复”方法是 zfs 将数据从池中发送出去,清除池,然后 zfs 将数据发送回来。显然,根据您的工作量以及您对空间图进行碎片化的速度,问题会在以后再次出现。

还有其他潜在的修复/解决方法正在讨论/进行中,但我当然无法给出任何形式的预计到达时间。

相关内容