- Sysadminium
- Файловые системы поддерживаемые Linux
- Что такое файловая система
- Файловые системы семейства ext
- btrfs
- Файловые системы семейства fat
- Файловая система Linux — обзор, список команд для работы
- 1. Что такое файловая система простыми словами
- 2. Целостность файловой системы — что это такое
- 3. Список команд для работы с файлами в Linux
- 4. Типы файловых систем Linux — описание и обзор
- 5. Типы файлов Linux
Sysadminium
База знаний системного администратора
Файловые системы поддерживаемые Linux
Поддержка файловых систем – это основная функция операционных систем. В этой статье познакомимся с тем, какие файловые системы могут быть использованы в операционной системе Linux.
Что такое файловая система
Полезные данные, такие как файлы и каталоги, напрямую на диск не записываются. Между разделом диска и файлами существует прослойка в виде файловой системы.
Файловая система – это средство, которое определяет различные правила работы с файлами, например:
- как данные будут располагаться на диске;
- как будет происходить запись, поиск, чтение или удаление файлов;
- какие метаданные будут использоваться;
- как обезопасить файлы от порчи (например при некорректном выключении компьютера);
Метаданные – данные о данных, например файл это данные, а метаданные это:
- дата его создания;
- пользователь создавший этот файл;
- тип файла;
- права доступа к этому файлу;
- и подобная информация о файле.
Разные файловые системы имеют разные ограничения, например:
- максимальный размер раздела;
- наибольший размер файла;
- максимальная длина имени файла.
В этой статье пробежимся по файловым системам, которые можно выбрать при установки Debian 10 и Ubuntu 20.04. При установке Debian 10 вы можете выбрать следующие файловые системы:
Установщик Ubuntu 20.04 имеет несколько меньший выбор:
Далее пробежимся по этим файловым системам:
Файловые системы семейства 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 систем.
btrfs
btrfs – это более функциональная и сложная файловая система чем ext4. Начали разрабатывать для Linux в 2007 году, а в 2014 году признали стабильной. Вот некоторые интересные функции:
- снимки состояния, которые позволяют запомнить состояние на определенный момент времени всех файлов и вернуться к этому состоянию в последующем. Полезно когда вы случайно удалили что-то важное или какой-то вирус зашифровал все ваши данные на компьютере;
- создание RAID конфигурации на уровне файловой системы;
- сжатие данных, когда данные при создании автоматически сжимаются экономя свободное место на диске;
- дедупликация данных. Когда есть два или более одинаковых файла, то они занимают размер только одного файла, что очень экономит пространство на жестком диске;
- контрольные суммы для данных и метаданных, что повышает надежность файловой системы;
- дефрагментация данных на лету;
- квоты на разделы;
- динамическая аллокация inode;
- максимальный размер файла 16 EB;
- наибольший размер раздела 16 EB;
- максимальный размер имени файла 255 B;
Из минусов: файловая система не так проверена временем как ext4, активно использует оперативную память и работает медленнее чем ext4.
JFS — это журналированная файловая система. На момент выхода в свет в 1999 году была наиболее производительной из существовавших файловых систем. Сейчас по функциональности сравнима с ext4, но менее популярна.
Вот некоторые её особенности:
- максимальная длина имени файла 255 B;
- максимальный размер файла 4 PB (4000 TB);
- максимальный размер раздела 32 PB (32000 TB);
- контрольные суммы;
- поддержка acl.
Так как по функциональности эта файловая система сравнима с ext4, но по характеристикам и популярности отстаёт, то в Ubintu установщик уже не предлагает использовать её. Можно использовать, если у вас будут храниться файлы размером более 16 ТБ, хотя и в этом случае лучше выбрать XFS.
XFS – это журналированная файловая система. Особенно хорошо работает с большими неизменяемыми файлами. Имеет следующие особенности:
- максимальная длина имени файла 255 B;
- наибольший размер файла 9 EB;
- максимальный размер раздела 9 EB;
- автоматическая аллокация и высвобождение inode;
- дефрагментация «на лету»;
- низкая производительность при работе с большим количеством файлов;
- невозможность уменьшить размер существующей файловой системы.
Эта файловая система позволит хранить просто огромные файлы, размер которых может достигать 9 EB.
Файловые системы семейства fat
Эти файловые системы могут работать в linux но создавались они для windows. Могут подойти для хранения файлов, но не для работы программ. Основной недостаток FAT – медленная работа с файлами:
- fat16 — максимальный раздел 2 GB, в настоящее время потеряла свою актуальность;
- fat32 — максимальный раздел 2 TB, для работы приложений не подходит, максимум можно использовать для хранения информации на флеш накопителе.
- В настоящее время рекомендуется использовать ext4 для работы Linux систем, а если вам нужны дополнительные функции можно изучить и использовать btrfs, если планируете хранить крупные файлы то можно попробовать xfs.
- Также если вам важнее скорость чем надежность можно использовать ext2, так как в ней нет журнала она должна работать быстрее чем ext4.
- Ну а fat32 можно использовать для хранения информации на флеш накопителе.
Кроме перечисленных файловых систем Linux может работать и с другими, например ntfs или zfs. Но так как их нельзя выбирать при установке, они были опущены. На этом сайте я планирую познакомить вас с файловой системой zfs, так как имею большой опыт работы с ней, но не в этом курсе, а в отдельных статьях.
Источник
Файловая система Linux — обзор, список команд для работы
Поговорим о файловых системах Linux. Какие существуют типы и виды. Какие их основные различия: журналируемые и не журналируемые ФС.
1. Что такое файловая система простыми словами
Термин «файловая система» можно понимать двояко. С одной стороны — это архитектура хранения битов на жестком диске, с другой — это организация каталогов в соответствии с идеологией Unix. В этой статье мы более подробно обсудим первую сторону.
В физическом смысле файловая система Linux/UNIX представляет собой пространство раздела диска разбитое на блоки фиксированного размера. Их размер кратен размеру сектора: 1024, 2048, 4096 или 8120 байт. Размер блока известен заранее.
Как происходит обмен данными между ядром, приложениями и жестким диском? Для этого существуют 2 технологии:
- Виртуальная файловая система (VFS). Некий интерфейс, между ядром и файловой системой (ext2, ext4 и т.д.). Это позволяет взаимодействовать ядру и приложениям без особенностей работы конкретного типа ФС. Иногда VFS называют «виртуальным коммутатором файловых систем».
- Драйверы файловых систем . Специальные программы, которые устанавливают «мост» (интерфейс) взаимодействия между аппаратурой и программой.
Список поддерживаемых ядром файловых систем находится в файле /proc/filesystems :
Иерархия файловой системы
Как мы уже сказали выше, есть вторая сторона ФС, которая состоит в определении ее с точки зрения организации расположения файлов в Linux. В этом случае можно сказать, что: файловая система — это иерархическая структура, которая начинается с корневого каталога «/» (корневой каталог) и дальше ветвится в соответствие с работой системы.
В этой статье мы будем говорить подробнее про типы файловых систем. Про организацию и структуру каталогов в Linux можно отдельно прочитать в статье:
2. Целостность файловой системы — что это такое
Файловая система называется целостной, если внесенные изменения в один файл не приведут к изменению другого файла в системе, который никак не связан с первым. В этом случае мы говорим, что у всех данных собственная физическая память.
Проверку целостности файловой системы в Linux можно запустить с помощью команды fsck (в Windows это программа называется – scandisk )
В начале ФС есть чистый бит. Если система используется, то в этот бит заносится 1. По завершению работы опять 0.
3. Список команд для работы с файлами в Linux
Команда | Описание |
touch file_name | Создать файл «file_name» |
mkdir directory_name | Создать директорию «directory_name» |
rm file_name | Удалить файл «file_name» |
rm -r | Удалить рекурсивно все файлы из директории |
pwd | Вывод каталога в котором сейчас находитесь |
ls directory_name | Вывести содержание каталога «directory_name» (можно просто ввести ls без имени и тогда выведутся все файлы текущей директории) |
cd directory_name | Перейти в директорию «directory_name» |
cp file_name directory_name | Копировать «file_name» в директорию «directory_name» |
mv file_name directory_name | Переместить «file_name» в директорию «directory_name» |
mv old_name new_name | Переименовать файл/директорию «old_name» в «new_name» |
Права доступа к файлу/каталогу можно изменять с помощью команды chmod:
Таким образом можно изменять права доступа к файлу и каталогам (а также вложенным каталогам и файлам в них).
4. Типы файловых систем Linux — описание и обзор
Файловые системы условно делятся на два типа
- Журналируемые . Имеют в своем арсенале специальный файл, который хранит историю действий (лог) и план дальнейшей проверки. Характерной особенностью является устойчивость к сбоям и большая гарантия на сохранение целостности данных.
- Не журналируемые . Отсутствует файла с логом. Работают более быстро. Не гарантируют целостность и сохранность данных. Особенно это проблема встает в случае сбоев, когда некоторые действия могли редактировать файл и прервать изменения в неправильном месте.
Узнать файловую систему в ОС Linux
Самые популярными типами ФС в Linux являются:
- Ext4 (считается стандартом для Linux)
- Ext2
- ReiserFS
- XFS
- SWAP
В Windows поддерживаются свои ФС: NTFS, FAT32. Линукс также их поддерживает, а вот Windows не поддерживает линуксовые системы.
1 Extfs (Extended File System). Дата появления на свет апреле 1992 года. Самая первая файловая система разработанная специально для ОС на ядре Linux. Наибольший возможный размер раздела файла — 2 Гб. Максимальная длина имени файла — 255 символов. Является прародителем популярных ФС Ext2, Ext3.
2 Ext2 (second extended file system). Дата создания 1993 год. Является не журналируемой файловой системой. Была популярна до 2000-х. Имеет ряд ограничений на работу с большими файлами, зато является и самой быстрой, поэтому её часто используют в различных сравнительных тестах как эталонную.
3 Ext3 (third extended filesystem). Дата выхода 2001 год. Считается революционной, поскольку относится к поколению журналируемых систем. В настоящее время файловая система Ext3 поддерживает файлы размером до 1 ТБайт. Используется в некоторых случаях до сих пор. Разделы Ext3 могут читать Windows-программы (например, Total Commander). Разработчик Стивен Твид.
4 Ext4 (дата выхода 2006 год). Является стандартом во всех современных Linux (а сейчас 2019 год). Хорошо защищена от проблем фрагментации и оптимизирована для работы с большими файлами. Максимальный размер файловой системы не может превышать 16 ТБайт.
5 ReiserFS (или Reiser3). Создана уже после ext3 в качестве ее альтернативы. Журналируемая система. Поддерживает большую производительность. Позволяет изменять размеры разделов во время работы.
Считается самой экономичной, поскольку позволяет хранить несколько файлов в одном блоке, что позволяет использовать каждый байт жесткого диска. Обычные файловые системы могут хранить в одном блоке один файл или одну его часть.
6 Reiser4 (дата создания 2004 году). Система включает себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных.
7 XFS (журналируемая файловая система). Это производительная файловая система, разработанная в Silicon Graphics для свой операционной системы еще в 2001 году. Позволяла использовать диски 2 ТБайт. Существует возможность потери данных во время записи при сбое питания, так как большое количество буферов хранится в памяти.
8 Btrfs или B-Tree File System . Журналируемая файловая система. Совершенно новоиспеченная файловая система, которая сосредоточена на отказоустойчивости, свободности администрирования и восстановления данных. К её особенностям относятся хранение индекса файлов в так называемых «B-деревьях» – иерархических структурах, которые максимально оптимально используют ресурсы оперативной памяти за счёт небольшой глубины вложения данных.
9 SWAP – особый вид не журналируемой файловой системы, которая реализует структуру хранения данных, аналогичную структуре оперативной памяти. Используется для реализации файла подкачки в Linux.
5. Типы файлов Linux
Перечислим поддерживаемые типы файлов в ОС Linux
- Файлы (тексты, исходники, картинки, скрипты)
- Каталоги
- Блочные устройства (жесткие диски, дискеты)
- Символьные устройства (терминалы, принтеры)
- символические ссылки
- PIPE
- Гнезда
Тип файла в каталоге можно посмотреть командой:
Посмотреть список блочных устройств можно командой:
# ls-l /dev/sd* brw-rw—-1 root disk 8, 0 Мар11 19:03 /dev/sda brw-rw—-1 root disk 8, 1 Мар10 21:23 /dev/sda1 brw-rw—-1 root disk 8, 5 Мар10 21:23 /dev/sda5 brw-rw—-1 root disk 8, 16 Мар10 22:31 /dev/sdb brw-rw—-1 root disk 8, 17 Мар10 21:23 /dev/sdb1 brw-rw—-1 root disk 8, 18 Мар10 21:23 /dev/sdb2 brw-rw—-1 root disk 8, 32 Мар11 19:05 /dev/sdc brw-rw—-1 root disk 8, 33 Мар11 17:59 /dev/sdc1
Буквой «b» помечаются блочные устройства.
Посмотреть список дисков можно командой
Вывести информацию о жестком диске можно так
Источник