是否可以将数据集转换为稀疏卷(精简配置)?

是否可以将数据集转换为稀疏卷(精简配置)?

我创建了 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 转换为稀疏refreservationZVOL,例如

# 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

相关内容