В чем отличие "новых" файловых систем (XFS, BTRFS) в Линуксе от "традиционных" (EXT2,3,4)?

Я устанавливаю Линукс, и вижу возможность выбирать разные файловые системы для разных точек монтирования.

Хочу понять, чем "старые" системы (EXT2, EXT3, EXT4) отличаются от "новых" (XFS, BTRFS)

При этом я рассуждаю так: раз новые файловые системы придмали - значит, они решают какие то специфические проблемы?

Спасибо за подсказку!


Ответы (1 шт):

Автор решения: S.H.

Уважаемые комментаторы,

нагуглить разницу между файловыми системами - это не сложно.

А вот понять, в чем разница "в общем" (для новичка) - более сложная задача.

Попробую написать "общий" ответ.

Два главных отличия "современных" файловых систем от "традиционных" - это "copy-on-write" и поддержка снепшотов.

Первое означает следующее: вы выбираете большой файл, говорите "скопировать его!" (в пределах этой файловой системы). Система мгновенно рапортует: "Скопировано!". Физического копирования не происходит. Потому что если два файла не отличаются ни одним байтом - то зачем хранить две копии? А вот если второй файл будет изменён - то файловая система создает его вторую (физическую, то есть, занимающую "настоящие секторы на диске") копию.

Второе означает следующее: можно в определенный момент сказать "мир, остановись!" - и это станет точкой, на которой будет зафиксировано состояние файловой системы. Будет сделан так называемый "снимок" (по крайней мере, на русском чаще всего используется этот термин). Снепшот близок к бэкапу, но отличается тем, что делается "мгновенно", в то время как бэкап занимает время, тем большее, чем больше размер диска, который бэкапится.

Эти две функции стали ответом на 1) всё увеличивающийся размер дисков, что приводит к тому, что бэкап диска не успевает завершиться за разумное время 2) использование "виртуалок" и контейнеров, которым очень часто нужны образы дисков, причем часть образа может "шариться" (совместно использоваться) разным виртуальными машинами.

Конечно, это лишь часть возможностей современных FS. Другие их возможности - это поддержка сжатия (файл сохраняется в сжатом виде, но это происходит "прозрачно" в момент записи) и дедупликации (как на уровне файлов, так и на уровне блоков), а также резервирования (при выходе из строя одного физического носителя файловая система продолжает работать, а при его замене - восстанавливает содержимое. Как в RAID5, только немного лучше) - а также, многое другое.

я надеюсь, так стало понятнее?

Ну, и в заключение - приведу "сводную таблицу", я не проверял её, просто нашел здесь ( и кажется, что комментарии к этой статье - интереснее самой статьи ):

Показатель                             |Ext4      |XFS      |Btrfs
                                       |          |         |
Дата выхода                            |1992      |2002     |2006
Максимальный размер раздела            |50-100 Тб |8 Эб     |16 Эб
Максимальный размер файла              |16 Тб     |8 Эб     |16 Эб
Максимальное количество файлов         |2^32      |2^64     |2^64
Максимальная длина имени               |255       |255      |255
Прозрачное шифрование                  |Да        |Нет      |Нет
Прозрачное сжатие                      |Нет       |Нет      |Да
Управление томами                      |Нет       |Нет      |Да
Дедупликация                           |Нет       |Нет      |Да
Уменьшение размера раздела             |Да        |Нет      |Да
Создание снапшотов                     |Нет       |Нет      |Да
Copy-on-write                          |Нет       |Да       |Да
→ Ссылка