Как хранить один миллиард файлов на 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 ТБ.