Операции, которые вы описываете, дают некоторые ключевые подсказки относительно того, что должна делать идеальная файловая система:
- Множество случайных обращений в процессе сборки.
- Многие, многие файлы обновляются в короткие сроки, поэтому быстрые операции с метаданными имеют решающее значение.
- Эффективная обработка многих небольших файлов в файловых системах, возможно, с очень большими файлами.
- Достаточно зрелый, чтобы не рисковать потерей данных в редких и неясных крайних случаях.
Btrfs и Ext4 - три из вышеперечисленных, а четвертый сомнительный. Ext4, вероятно, достаточно зрелый для этого, но btrfs еще не выпек. noatime
помогает сделать операции с метаданными более эффективными, но когда вы создаете кучу новых файлов, вам все еще нужны операции мета-данных, которые должны быть очень быстрыми.
Именно тогда основное хранилище начинает становиться фактором. Операции метаданных XFS имеют тенденцию концентрироваться в нескольких блоках, которые могут напрягать операции. Файловые системы в стиле Ext лучше подходят для сближения метаданных с данными, которые они описывают. Однако, если ваше хранилище достаточно абстрактно (вы используете VPS или подключены к SAN), это не имеет большого значения .
Каждая файловая система имеет небольшие ускорения, которые можно сделать, чтобы получить еще несколько процентных пунктов. От того, насколько высокопроизводительным будет базовое хранилище, будет зависеть, сколько вы получите.
На языке хранилища, если в вашем хранилище достаточно служебных операций ввода-вывода, неэффективность файловой системы начинает не так уж много значить. Если вы используете SSD для вашего раздела сборки, выбор файловой системы менее важен, чем тот, с которым вам удобнее работать.