На ум приходит идея - разделить файлы. По размеру и по роду доступа.
Например картинки - положить не в файловую систему а во внешнее хранилище типа S3.
Здесь мы исходим из предположения что размер файла будет - как средний размер фотографии в jpeg.
Потому что за более мелкими - будет дорого ходить по сети кудато.
Мелкие файлы положить в файловую систему которая умеет работать с мелкими. Например Reiser4.
По крайней мере в рекламных анонсах они писали об эффективном использовании мелочи. Но тут я не готов
что-то доказывать. Надо ставить эксперимент и смотреть как оно идет.
XFS - хорошая система. Я все магнитные блины в нее переформатировал но не было такого опыта с мелкими.
У меня как раз очень большие файлы лежат. Датасеты.
Еще я-бы предложил посмотреть на саму прикладную задачу с точки зрения коррелированного доступа.
Например каждый пользователь читает свой index.htm, avatar.jpg, e.t.c. Имеет смысл этот сет файлов
запаковать в очень быстрый архив. По сути в пакет даже без сжатия чтобы по заказу быстро отдавать
эту пачку по сети (user_id.pack). А там уж браузер разберется. Пришлем лишнее - не страшно. Все равно пакет летит.
Главное что теперь у нас нет россыпи мелких файлов а есть среднего размера упаковки на каждого
пользователя по user_id.