zfs list -t 快照 rpool/ROOT/ubuntu_ycu6f2

zfs list -t 快照 rpool/ROOT/ubuntu_ycu6f2

我有 1TB 驱动器,使用 ubuntu 21.04 在 root 上运行 zfs。我的系统使用的内存不足 70GB。我已经使用 600GB 创建(截断)了一个图像文件。我将此图像文件用于不同的 zfs 数据集。然后我销毁了池和图像文件数据集。我还将图像文件截断为 0。我能够恢复大约 200GB。我缺少超过 400GB 的磁盘空间。 zfs 报告我正在使用 673GB。我没有看到使用超过 70GB。我没有看到任何快照使用如此多的磁盘空间。

#zfs 列表 -o 空间 -r rpool 显示rpool/ROOT/ubuntu_ycu6f2使用 636GB 用于快照。我找不到这些快照。

    NAME                                                              AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
    rpool                                                              241G   673G        0B     96K             0B       673G
    rpool/ROOT                                                         241G   647G        0B     96K             0B       647G
    rpool/ROOT/ubuntu_ycu6f2                                           241G   647G      636G   3.83G             0B      6.56G
....

zfs list -t 快照 rpool/ROOT/ubuntu_ycu6f2

NAME                                       USED  AVAIL     REFER  MOUNTPOINT
rpool/ROOT/ubuntu_ycu6f2@autozsys_14wuai   245M      -      637G  -
rpool/ROOT/ubuntu_ycu6f2@autozsys_edz0lw   122M      -      637G  -
rpool/ROOT/ubuntu_ycu6f2@autozsys_m7el6f   201M      -      637G  -
rpool/ROOT/ubuntu_ycu6f2@autozsys_4fi5he   167M      -     4.14G  -
rpool/ROOT/ubuntu_ycu6f2@autozsys_3af8r6   130M      -     4.35G  -

如何找到丢失的磁盘空间在哪里以及如何恢复它。

答案1

查看输出REFER中的列zfs list。请注意,前三个快照引用 637G。最后两个快照分别仅引用 4.14G 和 4.35G。这样看来,您截断的文件仍然在前三个快照中引用,但在后两个快照中不再引用。

要回收空间,您需要删除截断文件之前的快照:

sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_14wuai
sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_edz0lw
sudo zfs destroy -v rpool/ROOT/ubuntu_ycu6f2@autozsys_m7el6f

将选项添加-vzfs destroy命令行将显示每个命令释放了多少空间。一旦您销毁了这些快照,您应该会重新获得大约 633G 的可用空间。

相关内容