Как хранить один миллиард файлов на ext4?

Я создал всего около 8 миллионов файлов, тогда в /dev/sdb1 не было свободного индекса.

[spider@localhost images]$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            8483456 8483456       0  100% /home

Кто-то говорит, что может указать количество инодов при форматировании раздела.

например, mkfs.ext4 -N 1000000000.

Я пытался, но получил ошибку:

msgstr "inode_size (256) * inodes_count (1000000000) слишком большой... указать большее inode_ratio (-i) или меньшее число inode (-N). "

Какое соответствующее значение inode_ratio?

Я слышал, что минимальное значение inode_ratio составляет 1024 для ext4.

Можно ли хранить один миллиард файлов на одном разделе? Как? И кто-то говорит, что это будет очень медленно.

1 ответ

Решение

При создании файловой системы ext4 вы можете указать тип использования:

mkfs.ext4 -T usage-type /dev/something

Доступные типы использования перечислены в /etc/mke2fs.conf. Основное различие между типами использования заключается в соотношении инодов. Чем ниже коэффициент индексирования, тем больше вы можете создавать файлы в вашей файловой системе.

Тип использования в mke2fs.conf, который выделяет наибольшее количество inode в файловой системе, - это "новости". При таком типе использования на жестком диске объемом 1 ТБ ext4 создает 244 миллиона инодов.

# tune2fs -l /dev/sdb1 | grep -i "inode count"
Inode count:              244219904
# sgdisk --print /dev/sdb
Disk /dev/sdb: 1953525168 sectors, 931.5 GiB

Это означает, что для создания файловой системы ext4 с "-Tnews", которая может содержать 1 миллиард инодов, потребуется более 4 ТБ.

Другие вопросы по тегам