我有zdb -DDD geek1
命令的输出:
[root@zfs-test centos]# zdb -DDD geek1
DDT-sha256-zap-duplicate: 8193 entries, size 290 on disk, 141 in core
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
2 8K 1G 1G 1023M 24K 3G 3G 3.00G
16K 1 128K 128K 128K 16K 2G 2G 2.00G
DDT histogram (aggregated over all DDTs):
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
2 8K 1G 1G 1023M 24K 3G 3G 3.00G
16K 1 128K 128K 128K 16K 2G 2G 2.00G
Total 8.00K 1.00G 1.00G 1023M 40K 5G 5G 5.00G
dedup = 5.00, compress = 1.00, copies = 1.00, dedup * compress / copies
= 5.00
我在互联网上读到了有关 ZFS 的信息,也这里。我创建了 2 个文件。第一个是来自 /dev/urandom 的随机文件,第二个是来自 /dev/zero 的随机文件。每个文件有 1GB。我将 3x urandom 文件和 2x 零文件复制到我的 ZFS 服务器。 ZFS 的最小块大小为 128k。
我有以下问题:
- 是什么
refcnt
意思? - 分配列中的含义是什么
DSIZE
以及如何计算它? - 有 8193 个条目(独特的块)。数字290和141是什么意思?根据这文章中,我应该能够计算出我的 RAM 中有多少数据表(8193x141B=1,1MB)。如果可以的话,8193x290B=2,26MB 是什么意思?该表也保存在磁盘上吗?
- 最后一行的
compres
and是什么意思?copies
如果可能的话,请提供一些示例。
答案1
1:refcnt
表示引用计数,即块被对象引用的次数(它是二次幂,所以1
是,1
但2
实际上表示2
或3
1;4
表示4
, 5
, 6
, or7
等等)
2:DSIZE
= 磁盘大小,LSIZE
= 逻辑(在内存中),PSIZE
= 物理。磁盘上的大小和物理上的大小相等或非常接近,除非您将 zfs 设置为具有多个数据块副本,在这种情况下,磁盘上的大小会更大。
3:290 字节是重复数据删除表条目在磁盘上使用的大小,141 字节是条目使用的 RAM 量。该DDT
文件存储并在磁盘上同步,在您的情况下,当前确实使用了 2.26MB。
4:Compress
表示zpool压缩比(与重复数据删除无关)。由于可能未启用压缩,因此比率为 1,即根本不进行压缩。副本是指存储的同上块(与重复数据删除相反)的比率。没有同上块,因此比率也是 1。
启用压缩和同上块的输出示例:
bucket allocated referenced
______ ______________________________ ______________________________
refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE
------ ------ ----- ----- ----- ------ ----- ----- -----
2 2 256K 49K 98K 6 768K 147K 294K
Total 2 256K 49K 98K 6 768K 147K 294K
dedup = 3.00, compress = 5.22, copies = 2.00, dedup * compress / copies = 7.84
1在您的情况下,计数显然完全等于3
(3 GB 引用存储在 1 GB 磁盘中)。