ZFS 逻辑引用与引用

ZFS 逻辑引用与引用

在将 zvol 从一个池发送到另一个池后,我惊讶地发现只有一半的数据“在那里”(根据REFER)。然后我注意到在发送的快照上是referenced302Glogicalreferenced150G但在将其发送到新池后,这两个值匹配。我不明白为什么会这样,如果有什么的话,我认为logicalreferenced应该大于referenced。这302G尤其令人困惑,因为 zvol 是通过使用 iSCSI 发送 150GB 驱动器来填充的dd

tank/Win10Root         831G   747G   302G  -
tank/Win10Root@send  referenced            302G                   -
tank/Win10Root@send  logicalreferenced     150G                   -

# zfs send tank/Win10Root@send | zfs recv wd/Win10Root

wd/Win10Root           151G  6.24T   151G  -
wd/Win10Root@send  referenced            151G                   -
wd/Win10Root@send  logicalreferenced     150G                   -

编辑:已发布logicalused(为 0),而不是logicalreferenced意外

这些是 的所有属性tank/Win10Root。zvol 是用 创建的zfs create -V 512G tank/Win10Root

@ubuntu1:~$ sudo zfs get all tank/Win10Root | sort
NAME            PROPERTY              VALUE                  SOURCE
tank/Win10Root  available             740G                   -
tank/Win10Root  checksum              on                     default
tank/Win10Root  compression           off                    default
tank/Win10Root  compressratio         1.00x                  -
tank/Win10Root  context               none                   default
tank/Win10Root  copies                1                      default
tank/Win10Root  creation              Sat Nov  4 14:21 2017  -
tank/Win10Root  dedup                 off                    default
tank/Win10Root  defcontext            none                   default
tank/Win10Root  fscontext             none                   default
tank/Win10Root  logbias               latency                default
tank/Win10Root  logicalreferenced     150G                   -
tank/Win10Root  logicalused           150G                   -
tank/Win10Root  mlslabel              none                   default
tank/Win10Root  primarycache          all                    default
tank/Win10Root  readonly              off                    default
tank/Win10Root  redundant_metadata    all                    default
tank/Win10Root  refcompressratio      1.00x                  -
tank/Win10Root  referenced            302G                   -
tank/Win10Root  refreservation        528G                   local
tank/Win10Root  reservation           none                   default
tank/Win10Root  rootcontext           none                   default
tank/Win10Root  secondarycache        all                    default
tank/Win10Root  snapdev               hidden                 default
tank/Win10Root  snapshot_count        none                   default
tank/Win10Root  snapshot_limit        none                   default
tank/Win10Root  sync                  standard               default
tank/Win10Root  type                  volume                 -
tank/Win10Root  used                  831G                   -
tank/Win10Root  usedbychildren        0                      -
tank/Win10Root  usedbydataset         302G                   -
tank/Win10Root  usedbyrefreservation  528G                   -
tank/Win10Root  usedbysnapshots       0                      -
tank/Win10Root  volblocksize          8K                     -
tank/Win10Root  volsize               512G                   local
tank/Win10Root  written               0                      -

答案1

这完全是一个检查的案例手册页对于 ZFS:

引用

此数据集可访问的数据量,这些数据可能会或可能不会与池中的其他数据集共享。创建快照或克隆时,它最初引用的空间量与创建它的文件系统或快照相同,因为其内容是相同的。

此属性也可以通过其缩写列名 refer 来引用。

和...

逻辑参照

此数据集“逻辑上”可访问的空间量。请参阅引用的属性。逻辑空间忽略压缩和复制属性的影响,其数量更接近应用程序看到的数据量。但是,它确实包括元数据占用的空间。

此属性也可以通过其缩写列名 lrefer 来引用。

需要考虑的事项:

  • 你的 zvols 稀疏吗?
  • 压缩和重复数据删除的属性是什么?
  • zvol 里面有什么?

相关内容