du/df и ls сообщают о разном использовании диска

du/df и ls сообщают о разном использовании диска

В конце прошлой недели один из моих коллег заметил нечто странное на одном из наших общих вычислительных серверов.

У нас есть каталог, который ls -lотображается как содержащий файл размером 132 ГБ.

Однако запуск df -hпоказывает, что общий объем используемого пространства на диске составляет 128G. Кроме того, запуск du -h --max-depth=1в корне диска также сообщает о 128G для.

Сначала я задавался вопросом, может ли эта проблема быть результатом открытых файловых дескрипторов или чего-то подобного, заставляющего эти двоичные файлы сообщать разную информацию. Однако я устал отмонтировать и перемонтировать диск, и все двоичные файлы сообщают те же результаты, что и раньше.

Чтобы дать немного больше информации о конфигурации привода:

  • Том отформатирован с использованием EXT4 поверх шифрования LUKS.
  • Диск не доступен через NFS или что-то подобное.
  • Я проверил нужный файл и, похоже, он не связан.
  • При размонтировании и повторном монтировании тома я принудительно выполнил проверку диска, запустив ее fsck -fна томе, и никаких проблем не возникло.
  • Сервер, на котором расположен диск, не является хостом виртуализации и работает под управлением ОС Ubuntu 14.04.

решение1

Является ли ваш сервер хостом виртуализации?

Разные реальные размеры файлов и дискового пространства — это нормальное поведение для динамически расширяющихся виртуальных дисков. Эти диски имеют разные реальные размеры файлов и данные о заголовочных файлах

Пример:

возможно, вы используете виртуальные диски QEMU (расширение QCOW2 или другое), которые можно найти с помощью:

find / -regex '.*\.qcow.*$'

/var/lib/vz/images/105/vm-105-disk-1.qcow2
...

Давайте проверим vm-105-disk-1.qcow2размер с помощью stat:

stat vm-105-disk-1.qcow2

  File: vm-100-disk-1.qcow2
  Size: 68745560064

79728541696 - примерно 64 ГБ

Проверить с wc:

wc -c <vm-105-disk-1.qcow2

68745560064

Тот же результат... Проверьте с помощью du:

du -sh vm-105-disk-1.qcow2

15G        vm-105-disk-1.qcow2

Всего 15 ГБ! Давайте проверим с помощью qemu-imgutil:

qemu-img info vm-105-disk-1.qcow2

image: vm-105-disk-1.qcow2
file format: qcow2
virtual size: 64G (68719476736 bytes)
disk size: 14G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

Обратите внимание на эти две строки, и все должно быть ясно:

virtual size: 64G (68719476736 bytes)
disk size: 14G

Если ваш сервер не является хостом виртуализации, см. следующие темы:

Связанный контент