Данные на XFS точно в такой же сохранности как и на любой журналируемой ФС (имевшийся много лет назад баг с некорректной обработкой журнала после отключения питания давно пофикшен, но, как многие интернет мифы, все еще жив в умах большого количества вполне здравомыслящих людей).
XFS - изначально создавалась для больших дисков, тогда как EXT2 - наследница одной из древнейших фс ext, и, несмотря на значительную переделку, сохраняет в себе многие рудименты этой старенькой рассчитанной на малые объемы томов ФС.
Как ни печально, но попытка сохранить совместимость привела к тому, что в EXT4 до сих пор принята структура разбиения дискового пространства (как у ext2), которая без фрагментации не позволяет записать файл объемом более 128МБ (и этот факт просто не отображается в статистике по фрагментации).
Теперь ключевые (с моей точки зрения) различия:
1 - i-node:
EXT4 - Количество i-node фиксируется в момент создания ФС и позже может быть только уменьшено. Т.е. либо на диске занято довольно приличное место под ненужные i-node, либо их не хватает (и, при наличии свободного места на диске, нет возможности создать новый файл или каталог).
XFS - i-node создаются по мере надобности и неиспользуемые, по умолчанию, утилизируются (освобождая место под данные)
2 - Размещение данных:
EXT4 (2,3) - диск разбит на блоки они собраны в группы. С умалчиваемыми параметрами - группа блоков - 128MB. В каждой группе есть заголовок (служебные битмапы отражающие занятость блоков в группе и пачка I-node). Таким образом, файл размером более 128МБ будет записан в две группы, и даже если эти группы будут стоять одна за другой файл фактически уже будет разбит на два фрагмента (заголовком второй группы). Но стандартная утилита вам скажет, что этот файл не фрагментирован (т.к. это натуральная фрагментация ФС, которую устранить не возможно).
XFS - по умолчанию, в ФС создается 4 группы размещения имеющих свои заголовки, Размеры этих групп = размер тома / 4. Смысл этих групп не в разбиении диска на удобные для манипуляции кусочки, а в том, что каждая из групп имеет свою копию метаданных и запись в группы XFS ведется асинхронно.
3 - дефрагментатор:
Для EXT4 он до сих пор тестируется (если не ошибаюсь)
Для XFS - есть практически с самого рождения
Необходимость этих утилит многие не признают теша себя мифом о том, что EXT2,3,4 не подвержены фрагментации и глядя на утешающие цифры выдаваемые fsck.ext (которые, как уже показано выше, не соответствуют действительности как минимум для файлов более 128MB)
4 - накладные расходы:
EXT2/3/4 создает на диске уйму групп (к примеру на 80GB ФС создается 597 групп) и в каждой - заголовок со служебной информацией в результате чистая ФС уже занята служебными структурами данных на 1.8%
XFS создает только четыре служебных заголовка и пустая фс занята служебными данными на 0,054%
5 - специальное резервирование объема
EXT4 по умолчанию 5% места резервирует под рутовые нужды, этот резерв легко отключить, но многие просто забывают это сделать на иных кроме корневого разделах (а нужен он в общем то только для /var/log что бы рутовые процессы не вывалились при переполнении корневой ФС из за нехватки места для логов). Так вот на 2ТB хомяке, такие забывчивые теряют не много не мало 102GB...
это в добавок к тем 1,8%=36,8GB на служебные нужды.XFS никакого резервирования не делает.
Из всего выше сказанного я для себя сделал выбор:
- EXT4 под корень (с ее 5% резервом, и объемом тома - 6-10GB - под корень вполне достаточно для очень широкого круга применений ОС)
- XFS под тома с данными (в частности /home), и особенно, для больших томов.
PS написал это эссе без ссылок, но если нужны дополнительные подтверждения моих слов - смотрите хотя бы тут (старая дискуссия на тему XFS vs EXT4)
https://forum.ubuntu.ru/index.php?topic=116263.60 ну и поиск даст много таких обсуждений.