Linux: df неверно отображает свободное место

c3105c9f6441d7747d8671b15d9356dc

Есть в определении Ext4 два замечательных момента:

Ext4 — журналируемая файловая система, предлагаемая для использования по умолчанию во многих дистрибутивах Linux.

Количество индексных дескрипторов (i-node) задается только при создании ФС и в дальнейшем может быть только уменьшено.

При создании ФС приблизительно 1,8% объёма диска занимается служебными структурами ФС, в дальнейшем размер этих данных увеличиваться будет только на размер каталогов файлов.

Кроме того еще 5% (по умолчанию) резервируется для root.

Если «количество индексных дескрипторов» явно занимает определенный процент места в зависимости от объема раздела при создании, кстати объем надо учитывать на очень больших разделах,  с 10Tb потери могут быть до 300Gb, то «5% под root» могут преподнести сюрприз в процессе эксплуатации.


Например так:

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
10508540 7722600 2245476 78% /
tmpfs 1962156 0 1962156 0% /dev/shm
/dev/sda1 487652 143058 318994 31% /boot
/dev/sdb1 335439716 328048232 0 100% /mnt/repo

Утилита df неверно отображает свободное место «Use% = 100%».  Фактически на «/dev/sdb1» место есть, но мониторинг и «df» упорно утверждают об обратном.

Решение достаточно простое: при помощи утилиты tune2fs изменить заранее предустановленное значение.
Параметр Reserved block count * block size = резервируемому месту, в моем случае в резерве около 4G.

# tune2fs -l /dev/sdb1 | grep cou
Inode count: 21299200
Block count: 85196703
Reserved block count: 4259473
Mount count: 1
Maximum mount count: 26
 
# tune2fs -l /dev/sda1 | grep -i "block size"
Block size:               1024

Количество резервируемых блоков можно задать «на лету»: в процентах (ключ -m) или в блоках (ключ -r)

# tune2fs -r 0 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting reserved blocks count to 0

В результате получаем назад наше место.

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
10508540 7722684 2245392 78% /
tmpfs 1962156 0 1962156 0% /dev/shm
/dev/sda1 487652 143058 318994 31% /boot
/dev/sdb1 335439716 328048232 7391484 98% /mnt/repo

Данные действия рекомендуются делать на системных дисках с пониманием ситуации и последствий.

Вы можете оставить комментарий ниже.