在小型文件系统上,文件大小非常奇怪(超过600 PB)


21

我在XFS文件系统上有一个文件,大小约为200 GB。这是一个QCOW2映像,其中包含KVM驱动的虚拟机的虚拟磁盘。出了点问题(可能是qemu-kvm出现故障,我不确定),虚拟机崩溃了,现在我有了一个看起来像这样的文件:

191090708 -rwxr--r--. 1 root root 737571587400425984 Oct 10 10:03 973d10e0-a5e3-4a59-9f98-4b9b9f072ade

因此,它仍然占据191090708个块,但ls显示为656 PB。

而且,我还有另一个具有相同的历史记录的文件,但是在另一个文件系统上(不是XFS,而是GFS2):

410855320 -rwxr--r--. 1 root root 7493992262336241664 Dec 13  2014 ac2cb28f-09ac-4ca0-bde1-471e0c7276a0

它占用410855320块,但ls显示为约6.6 艾字节。

您认为删除这些文件安全吗?谢谢!

PS定期拍摄快照真是太好了!:)我不知道如果没有他们我该怎么办。


非常感谢您的答复。当然,我了解稀疏文件,但是对我来说,最重要的问题是:删除这些文件是否安全?正如我现在所看到的,如果文件系统损坏,就有机会丢失一些数据。我不能确定文件系统是否正常,因为卸载和检查它们是不可取的,但是第一次出现是在4个月前发生的,第二次发生在14个月前,所以我希望我能看到有任何文件系统腐败,如果有的话。你怎么看?
Volodymyr Melnyk

Answers:


31

我看到您看到这些文件大小的两个可能原因:

  • 稀疏文件
  • 文件系统损坏

稀疏文件是某些文件系统上的功能,您可以在其中创建带孔的文件。没有为孔分配物理空间。跨孔读取将一路返回NUL字节。

如果您看到的原因是稀疏文件,则删除它们与使用非稀疏文件一样安全。

如果您所看到的原因是文件系统损坏,那么在没有文件系统检查的情况下删除文件是不安全的。如果文件系统以多个文件声称占用相同空间的方式损坏,则删除其中一个文件将导致这些块被释放。一旦释放了这些释放的块,损坏就会变得更加严重。

如果您发现任何其他症状使您认为文件系统可能已损坏,则应在删除文件之前强制对文件系统进行全面检查。

如果没有证据表明文件系统已损坏,并且文件似乎稀疏,我将在不再需要它们时将其删除。


6

问题是您计算文件大小的方式。

一种方法是查看最后一个字节的偏移量(如ls)。另一种方法是对真正分配的块求和(例如du)。

您所看到的可能是文件写入的数据偏移量很大。这意味着您的文件地址空间的主要部分未分配。但是您仍然可以阅读它。


谢谢。您怎么看,如果我删除这些文件,它不会崩溃吗?
Volodymyr Melnyk

1
谷歌“稀疏文件”的详细信息。
Kondybas '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.