Якби я опинився в такій ситуації, я би розглядав базу даних, яка може зберігати всі дані в одному файлі з компактним індексом на основі зміщення, а не як окремі файли. Можливо, база даних, у якій є драйвер FUSE, доступний для взаємодії з нею як файлами, коли це необхідно, без них насправді всі НЕБЕ окремі файли.
Крім того, ви можете розглянути, скажімо, 60 - 70-й перцентиль розмірів файлів і спробувати помістити цей розмір файлів безпосередньо у вузли дерева файлової системи, а не як окремі блоки на диску. Збереження 10k у кожному вузлі - це, мабуть, великий запит, але якщо ви можете отримати там 60% -70% файлів, це, ймовірно, буде величезним виграшем.
Тільки певні файлові системи можуть це робити взагалі (reiserfs - це одне), і я думаю, все залежить від того, який розмір має цей процентиль, чи БУДЕ він вміщуватись у дереві. Можливо, ви зможете це настроїти. Напевно, спробуйте помістити решту в один блок.
І не турбуйтеся про журнали; у них в будь-якому випадку є верхня межа розміру.