系统相关
首页 > 系统相关> > linux – ZFS是否刷新现有数据的压缩和复制?

linux – ZFS是否刷新现有数据的压缩和复制?

作者:互联网

我知道像拷贝和压缩这样的ZFS属性只会影响新写入的数据.

不过我想知道磨砂膏会更新吗?

假设我已经创建了一个池并在写入1TB文件之前设置了compression = lz4和copies = 2.

然后我决定不需要保留ditto块,但我也想使用其他类型的压缩.

如果我现在设置copies = 1和compression = gzip-9,有没有办法将它应用于已经写入池的数据?

磨砂膏会为我做这件事吗?

解决方法:

没有.

更改压缩和副本等数据集属性只会影响更改后写入的文件.要将这样的更改应用于现有文件,您需要复制它们并将它们复制到原始文件上.当然,这将破坏与相同文件名的任何先前快照的任何连接(以及与文件的任何硬链接,因为inode将是不同的).

或者,要将此类更改应用于整个池或数据集,您可以将zfs发送到其他池(例如备份池),从原始池中销毁数据集(或销毁池并重新创建它),以及然后zfs发回来.注意:使用zfs send的-R(–replicate)选项不能执行此操作,因为这也会启用send的-p( – props)选项.有关更多详细信息,请参阅man zfs并搜索zfs send.

如果有足够的冗余来获得与校验和匹配的良好副本,zfs scrub将检查池上的现有数据并重写任何损坏的副本…如果没有,它只是警告不可纠正的错误.

标签:linux,zfs
来源: https://codeday.me/bug/20190814/1654612.html