考虑以下命令和输出:
zfs send -Pvi \
tank/vms/langara@zfsnap-2016-05-11_00.00.00--1w \
tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w \
| dd > /dev/null
运行 1:
incremental zfsnap-2016-05-11_00.00.00--1w tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w 4903284160
size 4903284160
17:29:42 1244483472 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:29:43 2487508120 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:29:44 3741453864 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
9582310+895 records in
9582799+1 records out
4906393272 bytes (4.9 GB) copied, 3.94883 s, 1.2 GB/s
运行 2:
incremental zfsnap-2016-05-11_00.00.00--1w tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w 4903284160
size 4903284160
17:30:07 1209666712 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:08 2411042632 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:09 3632274072 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:30:10 4853372344 tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
9582450+654 records in
9582799+1 records out
4906393272 bytes (4.9 GB) copied, 4.05346 s, 1.2 GB/s
不带选项运行-P
:
total estimated size is 4.57G
TIME SENT SNAPSHOT
17:36:23 1.11G tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:36:24 2.25G tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:36:25 3.39G tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
17:36:26 4.50G tank/vms/langara@zfsnap-2016-05-13_00.00.00--1w
9582443+679 records in
9582799+1 records out
4906393272 bytes (4.9 GB) copied, 4.01077 s, 1.2 GB/s
我有 4 个相关问题。
- 带有开关的初始大小是
-P
估算值吗?我认为它与没有开关时相同-P
,但没有说明它是一个估算值。 zfs send
发送完成后有没有办法输出实际的流大小?- 有没有办法通过使用现有的 ZFS 属性来确定估计的流大小
zfs send
,还是试运行发送是唯一的方法? - 是否有类似的东西
logicalwritten
(注意:不是真正的属性)可以给我与written
属性相同的信息,但使用未压缩的大小?
答案1
- 根据手册页描述,我认为
Print machine-parsable verbose information about the stream package generated
这些信息是相同的,只是格式更好(例如,以字节为单位,而不是转换为 KB/MB/GB)。另外,从您的示例 4903284160/1024^3~=4.566 开始,四舍五入为 4.57,结果正确。 看一下此 Oracle 文档,这可能会有所帮助:
Use the following dry-run syntax to estimate the size of the snapshot stream but not send it. # zfs send -rnv tank/source@snap1 estimated stream size: 10.0G You can monitor the progress of the send stream by inserting the pv command between the zfs send and the zfs receive commands. [...] When the snapshot stream is completely received, the progress monitor identifies the total size received. For example: # zfs send tank/source@snap1 | pv |zfs recv pond/target 10GB 0:01:55 [88.5MG/s] [ <=> ]
Solaris 11.3 还引入了一些新的监控功能,将来
send/recv
illumos/OpenZFS 可能会采用类似的东西。- 预估尺寸已经有了,你是指真实尺寸吗?遗憾的是无法获取真实尺寸,详情请参阅此主题。
也许
logicalused
?从FreeBSD 手册页(zfs
illumos 也具有该属性,但是手册页缺少描述):logicalused The amount of space that is "logically" consumed by this dataset and all its descendents. See the used property. The logical space ignores the effect of the compression and copies properties, giving a quantity closer to the amount of data that applications see.