Что произойдет, если в разделе ext4 было превышено ограничение в 4 миллиарда файлов, например, при передаче 5 миллиардов файлов?
Что произойдет, если в разделе ext4 было превышено ограничение в 4 миллиарда файлов, например, при передаче 5 миллиардов файлов?
Ответы:
Предположительно, вы увидите некоторое сообщение об ошибке «Нет места на устройстве»:
# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device
И на практике вы достигаете этого предела намного раньше, чем «4 миллиарда файлов». Проверьте ваши файловые системы с обоими df -hи df -iвыясните, сколько места осталось.
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 93M 2.1M 84M 3% /dev/shm/loop
# df -i loop/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 25688 25688 0 100% /dev/shm/loop
В этом примере, если ваши файлы в среднем не имеют размера 4 КБ, у вас заканчивается пространство inode намного раньше, чем пространство хранения. Можно указать другое соотношение ( mke2fs -N number-of-inodesили -i bytes-per-inodeили -T usage-typeкак определено в /etc/mke2fs.conf).
git repackв каждом репозитории git, чтобы объединить все отдельные объекты в файл пакета.
touch, ничего особенного echo, вы также показываете важный момент и часто ошибочное представление: возможно заполнить диск пустыми файлами.
git repackне теряет никакой функциональности, он все еще функционально тот же git-репо, tarделает его нечитаемым для многих программ, ожидающих проекта или git-репозитория
Как только предел достигнут, последующие попытки создания файлов будут неудачными ENOSPC, указывая, что в целевой файловой системе нет места для новых файлов.
В описываемом вами сценарии это обычно приводит к прерыванию передачи после достижения предела.