我第一次忘记压缩已启用。 但是,第二次尝试,我得到了文件系统的压缩率,并得到了du返回的表观大小。
这些在尺寸上一致:
louis@watson:~$ sudo zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT watson 3.62T 2.74T 904G 75% 1.00x ONLINE - louis@watson:~$ sudo zfs list NAME USED AVAIL REFER MOUNTPOINT watson 2.74T 846G 30K none watson/gelato 2.73T 846G 2.67T /data/gelato louis@watson:~$ sudo zfs get compressratio watson/gelato NAME PROPERTY VALUE SOURCE watson/gelato compressratio 1.64x -
我预计压缩2.67 TB,节省1.64倍,以适应6TB驱动器,这得到du的重申:
louis@watson:~$ cd /data/gelato/ louis@watson:/data/gelato$ sudo du -hs --apparent-size 4.6T .
但是在备份过程中我又一次跑出了空间,我不知道为什么。 当6TB驱动器空间不足时,可能还有不到1TB的拷贝。 尽pipe如此,我认为这可能会导致这种差异。
花絮:
louis@watson:~$ sudo zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD watson 846G 2.74T 0 30K 0 2.74T watson/gelato 846G 2.73T 53.6G 2.67T 0 0 watson/home 846G 15.8G 57.3M 15.8G 0 0
有没有更好的方法来获取存储在压缩的ZFS文件系统上的数据的实际大小?
我应该提到我使用rsync -avh进行备份。 在目标驱动器上,我看不到快照(….. /。zfs / snapshot)。 这是否意味着快照不被复制?
有些事情要考虑:
zfs list -o recsize watson/gelato
)。 如果你有很多小数据但logging大,空间就会浪费。 另一方面,由于标题和元数据,空间也被浪费了,但是通常效果并不明显。 如果通过SMB / CIFS共享文件系统,则可以使用Windows资源pipe理器文件夹属性窗口查看不同之处。 copies
属性是否被设置为1或更大值(过去可能已被设置和禁用,并且在之间的时间段内为新写入的数据创build拷贝)。 usedbychildren
使用的属性, usedbydataset
, usedbyrefreservation
和usedbysnapshots
更多详细信息。 他们总结used
,所以这不是什么新东西,但可以帮助识别旧的快照等。 logicalused
和logicalreferenced
属性 我会build议zpool list
。
我也会检查快照的使用情况。 你的环境中是否有快照?