Возможный дубликат:
Лучшая файловая система Linux для работы с 10000 файлов без перегрузки системы ввода-вывода
У меня есть хранилище изображений размером 240 ГБ, содержащее примерно 1,5 миллиона записей. Около половины этих записей представляют собой файлы изображений (от 4 до 100 КБ), а другая половина этих записей - глубоко вложенные каталоги. Примерно половина этих изображений являются дубликатами и с тех пор превратились в жесткие ссылки друг на друга.
Я сейчас создаю резервную копию этой файловой системы и помещаю ее на локальный тестовый сервер с намерением радикально изменить структуру каталогов и протестировать изменения.
Обычно я бы просто настроил файловую систему, в которой эти изображения живут, как ext4 (не вставляйте значение по умолчанию, если вам не нужно), но мне интересно, есть ли лучший вариант для этого конкретного случая использования.
Я уже исследовал XFS, ext3, ext4 и btrfs, но не нашел ни одного надежного теста, демонстрирующего, что для этой конкретной задачи я должен выбирать один из них.
Я также ограничен ядром, доступным по умолчанию в Ubuntu 10.04, но я перекомпилирую, если причина достаточно веская.
В общем, производительность должна быть последним критерием выбора файловой системы. Не исчерпывающе следует учитывать:
Я активно использую ext4 и xfs в своей среде, которая довольно загружена данными. Я использую ext4 практически для всех файловых систем, размер которых, как я знаю, никогда не понадобится, превышает 16 ТБ (в настоящее время ext4 в основном ядре поддерживает файловые системы> 16 ТБ), но утилиты не могут их создать). Время fsck ext3 становится чрезмерным для очень больших файловых систем. xfs в наши дни очень стабилен, но в прошлом у него были утечки памяти и проблемы с тихим повреждением. Раньше я использовал его вместо ext3 для времени fsck и создания файловой системы> 8 ТБ (с момента исправления, когда флаг -F был введен в mkfs.ext3), но все еще имел проблемы с ним совсем недавно, как ~ 2.6.28. Однако я отмечу, что у меня не было никаких подтвержденных проблем с ним на rhel / centos с исправлением 2.6.18. Я все еще считаю, что ext4 немного более надежен и имеет возможность обновления до btrfs, но xfs теперь определенно стабилен. Я больше верю в ext4 fscker.
Что касается производительности, вы должны настроить оба так, чтобы они соответствовали размеру полосы / шагу нижележащего устройства. Ext4 позволяет вам установить iopriority журнала (journal_ioprio), с которым, возможно, придется играть вместе с режимом ведения журнала. xfs работает лучше, чем ext4, с меньшими настройками, но они довольно близки после правильной настройки. Вам действительно нужно настроить полосу / шаг с помощью ext4. xfs лучше подходит для множества небольших файлов, поскольку может полностью упаковать их в индексный дескриптор для экономии места и заметно лучше подходит для определенных операций, таких как удаление больших деревьев каталогов.
Мой совет: если вам не нужна поддержка> 16 ТБ), попробуйте ext4, созданный с большим количеством одного inode для каждого блока (-i 4096), и настроить его для вашего рейд-устройства. Полностью заполните его своими данными, а затем посмотрите, сколько времени потребуется на fsck и выполнение стандартных операций. Конвертируйте в xfs только в том случае, если у вас есть конкретная проблема с ext4.