因此,我在基于 zfs 的备份服务器上空间不足,并删除了一些旧备份,但文件系统上的空间随后并未释放。
第一个猜测?周围一定还残留着一些旧的快照。所以我跑了:
zfs list -t snapshot | grep "pool/backups@"
Run Code Online (Sandbox Code Playgroud)
确实有一些:
NAME USED AVAIL MOUNTPOINT
pool/backups@auto-20140118.1656-5y 4.81M 0 0
pool/backups@auto-20140120.0900-5y 270K 0 0
pool/backups@auto-20140121.0901-5y 270K 0 0
pool/backups@auto-20140122.0902-5y 270K 0 0
pool/backups@auto-20140123.0903-5y 270K 0 0
pool/backups@auto-20140124.0904-5y 270K 0 0
pool/backups@auto-20140125.0905-5y 270K 0 0
pool/backups@auto-20140126.0906-5y 270K 0 0
Run Code Online (Sandbox Code Playgroud)
但是,虽然我本希望看到USED我刚刚删除的大小约为 400G 的快照,但根本没有任何大小值得注意的快照。
我确实花了几个小时试图在其他地方找到问题,当我最终运行时:
zfs destroy -nv pool/backups@
Run Code Online (Sandbox Code Playgroud)
令人惊讶的输出是:
will destroy pool/backups@auto-20140118.1656-5y
will destroy pool/backups@auto-20140120.0900-5y
will destroy pool/backups@auto-20140121.0901-5y
will destroy pool/backups@auto-20140122.0902-5y
will destroy pool/backups@auto-20140123.0903-5y
will destroy pool/backups@auto-20140124.0904-5y
will destroy pool/backups@auto-20140125.0905-5y
will destroy pool/backups@auto-20140126.0906-5y
will reclaim 421G
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:为什么不zfs list显示快照的实际大小?我应该采取什么不同的措施才能首先获得快照消耗的实际空间?
我遇到了同样的问题,我在r/zfs上得到了答案。问题是该USED列仅显示该快照特有的块。如果块在多个快照之间共享,则根本不会列出它们。这样,当您删除快照时,您将USED再次获得确切的空间,如果该快照中的块仍被其他快照使用,则该空间将接近于零。
当您一个接一个地删除快照时,最终您将只剩下一个引用这些块的快照,并且突然所有空间都将显示在列中USED。
这并不理想,但我认为他们确实有道理 - 如果在您的情况下,一堆快照之间共享 400 GB,但删除其中任何一个快照都不会释放任何空间,您如何显示它?
| 归档时间: |
|
| 查看次数: |
6365 次 |
| 最近记录: |