Введение
Файловые системы определяют способ хранения данных. От них зависит, с какими ограничениями столкнется пользователь, насколько быстрыми будут операции чтения и записи и как долго накопитель проработает без сбоев. Особенно это касается бюджетных SSD и их младших братьев — флешек. Зная эти особенности, можно выжать из любой системы максимум и оптимизировать ее использование для конкретных задач.
Выбирать тип и параметры файловой системы приходится всякий раз, когда надо сделать что-то нетривиальное. Например, требуется ускорить наиболее частые файловые операции. На уровне файловой системы этого можно достичь разными способами: индексирование обеспечит быстрый поиск, а предварительное резервирование свободных блоков позволит упростить перезапись часто изменяющихся файлов. Предварительная оптимизация данных в оперативной памяти снизит количество требуемых операций ввода-вывода.
Увеличить срок безотказной эксплуатации помогают такие свойства современных файловых систем, как отложенная запись, дедупликация и другие продвинутые алгоритмы. Особенно актуальны они для дешевых SSD с чипами памяти TLC, флешек и карт памяти.
Отдельные оптимизации существуют для дисковых массивов разных уровней: например, файловая система может поддерживать упрощенное зеркалирование тома, мгновенное создание снимков или динамическое масштабирование без отключения тома.
JFS
JFS — это журналированная файловая система. На момент выхода в свет в 1999 году была наиболее производительной из существовавших файловых систем. Сейчас по функциональности сравнима с ext4, но менее популярна.
Вот некоторые её особенности:
- максимальная длина имени файла 255 B;
- максимальный размер файла 4 PB (4000 TB);
- максимальный размер раздела 32 PB (32000 TB);
- контрольные суммы;
- поддержка acl.
Так как по функциональности эта файловая система сравнима с ext4, но по характеристикам и популярности отстаёт, то в Ubintu установщик уже не предлагает использовать её. Можно использовать, если у вас будут храниться файлы размером более 16 ТБ, хотя и в этом случае лучше выбрать XFS.
xfs
По сравнению с ext4, xfs не поддерживает следующие функции
- Код подтверждения журнала не поддерживается
- Нет Режим ведения журнала не поддерживается
- Время создания файла не поддерживается
- Журнал данных (журнал данных) не поддерживается, только журнал метаданных (журнал метаданных)
Но xfs имеет следующие характеристики
- Максимальный поддерживаемый файл и раздел достиг 8EB
- Inodes распределяются динамически, поэтому они не ограничены количеством inodes, и нет необходимости беспокоиться о хранении большого количества маленьких файлов, из-за чего inodes будет недостаточно.
- Space, ext2 / 3/4 и btrfs — все ограничивают длину xattr, чтобы она не превышала один блок (обычно 4K), в то время как xfs может достигать 64K
- Механизм распределения групп используется внутри компании, нет зависимости между группами, поддерживается параллельная работа, а производительность в определенных сценариях в многоядерной среде хорошая.
- Предоставляет собственные инструменты дампа и восстановления, а также поддерживает онлайн-дамп
Дистрибутивы Linux сделали переход?
Btrfs является стабильной частью ядра Linux с 2013 года и сегодня, вы можете переформатировать свои жесткие диски, используя эту файловую систему. Но Btrfs ни в коем случае не является файловой системой Linux по умолчанию. Большинство дистрибутивов продолжают использовать по умолчанию ext4.
Почему? Файлы — это самые важные данные на вашем жестком диске. Персональные данные незаменимы
Вы можете переустановить ОС и повторно загрузить приложения, но без резервной копии потерянные файлы исчезнут навсегда. Вот почему крайне важно, чтобы файловая система была проверена на надежность, прежде чем миллионы людей будут использовать ее по умолчанию
Ext4 может быть старой и, возможно, покрыта пылью, но она также безумно устойчива и надежна. Если питание отключается и ваш компьютер гаснет, вероятность того, что все сохраненные вами данные сохранятся, будет равна ext4.
Для большинства людей такие ситуации являются наиболее важным фактором. Дело не в том, насколько хорошо работает файловая система, когда дела идут хорошо, а в том, что происходит, когда дела идут плохо.
Один известный дистрибутив определил, что прошло достаточно времени, чтобы переключиться. openSUSE теперь использует Btrfs по умолчанию для раздела /root, где находится операционная система. Однако для раздела /home, в котором хранятся ваши личные файлы, openSUSE решил использовать файловую систему XFS.
Так что нет, переход прошел не совсем так, как ожидалось. Но, как мы видели в случае с сервером отображения Wayland, новым технологиям иногда требуется много времени для распространения в среде Linux.
Создание файловой системы FAT или VFAT
Файловая система FAT возникла из MS-DOS и за прошедшие годы претерпела множество изменений, кульминацией которых стал формат FAT32, выпущенный в 1996 году с Windows 95 OSR2.
VFAT — это расширение формата FAT16 с поддержкой длинных (до 255 символов) имен файлов. Обе файловые системы обрабатываются одной и той же утилитой , которая так же является алиасом утилиты .
Файловая система FAT имеет значительные недостатки, которые ограничивают ее использование на больших дисках. Например, FAT16 поддерживает тома не более 4 ГБ и максимальный размер файла 2 ГБ. FAT32 увеличивает размер тома до 2 ПБ, а максимальный размер файла — до 4 ГБ. Из-за этого файловые системы FAT сегодня чаще используются на небольших флэш-накопителях или картах памяти (размером до 2 ГБ) или на устаревших устройствах и операционных системах, которые не поддерживают более продвинутые файловые системы.
Самая простая команда для создания файловой системы FAT — это , где это раздел, в котором вы хотите создать файловую систему. Например:
Как и другие утилиты, поддерживает ряд параметров командной строки. Ниже приведены наиболее важные из них. Полный список и описание каждой опции можно прочитать в руководстве к утилите, используя команду .
Проверяет целевое устройство на наличие поврежденных блоков перед созданием файловой системы.
Создаст файл, указанный в , а затем создаст внутри него файловую систему FAT, фактически создавая пустой “образ диска”, который позже можно записать на устройство с помощью утилиты, такой как или смонтировать как петлевое устройство loopback. При использовании этой опции количество блоков в файловой системе () должно быть указано после имени устройства.
Определяет размер FAT (таблицы распределения файлов) — 12, 16 или 32: то есть FAT12, FAT16 или FAT32. Если не указано, то будет выбран соответствующий параметр в зависимости от размера файловой системы.
Задает метку тома (имя) для файловой системы. Она может быть длиной до 11 символов, а по умолчанию — без имени.
Подробный режим. Выводит гораздо больше информации чем обычно, что полезно для отладки.
1. Ext4
Extended4 (также известный как Ext4) является предпочтительной файловой системой для большинства дистрибутивов Linux, и для этого есть веская причина. Это значительное улучшение по сравнению с Ext3 и включает в себя множество замечательных функций, в том числе для твердотельных накопителей (SSDS).
Несмотря на то, насколько распространен Ext4 в Linux, если вы посмотрите форумы и группы Reddit в Интернете, вы можете заметить, что пользователи пренебрежительно относятся к Ext4, жалуются на недостающие функции и советуют новичкам избегать его в пользу других специализированных файловых систем.
По правде говоря, несмотря на споры вокруг Ext4 в сообществе Linux, это единственная лучшая файловая система для использования, особенно когда вы хотите использовать SSD. Он надежен, заслуживает доверия и предлагает некоторые отличные особенности SSD, такие как TRIM (необходимый для работоспособности вашего диска) и возможность отключить ведение журнала, что может значительно повысить долговечность твердотельного жесткого диска.
Преимущества использования Ext4
Ext4 широко используется сегодня почти в каждом дистрибутиве Linux, и большинство пользователей Linux знакомы с Ext4, поэтому найти помощь при его использовании на вашем SSD не очень сложно.Помимо поддержки TRIM, Ext4 также включает множество других оптимизаций SSD (для повышения производительности).Пользователи могут отключить ведение журнала, чтобы защитить ограниченный характер чтения / записи своего SSD.
Недостатки использования Ext4
Ext4 основан на более старых технологиях, поэтому в нем отсутствуют современные функции файловой системы, которые можно найти в таких системах, как E2FS и BtrFS.В Ext4 ведение журнала включено по умолчанию, и новые пользователи, скорее всего, не будут знать, как отключить его для сохранения операций чтения / записи на своих твердотельных накопителях.
Получите в свои руки Ext4
Самое приятное в Ext4 то, что вам не нужно включать модуль ядра или устанавливать что-либо, чтобы использовать его. Просто установите предпочитаемый вами дистрибутив Linux, как обычно, на твердотельный накопитель, и все готово!
6.5. Проверка файловой системы
Команда позволяет задействовать утилиту-обертку, используемую для вызова утилит, осуществляющих проверку файловых систем.
# ls /sbin/*fsck* /sbin/dosfsck /sbin/fsck /sbin/fsck.ext2 /sbin/fsck.msdos /sbin/e2fsck /sbin/fsck.cramfs /sbin/fsck.ext3 /sbin/fsck.vfat #
Значение из последнего столбца файла используется в качестве флага проверки файловой системы в процессе загрузки операционной системы.
$ grep ext /etc/fstab /dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 $
Проверка смонтированной файловой системы в ручном режиме приведет к выводу предупреждения и завершению работы утилиты fsck.
# fsck /boot fsck из util-linux 2.25.2 e2fsck 1.42.11 (09-Jul-2014) /dev/sda1 is mounted. e2fsck: Cannot continue, aborting.
Но после размонтирования файловой системы ext2 утилиты fsck и могут успешно использоваться для ее проверки.
# fsck /boot fsck из util-linux 2.25.2 e2fsck 1.42.11 (09-Jul-2014) /boot: clean, 44/26104 files, 17598/104388 blocks # fsck -p /boot fsck из util-linux 2.25.2 /boot: clean, 44/26104 files, 17598/104388 blocks # e2fsck -p /dev/sda1 /boot: clean, 44/26104 files, 17598/104388 blocks
Монтирование XFS
Теперь нам нужно смонтировать только что созданный раздел. Вы можете создать отдельную папку для монтирования или подключить раздел в /mnt. Например, создадим папку /mnt/db. Затем вы можете примонтировать раздел, также как и все другие файловые системы, с помощью команды mount:
Теперь вы можете записывать файлы на этот раздел. Большинство опций файловых систем устанавливаются с помощью монтирования. Рассмотрим основные опции монтирования, специфичные для XFS:
- inode64 — если у вас есть устройство, размером более 2Тб, то вам нужно использовать эту опцию монтирования для улучшения работы файловой системы;
- nobarrier — в XFS есть барьер записи данных, это нужно чтобы важные данные не были потеряны при неожиданной перезагрузке. Если вы уверены что ваше оборудование полностью надежно, то барьер лучше отключить чтобы повысить производительность;
- logdev — позволяет записывать журнал работы файловой системы во внешний файл;
- sunit — задает размер одного блока данных для RAID массивов. По умолчанию используется размер 512 байт;
- norecovery — по умолчанию, при каждом монтировании файловой системы выполняется проверка и исправление. если она была размонтирована неправильно. Эта опция отключает такую процедуру;
- quota — включает поддержку дисковых квот для пользователей.
Если вы хотите, чтобы этот раздел монтировался автоматически, то необходимо настроить монтирование xfs fstab. Для этого достаточно добавить строчку:
От JFFS к F2FS
Одной из первых попыток написать файловую систему, которая бы учитывала принципы организации флеш-памяти, была JFFS — Journaling Flash File System. Изначально эта разработка шведской фирмы Axis Communications была ориентирована на повышение эффективности памяти сетевых устройств, которые Axis выпускала в девяностых. Первая версия JFFS поддерживала только NOR-память, но уже во второй версии подружилась с NAND.
Сейчас JFFS2 имеет ограниченное применение. В основном она все так же используется в дистрибутивах Linux для встраиваемых систем. Ее можно найти в маршрутизаторах, IP-камерах, NAS и прочих завсегдатаях интернета вещей. В общем, везде, где требуется небольшой объем надежной памяти.
Дальнейшей попыткой развития JFFS2 стала LogFS, у которой индексные дескрипторы хранились в отдельном файле. Авторы этой идеи — сотрудник немецкого подразделения IBM Йорн Энгель и преподаватель Оснабрюкского университета Роберт Мертенс. Исходный код LogFS выложен на GitHub. Судя по тому, что последнее изменение в нем было сделано четыре года назад, LogFS так и не обрела популярность.
Зато эти попытки подстегнули появление другой специализированной файловой системы — F2FS. Ее разработали в корпорации Samsung, на долю которой приходится немалая часть производимой в мире флеш-памяти. В Samsung делают чипы NAND Flash для собственных устройств и по заказу других компаний, а также разрабатывают SSD с принципиально новыми интерфейсами вместо унаследованных дисковых. Создание специализированной файловой системы с оптимизацией для флеш-памяти было с точки зрения Samsung давно назревшей необходимостью.
Четыре года назад, в 2012 году, в Samsung создали F2FS (Flash Friendly File System). Ее идея хороша, но реализация оказалась сыроватой. Ключевая задача при создании F2FS была проста: снизить число операций перезаписи ячеек и распределить нагрузку на них максимально равномерно. Для этого требуется выполнять операции с несколькими ячейками в пределах того же блока одновременно, а не насиловать их по одной. Значит, нужна не мгновенная перезапись имеющихся блоков по первому запросу ОС, а кеширование команд и данных, дозапись новых блоков на свободное место и отложенное стирание ячеек.
Сегодня поддержка F2FS уже официально реализована в Linux (а значит, и в Android), но особых преимуществ на практике она пока не дает. Основная особенность этой файловой системы (отложенная перезапись) привела к преждевременным выводам о ее эффективности. Старый трюк с кешированием даже одурачивал ранние версии бенчмарков, где F2FS демонстрировала мнимое преимущество не на несколько процентов (как ожидалось) и даже не в разы, а на порядки. Просто драйвер F2FS рапортовал о выполнении операции, которую контроллер только планировал сделать. Впрочем, если реальный прирост производительности у F2FS и невелик, то износ ячеек определенно будет меньше, чем при использовании той же ext4. Те оптимизации, которые не сможет сделать дешевый контроллер, будут выполнены на уровне самой файловой системы.
Что такое файловая система
Полезные данные, такие как файлы и каталоги, напрямую на диск не записываются. Между разделом диска и файлами существует прослойка в виде файловой системы.
Файловая система – это средство, которое определяет различные правила работы с файлами, например:
- как данные будут располагаться на диске;
- как будет происходить запись, поиск, чтение или удаление файлов;
- какие метаданные будут использоваться;
- как обезопасить файлы от порчи (например при некорректном выключении компьютера);
Метаданные – это данные о данных, например файл содержит какие-то данные, а метаданные это:
- дата создания файла;
- пользователь создавший этот файл;
- тип файла;
- права доступа к этому файлу;
- и подобная информация о файле.
Разные файловые системы имеют разные ограничения, например:
- максимальный размер раздела;
- наибольший размер файла;
- максимальная длина имени файла.
Установщик Ubuntu 22.04 имеет несколько меньший выбор:
Далее пробежимся по этим файловым системам:
- Ext2
- Ext3
- Ext4
- btrfs
- JFS
- XFS
- FAT16
- FAT32
Понимание ext4: плюсы и минусы
Ограничения Ext4 остаются довольно внушительными. Максимальный объем / раздел, который вы можете создать с помощью ext4, составляет 1 exbibyte, что эквивалентно примерно 1 152 921,5 терабайт. Максимальный размер файла составляет 16 ТБ, или примерно 17,6 ТБ, что намного больше, чем у любого жесткого диска, который в настоящее время может купить обычный потребитель.
Известно, что Ext4 приносит улучшение скорости по сравнению с ext3, используя несколько различных методов. Как и большинство современных файловых систем, это журнальная файловая система, что означает, что она ведет «журнал» о том, где находятся файлы на диске, и о любых других изменениях на диске.
Несмотря на все свои функции, он не поддерживает прозрачное сжатие, прозрачное шифрование или дедупликацию данных. Снимки поддерживаются технически, но в лучшем случае эта функция является экспериментальной.
Теодор Цо, разработчик, сыгравший ключевую роль в создании ext4, назвал ext4 релизом, основанным на устаревшей технологии 1970-х годов, и полагал, что Btrfs предложил лучший путь вперед. Это было более десяти лет назад.
Преимущества XFS перед Btrfs
XFS — это стабильная 64-битная файловая система с журналированием для устройств хранения большой емкости.
Вы можете использовать файловую систему XFS по следующим причинам:
Поддержка параллельного ввода/вывода.
Файловая система XFS поддерживает параллельный ввод-вывод и может предоставлять несколько потоков данных для файлов благодаря своей конструкции.
Поддержка больших разделов
Файловая система XFS поддерживает разделы размером до 8 EiB (до 8 EiB — 1 байт).
Поддержка больших файлов
Файловая система XFS поддерживает файлы размером до 8 EiB (до 8 EiB — 1 байт).
Поддержка ведения журнала
Ведение журнала обеспечивает согласованность данных в файловой системе в случае отключения электроэнергии или сбоя системы. В случае отключения электроэнергии или сбоя системы данные, хранящиеся в журнале, будут восстановлены и применены к файловой системе.
Прямой ввод/вывод
Это важная особенность файловой системы XFS
Это важно для приложений, которым требуется высокая скорость чтения/записи на устройства хранения. Прямой ввод-вывод позволяет устройствам хранения данных получать прямой доступ к буферу данных с помощью DMA (прямого доступа к памяти), чтобы можно было использовать полную пропускную способность ввода-вывода устройства хранения
Гарантированная скорость ввода-вывода
Файловая система XFS может резервировать пропускную способность устройства хранения для определенных приложений. Эта функция идеально подходит для приложений реального времени (например, потокового видео).
Оптимизация и тонкая настройка файловой системы
Одной из ответственных задач системного администратора является обеспечение доступа к данным пользователей за определенное время. Так же, как и в операционной системе Windows, наблюдение за производительностью системы является в Linux одной из главных задач. Как и производительность сети, производительность дисковой подсистемы чтения/записи может стать узким местом в системе, поэтому она требует оптимизации и тонкой настройки.
Для настройки файловой системы можно использовать следующие методы:
- Применить инструмент .
- Изменить точки монтирования в файле /etc/fstab.
- Изменить параметры ядра.
Настройка с помощью tune2fs
Утилита командной строки используется для настройки параметров жесткого диска. Например, если у вас имеются директории большого объема на разделе с файловой системой ext3, то можно ускорить обращения к ним с помощью хешированных b-деревьев, для чего используется переключатель :
# tune2fs -O dir_index /dev/sda5 |
Команду следует запускать с привилегиями пользователя root. Переключатель определяет опцию для указанного раздела.
Монтирование с использованием специальных опций
Процесс, после которого файловая система становится доступной для использования, называется монтированием файловой системы. На практике для этого используется команда . Когда вы включаете компьютер с Linux, то система должна знать, как монтировать доступные файловые системы. Для этих целей служит файл /etc/fstab. Как и любые другие конфигурационные файлы Linux, этот файл можно редактировать с помощью любого текстового редактора, например, или . Внутри файла /etc/fstab указаны точки монтирования различных файловых систем. При настройке параметров монтирования используется четвертый столбец. Например, чтобы отключить аудит времени последнего доступа к файлам для определенной файловой системы (что потенциально может повысить производительность), можно добавить опцию. Если у вас имеется файловая система, в которую пользователи не должны записывать данные (например, если в ней хранятся архивы), то можно смонтировать ее с опцией («только для чтения»).
Для изменения параметров монтирования в файле /etc/fstab используйте следующую командную строку:
UUID=97ee2cc4-8a26-41e9-9da1 /archives ext4 defaults,ro,noatime 1 2 |
Все изменения, которые вы вносите в файл /etc/fstab, вступают в силу после перезагрузки компьютера. Чтобы применить их без перезагрузки, можно демонтировать и повторно смонтировать затрагиваемую файловую систему с помощью команды:
# mount -o remount /archives |
Если раздел можно демонтировать в текущей рабочей среде, то команда позволит избежать перезагрузки системы после изменения файла /etc/fstab.
Настройка параметров ядра
Для просмотра и изменения параметров ядра используется команда . Чтобы получить список параметров, относящихся к файловой системе, и их текущие значения, выполните команду , как показано в листинге 3.Листинг 3. Просмотр параметров ядра, относящихся к файловой системе
# sysctl -a | grep fs. | less .... fs.quota.warnings = 1 fs.quota.syncs = 23 fs.quota.free_dquots = 0 fs.quota.allocated_dquots = 0 fs.quota.cache_hits = 0 fs.quota.writes = 0 fs.quota.reads = 0 fs.quota.drops = 0 fs.quota.lookups = 0 fs.suid_dumpable = 0 fs.inotify.max_queued_events = 16384 fs.inotify.max_user_watches = 8192 fs.inotify.max_user_instances = 128 fs.aio-max-nr = 65536 fs.aio-nr = 0 fs.lease-break-time = 45 fs.dir-notify-enable = 1 fs.leases-enable = 1 fs.overflowgid = 65534 fs.overflowuid = 65534 fs.dentry-state = 26674 23765 45 0 0 0 fs.file-max = 102263 ......... |
В листинге 3 показан фрагмент списка параметров ядра, относящихся к файловой системе и отфильтрованных с помощью команды . Изменить эти параметры можно с помощью команды . Например, если ваш сервер обрабатывает большое количество мелких файлов и на нем постоянно возникают ошибки с сообщением «running out of file handles» (недостаточно обработчиков файлов), то можно увеличить максимальное число дескрипторов открытых файлов с помощью команды , где xxxxxx – необходимое максимальное количество обработчиков.
Любые изменения, сделанные с помощью , работают до первой перезагрузки. Чтобы эти изменения действовали после перезагрузки, необходимо открыть файл /etc/sysconf в любом текстовом редакторе и внести изменения в него. В этом файле содержатся не все параметры ядра, поэтому если вы не нашли в нем нужный параметр, то просто добавьте его вместе с нужным значением.
6.1. Информация о файловых системах
Файловая система является способом организации файлов в рамках вашего раздела жесткого диска. Помимо сохранения данных в рамках файлов файловые системы обычно позволяют использовать и , кроме того, они сохраняют метаданные, относящиеся к файлам, такие, как метки времени доступа и модификации, а также данные о владельце.
Ограничения имен файлов (максимальная длина, набор допустимых символов, ) определяются типом выбранной вами файловой системы. Директории обычно реализуются с помощью файлов специального типа и вам предстоит разобраться в вопросах их реализации! Механизм доступа к файлам оперирует идентификаторами пользователей, владеющих файлами (а также идентификаторами групп пользователей, владеющих файлами и учитывает членство пользователей в группах) с учетом одного или большего количества списков контроля доступа.
6.1.1. Страница руководства man fs
Страница руководства, посвященной файловым системам, может быть открыта с помощью команды .
# man fs
6.1.2. Файл /proc/filesystems
Ядро Linux проинформирует вас о загруженных на данный момент драйверах файловых систем с помощью файла .
root@rhel53 ~# cat /proc/filesystems | grep -v nodev ext2 iso9660 ext3
6.1.3. Файл /etc/filesystems
Файл содержит список автоматически определенных файловых систем (на случай использования утилиты без параметра ).
Информация о данном файле содержится на странице руководства, которая может быть открыта с помощью команды .
# man mount
Дисковые файловые системы, применяемые в Ubuntu
- Ext4 — журналируемая файловая система, используемая в ОС на ядре Linux. Основана на файловой системе Ext3, но отличается тем, что в ней представлен механизм записи файлов в непрерывные участки блоков (екстенты), уменьшающий фрагментацию и повышающий производительность. В Ubuntu, начиная с версии 9.10, эта файловая система используется по умолчанию при автоматическом разбиении диска инсталлятором.
- Ext3 — журналируемая файловая система, используемая в ОС на ядре Linux. Является файловой системой по умолчанию во многих дистрибутивах. Основана на Ext2, но отличается тем, что в ней есть журналирование, то есть в ней предусмотрена запись некоторых данных, позволяющих восстановить файловую систему при сбоях в работе компьютера.
- Ext2 — файловая система, используемая в операционных системах на ядре Linux. Достаточно быстра для того, чтобы служить эталоном в тестах производительности файловых систем. Она не является журналируемой файловой системой и это её главный недостаток.
- BTRFS — Достаточно новая универсальная ФС, используемая в операционных системах на ядре Linux. Ее особенностями являются: индексное хранение структур данных (в В-деревьях), возможность создания снепшотов, и многие другие интересные вещи.
- XFS — высокопроизводительная журналируемая файловая система. Распределение дискового пространства — екстентами, храниение каталогов в B-деревьях. Автоматическая аллокация и высвобождение I-node. Дефрагментируется «на лету». Невозможно уменьшить размер существующей файловой системы. При сбое питания во время записи возможна потеря данных (хотя этот недостаток нельзя относить к одной только XFS, он свойственен любой журналируемой ФС, но, вместе с тем, XFS, по умолчанию, достаточно активно использует буферы в памяти).
- Fat16 — файловая система, сейчас широко используемая в картах памяти фотоаппаратов и других устройств.
- Fat32 — файловая система основанная на Fat16. Cоздана, чтобы преодолеть ограничения на размер тома в Fat16.
- NTFS — файловая система для семейства операционных систем Microsoft Windows. Поддержка в Ubuntu осуществляется специальным драйвером — NTFS-3G.
- HFS — файловая система, разработанная Apple Inc. для использования на компьютерах, работающих под управлением операционной системы Mac OS.
- HSF+ — файловая система, разработанная Apple Inc. для замены HFS. Является улучшенной версией HFS, с поддержкой файлов большого размера и использует кодировку Unicode для имён файлов и папок.
- JFS — журналируемая файловая система. В отличие от Ext3, в которую добавили поддержку журналирования, JFS изначально была журналируемой. На момент выхода в свет JFS была самой производительной из существовавших файловых систем. На текущий момент сохраняет за собой одно из лидирующих мест по этому показателю.
- SWAP — раздел жёсткого диска, предназначенная для виртуальной памяти (файла/раздела подкачки).
- ReiserFS — журналируемая файловая система, разработанная специально для Linux. Обычно под словом ReiserFS понимают третью версию (последняя — 3.6.21), а четвёртую называют Reiser4. В настоящий момент разработка Reiser3 прекращена.
- Reiser4 — журналируемая файловая система ReiserFS (4-я версия), разработанная специально для Linux. Одна из самых быстрых файловых систем для Linux (с включённым плагином-архиватором — самая быстрая).
- UFS — файловая система, созданная для операционных систем семейства BSD. Linux поддерживает UFS на уровне чтения, но не имеет полной поддержки для записи UFS. Родной Linux ext2 создан по подобию UFS.
О всех существующих файловых системах можно прочитать в этой статье.
Файловые системы семейства ext
EXT (Extended File System) — расширенная файловая система.
Ext2 была создана в январе 1993 года для linux, вот её особенности:
- не журналируемая;
- максимальная длина имени файла – 255B;
- максимальный размер файла – 16GB-2TB (в зависимости от размера кластера);
- максимальный размер раздела – 2TB-32TB (в зависимости от размера кластера);
- поддержка POSIX ACL.
Ext2 старая файловая система без журнала, но достаточно быстрая. Современные системы Linux могут работать с этой файловой системой.
Ext3 была создана в ноябре 1999 года и также стала применяться по умолчанию во многих дистрибутивах Linux. Единственное улучшение – это добавление журналирования (что сделало файловую систему надежнее, но медленнее).
Ext4 была создана в октябре 2006 года, но стабильная версия появилось в октябре 2008 года. Она сейчас является самой распространенной файловой системой для Linux. Убрали некоторые ограничения и оптимизировали:
- максимальный размер файла – 16 GB-16 TB (в зависимости от размера кластера);
- наибольший размер раздела – 1 EB (1048576 TB);
- максимальная длина имени файла – 255 B;
- время изменения файлов протоколируется точнее;
- упростилась работа с крупными файлами;
- была оптимизирована скорость работы.
На данный момент по моему мнению EXT4 лучший выбор для Linux систем.