小さなファイルシステムでの非常に奇妙なファイルサイズ(600 PB以上)


21

XFSファイルシステムにサイズが約200 GBのファイルがありました。これは、KVM駆動の仮想マシンの仮想ディスクを含むQCOW2イメージでした。何かがうまくいかなかったかもしれません(おそらくqemu-kvmの不具合だったかもしれませんが、私にはわかりません)、仮想マシンがクラッシュし、今では次のようなファイルがあります:

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

そのため、まだ191090708ブロックを占有していlsますが、656ペタバイトと表示されています。

さらに、同じ前史を持つ別のファイルがありますが、別のファイルシステム(XFSではなくGFS2)にあります。

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

410855320ブロックを占有しますが、ls約6.6エクサバイトとして表示されます。

これらのファイルを削除しても安全ですか?ありがとうございました!

PS定期的にスナップショットを撮ることはとても良いことです!:)私は彼らなしで何をするかわかりません。


お返事ありがとうございます。もちろん、スパースファイルについては知っていますが、最も重要な質問は次のとおりです。これらのファイルを削除しても安全ですか?今見たように、ファイルシステムが破損していると、データを失う可能性があります。ファイルシステムをアンマウントしてチェックするのは望ましくないため、ファイルシステムが大丈夫かどうかはわかりませんが、最初の発生は4か月前、2番目-14か月前に発生したため、ファイルシステムがあることを確認してください破損がある場合。どう思いますか?
ボロディマー・メルニーック

回答:


31

これらのファイルサイズが表示されるのには、2つの理由が考えられます。

  • スパースファイル
  • ファイルシステムの破損

スパースファイルは、一部のファイルシステムの機能であり、これにより、穴の開いたファイルを作成できます。穴に物理的なスペースは割り当てられません。ホール全体を読み取ると、NULバイトがすべて返されます。

表示されている理由がスパースファイルである場合、非スパースファイルの場合と同様に削除しても安全です。

表示されている理由がファイルシステムの破損である場合、ファイルシステムチェックなしでファイルを削除するのは安全ではありません。複数のファイルが同じスペースを占有していると主張する方法でファイルシステムが破損した場合、いずれかのファイルを削除すると、それらのブロックが解放されます。解放されたブロックが再利用されると、破損はさらに悪化します。

ファイルシステムが破損していると思われる他の症状が見られた場合は、ファイルを削除する前にファイルシステムの完全なチェックを強制する必要があります。

ファイルシステムが破損していることを示す証拠がなく、ファイルがまばらに見える場合は、不要になったファイルを削除します。


6

問題は、ファイルサイズの計算方法です。

1つの方法は、最後のバイトのオフセットを確認することです(lsなど)。もう1つの方法は、(duなどの)実際に割り当てられたブロックを合計することです。

おそらく非常に大きなオフセットで書き込まれたデータを持つファイルの場合に表示されるもの。つまり、ファイルアドレススペースの大部分は割り当てられません。しかし、あなたはまだそれを読むことができます。


ありがとうございました。これらのファイルを削除するだけで何もクラッシュしませんか?
Volodymyr Melnyk

1
詳細については、Googleの「スパースファイル」。
コンディバス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.