我创建了 ZFS 数据集并在其中安装了虚拟服务器。突然间我的 ZFS 卷可用空间消失了,但每个数据集中并未使用所有空间。我想引入精简配置(使用 ZFS 稀疏卷)。
是否可以将数据集转换为稀疏卷而不删除它们?谢谢。
答案1
据我所知,无法将现有的 zvol 转换为稀疏的;必须首先创建稀疏的。
但是,您可以创建一个新的稀疏 zvol,然后zfs send
从旧的稀疏 zvolzfs recv
切换到新的稀疏 zvol,然后交换它们的名称。
答案2
事实上,我认为所接受的答案并不正确,但我没有足够的代表来发表评论。
假设当 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
ZVOL,例如
# 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