Xdg Asked: 2016-05-06 23:48:56 +0800 CST2016-05-06 23:48:56 +0800 CST 2016-05-06 23:48:56 +0800 CST 是否可以将数据集转换为稀疏卷(精简配置)? 772 我创建了 ZFS 数据集并在其中安装了虚拟服务器。突然间,我的 ZFS 卷可用空间消失了,但并非每个数据集中都使用了所有空间。我想介绍精简配置(使用 ZFS 稀疏卷)。 是否可以将数据集转换为稀疏卷而不删除它们?谢谢。 zfs thin-provisioning 2 个回答 Voted hillsy 2018-01-26T04:01:31+08:002018-01-26T04:01:31+08:00 我认为接受的答案实际上并不正确,但我没有足够的代表发表评论。 假设当 OP 说“数据集”时,它们的意思是“ZFS 卷”(或 ZVOL)。 精简配置(又名稀疏)ZVOL 和常规 ZVOL 之间的唯一区别是是否通过refreservation属性保留完整大小,例如 # zfs create -V 10G tank/test_full # zfs create -s -V 10G tank/test_sparse # zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full NAME USED USEDDS USEDREFRESERV LUSED LREFER REFRESERV tank/test_full 10.3G 136K 10.3G 30K 30K 10.3G tank/test_sparse 136K 136K 0 30K 30K none 因此,您可以通过更改现有 ZVOL 将现有 ZVOL 转换为稀疏,refreservation例如 # zfs set refreservation=none tank/test_full # zfs list -o name,used,usedbydataset,usedbyrefreservation,logicalused,logicalreferenced,refreservation tank/test_sparse tank/test_full NAME USED USEDDS USEDREFRESERV LUSED LREFER REFRESERV tank/test_full 136K 136K 0 30K 30K none tank/test_sparse 136K 136K 0 30K 30K none Best Answer Michael Hampton 2016-05-06T23:52:56+08:002016-05-06T23:52:56+08:00 据我所知,不可能将现有的 zvol 转换为稀疏的;一开始就必须将它们创建为稀疏的。 但是,您可以创建一个新的稀疏 zvol,并zfs send从旧zfs recv的到新的,然后交换它们的名称。
我认为接受的答案实际上并不正确,但我没有足够的代表发表评论。
假设当 OP 说“数据集”时,它们的意思是“ZFS 卷”(或 ZVOL)。
精简配置(又名稀疏)ZVOL 和常规 ZVOL 之间的唯一区别是是否通过
refreservation
属性保留完整大小,例如因此,您可以通过更改现有 ZVOL 将现有 ZVOL 转换为稀疏,
refreservation
例如据我所知,不可能将现有的 zvol 转换为稀疏的;一开始就必须将它们创建为稀疏的。
但是,您可以创建一个新的稀疏 zvol,并
zfs send
从旧zfs recv
的到新的,然后交换它们的名称。