Bardzo dziwny rozmiar pliku (ponad 600 PB) na małym systemie plików

21

Miałem plik w systemie plików XFS, którego rozmiar wynosił około 200 GB. Był to obraz QCOW2 zawierający wirtualny dysk maszyny wirtualnej napędzanej KVM. Coś poszło nie tak (może to była usterka qemu-kvm, nie jestem pewien), maszyna wirtualna uległa awarii i teraz mam plik, który wygląda tak:

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

Tak więc nadal zajmuje 191090708 bloków, ale lspokazuje go jako 656 petabajtów.

Ponadto mam inny plik z tą samą historią wstępną, ale w innym systemie plików (nie XFS, ale GFS2):

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

Zajmuje 410855320 bloków, ale lspokazuje to jako ~ 6,6 eksabajtów.

Jak myślisz, czy bezpiecznie jest usunąć te pliki? Dziękuję Ci!

PS Tak dobrze jest regularnie robić migawki! :) Nie wiem, co bym bez nich zrobił.

Wołodymyr Melnyk
źródło
Dziękuję bardzo za odpowiedzi. Oczywiście wiem o rzadkich plikach, ale najważniejsze dla mnie pytanie brzmi: czy można bezpiecznie usunąć te pliki? Jak widzę teraz, istnieje ryzyko utraty niektórych danych, jeśli systemy plików są uszkodzone. Nie mogę być pewien, że systemy plików są w porządku, ponieważ odmontowanie i sprawdzenie ich jest niepożądane, ale pierwsze wystąpienie miało miejsce 4 miesiące temu, drugie - 14 miesięcy temu, więc mam nadzieję, że zobaczę, że istniał jakiś system plików zepsucie, jeśli takie było. Co myślisz?
Volodymyr Melnyk

Odpowiedzi:

31

Widzę dwa możliwe powody, dla których widzisz te rozmiary plików:

  • Rzadkie pliki
  • Uszkodzenie systemu plików

Pliki rzadkie to funkcja w niektórych systemach plików, dzięki której można utworzyć plik z dziurami. Otwory nie mają przydzielonej przestrzeni fizycznej. Czytanie w poprzek otworów zwróci NUL bajtów do końca.

Jeśli przyczyną tego, co widzisz, są pliki rzadkie, usunięcie ich jest tak bezpieczne, jak w przypadku pliku nielicznego.

Jeśli przyczyną jest uszkodzenie systemu plików, usunięcie plików bez sprawdzenia systemu plików nie jest bezpieczne. Jeśli system plików jest uszkodzony w taki sposób, że wiele plików twierdzi, że zajmuje to samo miejsce, usunięcie dowolnego pliku spowoduje zwolnienie tych bloków. Gdy te uwolnione bloki zostaną ponownie wykorzystane, korupcja się pogorszy.

Jeśli zauważyłeś jakiekolwiek inne objawy, które przypuszczają, że system plików może być uszkodzony, należy wymusić pełne sprawdzenie systemu plików przed usunięciem plików.

Jeśli nie ma dowodów sugerujących, że system plików jest uszkodzony, a pliki wydają się być rzadkie, po prostu usunę te pliki, gdy już ich nie będę potrzebować.

kasperd
źródło
6

Problemem jest sposób obliczania rozmiaru pliku.

Jednym ze sposobów jest przesunięcie ostatniego bajtu (jak ls). Innym sposobem jest zsumowanie naprawdę przydzielonych bloków (np. Du).

Co widzisz, jeśli prawdopodobnie plik z danymi zapisanymi z bardzo dużym przesunięciem. Oznacza to, że główne części przestrzeni adresowej pliku nie są przydzielone. Ale nadal możesz to przeczytać.

François
źródło
Dziękuję Ci. Jak myślisz, czy nie spowoduje to awarii, jeśli po prostu usunę te pliki?
Volodymyr Melnyk
1
„Rzadki plik” Google, by poznać szczegóły.
Kondybas,