Дуже дивний розмір файлу (більше 600 PB) у невеликій файловій системі


21

У мене був файл у файловій системі XFS розміром близько 200 ГБ. Це було зображення QCOW2, що містить віртуальний диск віртуальної машини, керованої KVM. Щось пішло не так (можливо, це був якийсь збіг 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 місяці тому, друге - 14 місяців тому, тож сподіваюся, що я побачу, що існувала файлова система корупція, якщо такі були. Як ти гадаєш?
Володимир Мельник

Відповіді:


31

Я бачу дві можливі причини, коли ви бачите такі розміри файлів:

  • Рідкі файли
  • Пошкодження файлової системи

Рідкі файли - це особливість деяких файлових систем, за допомогою яких ви можете створити файл з отворами в ньому. Для отворів не виділяється фізичний простір. Читання через отвори поверне NUL байтів повністю.

Якщо причиною того, що ви бачите, є розріджені файли, то видалити їх так само безпечно, як і з нерозрідженим файлом.

Якщо причиною того, що ви бачите, є пошкодження файлової системи, видалення файлів без перевірки файлової системи не є безпечним. Якщо файлова система пошкоджена таким чином, коли декілька файлів стверджують, що займають одне і те ж місце, то видалення будь-якого файлу призведе до звільнення цих блоків. Після повторного використання цих звільнених блоків корупція посилюється.

Якщо ви помітили будь-які інші симптоми, які вважають, що файлова система може бути пошкодженою, перед видаленням файлів слід змусити повністю перевірити файлову систему.

Якщо немає ніяких доказів, які б припускали, що файлова система пошкоджена, а файли здаються рідкими, я б просто видалив файли, як тільки вони мені більше не потрібні.


6

Проблема полягає у способі обчислення розміру файлу.

Один із способів - це зміщення останнього байта (як ls). Інший спосіб - підсумовувати дійсно виділені блоки (наприклад, du).

Що ви бачите, якщо, ймовірно, файл із даними, записаними в дуже великому зміщенні. Це означає, що основні частини адресного простору вашого файлу не виділені. Але ти все одно можеш її прочитати.


Дякую. Як ви думаєте, чи нічого не вийде з ладу, якщо я просто видалю ці файли?
Володимир Мельник

1
"Розріджений файл" Google для детальної інформації.
Кондібас
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.