Оновлення вільного розміру диска без перезавантаження хоста


23

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

-bash-3.00$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/sys-root  3.9G  1.4G  2.3G  39% /
/dev/cciss/c0d0p1     251M   19M  219M   8% /boot
/dev/mapper/sys-home  250G  125G  113G  53% /home
/dev/mapper/sys-tmp   3.9G   41M  3.7G   2% /tmp
/dev/mapper/sys-var   3.9G  3.6G   98M  98% /var

Але коли я перевіряю за допомогою du, він показує належний розмір

-bash-3.00$ sudo du -sh /var/
 179M   /var/

Ви можете бачити, що для виходу df показується / var розділ, який буде використовуватися 3,6 Гб, але du показує, що його всього 179 Мбіт.

Тепер проблема полягає в тому, що ні синхронізація, ні partprobe не оновлюють інформацію. Але, безумовно, перезавантаження хоста вирішить проблему. Але оскільки це виробничий сервер, я не можу його перезавантажити. Чи є спосіб я оновлювати інформацію про диск вручну без перезавантаження хоста?


1
Напевно, у вас є відкриті видалені файли (тобто процеси, які тримаються на видалених файлах). Спробуйте щось на кшталт, lsofщоб дізнатися. Використовувана / avail не зберігається в таблиці розділів, partprobe (або будь-який тип перечитування розділу) взагалі не допоможе.
Мат

Відповіді:


28

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

Щоб побачити, чи є у вас будь-який відкритий видалений файл у файловій системі, запустіть одну з цих команд, де /mount/pointзнаходиться точка монтування ( /varу вашому випадку):

lsof +L1 /mount/point

Ця стаття про відкриті, незв'язані файли повинна допомогти пояснити це ще трохи.


2
Я видаляв журнали, але dfне показував звільненого простору, поки не перезапустив серверні процеси. Спасибі!
фет

Краще зателефонуйте до lsof за допомогою "lsof + L1", який відображає видалені файли. Зробив пропозицію щодо редагування
Нуно Перейра

То як їх закрити?
faressoft
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.