В конце прошлой недели один из моих коллег заметил нечто странное на одном из наших общих вычислительных серверов.
У нас есть каталог, который 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-img
util:
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
Если ваш сервер не является хостом виртуализации, см. следующие темы: