У меня проблема с неправильным пространством fs, о котором сообщает df
.
Речь идет о сервере Ubuntu 14.04 без операционной системы, с /
раздел, управляемый LVM.
Размер сообщил df
отличается от размера, сообщаемого суперблоком fs. Также рассчитываем размер от du -skh
(в каталогах, относящихся к /
перегородка) доказывает, что df
показывает неверные результаты.
Об этом сообщает df
:
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-lv_root 20G 16G 2.8G 86% /
Вот что сообщает суперблок (3616906*4096/1024**2=14128 MB free)
:
Last mounted on: /
Filesystem magic number: 0xEF53
Filesystem state: clean
Filesystem OS type: Linux
Inode count: 1290240
Block count: 5242880 << exactly 20 GB
Reserved block count: 227170
Free blocks: 3616906 << around 14 GB free
Free inodes: 1201391
First block: 0
Block size: 4096
Fragment size: 4096
Я сделал strace для df
и обнаружил, что он использует statfs
syscall для получения информации о конкретной фс (962132*4096/1024**2=3758 MB free)
:
statfs("/", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=5129119, f_bfree=**962132**, f_bavail=730866, f_files=1290240, f_ffree=1091851, f_fsid={-456623966, 1549023591}, f_namelen=255, f_frsize=4096}) = 0
Наверное проблема с statfs
или со способом получения информации fs.
Чтобы решить эту проблему, я попытался перемонтировать /
раздел (mount / -orw,remount
), но это не помогло.
Мой вопрос - как исправить df
информацию без перезагрузки или нарушения нормальной работы этого сервера?
P.S.
lsof +L1 | grep deleted
)ради парней, которые столкнулись с той же проблемой:
Я решил это, выпустив unmount /dev/mapper/rootvg-lv_root
. это дало мне ошибку, но после df
сообщил правильно.
выглядит как umount
обновил некоторые внутренние структуры.
надеюсь, это кому-то поможет.